谐振滤波器的增益

信息处理 过滤器 声音的 音乐 动态范围压缩 谐振
2022-02-05 00:27:02

我正在尝试基于具有高 Q 的谐振器制作乐器,例如 Ableton 的 Corpus 和 Ableton 的谐振器(我认为前者基于简单的二阶谐振滤波器,而后者基于反馈梳)。

我可以毫无困难地在 Matlab 中制作滤波器,但我的问题在于它们的增益和输出范围。

事实上,为了避免声音信号的溢出/饱和,我需要一个输出总是限制在 [-1 ; 1]范围。此外,这些谐振器应该适用于处理任何类型的输入:打击声音的非常小的瞬变以及连续噪声或振荡器。

根据 JOS 的STK 示例,我已将我的双二阶和梳状谐振器归一化,使其在谐振处具有独立于 Q 因子或谐振频率的单位增益,以防止在所有情况下发生溢出。但显然,根据我的过滤器的输入长度,输出范围变化很​​大(即使输入的范围是 [-1 ; 1])。根据 Q 因子,也有很大的变化。

我想我理解其中的原因:如果我们以白噪声为例,功率分布在整个频谱上,所以如果你将谐振增益归一化,使其保持在 0dB 并用高 Q 过滤噪声,你'将大大降低信号的功率。

如果您修复了谐振但改变了输入信号,那么考虑到滤波器的递归性质,输入的长度将改变输出的范围也是有意义的。

所以我的问题是:无论过滤器的 Q 和输入的长度如何,是否有一些技巧可以将过滤器归一化,使其输出与输入的范围几乎相同(或至少是一个相当恒定的范围)?如果没有,Ableton 和其他插件设计者是如何做到的?

编辑:我想到的一种解决方案是最大化平均输入类型的 SNR,然后在滤波器的输入端提供增益控制和/或在输出端提供限制器。有没有更好的方法来实现我想要的?

EDIT2:仍然没有答案,我真的很想得到一些帮助......欢迎任何评论!我已经尝试在 Matlab 上找到一种方法来预测输出范围,具体取决于

  • 过滤器参数
  • 它的频率响应
  • 输入的 RMS
  • 输入幅度

但我还没有找到它......如果有人有提示或指针,我将非常感激!

EDIT3:通过计算2极点滤波器的过冲(即阶跃响应的最大值),我可以猜测输出的最大范围,这已经是一个开始但是滤波器过冲的解析解非常重,并且它无助于找到与输入的长度/功率的关系,不是吗?

EDIT4:在更深入地分析了 Ableton 的语料库之后,似乎并没有做太多事情......这里是 Corpus 对某些输入的响应的一些捕获(设置为:type=beam medium,tune=324.91,decay=5.0s,Dry/Wet=100其余的都在0) : 冲动反应^脉冲响应,-30dB

正弦扫描^正弦扫描,-30dB

噪音^噪音,-30dB

但是例如,如果我输入 0dB 的脉冲,我会清楚地听到声音,如果我输入 0dB 峰值的白噪声,我也会听到完美的共振而没有失真(这里是声音)使用我的谐振器 -无论是从 EQ 食谱还是从 JOS 的恒定增益谐振器,我都有一个非常安静的脉冲输出和正常的噪音......

0个回答
没有发现任何回复~