没有合适的资源?快使用搜索试试~ 我知道了~
首页基于FPGA的信号小波实时处理方法
资源详情
资源评论
资源推荐

基于基于FPGA的信号小波实时处理方法的信号小波实时处理方法
根据小波去噪的原理及特点,提出了用FPGA实现小波实时信号处理的方法。实验结果证明采用FPGA实现小波信
号处理能在低信噪比的情况下有效去除噪声,同时能够满足信号处理系统的实时性要求。
小波变换能够同时在时域和频域进行局部分析,在对时变信号进行分析时具有明显的优势。小波算法在进行信号处理时,由于
具有滤波效果好、信号细节损失少的优点,从而引起了广泛的关注和应用。目前常用于高速实时信号处理的硬件芯片分为两大
类:基于大规模可编程集成电路FPGA的纯硬件实现方案和基于高速通用DSP的软件实现方案。采用FPGA的硬件实现方案硬
件接口设计灵活,可以和任意数字外围电路直接使用,且其具有高度的集成度和高速的处理速度;而基于高速通用DSP的软
件实现方案代码设计灵活,可以快速修改和调试程序[6]。小波算法运算量较大,如果采用DSP方案由软件来实现该算法就很
难满足系统实时性的要求。基于以上原因本文提出了采用FPGA方案实现小波算法。该方案对一维信号具有良好的去噪效果,
同时也能满足系统的实时性要求。
1 小波去噪的基本原理
对于小波算法,应用最广泛的是信号处理和图像处理,而在这两个领域中应用最多的就是信号及图像的去噪和压缩。由于在正
交小波中,正交基的选取比传统方法更接近实际信号本身,所以通过小波变换可以更容易地分离出噪声,因此,相对于传统方
法,小波分析在去噪和压缩方面有着无可比拟的优势[5]。
小波分析用于去噪的过程如下:
(1)分解过程:选定一种小波,对含噪信号进行N层小波分解,得到各层分解的小波系数。
(2)阈值处理过程:将通过分解得出的各层高频小波系数进行阈值处理,在进行到最后一层时,要同时对该层的高、低频系数
进行阈值处理。
(3)重构过程:将经过阈值处理后的小波系数通过小波逆变换重构出去噪后的信号。
阈值降噪法是一种实现简单、效果较好的小波降噪方法。小波变换具有很强的去数据相关性,它能将信号的能量集中在小波域
一些大的小波系数中,而噪声的能量却分布于整个小波域内,因此经小波分解后信号的小波系数比噪声的大。于是,采用阈值
的办法可以把信号的小波系数保留,而使绝大部分噪声小波系数置零[2]。目前,常用的阈值函数有硬阈值函数和软阈值函
数。硬阈值法处理的结果可以很好地保留信号边缘等局部特征,软阈值法处理的结果要相对平滑,但是比较容易造成模糊等失
真现象。
2 硬件实现
系统框图如图1所示。根据相关分析,设计采用了XILINX公司生产的超大规模 FPGA器件Virtex 5 XC5VSX50T。系统接口采
用RS422串口,相对于RS232,通过RS422能够以更快的波特率来收发数据,同时其通信距离也比RS232更远。在进行小波
变换之前需要预存一定长度的数据,因此在接口和小波变换模块之间需要设置一个FIFO。FPGA通过接口模块将收到的含噪信
号数据存入FIFO模块中,预存32个数据。
为保证一定的滤波效果又不使算法的运算量过大,本文将小波变换模块的分解、重构层数设为5层。小波变换模块主要包括前
向小波变换模块、阈值处理和逆向小波变换模块。前向小波变换模块完成对含噪信号的多层分解,将含噪信号分解为低频分量
和高频分量。阈值处理模块去除经过多层小波分解出来的各层高频噪声,在前4层阈值处理过程中需将处理后的高频分量存储
到相应的RAM中。逆向小波变换模块完成信号的多层重构,得出去噪后的信号。逆向小波变换模块重构信号的顺序和前向模
块相反,是按最后一层到第一层的顺序重构信号,在进行到相应层次时将存放在相应RAM中经阈值处理后的高频分量取出与
该层低频分量进行重构,完成5层逆向小波变换之后即可得到去噪后的信号。小波变换模块的FPGA结构图如图2所示。
本设计选用DB4小波对含噪信号进行提升小波变换,DBN系列的小波扩张性比较好,可以灵活地权衡增加支集长度(为了提
高能量的集中度)带来的边界问题,且DB4小波滤波器长度较短,能够提高运算速度,也能够满足一定的滤波效果。
在MATLAB平台中通过执行语句“lsdb4=liftwave('db4');displs(lsdb4);”就能得到db4提升小波的方案信息。其方案信息如下:
lsdb4={ [-0.32227589] [-1.11712361 -0.30014226]
[-0.01880835 0.11764809] [2.13181671 0.63642827]
[-0.46908348 0.14003924 -0.02479124] [0.73412453]
[1.36216672] };
由提升小波算法可知,该算法主要由加、减、乘运算组成,对于FPGA实现来说,加减运算可以调用FPGA的加法器IP核,而
浮点系数的乘运算可以通过移位相加来实现。以浮点系数-0.32227589为例,-0.32227589=-((1/4)+(1/16)+(1/128)),所以要实
现数据与系数-0.32227589相乘,可以通过右移相加的方法来实现,这样做可以减少对乘法器的调用,从而减少了该部分设计
时所需的面积,提高了芯片的处理速度。其具体实现框图如图3所示。
3 仿真结果及分析



















weixin_38672731
- 粉丝: 5
- 资源: 952
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0