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

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

3天内不再提示

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

Wildesbeast 来源:未知 2019-08-25 11:01 次阅读

基于提升框架的小波变换方法,利用FPGA编程特性可实现多种小波变换。提升框架(LS :Lifting Scheme) 是由Sweldens 等人在近几年提出的一种小波变换方法,用它的框架结构能有效地计算DWT。对于较长的滤波器,LS 的操作次数比滤波器组的操作方式减少将近一半,更适合硬件实现。作者根据提升小波变换的框架式结构,利用FPGA 可完全重构的特点构造不同的小波变换核,以满足不同应用场合的要求。在结构设计中采用由下至上的设计方法,每个提升步骤都由一些可编程的参数来表示,保证了每个步骤均可重构。这些参数包括用于表示数据的位数和每个内部数学模块的通道深度。在逻辑综合时按不同小波的要求,改变参数可得到不同的结果。以图像处理中常用的(5 ,3)滤波器为例说明依靠FPGA 的重组特性实现滤波器的小波变换核方法。实验结果表明,利用FPGA 设计的提升小波变换核能满足不同场合和不同运行的要求。

LS 小波变换理论

LS 变换过程如图1 所示,逆变换与正变换相同,只是顺序相反。时间离散的滤波器可由它的多项矩阵来表示,多项矩阵由脉冲响应的奇偶采样序列的Z 变换得到。LS 小波变换的实质是对经典小波滤波器采用Euclidean 算法的多项式进行分解。

图1 正向LS 变换

一个时间离散的滤波器H( z ) 用多项式表示如下:

基于FPGA实现多种小波变换

He ( z ) 和Ho ( z ) 各自从

基于FPGA实现多种小波变换

奇偶系数得到。分析滤波器H ( z ) 和G( z ) 分别表示低通和高通,表示成多相矩阵为

基于FPGA实现多种小波变换

P( z ) 可被模拟为分析滤波器。根据Euclidean算法可将P( z ) 和P( z ) 分解成:

基于FPGA实现多种小波变换

上面的分解不是唯一的,可有几对{ si ( z ) } 和{ t i ( z ) } 滤波器,但对于计算DWT 所有的选择是等同的。

FPGA 及提升核的实现

FPGA 及重构特性

FPGA(Field Programmable Gate Array ,现场可编程门阵列) 是超大规模集成电路(VL、SI) 技术和计算机辅助设计(CAD) 技术发展的结果。FPGA 器件集成度高、体积小、具有通过用户编程实现专门应用的功能。FPGA 一般由3 种可编程电路和1 个用于存放编程数据的SRAM 组成。这3 种可编程电路是:可编程逻辑块CLB (Configurable Logic Block) 、输入/输出模块IOB ( I/O Block) 和互连资源IR( Interconnect Resource) 。由于基于小波的应用越来越广泛,所以利用FPGA 的灵活结构实现可重构的提升框架小波变换核具有很高的应用价值和研究价值。设计从基本的数学模块和逻辑模块开始,采用由下至上的设计方法,所有的库模块用VHDL 语言描述,允许根据设计精度要求选择每个单元的数据通道大小。为了满足不同环境的需要,既要求可以改变单独模块的通道层深度,又要求考虑与其他设备的相容性。将提升方法与FPGA 的特性结合起来,使不同的提升小波变换在FPGA 上可满足不同应用场合的需要。

图2 提升核结构体

提升小波变换核的实现

如图1 所示,LS 变换是连续的独立的简单滤波操作过程,这个过程就是提升步骤。由图1 可导出优化了的提升核结构体。近几年,采用JPEG2000 标准进行图像传输成为热点,很多文献中均提出了不同的提升小波变换结构体。

但是这些提升结构体大都只考虑可操作性,而忽略了功耗和灵活性。作者提出的提升核结构体(图2) 采用与以往不同的由下至上的设计方法。主要特点是指定了1 个单独的流水式的乘法单元和2个加法单元。乘法单元主要用于处理滤波器系数的对称问题,加法单元用于实现分析或综合的变换。

值得注意的是所有的通道层都可用所设计的库模块来排列,因此为了保证内部IP 核数据流的同步性,必须考虑前后交叉问题。例如,在加法输出时,已经放置了一个乘法器,允许对提升步骤的结果进行归一化。采用这种设计方法,能获得最高的数据精度和最快的运行速度。此外,整数的数学单元更容易进行深层的流水操作,获得很高的数据吞吐量。图2 所提出的结构既考虑了可操作性又考虑了应用的灵活性,由于提高了运行速度,所以降低了功耗。

逻辑综合结果

首先采用VHDL 语言来描述由基本的可重构的数学模块和逻辑模块设计的变换核结构体,然后在MAX+PLUSⅡ集成环境下进行功能仿真,实现所需变换核,最后进行FPGA 逻辑综合。在Altera1 公司的FLEX10K上设计的结构体,经过逻辑综合得到很满意的结果,见表1 。表1 的结果直接由逻辑综合得到,没有考虑各种客观因素引起的延时。在设计流程步骤之后的安放运行过程中,可进行更精确的时序分析。另外,为了获得完整的分析结果,需参考FPGA 厂家提供的指标估计功率消耗,使用时应选择功耗小的可编程器件,更好地满足不同使用环境的要求。以(5 ,3) 滤波器为例,计算(5 ,3) 小波需要4个提升核的叠加,所提出的结构体计算正向或逆向(5 ,3)DWT ,对每帧像素1400×1400 采用15位采样数和12位合成滤波器系数,以全时钟频率运行,进行5 层分解、重构,每秒钟能处理25 帧图像,功耗为267.6 mW。

结束语

提出的可重构的提升核结构体,采用特殊的即从下至上的设计方法,保证了最大限度地重复利用性和重构特性。仿真结果说明,提升小波变换核的结构体无论在处理能力和功耗方面都取得了很好的结果,尤其在处理速度上,能满足图像处理实时性要求。将来的进一步发展是将更多的自由参数加入基本的算术模块中,保证结构体具有更好的操作性,并且使功率消耗减少,能满足不同应用场合的需要,对降低设备成本,提高使用效率有实际意义。

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

    关注

    1602

    文章

    21302

    浏览量

    593101
  • 滤波器
    +关注

    关注

    158

    文章

    7326

    浏览量

    174751
  • 小波变换
    +关注

    关注

    2

    文章

    183

    浏览量

    29491
收藏 人收藏

    评论

    相关推荐

    FPGA 实现变换

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

    LabVIEW实现的小变换及其在滤波中的应用

    在滤波领域,基于小变换的非线性滤波可以成功分离谱位置重叠但谱幅度不同的信号和噪声,具有强大的生命力。但是小波分析具有很强的数学背景,对于工程技术人员来说难以理解。本文旨在工程应用角度帮助读者理解
    发表于 05-13 09:07

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

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

    变换在labview中的实现

    工具包下载好了怎样加载到labview中去实现变换
    发表于 10-26 14:02

    要怎么在仿真中实现变换

    我这个是输电线路故障测距的仿真,M文件;但是这个示波器出来的电流故障图像不是是时域的,我想要利用小变换得到时域的图像,要怎么在仿真中实现变换
    发表于 04-24 16:29

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

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

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

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 05-13 07:00

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

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 06-04 07:00

    基于多种EDA工具的FPGA设计

    基于多种EDA工具的FPGA设计 介绍了利用多种EDA工具进行FPGA设计的实现原理及方法,其中包括设计输入、综合、功能仿真、
    发表于 05-14 18:38 866次阅读
    基于<b class='flag-5'>多种</b>EDA工具的<b class='flag-5'>FPGA</b>设计

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

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

    基于FPGA的AC-AC谐振变换实现

    本文研究了一种能实现从低频到高频直接变换的AC-AC谐振变换器的恒幅控制策略及其FPGA实现。借助FPG
    发表于 08-29 11:20 1721次阅读
    基于<b class='flag-5'>FPGA</b>的AC-AC谐振<b class='flag-5'>变换</b>器<b class='flag-5'>实现</b>

    华清远见FPGA代码-整数DCT变换的设计与实现

    华清远见FPGA代码-整数DCT变换的设计与实现
    发表于 10-27 18:07 8次下载

    基于FPGA实现多种小波变换

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

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

    为了满足整数小波变换实时应用的需要,研究了整数小波变换FPGA实现问题。相对于DSP等传统实现方式,用
    发表于 02-01 11:53 9次下载

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

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