How can i delay a signal?

18 ビュー (過去 30 日間)
Jessie Bessel
Jessie Bessel 2018 年 2 月 5 日
回答済み: Greg Dionne 2018 年 2 月 5 日
I'm working on a project and i'm interested in delay a signal with a number of seconds. I tried everything, but doesn't work. Have any ideas?
T = 200e-6
n = 10 ;
a=1500;
t = linspace(0,n*T,1000) ;
s =exp(-a*t).*sin(2*pi*t/T);
plot(t,s)

回答 (1 件)

Greg Dionne
Greg Dionne 2018 年 2 月 5 日
You could do something simple like:
s = exp(-a*(t-t0)).*sin(2*pi*(t-t0)/T);
and tweak t0 to be whatever time you need the waveform to start at.
If instead your question is more like "I have a uniformly-sampled signal. What are some reasonable techniques to delay the signal by an arbitrary time?". There are a few ways to do that (interpolation, model/curve-fitting, time-shift filtering, fft-based methods, etc.), but they of course are less ideal than having a closed-form expression like the one you have above.

Community Treasure Hunt

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

Start Hunting!

Translated by