我有一个以 44.1 kHz 采样的 30 秒语音信号。现在,我想显示语音的频率。但是,我不确定最好的方法是什么。有时似乎计算傅立叶变换的绝对值,有时计算功率谱密度。如果我理解正确,后者可以工作,以便我将信号分成几部分,逐部分进行 FFT 并以某种方式求和。以某种方式涉及窗口函数。你能为我澄清一下吗?我是 DSP 的新手。
我什么时候应该计算 PSD 而不是普通的 FFT 幅度谱?
信息处理
fft
频谱
自由度
演讲
频域
2021-12-27 06:42:43
2个回答
现在,我想显示语音的频率。但是,我不确定最好的方法是什么。有时似乎计算傅立叶变换的绝对值,有时计算功率谱密度。
如果您想在分析中附加物理意义,请使用功率谱密度 (PSD)。这是因为这只会在每个频段为您提供信号的功率。另一方面,如果您不想/关心物理意义,但想知道每个频带的傅立叶幅度如何相对于彼此变化,则可以坚持绝对幅度。
在实践中,您可以将 PSD 简单地计算为傅立叶变换平方的绝对幅度。例如,如果您的信号是, 其 DFT 为,则 DFT 的绝对大小为,而 PSD 是.
如果我理解正确,后者可以工作,以便我将信号分成几部分,逐部分进行 FFT 并以某种方式求和。以某种方式涉及窗口函数。你能为我澄清一下吗?我是 DSP 的新手。
不,这不是真的。您在这里谈论的是短时傅里叶变换(STFT)。这只是将您的时域信号切碎,将其分离,然后采用傅立叶变换。不过,归根结底,您仍然会有一个复杂的矩阵。如果你选择取它的绝对幅度,你将得到一个绝对幅度傅里叶变换矩阵。如果你取其绝对幅度的平方,你将得到一个功率谱密度矩阵。
理解语音信号之类的重要一点是它的频率分量是随时间变化的。为了在频域中表示语音,我们通常采用足够短的信号窗口,在该窗口内我们可以假设语音的频谱没有显着变化(通常为 10 毫秒)。因此,我们使用STFT (通常在窗口之间有一些重叠)计算每个连续 10 毫秒窗口的功率谱,并将每个连续频谱视为该特定时间语音频率分量的“快照”。通常将连续光谱绘制在 3D 图中,例如光谱图,X 轴为时间,Y 轴为频率,幅度绘制为每个 X、Y 位置的假色或灰度强度。