1. 自适应陷波滤波器基础原理
自适应陷波滤波器(Adaptive Notch Filter)是一种能够自动跟踪并抑制特定频率信号的数字滤波器,在电力电子、音频处理和通信系统中有着广泛应用。其核心思想是通过调整滤波器参数,实现对特定频率成分的有效滤除。
1.1 连续域传递函数分析
典型的二阶自适应陷波滤波器在连续域(s域)的传递函数为:
H(s) = (s² + 2·c2·ωₙ·s + ωₙ²) / (s² + 2·c1·ωₙ·s + ωₙ²)
其中关键参数包括:
- ωₙ:陷波中心频率(rad/s),决定需要抑制的频率位置
- c1:分母阻尼系数,影响陷波带宽和深度
- c2:分子阻尼系数,通常设置为0实现纯陷波效果
这个传递函数在s = jωₙ处会产生一个"凹陷",即在该频率点增益显著降低。两个阻尼系数的比值(c2/c1)决定了陷波的深度,而c1本身决定了陷波的宽度。
1.2 数字实现需求
在数字信号处理器(DSP)上实现时,需要将这个连续域系统转换为离散域(z域)表示。这种转换需要考虑:
- 保持频率响应特性
- 确保数值稳定性
- 适应固定采样率下的计算
关键提示:离散化过程会引入频率扭曲效应,特别是在高频区域,必须采用适当补偿方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 离散化方法与实现
2.1 双线性变换原理
双线性变换(Bilinear Transform)是最常用的离散化方法之一,也称为Tustin方法。它将s域到z域的映射定义为:
s = (2/Ts)·(z - 1)/(z + 1)
其中Ts为采样周期。这种变换具有以下特点:
- 将s左半平面映射到z平面单位圆内,保持稳定性
- 频率响应存在非线性扭曲,需要预扭曲补偿
- 计算相对简单,适合实时系统实现
2.2 频率预扭曲技术
由于双线性变换的频率映射是非线性的:
ω_a = (2/Ts)·tan(ω_d·Ts/2)
其中:
- ω_a为模拟频率
- ω_d为数字频率
对于陷波滤波器,必须在设计频率ωₙ处进行预补偿:
ωₙ_prewarped = 2·Fs·tan(ωₙ·Ts/2)
这就是源代码中wn2的计算依据:
c复制wn2 = 2*Fs*tanf(notch_freq * ((float32_t)3.141592653589
