Question on use of fft and using positive frequency values only
16 views (last 30 days)
Show older comments
I have two outputs of an carried out fft from filtered signal. I now that there is only a 770 Hz sin signal left in x_filtered, sample frequency fs is 48000.
fft_xf_shift = fftshift(fft(x_filtered,fs));
m_sh = abs(fft_xf_shift);
Seems to me that fft gives out a double sided frequency spectrum. With fftshift I zero-center the spectrum. Next I calculate the absolute values and then save in m_pos only the positive values because the negative frequency values are of no intereset in this case.
Next I plot the 20*log10 magnitude over frequency:
m_pos = m_sh(fs/2+1:fs);
f=0:1:fs/2-1;
figure;
plot(f,20*log10(m_pos/max(m_pos)))
The plot give the correct magnitude at 770 Hz. Even if I have the highest magnitude reading at 770 Hz in the final plot, when I plot m_pos, which is the right snipped of the fft_shifted value, the highest reading is at 771 Hz or at position 771 of the vector.
I certainly have a misconception here. Can you help me? Thank you.
0 Comments
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Fourier Analysis and Filtering 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!