Сначала быстро головы вверх: На StackOverflow вы, как ожидается, чтобы показать некоторые из ваших собственных усилий, чтобы решить эту проблему, а затем обратиться за помощью ,
Теперь на ваш вопрос:
Вы можете построить спектрограммы с помощью «спектрограмма» функции Matlab.
[s,f,t] = spectrogram(x,window,noverlap,f,fs)
Проверьте подробности здесь: https://www.mathworks.com/help/signal/ref/spectrogram.html
Для речевого сигнала вы хотите, чтобы указать частоту дискретизации «фс» (вы можете получить, что при чтении файла с помощью:
[y,Fs] = audioread(filename)
Возможно, вы захотите указать переменные «окно» и «noverlap», поскольку речевые сигналы могут отображать различные свойства в зависимости от размера окна (быстрые явления не будут видны на больших окнах). Типичными значениями являются 20 мс окна с 10 мс перекрытие (selec t наилучшее значение, учитывая частоту выборки и ближайшее значение 2^n для быстрого вычисления Фурье).
Размер окна и перекрытие также действительны при вычислении спектра. Если вы применяете FFT для всей формы волны, тогда вы получите «среднюю» спектральную информацию для предложения. Чтобы поймать конкретные явления, вы должны использовать методы оконной обработки и выполнить краткосрочный анализ Фурье.
Для _spectrum_: 'fft', затем' abs' и не забывайте 'fftshift' для сюжета. Для _spectrogram_: 'spectrogram', который уже дает плотность мощности, поэтому нет необходимости в' abs' –