在声音文件中,我想删除一个频率及其所有谐波。您认为最好的解决方案是什么?
一个接一个地用 20 个陷波滤波器循环。
// f 是基频 对于 (i=0; i++; i<21) { file.notchfilter(f*i); }问题:每个陷波滤波器是否会产生一些不需要的副作用,而我们一个接一个地使用 20 个滤波器这一事实会产生非常高的不需要的伪影?是否有可能设计一个滤波器,一步去除 20 个频率?那么我们就不需要循环了,只需要一次就可以了?它被称为梳状过滤器吗?
其他方法?
在声音文件中,我想删除一个频率及其所有谐波。您认为最好的解决方案是什么?
一个接一个地用 20 个陷波滤波器循环。
// f 是基频
对于 (i=0; i++; i<21)
{
file.notchfilter(f*i);
}
问题:每个陷波滤波器是否会产生一些不需要的副作用,而我们一个接一个地使用 20 个滤波器这一事实会产生非常高的不需要的伪影?是否有可能设计一个滤波器,一步去除 20 个频率?那么我们就不需要循环了,只需要一次就可以了?它被称为梳状过滤器吗?
其他方法?
算法的选择取决于您的应用场景——即本身没有最佳解决方案。如果您的重点是最低计算要求,那么梳状滤波器可能是最佳选择。如果您想要最佳音质,基于陷波滤波器的方法可能是更好的选择。
为了了解不同方法的优缺点,也许我们的文章很有趣。我们比较了
在干扰减少能力和所需信号的降级方面。
是的,每个陷波滤波器都会产生不需要的副作用。一方面,您会听到可听到的振铃伪影——对于窄带宽尤其明显。另一方面,较高的带宽受声音振铃的影响较小,但会导致所需信号的劣化增加。
梳状滤波器通过放置覆盖整个频率范围的陷波,一步去除均匀间隔的谐波。因此,当凹口达到奈奎斯特频率时,您无法控制它们有多少颗牙齿。如果您想控制受影响的频率范围,您可以将频率范围分成高频段和低频段,使用梳状滤波器仅处理一个频段并将两个频段加在一起。
除了提到的子带梳状滤波器,我不知道。