FFT time delay, incorrect alighnment of the output wave
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi,
I shift the FFT of a sampled signal by a certain number of samples and take the inverse FFT to get a delayed signal. I use the formula:
x[n+k] -> FFT(x[n]) * exp(-j*2*pi*k*m/N), where N = the length of the signal, k is the amount of time delay in time domain and m is the running index.
When I take the IFFT, I see that the signal starts correctly but then it gets misaligned (For example, in Figure 1 you can see there are 2 peaks in place of one peak at t~70 s). Why am I getting this result?
My code is below:
%for fs=2*10^8 Hz and f_signal=300 MHz
Fs=300000000; %fs=300MHz
T=1/Fs; %the sampling period
t=0:T:((0.7*10^-6)-T);
L=length(t);
f_signal=3*10^6;
x=cos(2*pi*f_signal*t); % signal_T=1/(3*10^6); %= 3.3333e-07
X=fft(x);
delayed_samples= 126; %delay the signal by 126 samples:
Y=X.*exp(1j*2*pi*delayed_samples*[0:L-1]/L );
y_1=real(ifft(Y));
figure, plot(Fs.*t, x, 'g'), hold on, plot(Fs.*t, y_1, 'r'), legend ('x','delayed x') , title 'signals vs. samples'
%%%end of the script%%%%%%%
Figure 1 is
댓글 수: 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!