フィルターのクリア

generate a sine wave that ends at 0

10 ビュー (過去 30 日間)
Ali Albaidhani
Ali Albaidhani 2022 年 4 月 5 日
コメント済み: Sam Chak 2022 年 4 月 5 日
Hello everyone,
As the title says, i'm trying to generate a sine wave that ends at 0. I have this problem when i try to generate a signal with a frquency higher than 1, the signal does not stop at 0.
I use the following code for the sine wave:-
%---------------------
Fs=5000;
f=159.2;
t1=1;
t = 0 : 1/Fs : t1-1/Fs;
A=0.1;
sine=A*sin(2*pi*f*t);
%---------------------
is there any way to make the signal stops at 0? even if that means that the signal moves past the 5000 points.
Regards
Ali
  2 件のコメント
Steven Lord
Steven Lord 2022 年 4 月 5 日
One suggestion: the sinpi function may be of interest to you.
Sam Chak
Sam Chak 2022 年 4 月 5 日
Wow, I don't know the existence of this function (Introduced in R2018b).
Thank you @Steven Lord.

サインインしてコメントする。

採用された回答

Sam Chak
Sam Chak 2022 年 4 月 5 日
編集済み: Sam Chak 2022 年 4 月 5 日
Are you trying to make the Sine wave to hit 0 at the end of the simulation?
f = 159.2; % frequency
Fs = 35*f;
desired_Tend = 1;
n = round(f*desired_Tend);
T = 1/f; % period
t = 0:1/Fs:n*T;
A = 0.1; % amplitude
x = A*sin(2*pi*f*t);
plot(t, x, 'linewidth', 1.5)
axis([0.99 1 min(x) max(x)])
grid on
xlabel('t')
ylabel('x(t)')
title('Sine Wave')
x(length(t))
  6 件のコメント
Ali Albaidhani
Ali Albaidhani 2022 年 4 月 5 日
thank you sam for your answer.
I just have a problem with n.
How do i calculate it and what if i want a signal that is longer than 1 sec?
Sam Chak
Sam Chak 2022 年 4 月 5 日
I have edited the script in the Answer. This allows you to compute the nearest integer.
desired_Tend = 2;
n = round(f*desired_Tend); % calculate the nearest integer

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSignal Generation, Manipulation, and Analysis についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by