2015-03-31 2 views
0

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

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

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

+2

Почему бы вам не показать вывод, который вы получаете, и код, который вы использовали для его получения - вам было бы легче помочь. – Floris

+0

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

ответ

1

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

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

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

+0

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

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