MATLAB - Delay sine wave

24 views (last 30 days)
long le
long le on 8 Nov 2020
Commented: Alan Stevens on 8 Nov 2020
I have a damped sine wave as below:
N=250;
Fs=20;
Ts=1/Fs;
t=(0:N-1)*Ts;
A = 3;
f = 1;
x = A*exp(-t).*sin(2*pi*f*t);
How can I generate a delay signal from the damped sine wave x, so that:
y(n) = a*x(n-k)+b(n),
Where a is the attenuation coefficient, b(n) is the noise and k is a delay

Answers (1)

Alan Stevens
Alan Stevens on 8 Nov 2020
Like this?
N=250;
Fs=20;
Ts=1/Fs;
t=(0:N-1)*Ts;
A = 3;
f = 1;
signal = @(t) A*exp(-t).*sin(2*pi*f*t);
x = signal(t);
a = 0.7; % attenuation coefficient
k = 10*Ts; % delay time
b = 0.1*randn(1,numel(t)); % normally distributed noise
y = a*signal(t-k) + b;
plot(t,x,t,y),grid
xlabel('t'),ylabel('signal')
legend('signal','delayed signal')
  2 Comments
long le
long le on 8 Nov 2020
Edited: long le on 8 Nov 2020
Thank you.
But I think that the length/time of the emitted signal should be shorter than the received one because of the delay?
The received signal should be longer
Alan Stevens
Alan Stevens on 8 Nov 2020
I wouldn't know! But doesn't it just mean you define a different timespan for the delayed signal?

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!