如何模拟模拟 VU 表对音频的响应?

信息处理 声音的 模拟
2022-02-24 18:16:04

我想模拟模拟 VU 仪表盘的运动,如下所示,通常在立体声和其他音乐监控设备上找到。

我刚刚通过Rod Elliot (ESP) 和维基百科的这篇文章了解到,VU 表的响应是标准化的,旨在测量音频信号的感知响度。

VU 表被设计为具有相对较慢的响应。它由一个全波平均电路驱动,该电路定义为在 300 毫秒内达到 99% 的满量程偏转,并且过冲不小于 1% 且不大于 1.5%。由于 VU 表针对感知响度进行了优化,因此它不是峰值(瞬态)性能的良好指标。0VU 的标称灵敏度为 1.228V RMS,阻抗为 3.9k。

我正在玩音乐可视化和数据处理,而感知响度的测量正是我所需要的。我也喜欢响应的模拟性质。

我想在 Python 中的算法(用于整个音乐文件)中实现这一点,然后可能在 Processing(批量实时处理)中实现。底层实现可能非常相似。

如何从原始音频数据生成响应以匹配 VU 表的规格?

模拟 VU 表

1个回答

如果您将输入信号作为浮点数向量,请尝试以下代码。它不会表现得像真正的 VU 表,但通过修改两个常数,你应该得到非常相似的东西。以对数刻度可视化 C 的值

// memory element (can be imagined as capacitor)
c = 0
kCharge = 0.1
kDischarge = 0.001

for each sample x:
{
  // rectify the signal
  x1 = abs(x)

  if x1 > c then
  {
    // charge
    c = c * (1-kCharge) + x1*kCharge
  } else
  {
    // discharge
    c = c * (1-kDischarge)
  }
}