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

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

3天内不再提示

基于FPGA实现小波变换系统的应用设计

电子设计 来源:电子设计工程 作者:谢宏;刘玉霞;金曼 2021-04-14 15:51 次阅读

作者:谢宏;刘玉霞;金曼;夏斌

1 引言

脑电信号EEG(Electroencephalograph)是人体一种基本生理信号,具有重要的临床诊断和医疗价值。南于脑电信号自身具有非平稳性随机的特点,因此,对其实时滤波具有相当难度。自从Berger 1929年发现脑电信号以来,人们采用多种数字信号处理技术处理分析脑电信号,由于传统的滤波去噪方法所用滤波器一般具有低通特性,因此采用经典滤波法对非平稳信号去噪,降低噪声,展宽波形,平滑信号中突变尖峰的成分,但可能损失这些突变点携带的重要信息,而傅里叶频谱分析仅是一种纯频率分析方法,该方法对时变的非平稳脑电信号无效。

与传统的傅里叶变换相比较,小波变换是一种多尺度信号分析方法,具有良好的时频局部化特性,非常适合分析非平稳信号的瞬态特性和时变特性,这正是分析 EEG所需要的,EEG中许多病变都是以瞬态形式表现的。只有结合时间和频率进行处理,才能取得更好效果。但小波分解每次只分解上次分解的低频部分,而不分解高频部分,所以高频段分辨率较差。而小波包分解是一种从小波分解延伸出的更细致的分解和重构信号的方法,它不但分解低频部分,而且还能二次分解高频部分,能够很好地将频率分辨率调整到与脑电节律特性相一致,因此小波包分解具有更好的滤波特性。若将小波包方法引入脑电信号分析.不仅可以克服传统脑电分析的不足.还可以改进Mallat算法分析实际脑电中的不足。

脑电信号的数字处理以往采用通用PC机或单片机实现,存在实时性差等缺点。随之,基于FPGA的小波变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模拟和验证功能和Quartus II软件的HDL综合、模拟和验证功能相结合,为小波变换的FPGA提供良好的平台。

2 一维离散小波(1D-DWT)Mallat改进算法

多分辨率分析是小波分析的核心理论,其Mallat算法是信号小波分解和重构的常用算法。正交小波的分解和重构公式由尺度函数的尺度方程系数确定。假设构造正交小波的尺度函数φ(t)的两尺度方程为:

由于φ(-t)和φ(t-s)为构造正交小波的多分辨率分析尺度函数,因此上述分解和重构公式中取h(n)为h(-n)或h(n-s)均可。为了讨论方便,且不失一般性,可将上述分解公式和重构公式重写为:

则c0(k)=c0(k-2N-1),式(13)得到的信号是式(12)得到信号的延迟。由于序列h(n)和g(n)为因果序列,所以式(13)对应的滤波器为因果滤波器。采用式(7)和式(8)继续分解信号低频分量或低频分量与高频分量.可得多级分解或小波包分解。

3 基于DSP Builder的小波变换设计实现

考虑到瞬态脉冲信号的短时性,选择具有紧支集的Daubenchies小波作为分析小波,这样有利于突出瞬态信号特征,DB小波函数具有良好的正交性和紧支撑性,可较好地表现频域信号的连续性和突变性,在实际工程应用中效果较好。故这里采用DB小波对脑电信号进行4级分解重构。滤除脑电信号中存在的直流成分或缓慢基线漂移。选取DB2小波,此时M=3,且低通滤波系数(尺度函数系数)如下:

由于浮点数在FPGA中实现比较复杂,为了减少FPGA的运算量和资源,可将滤波计算转换为整数运算和移位运算,为此首先需将以上滤波器系数转化为整数,对每个滤波器系数采用16位字长进行量化,即乘以215后取整数,而对滤波器的输出信号有移15位即得到实际输出。

以DSP Builder为平台,对式(7)、式(8)和式(13)算法进行系统级建模、仿真,再利用Signal Compiler生成HDL文件,然后利用Quartus II进行时序仿真验证。

3.1 DSP Builder实现lD-DWT分解

分解模块的结构如图1所示。信号并行从4级延迟线输出,与FIR滤波器系数进行卷积,然后再偶抽取便可得到近似部分和细节部分的结果。二次抽取模块采用DSP Builder的下采样模块,利用Signal Compiler生成HDL文件。

o4YBAGB2oByALMWWAAF9cjyjEkY089.png

为了减少系统耗用的硬件资源,舍去输出结果的低8位,保证分解前后信号保持同样能量级。从图1中可知,各个子模块并行工作,子模块之间无需任何交叉信号,数据从输入端以流水线的方式向后传递,实现实时流水线工作。二级分解模块的设计原理同一级分解模块。

3.2 DSP Builder实现1D-DWT重构

由Mallat算法可知重构模块的结构如图2所示。首先对信号二次插值,然后信号并行从四级延迟线输出,分别与FIR滤波器系数进行卷积,与分解不同的是重构有两路信号输入,经过四级延迟后并行分别与FIR滤波器卷积,得到的结果再叠加便可得到重构信号,接着利用Signal Compiler生成HDL文件,重构模块也是以流水线方式工作的。二次捕值模块由DSP Builder的上采样模块实现。

o4YBAGB2oBeASJ5UAAFfi4V47u8539.png

4 仿真与设计

选定一组原始数据[1,2,3,4,5,6,7,8,9,10,11…],同时作为输入信号,利用图1生成的HDL文件,在Quartus II环境下时序仿真,图3为一级小波分解时序仿真波形。利用图2生成的HDL文件,同时把图3低频高频的输出结果作为重构输入数据,进行一级小波重构仿真,仿真波形如图4所示。由图3、图4可以看出,重建后波形除有延迟外,其重建波形无失真,并能完美重构原信号,即输入、输出满足q(n)=xin(n- k)。

o4YBAGB2oA2ACDy2AAFyQvIqz98625.png

利用小波变换的多尺度分解和重构方法滤除信号的某些成分(高频或低频),采用DB2小波对脑电信号进行四级小波包分解,按照小波包分解原理,级联一级分解模块,每经一次分解输入的一串数据降为原来的一半.采用分频模块控制各级时钟信号,分频模块由VHDL语言编写生成.同步输出3个时钟信号,以此作为后三级分解的时钟输入信号。然后对分解后的输出信号进行四级小波包重构,按同样方式处理,级联一级重构模块,每重构一次输出数据都增为原来的2倍。尝试采用锁相环控制各级时钟信号,锁相环由Quartus II自带的功能模块实现,同时输出3个倍频时钟信号,作为后i级重构部分的输入时钟信号。

5 结论

利用信号的小波包分解高分辨率的时频关系.在滤波部分选取因果滤波器对脑电信号进行实时滤波。在DSP Builder平台上,结合Mallat算法和模块化设计原则,设计出基于FPGA的流水线结构小波变换系统,这种自上而下的高度模块化设计方法使得系统的升级改动相当方便,将这种基于FPGA的小波变换系统设计应用于脑电信号的实时滤波,是今后的研究方向。

责任编辑:gt

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

    关注

    544

    文章

    7669

    浏览量

    344178
  • FPGA
    +关注

    关注

    1598

    文章

    21265

    浏览量

    592741
  • 单片机
    +关注

    关注

    5996

    文章

    43941

    浏览量

    620331
收藏 人收藏

    评论

    相关推荐

    FPGA 实现变换

    如何用FPGA实现97整型小变换,各位有相关的资料吗?
    发表于 10-15 09:34

    从ASIC到FPGA的转换系统时钟设计方案

    从ASIC到FPGA的转换系统时钟设计方案
    发表于 03-02 09:37

    求助:小算法的FPGA硬件如何实现

    本帖最后由 upup11 于 2012-11-21 20:45 编辑 我想请教一个问题:如何用FPGA硬件实现变换。 问题的由来:我在做一个不影响语音通信的前提下,电话线感
    发表于 11-20 21:35

    基于FPGA的HD-SDI到SD-SDI变换该怎么实现

    随着我国数字广播电视技术的日趋成熟,电视台采用高清数字串行信号(HD-SDI)下变换系统,目前大多数下变换采用ASIC进行高清数字电视信号下变换,成本较高且系统的硬件电路设计复杂、移植
    发表于 10-16 08:10

    如何通过FPGA 可编程特性实现多种小变换

    LS 小变换是怎样进行的?FPGA 及提升核是怎样实现的?如何实现提升小
    发表于 04-12 06:27

    怎样去设计9/7二维离散小变换系统

    怎样去设计9/7二维离散小变换系统?如何对9/7二维离散小变换系统进行仿真?
    发表于 05-07 07:09

    基于DSP Builder的小变换设计实现

    的小波包分解高分辨率的时频关系.在滤波部分选取因果滤波器对脑电信号进行实时滤波。在DSP Builder平台上,结合Mallat算法和模块化设计原则,设计出基于FPGA的流水线结构小变换系统,这种
    发表于 05-13 07:00

    基于DSP Builder的小变换设计实现

    的小波包分解高分辨率的时频关系.在滤波部分选取因果滤波器对脑电信号进行实时滤波。在DSP Builder平台上,结合Mallat算法和模块化设计原则,设计出基于FPGA的流水线结构小变换系统,这种
    发表于 06-04 07:00

    求大佬分享一款基于单片机+ FPGA的视频制式的转换系统

    本文介绍了基于单片机+ FPGA 的视频制式的转换系统, 利用单片机方便的嵌入性及灵活的可编程性, 再结合FPGA 强大的逻辑控制功能很好地克服了这些弊端, 实现了实时、高质量的视频图
    发表于 06-04 06:24

    基于FPGA和TOE架构实现多路采集与切换系统的方案

    时间。针对上述研究现状和分布式采集场景分析,本文介绍了一种基于FPGA和TOE架构,实现TCP/IP协议数据传输的多路采集与切换系统。该系统涉及并行数据采集、多路通道切换、TCP/IP
    发表于 07-12 08:30

    变换系统中发生腐蚀的主要原因是什么?

    变换系统中发生腐蚀的主要原因是什么?氨合成反应分为哪几种反应?
    发表于 07-22 07:11

    视频图像实时小波变换系统

    视频图像实时小波变换系统由CCD摄像头、视频图像采集卡和计算机软件组成,利用数值方法对视频图像进行小波变换,并实时显示变换结果。实验表明该系统对视频图像的实时小波
    发表于 03-02 14:23 26次下载

    基于FPGA的快速9/7整形离散小波变换系统

    美国空间数据系统咨询委员会(简称CCSDS)于2005年推出一套适用于空间领域的图像压缩标准,标准使用了离散小波变换为核心算法,推荐使用9/7整数离散小波变换实现无损图像压缩,由于该算
    发表于 01-25 21:33 1537次阅读
    基于<b class='flag-5'>FPGA</b>的快速9/7整形离散小波<b class='flag-5'>变换系统</b>

    基于FPGA的快速9/7整形离散小波变换系统的设计过程与仿真

    CCSDS图像数据压缩标准中采用9/7整形离散小波变换为核心算法,该算法结构简单,易于硬件设计实现。文中基于FPGA设计实现了9/7整数离散小波变换
    发表于 11-24 14:26 925次阅读
    基于<b class='flag-5'>FPGA</b>的快速9/7整形离散小波<b class='flag-5'>变换系统</b>的设计过程与仿真

    基于赛灵思FPGA的快速9/7整形离散小波变换系统设计

    CCSDS图像数据压缩标准中采用9/7整形离散小波变换为核心算法,该算法结构简单,易于硬件设计实现。文中基于FPGA设计实现了9/7整数离散小波变换
    发表于 11-25 03:41 438次阅读
    基于赛灵思<b class='flag-5'>FPGA</b>的快速9/7整形离散小波<b class='flag-5'>变换系统</b>设计