How to find frequency from image of spectrogram?
2 次查看(过去 30 天)
显示 更早的评论
Here is what I have done so far.
[W,fs]=wavread(FileName); %this reads a wave file
[~,~,~,P]=spectrogram(W(:,end),tres,tres/2,fres,fs); %tres is time resolution %and fres is frequency resolution.
I=flipud(-log(P)); %here 'I' gives the spectrogram image in a matrix.
imshow(I,[]); %this line will display the image.
now my question is if I choose a pixel co-ordinate from the image matrix I how can I get its frequency?
0 个评论
回答(1 个)
Wayne King
2013-6-30
编辑:Wayne King
2013-6-30
If you output the vector of frequencies from spectrogram(), you will have the frequency information.
t=0:0.001:2;
x=chirp(t,0,1,150);
[y,f,t,p] = spectrogram(x,256,250,256,1000);
Each row of p corresponds to the frequency at the corresponding element of the vector, f. But keep in mind, that it's only as good as the frequency resolution you have. If you're looking for a technique that gives you instantaneous frequency and time behavior for a signal, it does not exist. You can only obtain information about a time-frequency rectangle of a minimum area.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time-Frequency Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!