标题 | 基于GUI的自适应滤波器仿真平台设计 |
范文 | 王丽 摘要:自适应滤波器在数字信号处理中应用广泛。利用GUI设计了基于LMS算法的自适应滤波器仿真平台。该平台对抽象的自适应滤波仿真进行简明直观的动态展示,经过测试,性能良好可靠。滤波器设置参数改变方便,便于工程技术人员开发,在现代信号处理领域有一定的使用价值。 关键词:自适应滤波器;LMS算法;MATLAB/GUI;迭代步长 DOIDOI:10.11907/rjdk.151451 中图分类号:TP319 文献标识码:A 文章编号文章编号:16727800(2015)008016803 0 引言 自适应滤波是为适应信号和噪声在未知情况下的不确定变化特性,根据前期获得的参数,灵活调节目前的滤波器参数和指标,以获得更好的滤波效果。自适应滤波器主要应用领域有回声消除、系统辨识、通信系统中的自适应均衡、自适应波束的形成及消除心电图中的电源干扰等[1]。在这些领域实际应用中,信号和噪声的统计特性无法预知,且随时间不断变化。通过灵活调节滤波器参数,可以更好地优化滤波效果,克服固定参数滤波器的缺点和不足[2]。 本文采用Matlab中的GUI工具,设计了基于LMS算法的自适应滤波器仿真平台。通过与传统的维纳滤波器对比,滤波效果明显提高,使用者实时调节参数更方便。 1 自适应滤波器原理 闭环的自适应滤波器一般分为两大部分:可编程滤波器和自适应算法,如图1所示。可编程滤波器参数是可以变化的,通过自动调节参数能逐步估计出滤波器输入信号和噪声的统计特性,并可根据估计的统计特性进行参数调节,达到更好的滤波效果和输入信号波形[3]。如图1所示,滤波器在某一时刻的输入信号为x(n),通过可编程的数字滤波器后,在同一时刻的输出信号为y(n),d(n)为期望的滤波输出信号,e(n)为由于y(n)与d(n)的不同而导致的误差信号 。闭环的自适应滤波器通过将滤波器输出的误差信号e(n)作为反馈,利用不同的自适应算法,对滤波器参数进行适当调整,最终使得e(n)的均方值最小。 图1 闭环自适应滤波器组成原理 2 LMS算法的自适应滤波器仿真 在自适应滤波器设计过程中,自适应滤波算法是最重要的组成部分,LMS算法是基于最小均方误差准则的自适应滤波算法,具有计算简单、性能稳定、应用方便等优点。LMS算法需要的参数为输入信号x(n)、期望输出信号d(n)、滤波器的权值向量w(n)、迭代步长L和误差信号e(n),它们之间满足下面的表达式[4]: y(n)=w(n-1)*x(n)(1) e(n)=d(n)-y(n)(2) w(n)=w(n-1)+2*L*e(n)*x(n)(3) 利用LMS算法进行自适应滤波器仿真,初值参数为:滤波器长度100、迭代步长0.002、采样个数1 024;期望信号d=2sin(0.04*pi*t);滤波器的输入信号为期望信号叠加均值为0的高斯白噪声:x=awgn(d,5),5为信噪比,信号波形如图2所示。 将加噪声信号分别通过固定系数维纳滤波器和自适应滤波器,滤波后的输出波形如图3所示。 根据图2对比期望信号与维纳滤波输出信号、LMS滤波输出信号,很容易看出自适应滤波的LMS算法滤波效果明显优于维纳滤波效果。但是LMS算法是在初始化值的基础上逐步调整得到的。因此,在系统稳定前有一个调整时间,此时间受迭代步长L控制,在一定取值范围内, L增大调整时间会减小,但超过此取值范围时系统不再收敛[45]。图4为迭代步长分别为0.001和0.004时的滤波器输出信号和误差信号。 图2 滤波器的输入信号和期望信号 图3 LMS滤波输出信号与Weiner滤波输出信号 3 基于GUI的自适应滤波器仿真平台设计 GUI(Graphical User Interface), 图形用户界面,如很多高级编程语言一样,Matlab 也有图形用户界面开发环境[67]。从M文件或命令行中调取程序,相对比较繁琐。如果要反复使用各种滤波方法,并根据实际滤波器输入信号设定不同的参数,例如采样点数、滤波器长度、LMS算法需要迭代步长等,图形化用户界面是最好的选择之一。 自适应滤波仿真界面用GUI 设计,包括:①仿真界面设计:根据自适应滤波结构和功能对所需要的各个控件进行选择和布局;②对控件的标识 、颜色、字体等属性进行设置;③编写程序代码。其中最关键的是对初始界面函数(OpeningFcn)和控件回调函数(Callback)代码的设计。自适应滤波器仿真平台界面中,控件的回调函数设计步骤见图5。 图4 不同迭代步长下的滤波器输出信号及误差信号 图5 回调函数设计 根据设计步骤,构思草图,在编辑器中布置控件,坐标轴 shuruxinhao 用来显示滤波输入信号波形,qiwangxinhao、shuchuxinhao 和wucha分别用来显示期望信号波形、滤波器输出信号波形和均方误差曲线,相应的参数输入可以通过文本框设置来实现。需要调节的输入参数包括信号采样点数、滤波器长度和LMS算法的迭代步长等。另外设置两个按钮LMS滤波和维纳滤波,分别控制两种滤波算法运行。 读取界面参数,定义滤波输入信号和期望信号编程,求得滤波器的输出信号和均方误差,利用plot函数分别画出滤波输入信号、期望信号、滤波器输出信号和均方误差值图形。 分别设计3个按钮的回调函数代码,在界面中输入参数,依次点击3个按钮,分别得到LMS算法和维纳滤波对应的滤波输入信号、期望信号、滤波器输出信号和均方误差值4个图形。图6所示为点击LMS滤波按钮产生的图形界面。如果滤波效果不好,可以通过调整输入的4个参数来修正滤波结果,并根据均方误差信号波形来判断哪个参数更适合滤波的需要。 图6 自适应滤波器设计运行界面 4 结语 为了构建良好的操作界面,本文利用GUI编程方法,设计了LMS自适应滤波器的仿真平台。在仿真平台界面中通过直接输入和改变参数,快速获取不同参数下的仿真结果并进行比较分析,对抽象的自适应滤波过程进行简单直观的动态展示。自适应滤波仿真平台,利用Matlab强大的运算和图形处理能力,为优化滤波器设计及其合理应用提供了可靠依据,提高了工程技术人员的工作效率。 参考文献: [1] 李宁.LMS自适应滤波算法的收敛性能研究及应用[D].哈尔滨:哈尔滨工程大学,2009. [2] 王鲁彬,翟景春,熊华.自适应滤波算法研究及其Matlab实现[J].现代电子技术, 2008(3):174178. [3] 龚耀寰.自适应滤波—时域自适应滤波和智能天线[M].第2版.北京:电子工业出版社,2003:102104. [4] 张立毅,张雄,李化.信号检测与估计[M].太原:太原理工大学,2003:175176. [5] SCHWARZHACHER T, TIMONEY J.VLSI implementation of an adaptive noise canceller [C]. 3rd Int. Symposium on Communication Systems,2002: 912. [6] 李京秀,陈白生.基于Matlab图形用户界面GUI的电路仿真实验的制作[J].电气电子教学学报, 2004(4):265268. [7] 陈光,毛涛涛. 精通 MATLAB GUI 设计[M]. 北京: 电子工业出版社,2008: 268. (责任编辑:杜能钢) |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。