Matlab 在线性频率标度上绘制声波形-幅度

Matlab 在线性频率标度上绘制声波形-幅度,matlab,speech-recognition,Matlab,Speech Recognition,我有一个西班牙音素的声音波形,我想计算它的幅度谱,并在线性频率标度上以dB的幅度绘制它。如何在MATLAB中实现这一点 谢谢使用sptool 信号处理工具箱首先是一个快速的提示:在stackoverflow,您需要展示自己解决问题的一些努力,然后寻求帮助 现在谈谈你的问题: 您可以使用“spectrogram”Matlab函数绘制频谱图 [s,f,t] = spectrogram(x,window,noverlap,f,fs) 请在此处查看详细信息: 对于语音信号,您需要指定采样频率“fs”(

我有一个西班牙音素的声音波形,我想计算它的幅度谱,并在线性频率标度上以dB的幅度绘制它。如何在MATLAB中实现这一点


谢谢

使用
sptool


信号处理工具箱

首先是一个快速的提示:在stackoverflow,您需要展示自己解决问题的一些努力,然后寻求帮助

现在谈谈你的问题:

您可以使用“spectrogram”Matlab函数绘制频谱图

[s,f,t] = spectrogram(x,window,noverlap,f,fs)
请在此处查看详细信息:

对于语音信号,您需要指定采样频率“fs”(您可以在读取文件时使用:

[y,Fs] = audioread(filename)
您可能需要指定变量“window”和“noverlap”,因为语音信号可以根据窗口的尺寸显示不同的属性(快速现象在大窗口上不可见)。典型的值是20毫秒窗口,重叠10毫秒(通过考虑采样频率选择最佳值,并为快速傅立叶计算选择最接近的2^n值)

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

对于光谱:
fft
,然后是
abs
,不要忘记绘图的
fftshift
。对于光谱图:
光谱图
,它已经给出了功率密度,因此不需要
abs