Numerical FFT Inconsistent with Analytical Fourier Transform at Low Frequencies
1 次查看(过去 30 天)
显示 更早的评论
I am trying to extract data from a wave packet simulation. Where the wave packet is described by a sine function multiplied by a gaussian function,
f = A*exp(1i*k0*x).*exp(-((x - x0)/sqrt(2)/sig).^2);
where A is the amplitude of the wave packet k0 is the wave vector, x0 is the center position of the packet, sig is the gaussian width and x is the position in real space. If I take the analytical Fourier Transform of this fuction I get,
F = A*sqrt(2*pi)*sig*exp(-sig^2/2*(k - k0).^2 - 1i*x0*(k0 - k));
where k is the position in inverse of real space or wavevector. the problem is when I take the Fourier transform of f with k0 equal to zero the amplitude of the FFT is exactly twice that of the amplitude F. If I offset k0 from zero to something close to zero then I see an asymmetry in the FFT but the amplitudes of the FFT and F are equal. However, as can be easily seen from the function F, the FFT of the signal should be a Gaussian multiplied by a sine function. After playing with the FFT and my function F it seems like because the FFT produces a mirror image of itself centered at the Nyquist frequency, Fs, it folds the amplitudes at low frequency resulting in the observed phenomenon. How do I solve this low frequency problem so that I get the correct amplitudes at low frequency?
1 个评论
Matt J
2013-4-30
You've shown no code. We can't see what you're doing. Did you multiply the FFT by your sampling interval? What sampling interval did you select? The "mirror images" that you describe shouldn't be there if your sampling is sufficiently fine as to minimize aliasing.
回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!