How can i delay a signal?

34 views (last 30 days)
Jessie Bessel
Jessie Bessel on 5 Feb 2018
Answered: Greg Dionne on 5 Feb 2018
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 ;
t = linspace(0,n*T,1000) ;
s =exp(-a*t).*sin(2*pi*t/T);

Answers (1)

Greg Dionne
Greg Dionne on 5 Feb 2018
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!