0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

电子设计 来源:郭婷 作者:电子设计 2019-04-02 09:31 次阅读

前言

由空气动力学原理,当超音速运动的物体,由于运动速度大于局部声速时会产生激波,弹道声波是超声速弹丸飞行时冲击空气分子所形成的激波( 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算法的自适应滤波器,其它部分将不作详述。

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

3 LMS自适应滤波器设计

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

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

4 自适应滤波器的 FPGA实现

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

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

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

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

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

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

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

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所示。

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

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

基于FPGA实现的自适应滤波器提高自动报靶系统的报靶精度

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

6 结束语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222176
  • FPGA
    +关注

    关注

    1603

    文章

    21326

    浏览量

    593234
  • 滤波器
    +关注

    关注

    158

    文章

    7332

    浏览量

    174789
收藏 人收藏

    评论

    相关推荐

    基于AccelDSP的自适应滤波器设计

    【作者】:袁江南;汤碧玉;陈辉煌;【来源】:《厦门大学学报(自然科学版)》2010年02期【摘要】:给出了一种自适应滤波器的设计和FPGA实现方法.简要分析了最小均方误差(LMS)、
    发表于 04-24 09:01

    实现,用于实弹射击精度

    实现,用于实弹射击精度。了解技术或经验的,有懂得大师联系我。可以购买技术。电话微信同步
    发表于 12-20 14:52

    LMS自适应滤波器在激波系统中有哪些应用?

    由空气动力学原理,当超音速运动的物体,由于运动速度大于局部声速时会产生激波,弹道声波是超声速弹丸飞行时冲击空气分子所形成的激波( Shock waves)。采用激波原理进行是一项具有挑战性的技术,它利用激波信号进行超音速飞行体探测,是一种新的目标探测方法。
    发表于 11-01 06:40

    定点DSP实现扩展精度自适应滤波器的研究

    定点DSP实现扩展精度自适应滤波器的研究
    发表于 05-08 17:21 20次下载

    基于自适应滤波器系统识别研究与实现

    自适应系统识别是通过测量系统输出信号利用自适应滤波器建立模型的一种重要方法。本文论述了基于LMS算法自适
    发表于 07-11 09:08 20次下载

    自适应LMS滤波器FPGA中的实现

    本文介绍了自适应滤波器实现方法,给出了基于LMS 算法自适应滤波器FPGA 中的
    发表于 09-14 15:51 34次下载

    LMS自适应滤波器的仿真与实现

    LMS自适应滤波器的仿真与实现  0 引言   自适应滤波器可广泛应用于系统识别、信号处理
    发表于 12-16 10:41 7495次阅读

    子带分解的自适应滤波器FPGA实现

    自适应滤波器已经广泛应用于信道均衡、回声取消、系统识别、频谱估计等各个方面。基于子带分解的自适应滤波
    发表于 01-18 14:09 1266次阅读
    子带分解的<b class='flag-5'>自适应</b><b class='flag-5'>滤波器</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    自适应Notch滤波器FPGA实现

    摘要: 针对水下目标跟踪定位系统中信号的特点, 采用自适应Notch 滤波器对接收信号进行检测, 使系统在低信噪 比的情况下仍能保证较高的正确检测率。提出了用
    发表于 02-17 16:00 69次下载
    <b class='flag-5'>自适应</b>Notch<b class='flag-5'>滤波器</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    一种改进的NLMS自适应滤波器FPGA实现_赵茂林

    一种改进的NLMS自适应滤波器FPGA实现_赵茂林
    发表于 01-08 10:30 2次下载

    自适应滤波器的作用、原理以及相关应用

    自适应滤波器是指根据环境的改变,使用自适应算法来改变滤波器的参数和结构的滤波器。一般情况下,不改变自适应
    发表于 11-27 18:41 2w次阅读

    使用FPGA实现自适应卡尔曼滤波器的设计论文说明

    在视频图像获取过程中“由于噪声对图像序列的降质”需要设计实时噪声滤波器。讨论了视频图像的卡尔曼滤波问题及自适应卡尔曼滤波算法“并讨论了自适应
    发表于 01-22 14:29 22次下载
    使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>自适应</b>卡尔曼<b class='flag-5'>滤波器</b>的设计论文说明

    使用FPGA实现自适应卡尔曼滤波器的设计论文说明

    在视频图像获取过程中“由于噪声对图像序列的降质”需要设计实时噪声滤波器。讨论了视频图像的卡尔曼滤波问题及自适应卡尔曼滤波算法“并讨论了自适应
    发表于 01-22 14:29 13次下载
    使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b><b class='flag-5'>自适应</b>卡尔曼<b class='flag-5'>滤波器</b>的设计论文说明

    DLMS高速自适应滤波器FPGA实现

    在分析传统自适应滤波算法的基础上,针对自适应滤波器的硬件实现,采用一种适合FPGA
    发表于 01-22 16:12 11次下载
    DLMS高速<b class='flag-5'>自适应</b><b class='flag-5'>滤波器</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

    如何使用FPGA实现子带分解的自适应滤波器

    基于子带分解的自适应滤波器提高收敛性能的同时又可以节省一定的计算量。采用Altera公司的仿真软件Ahera DSP Builder和Quartus lI 7.2进行子带分解的NLMS算法的
    发表于 02-05 15:22 15次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>子带分解的<b class='flag-5'>自适应</b><b class='flag-5'>滤波器</b>