归一化音频波形代码实现(峰值、RMS)

Normalizing audio waveforms code implementation (Peak, RMS)

您可以转置它(有效地使 y 轴非线性,或者您可以将其视为 companding 的一种形式)。

假设信号在[-1, 1]范围内。

一种流行的快速简单的解决方案是简单地应用 hyperbolic tangens function (tanh)。这将通过更多地惩罚更高的值来将值限制为 [-1, 1]。如果在应用 tanh 之前放大信号,效果会更明显。

另一种选择是对数变换。随着信号改变符号,必须执行一些预处理。

如果 r 是一系列样本值,一种方法可能是这样的:

r.log1p <- log2(1.1 * (abs(r) + 1)) * sign(r)

也就是说,对于每个取其绝对值的值,加一,乘以某个小常数,取对数,最后将其与其对应的旧值的符号相乘。

效果可以是这样的: