How to write code for a composite signal with instantaneous frequency

11 ビュー (過去 30 日間)
Jan Ali
Jan Ali 2020 年 11 月 20 日
コメント済み: Jan Ali 2021 年 1 月 10 日
Anyone can help me with writing code for this function?

採用された回答

Swetha Polemoni
Swetha Polemoni 2020 年 11 月 23 日
Hi Jan Ali,
It is my understanding that you want to add three signals that are defined only in particular intervels of time. Following code might help you.
t = (-1:0.01:1); % defining time axis
unitstep1=t>=0; % unitsetp1 takes 1 only when t is greater than equal to 0
unitstep2=t>=0.1; % unitsetp2 takes 1 only when t is greater than equal to 0.1
unitstep3=t>=0.18;% unitsetp3 takes 1 only when t is greater than equal to 0.18
unitstep4=t>=0.3; % unitsetp4 takes 1 only when t is greater than equal to 0.3
rect1=unitstep1-unitstep2; % rect1 takes 1 only when 0<=t<0.1
rect2=unitstep2-unitstep3; % rect2 takes 1 only when 0.1<=t<0.18
rect3=unitstep3-unitstep4; % rect2 takes 1 only when 0.18<=t<0.3
% taking three random sine siganls
Signal1=sin(2*pi*50*t);
Signal2=sin(2*pi*150*t);
Signal3=sin(2*pi*500*t);
% Composite signal
Sc= Signal1*rect1+Signal2*rect2+Signal3*rect3;
  8 件のコメント
Jan Ali
Jan Ali 2020 年 12 月 9 日
Thanks so much dear Swetha. As you notice, there is a transient in the 0,1 to 0,18 s time interval. I also got the same plat as you did, however not able to get the same as the picture above. Anyway, I really appreciate your effort and the time you spent to get the same result.
Wish you all the bests!
Warm regards,
Ali
Jan Ali
Jan Ali 2021 年 1 月 10 日
Dear Swetha,
I found a workaround for this problem :)
fs=2000;
t = linspace(0,0.3,1000);
s1 = sin(2*pi*30*t) + 0.2*sin(2*pi*70*t);
s2 = sin(2*pi*30*t) + 0.2*sin(2*pi*70*t) + sin(2*pi*500*t).*exp(-30*t-0.1);
s3 = sin(2*pi*30*t) + 0.2*sin(2*pi*70*t);
if 0.1 > t >= 0
s1;
elseif 0.18 > t >= 0.1
s2;
else
s3;
end
s=[s1 s2 s3];
t = linspace(0,0.3,3000);
plot(t, s, 'b')
I really appreciate your kind support and the time you spent for coding.
Wish you all the best

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDigital Filtering についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by