Getting Frequencies Corresponding to Peaks In FFT Plot

10 次查看(过去 30 天)
Hey everyone,
So I'm currently working on a project where I need to find the frequencies for specific peaks in my FFT plot of an audio file. However, I'm not sure how to actually get the frequencies that correspond to the peaks I'm interested in.
This is my code: https://pastebin.com/zZW8B5Th
And this is a picture of my FFT plot: https://imgur.com/0ajtful
Essentially, I'm trying to construct a Fourier Series from the signal. Although I know how to find the coefficients of the sine/cosine terms, I'm just a little confused on how to find the frequency.
Thanks everyone!

采纳的回答

Star Strider
Star Strider 2018-1-4
Use the findpeaks (link) function to determine the frequencies and amplitudes of the peaks.
Note that the correct implementation of your fft call is:
X = X(1:length(y)/2+1)/length(y);
That will produce the correct amplitudes.
  4 个评论
Aditya Rudrapatna
编辑:Aditya Rudrapatna 2018-1-4
Perfect!!!!
I found an alternative method to do so - using the 'Find Peaks with Minimum Separation' to display the location of the maxima (I don't need a billion terms in my Fourier Series), and then using the Data Cursor tool to click on the peaks to find their corresponding x and y values :)))
Ooh also - someone else pointed out to me that i should double the magnitudes since I'm moving from a 2-sided spectrum to a 1-sided spectrum.
I really can't thank you enough for your help. I'm just a high school senior, so I really didn't know much about this!
Star Strider
Star Strider 2018-1-4
As always, my pleasure!
In my last Comment I linked you to ‘Find Peaks with Minimum Separation’ as well. I added the normalisation by length, although forgot to mention multiplying the 1-sided amplitudes by 2. (Not quite fully awake then.)
I envy you. I wish I’d had computers and MATLAB in high school!

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by