论文无忧 | 论文发表 | 手机版 | 二维码

《信息通信》杂志
本刊往期
您当前的位置:首页 杂志文章 LMS自适应滤波器的仿真与实现
LMS自适应滤波器的仿真与实现_杂志文章
LMS自适应滤波器的仿真与实现
发布时间:2018-04-20浏览次数:193返回列表

■蒙俊甫 侯祥博 /成都理工大学信息工程学院(成都·610059)

摘要:本文概述了LMS算法和LMS滤波器的的基本原理,利用MATLAB和DspBuilder立算法模型,完成LMS自适应滤波器的仿真与设计,有效地提高了FPGA的设计效率,降低了设计人员对硬件的要求。

关键词:LMS算法自适应滤波器MATLAB

中图分类号:TN915

文献标识码:A

文章编号:1673-1131(2010)01-031-02

一、引言

自适应滤波器在系统识别、信号处理和数字通信等许多领域中被广泛应用,一直是学术界的重要研究课题。随着超大规模集成(VLSI)电路和FPGA-飞速发展促进了自适应滤波技术的进步。由于具有对干扰频率不敏感,且其权值调整是基于对系统参数的优化等特点,而越来越多地受到人们的关注。

1.LMS自适应滤波器

1.1.LMS算法

最小均方误差[1]11(LMS)算法是由Wid row和Hoff提出的,具有计算量小、易于实现等优点在实践中广泛应用。LMS算法的基本思想:调整滤波器自身的参数,使滤波器的输出信号与期望输出信号之间的均方误差最小,系统输出为有用信号的最佳估计。实质上LMS可以看成是一种随机梯度或者随机逼近算法,可以写成如下的基本迭代方程:

其中μ为步长因子,控制稳定性和收敛速度的参量。从上式可以看出其结构简单、计算量小且稳定性好等优点,但固定步长的LMS算法在收敛速度、跟踪速率及权失调噪声之间的要求是相互矛盾的,为了克服其缺点,人们提出了各种变步长的LMS改进算法,主要是采用减小均方误差或者以某种规则基于时变步长因子跟踪信号的时变,其中有归一化LMS算法(NLMS).梯度自适应步长算法、自动增益控制自适应算法、符号一误差LMS算法、符号一数据LMS算法,数据复用LMS算法等。

1.2自适应滤波器结构原理概述

自适应滤波是在部分信号特征未知的条件下,根据某种最佳准则,从由已知的部分信号特征决定的初始条件出发,按某种自适应算法进行递推,在完成一定次数的递推之后,以统计逼近的方式收敛于最佳解。当输入信号的统计特性未知,或者输入信号的统计特性变化时,自适应滤波器能够自动地迭代调节自身的滤波器参数,以满足某种准则的要求,从而实现最优滤波。因此,自适应滤波器具有自我调节和跟踪能力。在非平稳环境中,自适应滤波在一定程度上还可以跟踪信号的变化[2]。图1为自适应滤波器原理框图。

二、LMS滤波器仿真与实现

2.1 LMS算法参数分析

传统的LMS算法是最先由统计分析法导出的一种实用算法.它是自适应滤波器的基础。通过Matlab仿真对LMS算法中各参数的研究,总结出其对算法的影响。针对时域LMS算法各参数做如下讨论:

(1)步长。步长μ是表征迭代快慢的物理量。由LMS算法可知 越大,自适应时间μ越小,自适应过程越快,但它引起的失调也越大,当大于1/入max时,系统发散:越小,系统越稳定,失调越小,但自适应过程也相应加长。因此,步长μ的选择应从整个系统要求出发,在满足精度要求的前提下,尽量减少自适应时间。

(2)级数。自适应滤波器的级数应与噪声通道的传递函数F(z)的阶数一致,只有在二者相等时.自适应滤波器传递函数才有可能等于F(z),实现噪声抵消。而当级数小于F(z)的阶数时,参考通道的噪声无法与输入通道的噪声抵消.引起最小均方差增大:当级数大于F(z)的阶数时,过多的级数引起失调的增大。因此.只有当滤波器的级数等于F(z)的阶数时,自适应滤波器的性能才达到最佳。

(3)信噪比。当信噪比升高时.LMS算法性能将急剧恶化。这可由频域LMS算法来克服时域LMS算法的性能局限[3]。

2.2.DSP Builder建模

采用Altera公司的FPGA器件进行数字信号处理设计,该公司提供了可视化的开发工具软件DSP Builder。在MATLAB的图形仿真环境Simulink中建立一个*mdl模型文件,在DSP Builder和其他Simulink库中找到相应的图形模块调入Simulink窗口。如图2为阶LMS滤波器模型界面.利用其强大的图形化仿真、分析功能,分析系统的正确性。

图中以shuru.mat为输入信源,qiwang.mat为期望,信宿为Scope。除图中这些模块外,还有一些总线控制模块和权系数控制模块.运行模型观察显示结果,如图3所示。在这种FIR滤波器的LMS算法中,误差随着权的逼近逐渐减小,但没有等于零,而是在零值上下起伏,正说明了LMS算法是用平方误差代替均方误差而造成的误差缺点。

三、FPGA实现

模型通过以后.运行SigalCompiler将模型转化成VHDL语言和Tcl脚本。由于在Simuilnk中进行的模型仿真是算法级的,是属于系统验证性质的仿真.并没有对VHDL代码进行仿真,而生成的VHDL代码是RTL级的,是针对具体的硬件结构的,因而转化后的VHDL代码实现就可能与*mdl模型描述的情况不符,因此有必要对生成的RTL级VHDL代码进行功能验证。

利用ALTERA公司提供的ModeISim平台。ModelSim是使用最广泛的基于单内核的VcrilogH DL/VH DL混合仿真器,可方便地将信号波形显示为类似模拟信号的格式,特别适合显示复杂信号的波形,这给仿真调试带来了极大的方便。在Quartus lI调用上述文件,并用ModelSim对生成的VHDL代码进行功能级仿真。转化成功后再调用VHDL综合器进行综合生成底层网表文件。然后调用Quartus lI进行编译,Quartus lI根据网表文件及设置的优化约束条件进行布线布局和优化设计的适配,最后生成编程文件和仿真文件。生成的POF/SOF FPGA配置文件用于对目标器件的编程配置和硬件实现

四、结语

本文采用自上而下的设计思想,用FPGA实现了自适应滤波器。利用MATLAB和Quarters lI混合仿真实现LMS算法的设计方案。结果表明,自适应滤波器具有良好的消燥能力。

参考文献

[l] Simon Haykin.白适应滤波器原理[M].郑宝玉,等译。4版,北京:电子工业出版社,2003: 183-267.

[2]陈艳,朱勇,易克初,一种改进的自适应滤波器的原理与FPGA实现[J].电子工程帅,2004-7.

[3]贺宽,黄涛,基于Matlab的自适应滤波器设计[J],武汉理工大学学报,2008-2.

[4]陈桂明等,应用MATLAB建模与仿真[M].北京:科学出版社,2001.

作者简介

蒙俊甫(1984-),男,硕士研究生,主要研究方向为通信与信息系统;

侯祥博(1985 -),男,硕士研究生,主要研究方向为信号与信息处理。

您对《LMS自适应滤波器的仿真与实现》一文的评论