LMS自适应滤波器在激波报靶系统中的应用
扫描二维码
随时随地手机看文章
前言
由空气动力学原理,当超音速运动的物体,由于运动速度大于局部声速时会产生激波,弹道声波是超声速弹丸飞行时冲击空气分子所形成的激波( Shock waves)。采用激波原理进行报靶是一项具有挑战性的技术,它利用激波信号进行超音速飞行体探测,是一种新的目标探测方法。本文研究对象为移动靶车,该遥控自动装置自带电源和动力装置,能在 25Km/h内无级调速,但是,由于其工作环境比较恶劣,自身振动、风吹、发电机和电动机的巨大干扰,严重影响了自动报靶系统的报靶精度。为了适应现代化部队训练的需要,本文采用 FPGA和自适应滤波技术,利用硬件电路来实现 LMS自适应滤波器,完成对强背景噪声环境下激波信号的滤波,在满足实时数据处理前提下,以提高报靶系统的报靶精度。
1 问题的提出及方案选取
本设计起初设计电路采用的模拟高通滤器,后来又设计成带通滤波器,然而通过实践发现,其滤波效果都比较差,难以满足系统精度的要求;采用通用 DSP数字信号处理器件用软件设计数字滤波器,其数据吞吐率、处理速度和实时性远不如基于 FPGA硬件实现的数字滤波器,因为,基于 FPGA的数字滤器代表了未来数字信号处理的发展方向,用户可以很方便
吴学礼:博士生导师。基金项目:总参军训和兵种部项目
的结合实际需要设计出自己的可编程数字信号处理芯片,现在已经较为广泛地应用在高端数字信号处理领域。
自适应滤波器的常用实现形式有 FIR和IIR两种,而 FIR滤波器是实际应用较为广泛的一种,FIR滤波器只有可调的零点,因此它没有 IIR因兼有可调的零点和极点而带来的不稳定问题,此外,LMS计算量小,易于硬件实现,故本文采用的滤波器是基于FIR基础之上构建的 LMS自适应滤波器。
2 系统设计结构
本文所涉及的激波信号处理部分的整体结构框图如图 1所示,由信号采集传感器、模数转换器件、FPGA器件、数模转换器件构成。高速瞬态的激波信号被超声波传感器捕获以后,经过适当调理送到 AD转换器件,本设计采用 MAX197AD转换器件,由 FPGA设计的状态机对其控制,进行 AD转换,然后再进入基于 FPGA设计的自适应滤波器中滤波,最后再进行 DA转换传输到后续处理电路,由于本设计的主要任务是设计基于 LMS算法的自适应滤波器,其它部分将不作详述。
500)this.style.width=500;" border="0" />
3 LMS自适应滤波器设计
LMS算法是以期望响应和滤波器输出信号之间的均方值为准则,依据输入信号在迭代过程中估计梯度矢量,并更新权值系数以达到最有效的一种自适应迭代算法,它在优化方法中采用了基于随机梯度的最速下降法。根据 LMS算法的实现过程,在 FPGA实现时,可以分为主要的几个模块:FIR滤波器模块、误差计算模块、权值存储模块、权值更新模块以及控制模块。其模块框图如图 2所示。设计中采用 VHDL语言设计,根据 MAX197的转换要求,其输出为 12位宽度的数字信号,因此,此处采用 12位并行数据输入,12并行数据输出,权值系数的数据宽度为 16位,reset为系统复位,高电平有效,clk为系统时钟,firen为 FIR滤波器使能,suben为误差计算模块使能,cuncuen为权值存储模块使能,coffen为权值更新模块使能,都为高电平有效。 [!--empirenews.page--]
500)this.style.width=500;" border="0" />
4 自适应滤波器的 FPGA实现
4.1 N阶 FIR滤波器模块的设计
500)this.style.width=500;" border="0" />
在设计中,为了节省 FPGA的内部资源,提高利用效率,此处采用串行乘加的方法实现。 FIR滤波器模块实现 16阶的 FIR滤波,输入量主要包括 AD转换后的激波信号数据的输入和权值系数的输入,xin是 AD转换后的输出信号,为 12位字宽,其中 1位符号位,10位精度位,将此信号存储在深度为 N的 RAM中作为 16阶 FIR滤波器的输入;FIR的权系数 win存储在另外一个 RAM中,字宽 16位,其中最高位为符号位。通过控制模块输出地址信号控制读各个存储模块的读写动作,此处的乘法器为 28位有符号数的乘法器,加法器完成累加任务,当 16阶乘法以及累加运算做完后,由控制模块输出 youten信号,对锁存的数据进行有效截取,然后输出。其实现的框图如图 3所示。在该设计中,采用 VHDL语言编程完成,生成对应的顶层原理符号,然后按设计方案把它们连接成顶层原理图。
500)this.style.width=500;" border="0" />
4.2控制模块本模块主要是控制从激波数据输入模块和权系数输入模块读取数据输入信号和权系数到乘法器的输入端,同时还控制累加器完成累加任务,然后产生一个使能信号,对输出数据进行截取操作,然后输出到下一级模块中。本模块为整个系统的核心部分,它主要完成:初始化各个模块;根据系统时钟产生各个模块的控制信号,控制每个单元完成特定的工作;采用整体流水线和局部流水线的方式,协调各个模块工作,从而提高整个滤波系统的整体性能。
4.3计算模块
本模块包括:误差计算模块和权值计算模块。误差模块实际就是一个减法器,主要计算 FIR滤波器输出和期望值之间的误差,然后,在控制模块的作用下,当误差满足设计要求时,便使能其输出,得到最终的输出结果。在权值计算模块中,综合考虑收敛性和设计实现,设定 u=1/4092,即 u=10H,这样只需对误差计算模块的误差输出进行移位运算即可实现,省掉了乘法器的使用,节省了 FPGA资源,提高了计算速度,另外,在计算 2ue(k)x(k)时,可以在 e(k)与 x(k)相乘后直接右移 12位,即可得出权值变量。
5 自适应滤波器的仿真与校验
在 Quartus II6.0综合环境下,首先对输入设计文件( .vhd、.bdf)进行编译(包括建库、
逻辑综合、器件适配、仿真数据截取等),系统自动编译完成后自动生成 .pof文件,然后通过 JTAG下载电缆把 .pof文件下载到 FPGA器件中即可。本设计选用 CycloneII系列的 EP2C8Q208C8芯片,系统时钟为 20MHz,输入信号、参考输入和滤波器输出都是 12位,考虑到 FPGA还要实现其它功能,因此在进行系统的芯片选型时,留有较大的冗余量。实验时,调试电路板从计算机中读取输入数据到 FPGA中,然后经过 FPGA处理后,将处理的数据送回计算机中。
仿真时,设期望信号为 900,输入信号为 500,实际输出为 895,误差为 5,在 63.2us处收敛到稳定状态。其时序仿真波形如图 4所示。
500)this.style.width=500;" border="0" /> [!--empirenews.page--]
用LabVIEW编写的上层软件采集激波数据,以txt文件格式保存。应用MATLAB的load命令,绘制出图 5上半部分的激波信号,据图明显看出,弹丸穿过靶平面时的激波混杂有大量高低频干扰。为了验证上述自适应滤波器的滤波能力,在进行实验时,将此数据送入到FPGA中进行处理,再送回到计算机中,运用绘图软件绘制其滤波结果,其滤波结果见图5。
500)this.style.width=500;" border="0" />
从上图可以看出,在强噪声干扰下,很难分辨出真实有效的有用信号,采用 LMS自适应滤波器进行滤波后,能够真实有效地滤除干扰噪声。
6 结束语
本文利用 FPGA器件实现了基于 LMS自适应 FIR滤波器,由上述实验结果可以看出,基于 FPGA实现的自适应滤波器,能够实时有效地滤除掺杂在激波信号中的噪声,能够准确捕捉到真实的激波信号,为后续部分处理奠定了坚实的基础,从而为提高自动报靶系统的报靶精度奠定了坚实基础。
本文作者创新点:将先进的 FPGA技术和自适应滤波技术应用于自动报靶中,实现了基于 FPGA的自适应滤波器,对整个激波信号处理系统进行了重大改进,提高了移动报靶系统的报靶精度。