2017-02-17 23 views
-1

У меня есть звуковая форма испанской фонемы, и я бы хотел вычислить ее спектр амплитуд и построить его в дБ в линейной частотной шкале. Как я смогу выполнить это в MATLAB?Построение акустической формы волны - величина на линейной частотной шкале

Благодаря

+0

Для _spectrum_: 'fft', затем' abs' и не забывайте 'fftshift' для сюжета. Для _spectrogram_: 'spectrogram', который уже дает плотность мощности, поэтому нет необходимости в' abs' –

ответ

1

Сначала быстро головы вверх: На 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 для всей формы волны, тогда вы получите «среднюю» спектральную информацию для предложения. Чтобы поймать конкретные явления, вы должны использовать методы оконной обработки и выполнить краткосрочный анализ Фурье.