基于自适应滤波算法的嵌入式软件研究-李社博士

2023-08-22

0 前言

      自适应滤波理论发展于上个世纪中叶,是现代信号处理技术的重要内容之一,能够在处理复杂信号的相关工作中发挥巨大的作用。在处理特定信号的过程中,特定的自适应滤波器的范畴是随机信号处理,通常使用维纳滤波器、卡尔曼滤波器、自适应滤波器。前两种滤波器在处理噪声和信号时不能达到最优滤波,但自适应滤波器能达到较好效果。


1 自适应滤波器结构

       自适应滤波器有无限冲激响应(IIR)和有限冲激响应(FIR)两种主要类型。滤波器结构的选择对算法有重要影响; IIR结构滤波器的传输函数既有零点又有极点,可以实现低阶的陡通特性,缺点是稳定性差,相位特性难以控制。FIR滤波器是全零点滤波器,稳定且实现了线性相位特性,因此,自适应滤波器的结构通常采用FIR滤波器的横向结构,如图1所示。

图片1.png

                                                   图1 自适应滤波器结构

 

1.png

        式中:n为时间序列; N 是滤波器阶数; XX(n)=[x(n),x(n-1),…,x(n-N+1)]T为输入向量; W(n) = [w0(n), w1(n), …, wN-1(n)] T为权重系数向量。


2  LMS 自适应过滤算法

      LMS自适应滤波算法是根据最小均方误差准则设计的,LMS算法旨在通过调整系数使输出误差序列的均方值最小,并根据此数据修改权重系数。均方值的错误序列表示为:

 

2 3.png

      式中:N为自相关矩阵,表示输入信号的采样值之间的相关矩阵。P=E[d(n) X(n)]为N 1 个互相关矩阵,表示理想信号d(n)与输入信号的相关性信号向量。

      在最大均方误差小时,最优权重系数W*=[w0*,w1*,…,w*N-1]满足下式:

4 5.png

      这是一个线性方程组,如果R矩阵是满秩矩阵,存在R-1,且满足权重系数的最佳值:

                                                W*=R-1P                                                           (6)

     由式(6)可知,求R和P可以得到W*。根据前面的公式,R是X(n)的自相关矩阵,P是d(n)的互相关向量[2]和 X (n)。

      LMS算法是一种采用最速下降法的迭代算法,其中W(n+1)向量是对均方误差性能平面i的复斜率的响应。

   

7 8.png

      公式(7)求解最好的W*方法(7),一种是最陡梯度法。基本思想是:设定初始权重系数W(0),通过式(7)迭代计算公式直到W(n+1)和W(n)的误差小于规定范围。可以用下面的估计值表达式计算:

9.png

     K的取值要足够大。如果用瞬时-2e(n)X(n)代替上面的-2E[e(n)X(n)]估计操作,另一种算法是随机梯度方法,Widrow-Hoff的LMS算法。迭代公式表示为:

 

10.png

3仿真与工程实施

3.1 LMS算法的仿真实现

       假设输入信号由正弦波信号和高斯白噪声组成。正弦波信号的频率为f0=1000Hz,幅度A=2,FIR滤波器的阶数N为128;当白噪声均值为0时,方差为0.64、2、6.32,即信噪比(SNR)分别为5dB、0dB、-5dB,LMS算法滤波结果如图2~4所示。

图片2.png

                                    图 2 在 S N R = 5 dB 时的滤波模拟结果


3.2 LMS 算法的 DSP 实现

      采样数据的点数设置为1024,滤波器的全系数设置为128阶,自适应步长为510。输入信号设为正弦波+噪声信号,周期T=256s,幅值A=200,正弦波信号功率Ps=20000;噪声设置为零均值,方差为2000、6330、20000,对应的信噪比SNR=10dB、5dB、0dB,采用DSP编程的自适应滤波算法如图2、3所示。

图片3.png

                                   图 3 SNR = 0 dB 时的滤波器仿真结果

图片4.png

                                         图4 SNR = -5dB时的滤波器仿真结果

图片5.png

                                 图 5 显示了具有 10dB SNR 的 DSP 滤波

图片6.png

                                                      图6 DSP滤波5dB

       图7的对比分析表明:首先,无论是采用Matlab仿真方法还是DSP方法实现LMS算法,自适应滤波都随着信噪比的增加而降低。其次,当SNR位于0dB以上时,两种方法都可以取得更好的滤波效果。第三,当信噪比位于0dB(或0dB以下)时,仿真方法可以达到很好的滤波效果,但在工程上无法实现,即SNR位于0dB时, LMS算法已经失去了工程应用价值。

图片7.png

                                      图7 用于 SNR 为 0dB 的 DSP 滤波


4 结论

      在研究自适应滤波理论的过程中,从LMS自适应滤波算法的层面,基于DSP对不同信噪比下的LMS算法进行了研究。 LMS算法虽然只能在理论层面实现,但对于自适应滤波理论工程的全面发展仍然具有不可替代的指导意义。