双二阶(Biquad)峰值滤波器实现出现稳定性问题求助
转置直接II型Biquad峰值滤波器实现稳定性问题
我正尝试采用**Direct 2 Transposed(转置直接II型)**结构实现音频范围内的Biquad峰值滤波器,已确认a、b参数与EarLevel Engineering Biquad Calculator v3生成的一致。以下是处理差分方程的代码(忽略FType 1和3):
function TFrmFilters.Filter(SignalIn: double; FType: integer): double; begin case FType of 1: // AllPass (no filter) Result := SignalIn; 2: // Biquad Peak begin Yn := SignalIn + S1n_1; S1n := S2n_1 + b1 * SignalIn - a1 * Yn; S2n := b2 * SignalIn - a2 * Yn; S1n_1 := S1n; S2n_1 := S2n; Result := Yn; end; 3: // Resonator (not implemented) Result := SignalIn; end; end;
输入信号为440Hz正弦波,计算采用Double数据类型。该滤波器在增益、Q值及输入信号频率的宽范围内均表现出不稳定性,推测差分方程处理存在问题。
内容的提问来源于stack exchange,提问作者Jon G.
相关产品推荐
相关产品推荐

