我使用一个简单的双二阶 IIR 滤波器:
if (n >= 2)
y[n] = (b0/a0)*x[n] + (b1/a0)*x[n-1] + (b2/a0)*x[n-2]
- (a1/a0)*y[n-1] - (a2/a0)*y[n-2]
else
y[n] = x[n] // here it probably needs to be modified
(感谢http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt)
它工作得很好。
我的问题是过滤后的信号有时会在最初的几毫秒内爆炸,然后在几毫秒后恢复正常。
我应该如何初始化 y[n] 的第一个值?我已经做到了
y[n] = x[n]
对于n=0,1
,但问题可能来自这里?
当我在级联中对同一个过滤器进行 2、3 或更多次通过时,问题(它在第一毫秒内爆炸)很重要。
提前致谢。