如何为短时傅里叶变换选择最佳窗口?

时间:2015-04-25 09:10:11

标签: signal-processing fft speech

我想为不同的音频信号选择STFT的最佳窗口。对于频率范围从10 Hz到300 Hz的信号,适当的窗口大小是多少?类似地,对于频率内容为2000 Hz到20000 Hz的信号,最佳窗口大小是多少?

我知道如果窗口大小是10毫秒,那么这将给你一个大约100赫兹的频率分辨率。但如果信号中的频率内容位于100 Hz到20000 HZ之间,那么10 ms将是合适的窗口大小?或者我们应该选择其他窗口大小,因为信号中的频率含量为20000 Hz?

我知道傅立叶变换的经典“不确定性原理”。您可以在时间上具有高分辨率,也可以在频率上具有高分辨率,但不能同时具有高分辨率。窗口长度允许您在两者之间进行权衡。

3 个答案:

答案 0 :(得分:1)

窗口分析是针对准静态信号而设计的。准静态信号是随时间变化的信号,但在很短的时间内它们可能被认为是稳定的。

准静止信号的一个例子是语音。当舌头和嘴巴的位置发生变化时,该信号的频率成分随着时间的推移而变化,但是在短时间内大约0.01s时,它们可能被认为是稳定的,因为舌头不会快速移动。我们的生物学确定0.01s的范围,我们不能比那更快地移动舌头。

另一个例子是音乐。当您触摸琴弦时,您可能会认为它会在短时间内产生或多或少稳定的声音。通常为0.05秒。在此期间,您可能会认为声音稳定。

可能存在其他类型的信号,例如,它可能具有10Ghz的频率并且是1ms的准静态。

窗口分析允许捕获信号的固定属性和信号随时间的变化。在这里,信号具有什么采样率,您需要什么频率分辨率或主要谐波是什么并不重要。主谐波是否接近100Hz或接近3000Hz。重要的是信号在什么时间内是静止的,以及它可以被认为是变化的。

因此,语音25ms窗口很好,因为语音在该范围内是准静态的。对于音乐,你通常需要更长的窗户,因为我们的手指比我们的嘴移动得慢。您需要研究信号以确定最佳窗口长度,或者需要提供有关它的更多信息。

答案 1 :(得分:0)

根据采样定理,采样频率需要大于信号最高频率的两倍。并且基于DFT(离散傅立叶变换),我们还知道频率分辨率是整个信号持续时间的倒数,并且整个频率跨度是时间分辨率的倒数。请注意,频率只是周期的倒数,因此关系彼此相反。

Frequency resolution = 1 / (overall time duration)

Frequency span = 1 / (time resolution)

话虽如此,要处理20kHz音频信号,我们需要在40kHz采样。如果我们想要降低频率分辨率,比如10Hz,我们需要采样整个持续时间长达0.1秒,即1 / 10Hz。

这就是我们通常看到音频文件被称为44k的原因。因为人类听觉范围限制在20kHz。为了增加一些余量,我们使用44k采样频率而不是40kHz。

我认为不确定性原则与一个域中更多的局部信号有关,实际上是在另一个域中扩散。例如,时域中的脉冲从负无穷大变为正无穷大,即整个光谱范围。反之亦然,频谱中的单频信号在时域中从负无穷大延伸到正无穷大。这只是因为我们必须永远地去了解信号是否是纯正弦信号。

但是对于DFT,如果我们采样两倍于信号的最高频率,我们总能得到频率跨度,如果我们对信号持续时间采样足够长,我们想要的分辨率。因此,不确定性原则所说的不那么不确定,只要我们知道要采取多少样本以及采取它们的速度和持续时间。

答案 2 :(得分:0)

您需要指定"最优性"标准。

对于所需的频率分辨率,您需要的长度或窗口大小大致为Fs / df(或者从长度或两倍或更长的长度或更多,具体取决于S / N和窗口)。但是,长度也需要与信号在所需频率分辨率范围内静止的时间长度相似或更短。这可能是不可能的或已知的,因此要求您指定哪个标准(df与dt)对于您期望的最佳性#34;更重要。

如果多个窗口长度符合您的标准,则对于STFT计算序列中的后续FFT,最短长度(即非常小的素数的倍数)可能是计算效率最高的。