5

音频的典型 FFT 看起来与此非常相似,大部分动作发生在最左侧

http://www.flight404.com/blog/images/fft.jpg

他将它乘以一个部分正弦波以使其达到底部,但文章对这部分并不太具体。它也似乎是对数据集的“足够好”修改,而不是基于某些属性的修改。我知道人类的听觉更适合更高的频率,因此,大多数音乐都会放大低音和衰减高音,这样我们听起来两者的强度相对相等。

我的问题是需要对 FFT 进行哪些修改以补偿此标准衰减?

for(i = 0; i < fft.length; i++){
     fft[i] = fft[i] * Math.log(i + 1); // does, eh, ok but the high
                                        // end is still not really "loud"
                                        // enough
}

编辑 ::

http://en.wikipedia.org/wiki/Equal-loudness_contour

我偶然发现了这篇文章,我认为这可能是前进的方向,但仍然可能需要抵消 FFT 的某些特性。

4

4 回答 4

3

我认为等响度轮廓正是正确的方向。然而,它的形状取决于绝对压力水平。换句话说,我们的听觉灵敏度曲线会随着声压的变化而变化。

如果您没有关于绝对水平的信息,则没有“正确的标准化”。如果这是一个问题,取决于您要对数据做什么。

响度等值线在 ISO 226 中进行了标准化,但此文档不可免费下载。不过,它应该在一个体面的大学图书馆里。这是响度轮廓的另一个来源

于 2009-05-09T17:51:56.230 回答
3

首先,您确定要这样做吗?补偿某些事情是有意义的,例如麦克风响应不平坦,但不是人类感知。人们习惯于听到声音具有真实世界中声音的频谱内容,而不是沿着感知等响度曲线。如果您以您建议的方式播放您修改过的声音,那听起来会很奇怪。也许有些人喜欢音乐增强低频,但这是品味问题,而不是心理物理学。

或者您可能出于其他原因进行补偿,例如,考虑到对较低频率的较差灵敏度可能会增强压缩算法。这是这个主意吗?

如果您确实想通过等响度曲线进行归一化,则应注意大多数曲线和方程都是根据声压级 (SPL)。SPL 是波形幅度平方的对数,因此当您使用 FFT 时,使用它们的平方(功率谱)可能是最容易的。(或者,当然,您可以通过其他方式进行补偿,例如,在上面的等式中乘以 sqrt(log(i+1)) - 假设对数是反等响度曲线的近似值。)

于 2009-05-10T00:26:38.450 回答
1

所以你想提高高端频率的水平?听起来像具有最小乘数的高通滤波器可能会起作用,这样您就不会过多地衰减低频信号。拿起一本关于过滤器设计的好书,也许可以用这个小程序到处乱逛

于 2009-05-09T05:02:14.833 回答
0

在第一个采样器的旧时代,这是在 MOTU Boost 人之前 :) 它不是 FFT,而是简单(我认为首先是 Fairlight 或 Roland)对原始或生成的时域信号进行归一化(如果您正在进行节拍切片) , 回收式); 你不能那样做吗?还是仅在您进行补偿以抵消它之后才进行 FFT?

否则似乎是一个两阶段程序,我个人会按照任务原样离开 FFT。

于 2009-05-09T17:13:18.393 回答