基于SystemGenerator的自适应滤波器仿真与实现
2021-11-25
来源:乌哈旅游
开发应用基于SystemGenerator的自适应滤波器仿真与实现周志平(洛阳理工学院,河南洛阳471000)摘要:自适应滤波器是一种能够自动调整本身参数的滤波器,在设计时不需要预先知道关于输入信号和噪声的统计特性。通过改变系统的单位冲击响应,达到最优滤波效果。本文采用Matlab和SystemGenerator对LMS算法的自适应滤波器进行设计和仿真,结果表明其可以对信号噪声的自适应滤除。关键词:自适应滤波器;LMSSystemGeneratorDOI:10.3969/j.issn.1671-6396.2011.20.015TheSimulationandImplementationofAdaptiveFilterBasedonSystemGeneratorZHOUZhi-ping(LuoyangInstituteofTechnology,Luoyang,Henan471000)Abstract:Adaptivefilterisfeaturedbyitsautomaticparameteradjustment.Theinputsignalandnoisestatisticscharacteristicisnotneededwhendesigningthefilter.Optimumfilterisachievedbychangingthepulseresponseofthefilter.ThisarticledesignedandsimulatedaLMSadaptivefilterusingMatlabandSystemGenerator.Theresultsshoweditsadaptivenoisefilteringoutfrominputsignal.Keywords:Adaptivefilter;LMSSystemGenerator引言自适应滤波器是一种能够根据输入信号进行数字信号处理并自动调整响应的数字滤波器。相对应的,非自适应滤波器有静态的滤波器系数,因而具有静态的传递函数。对于有些应用,由于事先并不知道所需要进行操作的信号特性,例如一些噪声信号的特性,所以要求系统能自适应的进行处理。在这种情况下,通常使用自适应滤波器,自适应滤波器使用反馈来调整滤波器系数以及频率响应。2LMS自适应滤波器2.1LMS算法最小均方误差(LMS)算法是一种以期望响应和滤波器输出信号之间误差的均方值最小准则的滤波器,依据输入信号在迭代过程中估计梯度矢量,并更新权系数以达到最优的自适应迭代算法。LMS算法是随机梯度算法族中的一员。该算法在随机输入维纳滤波器递归计算中使用确定性梯度。LMS算法的一个显著特点是它的简单性,由于它不需要计算有关的相关函数,也不需要矩阵求逆运算,其简单性令它在实践中被广泛采用。2.2LMS算法的基本过程LMS算法包含2个基本过程[2]。2.2.1滤波过程首先计算滤波器输出对输入信号的响应,然后通过比较输出结果与期望相应产生估计误差。2.2.2自适应过程根据估计误差自动调整滤波器参数。最小均方误差收稿日期:2011-05-11修回日期:2011-05-31[1]1(LMS)算法的迭代公式如下:(1)滤波输出:(2)估计误差:(3)抽头的自适应:——(式1)——(式2)——(式3)其中为自适应滤波器的收敛因子,为抽头向量的当前估计值,代表了抽头权向量的当前估计的调整量。初始收敛速度、时变系统跟踪能力及稳态性能是衡量自适应滤波算法优劣的3个最重要的技术指标。图1自适应滤波原理3LMS自适应滤波器结构原理自适应滤波是在部分信号特征未知的条件下,根据某种最佳准则,从已知的部分信号特征所决定的初始条件出发,按某种自适应算法进行递推,在完成一定次数的递推之后,以统计逼近的方式收敛于最佳解。当输入信号的统计特性未知,或者输入信号的统计特性变化时。自适应滤波器能够自动地迭代调节自身的滤波器参数,以满足某种[3]作者简介:周志平(1972-),男,湖南嘉禾籍,学士,助教,研究方向为多媒体信息技术。33中国西部科技2011年07月(中旬)第10卷第20期总第253期图形化仿真和分析功能,可以验证系统的正确性。除图中这些模块外,还有一些总线控制模块和权系数控制模块。其运行模型观察的显示结果如图4所示。在这种FIR滤波器的LMS算法中,其误差将随着权的逼近逐渐减小,但没有等于零,而是在零值上下起伏,这说明LMS算法是用平方误差代替均方误差而造成的误差缺点[8]。[4]准则的要求,从而实现最优滤波。因此,自适应滤波器具有自我调节和跟踪的能力。在非平稳环境中,自适应滤波在一定程度上也可以跟踪信号的变化。图1为自适应滤波的原理框图。4LMS滤波器的仿真与实现4.1LMS算法参数分析传统的LMS算法是最先由统计分析法导出的一种实用算法,它是自适应滤波器的基础。通过Matlab仿真对LMS算法中各参数的研究,总结出其对算法的影响。4.2Matlab算法仿真根据以上所述,可以进行LMS滤波器的算法仿真,以验证算法的正确性与可行性,为后期的仿真模型打下基础。其核心代码如下所示:samples_per_period=40;N=10*samples_per_period-1;signal=sin(2*pi*0.02*[0:N-1]);nvar=0.5;noise=nvar*randn(1,N);X=signal+noise;输入信号delayX=[0X];SIGNAL=[signal0];[5][6]%周期采样频率%总采样次数%初始输入信号%噪声方差%噪声信号%带加性噪声的%输入信号延时(a)滤波器输入信号与噪声(b)滤波器输入输出对比图2Matlab算法仿真M=32;%滤波器长度mu=0.035;%迭代步长initial_status=initlms(zeros(1,M),mu);%滤波器设初值[Y,e,initial_status]=adaptlms(X,SIGNAL,Initial_status);%LMS自适应滤波器输出从图2可以看出,经过LMS滤波器,叠加在原有信号上的噪声得到滤除,并较好的还原了实际信号。4.3SystemGenerator建模本文采用Xilinx公司的FPGA器件进行数字信号处理模型的设计。其提供的可视化开发工具软件SystemGenerator可在[7]MATIAB仿真环境Simulink中建立系统模型。图3所示为(a)滤波器抽头图4(b)滤波器响应SystemGenerator仿真结果4.4滤波器的FPGA实现方法模型验证以后,运行SystemGenerator可将模型转化成Verilog语言和脚本文件。由于在Simuilnk中进行的模型仿真是算法级的,属于系统验证性质的仿真,并没有对Verilog代码进行仿真。而生成的Verilog代码是RTL级是针对具体的硬件结构的,因此,转化后的Verilog代码实现就可能与*mdl模型描述的情况不符,故有必要再对生成的RTL级Verilog代码进行功能验证。Xilinx公司的ModelSim平台是使用最广泛的VerilogHDL/VHDL混合仿真器,利用它可方便地将信号波形显示为类似模拟信号的格[9]LMS滤波器顶层系统模型和自适应滤波模块。利用其强大的(a)顶层系统模型图3SystemGenerator仿真模型(b)自适应滤波模块(下转第38页)34中国西部科技2011年07月(中旬)第10卷第20期总第253期的。即隧道中心线附近的能见度较高,而隧道墙壁两侧的能见度较低。能见度与火灾时产生的碳烟粒子浓度成反比,即隧道中心线附近的碳烟粒子浓度较低,而隧道侧壁处的碳烟浓度较高。仅从能见度的角度来考虑,隧道发生火灾时逃生人员应该沿着隧道中心线疏散。且隧道内火源下游50m以外位于中心线上的能见度在10m以上时,可以满足司乘人员的逃生和消防救援人员对能见度的要求。这也说明了4m/s的纵向通风速度可以把大量的烟气带走。5结论本文针对公路隧道内发生中型火灾时,探讨了隧道火发生火灾时,一般人认为沿着隧道两侧进行疏散较安全,因为人行横洞口和车行横洞口都在侧壁)相违背。另外,4m/s的纵向通风速度可以满足司乘人员逃生和消防救援人员对CO浓度的要求。4.4能见度分布图11给出了中型火灾规模下离火源不同距离的能见度横向分布图,图12为隧道中心线上能见度的纵向分布图。灾时的烟气蔓延、CO浓度、能见度的发展规律,并根据模拟的结果进行了隧道火灾时人员的疏散研究,主要得出了以下结论:(1)分析得出了在隧道发生中型火灾规模时,4m/s才是合适的纵向通风风速,它可以抑制隧道内火灾烟雾及温度发生回流现象,也可以保证火源上游人员逃生时的安全图11火灾能见度横向分布图和消防救援人员的安全。(2)在通风模式下,火源上游附近的温度较低、CO浓度较低、能见度较高,属于相对安全地段;而火源下游的CO能度在隧道中心线处比隧道侧壁处的低,能见度在隧道中心线处比隧道侧壁处的高。所以对于单向行车的隧道,火灾通风时,建议司乘人员应该向上游疏散,当向火源下游逃生时,应该沿着隧道中心线进行疏散。参考文献:[1]夏永旭.现代公路隧道的发展概述[J].交通建设与管理,2006(12):66~68.[2]赵忠杰.公路隧道火灾探测方法研究[D].西安:长安大学硕士学位论文,2007.[3]刘鹏举等.隧道火灾研究现状与发展[J].中国科技信图12火灾能见度纵向分布图从图中分析可以得出:火源下游各处的能见度在火源附近较低,而离火源越远能见度越高;各个断面上的能见度基本上是关于隧道中心线呈对称关系,并且呈倒V型分布息,2008,(2):35~38.[4]周永狄.长大公路隧道火灾数值模拟及逃生研究[D].西安:长安大学硕士学位论文,2006.[5]卫巍.长大公路隧道火灾烟气数值模拟及逃生研究[D].西安:长安大学硕士学位论文,2008.(上接第34页)式,特别适合显示复杂信号的波形[10]。这给仿真调试带来了极大的方便。在SystemGenerator调用上述文件,便可用ModelSim对SystemGenerator生成的Verilog代码进行功能验证。成功后再调用SystemGenerator生成网表文件。然后再调用ISE进行编译,接着用SystemGenerator根据网表文件及设置的优化约束条件进行RTL映射以及布线布局,最后生成的配置文件便可用于对目标器件的编程配置。5结束语最小均方误差(LMS)算法具有计算量小、易于实现等优[2]DavidS,Leeds.AdaptiveNoiseCancellationofCoupledTransmitterBurstNoiseinSpeechSignalsforWirelessHandsets[J].IEEE,2002:3924~3927.[3]张贤达.现代信号处理(第二版)[M].北京:清华大学出版社,2002.[4]何振亚.自适应信号处理[M].北京:科学出版社,2002.[5]胡广书.数字信号处理—理论、算法与实现[M].北京:清华大学出版社,2003.[6]万建伟,王玲.信号处理仿真技术[M].长沙:国防科技大学出版社,2008:3.[7]刘郁林,景晓军等.PauloSRDiniz.自适应滤波算法与实现[M].北京:电子工业出版,2004.[8]夏玮,李朝晖等.MATLAB控制系统仿真与实例详解[M].北京:人民邮电出版社,2008.[9]倪锦根,李峰.变步长NLMS自适应滤波算法研究[J].计算机用与软件,2009,26(1):248~250.[10]曾召华,刘贵忠,赵建平.LMS和归一化LMS算法收敛门限与步长的确定[J].电子与信息学报,2003,25(11):1469~1474.点,在实践中被广泛应用。本文采用快速开发的设计思想,从算法入手,验证其正确性,同时用MATLAB和SystemGenerator混合仿真实现LMS算法的设计。结果表明,该自适应滤波器具有良好的自适应滤波能力。参考文献:[1]HakykinS.AdpativePrenciceHall,1996.38FilterThery.ThirdEdition.