To scale values from Matlab's spectrogram to r

2019-09-20 13:50发布

I run

spectrogram(data, 64, 60, 256, 2,  'yaxis');

I get

enter image description here

I want to get range from 0 to 180 Hz, instead of normalised range from 0 to 1. I can change axis by

axis([0 450 0 180])

but it does not change the values.

I run unsuccessfully

spectrogram(180 .* data, 64, 60, 256, 2,  'yaxis');

How can you scale the range from normalised to real range?

1条回答
女痞
2楼-- · 2019-09-20 14:29

The x-axis should be frequency. You need to know the sampling rate fs (is it 2 ?) of data. Then the frequency range will be (0:63)/64*fs

Actually you can get the frequency output in the spectrogram function:

[B,F,T]=spectrogram(data,64,60,256,2);  % if fs = 2 in your case

F is the frequency range.

查看更多
登录 后发表回答