2017-02-17 67 views
-1

我有一个西班牙音素的声波形,我想计算其幅度频谱并在线性频率刻度上以dB为单位绘制它。我将如何能够在MATLAB中完成这项工作?绘制声波 - 线性频率刻度上的幅度

感谢

+0

对于_spectrum_:'fft',然后'abs',不要忘记'fftshift'的情节。对于_spectrogram_:'spectrogram',它已经提供了功率密度,所以不需要'abs' –

回答

1

首先快速抬起头来:在计算器你预计将显示一些自己的努力来解决问题,然后寻求帮助。

现在你的问题:

您可以绘制使用“频谱” MATLAB函数的频谱。

[s,f,t] = spectrogram(x,window,noverlap,f,fs) 

检查这里的细节:https://www.mathworks.com/help/signal/ref/spectrogram.html

对于语音信号,你会希望指定采样频率“FS”(你可以得到,当你阅读使用文件:

[y,Fs] = audioread(filename) 

由于语音信号可以根据窗口的尺寸显示不同的属性(快速现象在大窗口中不可见),您可能需要指定变量“window”和“noverlap”。典型值为20ms窗口,10ms重叠(选择通过考虑您的采样频率和快速傅立叶计算的最接近的2^n值来获得最佳值)。

当您计算光谱时,窗口大小和重叠也是有效的。如果将FFT应用于整个波形,则会得到句子的“平均”光谱信息。要捕捉特定的现象,您必须使用窗口技​​术并执行短期傅里叶分析。

相关问题