删除频率及其所有倍数(谐波)

信息处理 过滤器 声音的 频谱 频率 均衡
2022-02-11 12:19:10

在声音文件中,我想删除一个频率及其所有谐波您认为最好的解决方案是什么?

  1. 一个接一个地用 20 个陷波滤波器循环。

    // f 是基频
    对于 (i=0; i++; i<21)
    {
    file.notchfilter(f*i);
    }
    
    问题:每个陷波滤波器是否会产生一些不需要的副作用,而我们一个接一个地使用 20 个滤波器这一事实会产生非常高的不需要的伪影?

  2. 是否有可能设计一个滤波器,一步去除 20 个频率?那么我们就不需要循环了,只需要一次就可以了?它被称为梳状过滤器吗?

  3. 其他方法?

1个回答

算法的选择取决于您的应用场景——即本身没有最佳解决方案。如果您的重点是最低计算要求,那么梳状滤波器可能是最佳选择。如果您想要最佳音质,基于陷波滤波器的方法可能是更好的选择。

为了了解不同方法的优缺点,也许我们的文章很有趣。我们比较了

  • 梳状滤波器
  • 子带梳状滤波器(仅处理低通频率)和
  • 陷波滤波器

在干扰减少能力和所需信号的降级方面。

回答您的问题

  1. 是的,每个陷波滤波器都会产生不需要的副作用。一方面,您会听到可听到的振铃伪影——对于窄带宽尤其明显。另一方面,较高的带宽受声音振铃的影响较小,但会导致所需信号的劣化增加。

  2. 梳状滤波器通过放置覆盖整个频率范围的陷波,一步去除均匀间隔的谐波。因此,当凹口达到奈奎斯特频率时,您无法控制它们有多少颗牙齿。如果您想控制受影响的频率范围,您可以将频率范围分成高频段和低频段,使用梳状滤波器仅处理一个频段并将两个频段加在一起。

  3. 除了提到的子带梳状滤波器,我不知道。