Анализ спектрограммы Matlab

Мне нужна помощь в моих экспериментах с MATLAB. Я пытаюсь получить частотный диапазон песни за временной интервал. Например, если человек поет, каков его частотный диапазон от времени 0 до 0,5 секунды? Я попытался использовать функцию спектрограммы MATLAB, но не могу понять, как извлечь нужные значения из возвращаемых значений.

Я надеюсь, что вы могли бы помочь мне (новичку).

Большое тебе спасибо. Я ценю вашу помощь.


person user3286528    schedule 31.03.2015    source источник
comment
Почему бы вам не показать результат, который вы получаете, и код, который вы использовали для его получения - было бы легче вам помочь.   -  person Floris    schedule 31.03.2015
comment
Привет, спасибо за ваш ответ. Я вывел спектрограмму, которая выглядит следующим образом: docs.google.com/file/d/0B0gNKHg8ApCsSFZMdkRSRk9DdWs/edit 2),256,[],1024,fs,'yaxis'); ? «fs» — это частота дискретизации из метода audioread(), а «f» — это сигналы данных. Никак не могу понять четвертый параметр 1024 (частота) и что он делает в спектрограмме. Большое спасибо за Вашу помощь!   -  person user3286528    schedule 01.04.2015


Ответы (1)


Сначала вам нужно понять, что делает спектрограмма; он разбивает ваш сигнал на более короткие (но фиксированные) промежутки времени и выполняет для него БПФ (поэтому он также известен как представление STFT). Спектрограмма Matlab имеет множество опций, с которыми вы можете поиграть.

Теперь к вашему вопросу, чтобы определить частотный диапазон вашего сигнала, просмотрев данные спектрограммы, вам нужно будет сначала определить продолжительность вашего интервала спектрограммы, используя NFFT, количество перекрытий и частоту дискретизации (я предполагаю, что вы работали это до того, как вы построили спектрограмму). При работе с речью хорошего качества (выборка с частотой 16 кГц, перекрытие 50% и 1024 NFFT) должно возвращаться около 32 мс на бин (или часть спектрограммы). Чтобы определить, какая частота присутствовала в диапазоне от 0 до 500 мс, просто возьмите первые ячейки ceil (500/32) и запишите частотную характеристику; вы, вероятно, получите несколько частот, поскольку речь обладает как гармоническими свойствами, так и свойствами распространения.

Что касается остального, мне нужно будет точно знать, какие у вас настройки / чего вы надеетесь достичь, прежде чем предлагать какую-либо полезную помощь.

person GameOfThrows    schedule 31.03.2015
comment
Привет, спасибо за ваш ответ. Я вывел спектрограмму, которая выглядит следующим образом: docs.google.com/file/d/0B0gNKHg8ApCsSFZMdkRSRk9DdWs /edit Как выполнить нарезку значений матрицы, возвращенных этим методом [s,w,t] = spectrogram(f(:,2),256,[],1024,fs,'yaxis') ; ? «fs» — это частота дискретизации из метода audioread(), а «f» — это сигналы данных. Никак не могу понять четвертый параметр 1024 (частота) и что он делает в спектрограмме. Большое спасибо за Вашу помощь! - person user3286528; 01.04.2015