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
    +关注

    关注

    553

    文章

    7987

    浏览量

    348745
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602986
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634635
收藏 人收藏

    评论

    相关推荐

    FPGA 实现变换

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

    如何通过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设计与实现

              根据1996 年Sweldens 等人提出的提升小变换方法,设计了一种有效的JPEG2000CDF(2,2)整数小
    发表于 09-12 11:28 30次下载

    视频图像实时小变换系统

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

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

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

    图像的二维提升小变换FPGA实现

    本文将实现基于FPGA的图像二维5/3提升小变换,采用FPGA芯片实现计算量十分复杂的二维提升
    发表于 06-29 11:59 3539次阅读
    图像的二维提升小<b class='flag-5'>波</b><b class='flag-5'>变换</b>的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>

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

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

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

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

    基于FPGA实现多种小变换

    基于提升框架的小变换方法,利用FPGA 可编程特性可实现多种小变换。提升框架(LS :Lif
    发表于 08-18 09:47 2122次阅读
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>多种小<b class='flag-5'>波</b><b class='flag-5'>变换</b>

    如何使用FPGA实现多种小变换

    基于提升框架的小变换方法,利用FPGA 可编程特性可实现多种小变换。提升框架(LS :Lif
    的头像 发表于 08-25 11:01 6075次阅读
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>多种小<b class='flag-5'>波</b><b class='flag-5'>变换</b>

    多级二维整数小变换FPGA实现资料详细说明

    (5,3)整数小变换的算法,接着阐述了一种多级二维(5,3)整数小变换FPGA实现结构,最
    发表于 02-01 11:53 9次下载

    基于FPGA提升框架的小变换方法

    基于提升框架的小变换方法,利用FPGA 可编程特性可实现多种小变换。提升框架(LS :Lif
    的头像 发表于 05-11 15:33 729次阅读
    基于<b class='flag-5'>FPGA</b>提升框架的小<b class='flag-5'>波</b><b class='flag-5'>变换</b>方法