什么是真正的 Mel-filterbank?

信息处理 过滤器 频率 频谱图 stft 音频处理
2022-02-09 12:14:02

将 STFT 应用于信号后,您通常需要将频率转换为 Mel 标度。通常频率值范围从,其中是每个滑动窗口的宽度。0N/2N

我读过很多关于 Mel Spectrogram 的文章。基本上他们都说通过以下方式将频率转换为 Mel Scale:

  1. 划分赫兹标度(即划分范围从的数字序列)。这样,我们将有许多垃圾箱。例如,这个数字在 librosa 中由“n_mel”表示。这些区间称为频带。0N/2

  2. 将每个 bin 转换为 Mel Scale 。2595log(1+f/700).

  3. 对每个 bin 应用三角滤波器以捕获每个频带的能量并近似频谱形状。

似乎当这被埋没在文章中时,没有人真正知道为什么要进行这些操作。我觉得很难完全理解:

  1. 为什么将赫兹标度分成箱?

  2. 频带究竟是什么意思?

  3. 为什么我们要应用三角过滤器?

  4. 三角滤波器究竟是什么?它是如何在数学上定义的,从什么概念出发?

谁能向我准确解释这些事情或推荐一本详细解释这些步骤的书?似乎没有一本书可以准确地解释这些概念。

3个回答

由于我是 DSP 的新手,我认为这篇文章有一个清晰的解释,我没有尝试自己回答你的问题。但是你说你看过了,觉得这些问题还是模棱两可的,那我想再试一次给我的答案。

首先,关于bin 和 band的概念,当我试图弄清楚傅里叶变换的含义时,它们让我很困惑,尤其是离散傅里叶变换(DFT),这也与你的问题有很大关系。现在我对频率区间的理解是特定的频率值,例如 2000 或 2001.5。一个频段,例如从 1000 到 2000,覆盖了一个频率范围,它由两个频段 1000 和 2000 定义(一个是地板,一个是天花板)。在物理世界中,频率的值可以取任意实数,换句话说,它们是连续的。至于上面的例子,有无限频带 [1000,2000] 中的值或频率区间。然而,当涉及到数字信号处理时,在时域中,我们以采样率获取有限(和整数)个样本,例如每秒 44100 个样本(即 44100Hz)。稍后我们以 FFT 或 STFT 的方式进行离散傅里叶变换 (DFT) 以进入频域。当我们做 STFT 时,我们以 frame 为单位做,并对其应用 hanning window。正如您提到的,窗口的宽度等于帧大小,例如 2048 个样本,而 2048 是您的 N。

至于你的问题:

  1. 并不是我们将频率尺度进一步划分为 bin,自然我们在 FFT 或 STFT 之后得到 N/2 个频率 bin。如果 N = 2048, sampling_rate = 44100,那么我们有 1024 个频率区间 [21.53, 43.07, 64.60, ..., 22028.47, 22050]。我们在时域中的有限和离散采样已经限制了我们得到的频率也是有限和离散的,如 bin。

  2. 如上所述,通常我们过滤(也许可以理解为组合或分组)频率箱以获得频段。

  3. 自然,我们有不止一种方法可以将 bin 分组到波段,我认为三角滤波器只是获得 Mel 频谱图的一种特定 (Mel) 方法。

  4. 关于这个问题,上面的教程肯定比我解释得更好。

关于问题 3,我不确定您在什么级别上询问使用三角滤波器的原因。如果是关于具体技术/算法的选择,我觉得和第4题有关,就留给教程吧。如果说做 Mel 变换的更大原因,那就是人类感觉和感知领域。当我们谈论声源的频率和幅度时,这些都是声音的纯物理特征。音高和响度是它们对应的人类感知特征。关键是我们人类的感知不会随着物理特征的值线性变化。这就是我们有分贝刻度和梅尔刻度的原因,因此我们的感知随着这些刻度中的值线性变化。

我希望这些可以提供一些帮助。

这是我的第一个谷歌点击:https ://medium.com/analytics-vidhya/understanding-the-mel-spectrogram-fca2afa2ce53

它似乎解释了如何以及为什么?

梅尔频率分级仅在涉及人类感知时才使用。无论是直接的,还是对于可能已经适应人类听觉的信号(例如人类语音)。这是一种以模仿“低级听觉感知”的方式表示信号信息的方法,或者可以被视为消除感知上的冗余信息。

我不明白为什么我们通常在狭窄的低频带中具有与在宽高频带中相同的时间分辨率。从历史上看,这可能是由于有限的处理能力和单个 STFT 开窗过程的效率。和/或它可以反映我们的耳朵进行声学-机械滤波后有限的神经元放电率。

但从 dsp 的角度来看,我期望可变的时间/频率分辨率,其中高和宽带获得更多的时间分辨率。

下面的教程有我读过的关于梅尔的最清晰的解释,我认为它可以回答你所有的问题。

梅尔频率倒谱系数(MFCC)教程