How to do FT Time shift and Time scaling properties
55 次查看(过去 30 天)
显示 更早的评论
Currently i am trying use matlab to do the FT properties -time shift and time scaling, can someone help me in the implementation? i would like to prove that Timeshift: F[x(t-τ) ]= e^(-jwτ) F[x(t)]
Time scaling: F[x(at)]=1/(|a|) X(w/a)
Thanks.
0 个评论
采纳的回答
Wayne King
2013-3-28
编辑:Wayne King
2013-3-28
t=0:0.001:0.1-0.001;
Fs = 1e3;
freq1 = 100;
x1=cos(2*pi*freq1*t);
Delay=2;
yp = fft(x1);
yp = yp(1:length(x1)/2+1);
f = 0:Fs/length(x1):500;
yp = yp.*exp(-1i*2*pi*f*Delay*(1/Fs));
yp = [yp conj(fliplr(yp(2:end-1)))];
y = ifft(yp,'symmetric');
plot(t(1:100),x1(1:100),'b');
hold on;
plot(t(1:100),y(1:100),'r');
2 个评论
AYDIN KARA
2021-1-2
Your code just fails when sampling frequency increases.
For f = 1e4 it gives matrix dimensions must match error. Other wise if I keep your sampling frequency at 1e6
After that point, even if I increase the delay by 2000. I could not observe any delay.
Sorry but it seems your code works for one case.
更多回答(6 个)
Wayne King
2013-3-29
编辑:Wayne King
2013-3-29
They agree if you get the delay right. You're not delaying the signal by 2. You're trying to delay the signal by two samples, but that has to take into account the sampling interval, so you're actually delaying the signal by 0.002 seconds.
t = 0:0.001:1-0.001;
freq1 = 100;
Fs = 1000;
x1=cos(2*pi*freq1*t);
Delay=2;
yp = fft(x1);
yp = yp(1:length(x1)/2+1);
f = 0:Fs/length(x1):500;
yp = yp.*exp(-1i*2*pi*f*Delay*(1/Fs));
yp = [yp conj(fliplr(yp(2:end-1)))];
yrec = ifft(yp,'symmetric');
Compare with
D=2;
Fs=1000;
freq1=100;
t=0:0.001:1-0.001;
x=cos(2*pi*freq1*(t-(D*(1/Fs))));
y1 = fft(x);
y1T = ifft(y1,'symmetric');
max(abs(y1T-yrec))
You can see the above are identical. Thank you for accepting my answer if I have helped you.
Wayne King
2013-3-28
编辑:Wayne King
2013-3-28
n = 0:159;
x = cos(pi/4*n);
y = cos(pi/4*(n-2));
xdft = fft(x);
ydft = fft(y);
xdft(21)
ydft(21)
Note that 80+i0 has become 0-80i due to the predicted phase shift of e^{-i\pi/2}
Obviously, the only way to properly "prove" that theorem is mathematically.
The scaling one you have to be careful with in discrete-time because scaling doesn't work the same with a discrete variable as it does with continuous time.
ong
2013-4-3
1 个评论
Irfan Ali Dahani
2021-1-19
visit and you will get easy made time shifting, time scaling and amplitude scaling all in one project. surely both projects will help you.
SHREEVARSHINI R
2021-10-24
1.Write a MATLAB program to find Fourier transform of the signal Ate-btu(t)
2.Write a MATLAB program to perform amplitude scaling, time scaling and time shift on the signal x(t) = 1+t; for t=0 to 2
0 个评论
Sk Group
2021-10-25
Time shifting Prove: DFT{x(n-l)} = X(K)e^(-j(2*pi/N)kl
For complete detailed post visit: https://www.swebllc.com/time-shifting-property-in-matlab-complete-prove-code-output/
Sk Group
2021-10-25
For detailed post with complete code visit: https://www.swebllc.com/time-scaling-in-matlab-code-output/
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!