我正在使用数字软件对模拟滤波器进行建模,并将模型简化为具有传递函数的离散空间中的四阶 FIR 滤波器
它恰好是不稳定的,但我注意到大多数模拟“音乐”LP滤波器在这个高共振领域时会非线性失真,而不是爆炸到无穷大(当然)。是否可以通过在 IIR 框图中添加非线性元素来模拟这一点?
剪裁与在输出信号中创建一个周期性的 [-1, -1, 1, 1, ...] ,那么还有其他方法可以防止数值爆炸吗?
我正在使用数字软件对模拟滤波器进行建模,并将模型简化为具有传递函数的离散空间中的四阶 FIR 滤波器
它恰好是不稳定的,但我注意到大多数模拟“音乐”LP滤波器在这个高共振领域时会非线性失真,而不是爆炸到无穷大(当然)。是否可以通过在 IIR 框图中添加非线性元素来模拟这一点?
剪裁与在输出信号中创建一个周期性的 [-1, -1, 1, 1, ...] ,那么还有其他方法可以防止数值爆炸吗?
您将无法避免线性模型的不稳定性。使用您当前的离散模型,滤波器将在某个共振设置下爆炸。使用更好的滤波器拓扑或更高的精度将使您走得更远,但它会爆炸。
防止这种情况需要反馈路径中的饱和非线性。该路径隐藏在您的实现中。要访问它,您需要返回到没有反馈的 4 截面模型,并在添加反馈路径时添加非线性。但是,您将无法将滤波器简化为四阶线性滤波器。
然后,您可以选择将具有非线性的反馈路径延迟一个样本,并将其反馈回 4 节模型输入。这将对高频和高共振的预期滤波器行为产生重大偏差。你可以在一定程度上弥补这一点,但做对是乏味的。请参阅Antti Huovilainen 的论文了解类似的方法。
另一种选择是对每个样本使用迭代方法求解隐式反馈方程。这是可行的,但需要更多的计算工作和一些数值方法的经验来保证收敛性和稳定性。
如果你走后一条路,你不妨选择一个合适的非线性滤波器模型,因为这需要非常相似的方法来解决。