How to time shift a signal

4 ビュー (過去 30 日間)
Rohan Repale
Rohan Repale 2013 年 5 月 20 日
回答済み: Sk Group 2021 年 10 月 27 日
Hi,
I have this code,
clear all; close all; clc;
fc=30e3;
for n=1:3;
tc = gauspuls('cutoff',fc,0.4,[],-40);
t = -tc : 1e-7 : tc;
yi = gauspuls(t,fc,0.6);
plot(t,yi)
hold on
fc=fc+10e3;
end
It is supposed to generate 3 gaussian pulses each at 30kHz, 40kHz and 50kHz respectively. However they overlap each other and I want them to be time shifted in such a way that first is 30k then 40k and then 50k.
Thanks

採用された回答

Wayne King
Wayne King 2013 年 5 月 20 日
You can just create a vector of zeros and fill it with the pulses
fc=30e3;
t = -tc : 1e-7 : tc;
y = zeros(3*length(t),1);
startidx = 1;
endidx = length(t);
for n = 1:3
yi = gauspuls(t,fc,0.6);
y(startidx:endidx) = yi;
fc = fc+1e4;
startidx = startidx+length(t)+1;
endidx = endidx+length(t)+1;
end
plot(y)
  2 件のコメント
Youssef  Khmou
Youssef Khmou 2013 年 5 月 20 日
right !
Rohan Repale
Rohan Repale 2013 年 5 月 20 日
Thank you, exactly what I wanted

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

その他の回答 (2 件)

Youssef  Khmou
Youssef Khmou 2013 年 5 月 20 日
hi, try :
clear all; close all; clc;
fc=30e3;
for n=1:3
tc = gauspuls('cutoff',fc,0.4,[],-40);
t = -tc : 1e-7 : tc;
yi = gauspuls(t+n*1e-5,fc,0.6);
plot(t,yi)
hold on
fc=fc+10e3;
end

Sk Group
Sk Group 2021 年 10 月 27 日

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by