Why do I get different answer between circular shifting and modulation for FFT?
Show older comments
I was trying to get a 64 point DFT of a sequence that does not start from the origin: ( x[-2], x[-1], x[0], x[1], x[2], x[3], x[4], x[5]), x[n] all equal to 5 for n= -2 to 5. and I tried to do it in two ways: first is do the circular shift and then use fft lke:
xcircst = horzcat( horzcat( [5 5 5 5 5 5], zeros( 1, 56)),[5 5]);
XK = fft (xcircst);
But it end up with a different answer from :
k = (0 :1: 63);
modulate = exp(-j*2*pi*k*2/64);
X = fft([5 5 5 5 5 5 5 5]) .*modulate;
Can some one tell me the reason why this happened? I through the circular shift would lead to the same result as modulation in frequency domain after DFT, but the results seems to disagree with that.
Answers (1)
Honglei Chen
on 1 Feb 2017
You are shifting the signal by 62 samples, not 2 samples, so you should define your modulate as
modulate = exp(-j*2*pi*k*62/64);
HTH
1 Comment
Jiayu He
on 1 Feb 2017
Thanks, seems I messed up with the sign.
Categories
Find more on Direction of Arrival Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!