操作员“范围检测器”在此框图中做什么?如何建模?

信息处理 声音的 动态范围压缩
2022-02-05 04:40:37

我正在尝试实现一个“压缩器/扩展器/噪声门”来自动控制音频信号的增益。系统框图如下图所示:

压缩器/扩展器/噪声门的框图

我不明白“范围检测器”如何选择适当的输出,因为对于 xRMS(n) 的某些值,扩展器和噪声门的输出均非零。

1个回答

根据您的框图取自 [Udo Zölzer - Digitale Audiosignalverarbeitung] 的来源,范围检测器是一个仲裁器,其决定不是基于三个节点的输出,而是基于静态特性的操作区域你计算的xRMS(n)发现于: 静态特性 所以,如果xRMS(n)在下面NT,范围检测器选择较低的节点,如果它在上面CT,它选择上层节点...

正如您已经注意到的那样,该框图在实现方面确实存在一些缺点:

  • 它没有考虑边缘情况,例如|ET|>|CT|
  • 处理 RMS 值的操作区域多于分支。即使在您的 RMS 值高于扩展阈值但低于压缩阈值的情况下,您也需要执行一组对数、乘法、比较、加法和指数运算。但是计算是否会在计算上更有效22ET<xRMS(n)<22CT评估为真,如果是,您可以设置f(n)=1立即无需计算log2(xRMS(n))等等。
  • 最低的分支实际上不是噪声门,而是另一个具有(可能)更陡峭斜率的扩展器。Zoelzer 将斜率定义为S=11R而噪声门的比率定义为R=0. 如您所见,斜率将因此计算为NS=inf整个下分支的计算变得毫无意义。的情况下直接设置为会更有效,并为自己节省一些无意义的计算。f(n)0xRMS<22NT

事实上,Zoelzer 似乎同意最后一点,并在 DAFX 书中提供了一个略有不同的框图: 在此处输入图像描述

画质不佳请见谅。我强烈建议你也买这本书。它是对数字音频信号处理的一个很好的补充,并为大多数主题提供了 Matlab 演示代码,包括动态处理。