传统FIR/IIR滤波器,其系数固定不变。依赖于预先已知的信号特性(如频率响应、噪声分布),其系数一经确定便不再改变。在FPGA实现这类滤波器,通常采样固定系数方式。
自适应滤波器,可以根据输入信号的统计特性自动调整自身参数,从而在未知环境或时变场景中实现最优信号处理。通常在噪声消除、系统辨识、信号预测等众多领域使用。其中LMS(Least Mean Squares,最小均方)算法,属于自适应滤波器的算法。
自适应滤波器是数字信号处理领域中一类能够根据输入信号自动调整性能的数字滤波器。与具有静态滤波器系数的非自适应滤波器不同,自适应滤波器通过反馈机制实时调整滤波器系数及频率响应,以应对信号特性的时变性。
自适应滤波器的系数会根据输入信号的特征实时更新,以最小化某种性能准则(如均方误差)。适用于以下场景:
- 未知噪声特性的信号处理(如环境噪声消除);时变系统的建模(如通信信道的自适应均衡);预测问题(如股票价格或气象数据的短期预测)。
一、自适应滤波器的核心
自适应滤波器,通过反馈机制,将输出误差作为输入反馈信号,实时调整滤波器系数,使输出逐渐逼近期望目标。例如,当面对未知噪声源或时变信道时,自适应滤波器能通过不断试错优化自身性能。
自适应滤波器的核心流程可概括为:输入信号→滤波处理→误差计算→参数更新。从结构上看,自适应滤波器通常包含三个模块:
- 可变滤波器(Variable Filter):主要是负责对输入信号进行加权求和,其系数是动态调整的对象,具有时变系数 wn,用于估计期望信号;
- 误差计算模块:通过比较估计信号d^(n)与期望信号d(n)得到误差e(n),得到误差信号;
- 权值控制模块(Update Algorithm):根据误差信号更新滤波器系数,生成系数校正因子 Δwn,形成闭环反馈。这种闭环结构,使得自适应滤波器能够接收反馈变化,并主动调整以适应新的输入。
二、自适应滤波器数学模型
输入信号模型
输入信号是期望信号与干扰噪声之和: x(n)=d(n)+v(n)
有限脉冲响应结构
可变滤波器采用FIR结构,p 阶滤波器的系数向量为: wn=[wn(0),wn(1),wn(2),...,wn(p)]T T表示矩阵的转置
误差信号定义
误差信号(代价函数)是期望信号与估计信号之差: e(n)=d(n)−d^(n)
卷积估计
可变滤波器通过将输入信号与脉冲响应作卷积来估计期望信号: d^(n)=wn∗x(n) 其中输入信号向量为: x(n)=[x(n),x(n−1),...,x(n−p)]T
系数更新机制
自适应滤波器每次迭代都会更新滤波器系数: wn+1=wn+Δwn 其中Δwn是滤波器系数的校正因子,由自适应算法根据输入信号与误差信号生成。
三、LMS算法框图
输入信号处理
输入𝑢(𝑛)经过一系列延迟单元(𝑧−1),生成历史输入样本u(n−1),u(n−2),...,u(n−M+1),构成输入向量x(n)=[u(n),u(n−1),...,u(n−M+1)]T;
加权求和
每个延迟输入与对应的权重系数W0(n),W1(n),...,WM−1(n) 相乘,通过求和模块得到滤波器输出d^(n);
误差计算
将d^(n) 与期望信号d(n) 比较,得到误差e(n)=d(n)−d^(n);
权值更新
误差信号e(n) 与输入向量x(n) 共同作用于“权值控制模块”,根据LMS算法的更新规则调整权重系数,形成闭环反馈。
误差越小,权重调整的幅度越小;误差越大,调整幅度越大,直至误差趋近于零。
294