将一系列分贝值压缩为一个“代表”值

信息处理 fft 声音的 频谱图
2022-02-21 22:53:41

没有任何正式的 dsp 经验 - 大学二年级。

致力于构建用于音频 FFT 数据的心理声学分析的 25 波段树皮谱图。为此,我将所有 FFT 频率区间分组到它们相关的树皮频带中,然后对每个频带中的 db 值进行平均(将它们相加并除以总数)以获得每个频带的代表值。

这是将一堆 db 值表示为单个值的正确方法吗?

1个回答

Jason R 在评论中提供的答案——

“dB 值”实际上只是以对数刻度表示值的一种方式。对数刻度上的算术平均值相当于对原始值进行几何平均(线性刻度)。这可能不是你想要的。您可能想要测量每个频段的总功率,只需将每个频段的功率谱箱求和即可。您可以除以箱的数量,但如果条带不等宽,则会给结果增加一些偏差。

在识别问题方面做得很好,但我不确定这是一个正确的解决方案(或者我可能只是读错了)。如果要进行求和,它应该出现在 bin 的原始幅度上(在转换为 dB 之前)。

问题是这个

3dB + 3dB != 6dB

在分贝尺度上进行求和比简单地将值相加更复杂。可以这样做,但如果是这样,您应该对 dB 标度和增加相对功率的性质进行一些阅读。当仍在线性域中时进行加法是最简单的。