傅立叶系数在音频信号的 DFT 中的物理意义是什么?如何在频谱图中最好地显示它们?

信息处理 声音的 自由度
2022-02-12 21:01:32

我正在尝试显示输入音频信号的频谱图(这里是所有频谱的新手)。可以假设我的音频信号的幅度在 -1 和 +1 之间进行归一化。

假设 DFT 输出中的频率,对应的系数是,通常是复数。我想将中包含的“幅度”信息显示为频谱图上相应的彩色区域。理想情况下,要绘制频谱,我需要一个介于 0 到 1 之间的数字。0 代表我将记录的最低幅度,1 代表最高。我可以想到几种方法来实现这一点:fcc

  1. 由于,其中是样本数,我可以将的大小相对于 ( ) 归一化,并将结果显示为光谱颜色。|c|NNcNv=|c|/Nv
  2. 与 1 相同,但归一化Wrt 到,所有傅立叶系数的最大幅度。但这样做的缺点是必须扫描整个数据才能显示光谱,并且对于大文件来说将是一个问题。此外,这意味着频谱显示与当前音频信号中存在的强度级别相关,并且在“客观”意义上无效。|c|M
  3. 转换以分贝为单位,例如,其中是基本幅度。从说(其中是我将注册的最低 dB 值)标准化然后我可以使用来显示频谱。但在这种情况下,应该是什么?|c|d=20log10(|c|/b)bdllu=20log10(N/b)db

我的问题:音频信号的 DFT 中傅立叶系数大小的确切物理意义是什么?如何最好地显示它?我已经尝试了上述所有方法,但我想知道哪种方法最合适,或者我是否遗漏了其他方法。

3个回答

这是一个两年前的问题,但我想我会为那些可能会发现它进行搜索的人添加一点。

当您谈论频谱图时,实际上需要考虑两个步骤。首先是从信号转换为 DFT bin 值,第二个是在像素显示器中显示这些 bin 值。

理想情况下,频率增加的纯音的频谱图应该形成一条坚实的、不变的、向上倾斜的曲线。DFT 本质上不是这样工作的。当您处于整个整数频率(以每帧的周期数而言)时,有一个 bin 值,其余的为零。当您处于整数频率之间时,bin 值会分散,这通常称为泄漏。我的建议是在进行 DFT 之前对信号使用 VonHann 窗口。根据您的缩放比例,这相当于从每个 bin 值中减去两个相邻 bin 值的平均值。这具有“收紧”泄漏和“散开”尖峰的效果。与帧长度相比,这使得显示看起来更加一致,与频率值无关,

DFT 中的相位值取决于帧,因此对显示没有太大帮助。相反,您应该专注于根据 bin 的大小进行强度显示。您不限于线性映射或对数映射。无论如何,您都将希望使用查找表来加快处理速度,因此您几乎可以定义一个按您想要的方式工作的单调递增函数。使用时可以使用单色色标,也可以使用变色色标。标准绿色代表低,黄色代表中级,红色代表强烈,很容易理解。

您需要做出的第二个选择是垂直轴刻度。这两个逻辑选择是线性的,这是 DFT 固有的。或对应于音阶的对数。无论哪种情况,您都需要将一个或一组 bin 映射到一个像素或一组像素,具体取决于比例尺该部分的放大率。同样,在实践中,您将为此映射构建查找表。

上述考虑中最合适的选择是那些能够为您提供所需视觉结果的选择。您不会根据显示值进行计算,因此“扭曲”这些值(即非线性映射)以提供更好的视觉效果是没有问题的。

DFT 系数的值实际上具有物理意义。发现这是我理解 DFT 的一个重要时刻。DFT bin 值实际上是一组单位根的加权平均值,其中信号值是权重,它们被“包裹”在单位圆周围。bin 索引是以根为单位的步长,因此也是函数被拉伸并围绕圆缠绕的次数。例如,假设您的信号中有五个凸起。当被拉伸五次并围绕圆圈缠绕五次时,所有的凸起都会对齐并将质心朝那个方向抛出。另一方面,当它被拉伸四倍并缠绕四次时,凸起均匀分布并相互抵消。这就是 DFT “采摘”的方式

我写了一篇博客文章“DFT 图形解释:Unity 加权根的质心”来解释这一点。

篇幅够长,希望对大家有所帮助。

赛德

您关于系数含义的问题是它们表示每个频率的幅度和相位。看看这个文件

有关频谱图的示例,请查看这个

这两份文件都用于研究音频信号。

音频信号 DFT 中傅立叶系数大小的确切物理意义是,假设您被锁定在长度在您的采样周期和您的幅度仅在您对其进行采样时非零时,DFT 系数的幅度将告诉您时间循环中各种频率模式​​具有多少能量。

更简洁地表达:没有这样的物理意义。FFT 算法是有效的算法,当对某些预处理的采样数据应用 DFT 并进行适当的后处理时,您通常寻求的实际信息(根据某些隐藏状态模型而变化的时间本地化频率组)在更接近表面的地方被冲刷掉。

仅当您将 DFT 应用于固定周期性过程(如旋转电机)的同步采样时,物理意义才会增加。对于音频处理,这基本上不是这种情况,因为即使您正在分析静止的声音(如风琴管),通常也不会将采样间隔相位或频率锁定到声音频率的精确倍数:相反,您可以使用独立于信号的恒定采样率。