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