Extract frequency samples from .wav file

Hi,
I'd like to get a list of frequencies from a .wav file, but I don't have any idea how. I've tried to use the function wavread, from which I can get the amplitude values and plot them against the time, but what I want is to get and plot the discrete frequency values of the sound file (as I show in the image I've attached). The code I've used is the following one, and it would be perfect if I could do exactly the same operations but with the frequency values instead of the amplitude ones.
[wave,fs]=wavread('filename.wav');
t=0:1/fs:(length(wave)-1)/fs;
plot(t,wave);
Could anyone here give me a hand? Thanks in advance!

답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2015년 6월 21일

0 개 추천

stem(abs(fft(wave)))

댓글 수: 1

Well... What I get from plotting the FFT is not exactly the union of all the frequency samples. I attach an image of the result of using this command. I would want to get something similar to the image below the amplitude graphs. The amplitude graph I get by using plot(t,wave) is correct, the problem I have is that I need to get the same but with frequency values. Thanks!

댓글을 달려면 로그인하십시오.

Star Strider
Star Strider 2015년 6월 21일

0 개 추천

If you have the Signal Processing Toolbox, use the spectrogram function. That may provide what you want.

댓글 수: 2

Thanks for your answer! I see that with the spectrogram function I can plot a lot of different graphs, but I don't just want to plot the frequency values, I also want to get and access them, that's the problem.
Star Strider
Star Strider 2015년 6월 24일
My pleasure.
You can get data from spectrogram by asking it for outputs. All the data it calculates are available. See the documentation on Spectrogram and Instantaneous Frequency for details.

댓글을 달려면 로그인하십시오.

카테고리

질문:

2015년 6월 21일

댓글:

2015년 6월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by