Using MATLAB, when you perform an FFT on a signal such as A sin( omega*t ), why is the amplitude of the FFT not as specified by the formula ?

7 views (last 30 days)
Using MATLAB, when you perform an FFT on a signal such as A sin( omega*t ), why is the amplitude of the FFT not A*n/2?
The magnitude of the FFT should be A*n/2, where "n" is the number of points used in the FFT.
I am using the following code to find the power spectrum:
t = 0:0.001:0.6;
x = sin(2*pi*50*t);
Y = fft(x,512);
f = 1000*(0:256)/601;
plot(f,abs(Y(1:257)))
In this absolute FFT plot, the peak occurs at the frequency 50, but the amplitude of the peak is NOT
1*512/2 (A*n/2)
as suggested by the formula, but much less.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This is due to the windowing effect that occurs when the signal length is truncated while calculating the FFT. In such cases, the amplitude of the FFT would be smaller than the value predicted by this formula. If the FFT length is same as the length of the signal which is 601, the peak of the FFT plot occurs at
A*n/2
which, in this case, is 300 (1*601/2).

More Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!