Чтобы масштабировать значения от спектрограммы Matlab к реальному диапазону

Я бегу

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

я получил

введите описание изображения здесь

Я хочу получить диапазон от 0 до 180 Гц вместо нормализованного диапазона от 0 до 1. Я могу изменить ось на

axis([0 450 0 180])

но это не меняет значения.

Я бегаю неудачно

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

Как вы можете масштабировать диапазон от нормализованного до реального диапазона?

1 ответ

Решение

Ось X должна быть частотой. Вам нужно знать частоту дискретизации fs (это 2?) из data, Тогда частотный диапазон будет (0:63)/64*fs

Фактически вы можете получить частотный выход в функции спектрограммы:

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

F это частотный диапазон.

Другие вопросы по тегам