2012-03-15 3 views
1

Есть ли код Matlab, который показывает серию чисел, представляющих форму волны в виде спектрограммы?Пример Spectrogram в Matlab

Временной интервал, который представляет каждый образец, является одинаковым, и это также можно использовать для шкалы осей.

http://www.davegrossman.net/gould/media/spectrum-devocalized.jpg

Например:

spec({1 2 3 2 1 2 3 2}, 0.1 seconds) 

или

spec(my_data.txt, 10 Hz) 

и т.д ...

+0

Да, здесь есть пример: http://www.mathworks.co.uk/help/toolbox/signal/ref/spectrogram.html. –

ответ

4

Если у вас есть обработка сигнала Toolbox, то вы можете использовать функцию spectrogram() , например .:

T = 0:0.001:2; 
X = chirp(T,100,1,200,'q'); 
spectrogram(X,128,120,128,1E3); 

(пример взят из этой странице документации.)

Числовые PARAMS являются длина окна, длина перекрытия, длина БПФ и частота дискретизации, соответственно.

+0

И для внешних данных это X = cell2mat ({1 2 3 etc ...}) или вставить в окно рабочей области. – alan2here

+0

@ alan2here: Что такое «внешние данные»? 'cell2mat' кажется чрезмерным; просто используйте квадратные скобки, если вы хотите нормальный массив. –

+0

Внешние данные, вы знаете, данные, которые поступают откуда-то еще. Подобно списку номеров, которые я загрузил из Интернета вместо создания в Matlab. Также cell2mat работает, используя квадратные скобки вместо этого генерирует «X должен быть вектором (либо строкой, либо столбцом)». потому что X оказывается неправильным типом для спектрограммы. – alan2here

0

Если вы посмотрите на tftb toolbox, tfrspwv - очень сложный и точный код спектрограмм, и в программе tfrspwv.m для запуска спектрограммы в Matlab есть пример сценария запуска в tfrspwv.m.

Смежные вопросы