这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 基于FPGA和自适应滤波技术实现LMS自适应滤波器的设计

共1条 1/1 1 跳转至

基于FPGA和自适应滤波技术实现LMS自适应滤波器的设计

工程师
2021-01-10 23:11:54     打赏

前言

由空气动力学原理,当超音速运动的物体,由于运动速度大于局部声速时会产生激波,弹道声波是超声速弹丸飞行时冲击空气分子所形成的激波(Shockwaves)。采用激波原理进行报靶是一项具有挑战性的技术,它利用激波信号进行超音速飞行体探测,是一种新的目标探测方法。本文研究对象为移动靶车,该遥控自动装置自带电源和动力装置,能在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算法的自适应滤波器,其它部分将不作详述。

基于FPGA和自适应滤波技术实现LMS自适应滤波器的设计

3LMS自适应滤波器设计

LMS算法是以期望响应和滤波器输出信号之间的均方值为准则,依据输入信号在迭代过程中估计梯度矢量,并更新权值系数以达到最有效的一种自适应迭代算法,它在优化方法中采用了基于随机梯度的最速下降法。根据LMS算法的实现过程,在FPGA实现时,可以分为主要的几个模块:FIR滤波器模块、误差计算模块、权值存储模块、权值更新模块以及控制模块。其模块框图如图2所示。设计中采用VHDL语言设计,根据MAX197的转换要求,其输出为12位宽度的数字信号,因此,此处采用12位并行数据输入,12并行数据输出,权值系数的数据宽度为16位,reset为系统复位,高电平有效,clk为系统时钟,firen为FIR滤波器使能,suben为误差计算模块使能,cuncuen为权值存储模块使能,coffen为权值更新模块使能,都为高电平有效。

4自适应滤波器的FPGA实现

4.1N阶FIR滤波器模块的设计

FIR滤波器是数字滤波器的一种,它的输出可以用差分方程表示如下:

其中:N是FIR滤波器的抽头数,x(i)表示第i时刻的输入样本,h(i)是FIR滤波器的第i级抽头系数。FIR滤波器的单位脉冲响应h(n)是一个有限长序列,其系统函数可表示为:

在设计中,为了节省FPGA的内部资源,提高利用效率,此处采用串行乘加的方法实现。FIR滤波器模块实现16阶的FIR滤波,输入量主要包括AD转换后的激波信号数据的输入和权值系数的输入,xin是AD转换后的输出信号,为12位字宽,其中1位符号位,10位精度位,将此信号存储在深度为N的RAM中作为16阶FIR滤波器的输入;FIR的权系数win存储在另外一个RAM中,字宽16位,其中最高位为符号位。通过控制模块输出地址信号控制读各个存储模块的读写动作,此处的乘法器为28位有符号数的乘法器,加法器完成累加任务,当16阶乘法以及累加运算做完后,由控制模块输出youten信号,对锁存的数据进行有效截取,然后输出。其实现的框图如图3所示。在该设计中,采用VHDL语言编程完成,生成对应的顶层原理符号,然后按设计方案把它们连接成顶层原理图。

4.2控制模块本模块主要是控制从激波数据输入模块和权系数输入模块读取数据输入信号和权系数到乘法器的输入端,同时还控制累加器完成累加任务,然后产生一个使能信号,对输出数据进行截取操作,然后输出到下一级模块中。本模块为整个系统的核心部分,它主要完成:初始化各个模块;根据系统时钟产生各个模块的控制信号,控制每个单元完成特定的工作;采用整体流水线和局部流水线的方式,协调各个模块工作,从而提高整个滤波系统的整体性能。

4.3计算模块

本模块包括:误差计算模块和权值计算模块。误差模块实际就是一个减法器,主要计算FIR滤波器输出和期望值之间的误差,然后,在控制模块的作用下,当误差满足设计要求时,便使能其输出,得到最终的输出结果。在权值计算模块中,综合考虑收敛性和设计实现,设定u=1/4092,即u=10H,这样只需对误差计算模块的误差输出进行移位运算即可实现,省掉了乘法器的使用,节省了FPGA资源,提高了计算速度,另外,在计算2ue(k)x(k)时,可以在e(k)与x(k)相乘后直接右移12位,即可得出权值变量。

5自适应滤波器的仿真与校验

在QuartusII6.0综合环境下,首先对输入设计文件(.vhd、.bdf)进行编译(包括建库、逻辑综合、器件适配、仿真数据截取等),系统自动编译完成后自动生成.pof文件,然后通过JTAG下载电缆把.pof文件下载到FPGA器件中即可。本设计选用CycloneII系列的EP2C8Q208C8芯片,系统时钟为20MHz,输入信号、参考输入和滤波器输出都是12位,考虑到FPGA还要实现其它功能,因此在进行系统的芯片选型时,留有较大的冗余量。实验时,调试电路板从计算机中读取输入数据到FPGA中,然后经过FPGA处理后,将处理的数据送回计算机中。

仿真时,设期望信号为900,输入信号为500,实际输出为895,误差为5,在63.2us处收敛到稳定状态。其时序仿真波形如图4所示。

用LabVIEW编写的上层软件采集激波数据,以txt文件格式保存。应用MATLAB的load命令,绘制出图5上半部分的激波信号,据图明显看出,弹丸穿过靶平面时的激波混杂有大量高低频干扰。为了验证上述自适应滤波器的滤波能力,在进行实验时,将此数据送入到FPGA中进行处理,再送回到计算机中,运用绘图软件绘制其滤波结果,其滤波结果见图5。

从上图可以看出,在强噪声干扰下,很难分辨出真实有效的有用信号,采用LMS自适应滤波器进行滤波后,能够真实有效地滤除干扰噪声。

6结束语

本文利用FPGA器件实现了基于LMS自适应FIR滤波器,由上述实验结果可以看出,基于FPGA实现的自适应滤波器,能够实时有效地滤除掺杂在激波信号中的噪声,能够准确捕捉到真实的激波信号,为后续部分处理奠定了坚实的基础,从而为提高自动报靶系统的报靶精度奠定了坚实基础。

本文作者创新点:将先进的FPGA技术和自适应滤波技术应用于自动报靶中,实现了基于FPGA的自适应滤波器,对整个激波信号处理系统进行了重大改进,提高了移动报靶系统的报靶精度。




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]