基于fpga的小波变换实现结构的制作方法

文档序号:7512329阅读:515来源:国知局
专利名称:基于fpga的小波变换实现结构的制作方法
技术领域
本发明涉及一种基于FPGA的小波变换实现结构,属于数字信号处理领域。
背景技术
传统的信号理论,是建立在Fourier分析基础上的,而Fourier变换作为一种全局性的变化,其有一定的局限性。小波分析是一种新兴的数学分支,它是泛函数、Fourier分析、调和分析、数值分析的最完美的结晶,小波变换与Fourier变换相比,是一个时间和频域的局域变换因而能有效地从信号中提取信息,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析,解决了 Fourier变换不能解决的许多困难问题。小波变换数据依赖关系复杂,运算量大,靠软件实现不能达到实时处理的要求。随着FPGA技术的进步和成本的下降,为小波变换算法的实现提供了另一可选的途径。FPGA硬件的并行处理方式保证了信号处理的高速度,且具有可重构能力。因此为小波变换的硬件实现提供了可能。

发明内容
本发明的目的是提供一种基于FPGA的小波变换实现结构,以实现高速的信号处理,达到实时处理的要求。按照本发明提供的技术方案,所述基于FPGA的小波变换实现结构包括 输入多路复用器检测到在线数据流后,输入多路复用器会执行两个功能第一,交错在线数据和已被选定为进一步分解或滤波的低通数据;第二,将传入的数据流划分成由提升滤波器所需的奇偶时钟周期,也输出提升滤波器模块中用来选择各自分解层次的存储寄存器的地址信息;
提升滤波器模块根据提升算法对输入数据进行低通或高通过滤,提升滤波器模块的操作由配置寄存器来控制;所述提升滤波器模块包括提升滤波器模块的第一输入端连接加法器的输入端,提升滤波器模块的第二输入端连接第一二选一选择器的第一输入端和第二二选一选择器的第一输入端,提升滤波器模块的第二输入端还通过存储寄存器作为一个延时块连接第一二选一选择器的第二输入端和第二二选一选择器的第二输入端,第一二选一选择器的输出端经过乘法器连接加法器的输入端,加法器和第二二选一选择器的输出经过尺度调整器输出,乘法器、加法器、存储寄存器分别连接配置寄存器;提升滤波器模块根据给定的数据表独立计算不同时刻的不同数据流,最后经尺度调整器输出各分解层次的低通、高通滤波器的小波变换系数;
可配置的交叉开关单元是一个二输入二输出的选择单元,通过配置信息可以选择是按照对应输出还是交叉输出,决定是单提升还是双提升,即允许提升方案的交替结构;反馈延时组用于缓冲所述提升滤波器模块计算的低通输出数据以及重新安排低通输出数据在预定的时序,再将它们送入下一个提升滤波器模块的输入端;
延时寄存器组在每一步单独的提升指令的计算中,乘法器的输入要么是直接的,要么是延迟的,被延迟的数据将被存储在寄存器单元,称为延时寄存器组;延时寄存器组有一个地址输入,这个地址需要存储每层的小波分解的中间值;
地址发生器用来选择要求分解层次的存储寄存器;
所述输入多路复用器的输出端依次连接可配置的交叉开关单元、提升滤波器模块、延时寄存器组,地址发生器的输出端连接输入多路复用器和反馈延时组。所述输入多路复用器由两个二选一选择器和两个锁存器组成,第三二选一选择器的第一输入端连接第一输入数据流,第三二选一选择器的第二输入端连接第四二选一选择器的第二输入端,第三二选一选择器输出奇序列数据,第四二选一选择器的第一输入端连接第四二选一选择器的第一输入端,第四二选一选择器的第二输入端经第一锁存器连接第二输入数据流,第四二选一选择器通过第二锁存器输出偶序列数据。 所述可配置的交叉开关单元的第一输入端连接输入多路复用器的奇序列数据输出端,可配置的交叉开关单元的第二输入端连接输入多路复用器的偶序列数据输出端,可配置的交叉开关单元的第一输出端连接提升滤波器模块的第一输入端,可配置的交叉开关单元的第二输出端连接提升滤波器模块的第二输入端;通过增加所述可配置的交叉开关单元的数量,来实现更复杂的滤波器。所述的反馈延时组包括两个数据缓冲器、4个三态门和一个锁存器,所述两个数据缓存器和4个三态门分别连接配置寄存器,其中,第一数据缓冲器的输入端和第二数据缓冲器的输入端分别连接至反馈延时组的输入端,反馈延时组输入端连接提升滤波器模块输出的低通滤波器的小波变换系数,第一三态门、第二三态门、第三三态门的输入端分别连接第一数据缓冲器的输出端、第二数据缓冲器的输出端、反馈延时组的输入端,第四三态门的输入端接地,第一三态门、第二三态门、第三三态门、第四三态门的输出端连接锁存器的输入端,锁存器的输出端连接输入多路复用器的第二输入数据流。所述的延时寄存器组,在对读写的数据进行缓冲中,存有反馈数据,信息不丢失。本发明的优点是将小波变换算法用硬件描述语言(HDL)在FPGA上实现,大大降低了复杂性,从而减少芯片面积和功耗。FPGA则可以通过并行和流水线设计实现高速的信号处理,且具有可重构能力,满足了数字信号处理的实时性要求。


图I为基于FPGA的小波变换实现构架框图。图2为输入多路复用器原理图。图3为反馈延时组原理图。图4为地址位配置图。图5为提升滤波器模块原理图。
具体实施例方式下面结合附图和实施例对本发明作进一步说明。本发明提出的一种在FPGA上实现小波变换的方法,该方法运用FPGA模块化的设计思想将小波变换算法分为如图I的六个模块,下面将详细介绍各个模块。(I)输入多路复用器检测到在线数据流后,输入多路复用器会执行两个功能第一,交错在线数据和已被选定为进一步分解或滤波的低通数据;第二,将传入的数据流划分成由提升滤波器所需的奇偶时钟周期,也输出提升滤波器模块中用来选择各自分解层次的存储寄存器的地址信息。该模块由多个二选一选择器和锁存器组成,如图2,根据控制和配置信号,交错线上数据和从反馈延时组得到的低通输出;将传入的数据流划分成由提升滤波器所需的奇偶时钟周期,也输出提升滤波器模块中用来选择各自分解层次的存储寄存器的地址信息。(2)提升滤波器模块根据提升算法对输入数据进行低通或高通过滤,提升滤波器模块的操作由配置寄存器来控制。每一个提升指令需要执行以下职能用一个系数Coef乘以输入in2,得Coef*in2,将该结果与另一输入ini相加,得到Coef*in2+inl,再将此结果传递到下一步提升指令,in2是根据反馈和配置信息来决定是否需要经过一个时钟周期延迟。该单元由数个重复互连的块组成,每个块也被连接到各自的控制和配置信号。本模块连接输入多路复用器的输出,信号经过可配置的交叉开关单元连接到一系列重复块,最后一步、提升的输出连接到尺度调整器,进行缩放输出,得到高通、低通滤波系数。(3)可配置的交叉开关单元该单元实质上是一个二输入二输出的选择单元,通过配置信息可以选择是按照对应输出还是交叉输出,决定是单提升还是双提升,即允许提升方案的交替结构。只需简单地通过增加交叉开关单元的数量,便可以实现更复杂的滤波器。(4)反馈延时组用于缓冲所述提升滤波器模块计算的低通输出数据以及重新安排低通输出数据在预定的时序,再将它们送入下一个提升滤波器模块的输入端。该模块使用rlevel和wlevel作为控制输入信号,确定被读取和被写入的数据属于哪个分解层次。对于正确的数据输入在输入多路复用器模块时,反馈延时组需要在两个连续的时钟周期内传送相同层次的两个连续的低通滤波器的值,所有的低通滤波器的值须在下一个值被存储前传送到后面的块。因此,每个分解层次只需要两个数据缓冲区。这个复杂的调度可分为下面三个观察情况偶数周期值在几个周期前已存储,其后续值已被推迟一个周期;第二个输入值可不经延时直接传送到输出;两个反馈值在其被存储后的几个周期后送到输出。这个单元的控制逻辑要检测这种不同的输入/输出结构,这取决于提升滤波器的延迟和各自的反馈值。该块首先计算所需的存储单元数,然后将它们的输出端口通过三态总线与块的输出端相连。还有两个额外的寄存器要连接到输出端口。一个是直接连接到数据的输入端,由三态驱动器控制。另外一个是在没有有效数据要处理时的空闲时间段写入全零到总线。(5)延时寄存器组在每一步单独的提升指令的计算中,乘法器的输入要么是直接的,要么是延迟的,被延迟的数据将被存储在寄存器单元,称为延时寄存器组;延时寄存器组有一个地址输入,这个地址需要存储每层的小波分解的中间值。此单元包含一组寄存器,存储提升计算的中间数据。输入控制端Control作为地址总线根据实际处理的分解层次来选择寄存器,对读写的数据进行缓冲。每个分解层对应一个寄存器和一个控制信号,Control中的每一位对应一层。延时寄存器组中,在对读写的数据进行缓冲中,有反馈数据,
息不会丢失。(6)地址发生器该块作为一个地址发生器,来选择要求分解层次的存储寄存器。如图4,bit0位表示是否访问第一或第二个样本,其他位表示要处理的内存对。用一个计数器来计算到目前为止的获取的样本数量。为了能够计算第i层,我们需要有21个样本,所以当计数器将有I放置在位置i,我们会知道,我们已经至少有21个样品,所以我们必须做的是一位一位地扫描计数器,从第I位(也就是字的第二位)直到我们遇到的第一个1,这样就可以计算足够的样本。所述输入多路复用器的输出端依次连接可配置的交叉开关单元、提升滤波器模块、延时寄存器组,地址发生器的输出端连接输入多路复用器和反馈延时组。如图2所示,所述输入多路复用器由两个二选一选择器和两个锁存器组成,第三二选一选择器Muxl的第一输入端连接第一输入数据流,第三二选一选择器Muxl的第二输入端连接第四二选一选择器Mux2的第二输入端,第三二选一选择器Muxl输出奇序列数据,第三二选一选择器Muxl的第一输入端连接第四二选一选择器Mux2的第一输入端,第四二选一选择器Mux2的第二输入端经第一锁存器Dl连接第二输入数据流,第四二选一选择器Mux2通过第二锁存器D2输出偶序列数据。所述提升滤波器模块,采用的提升方案中使用了互补滤波器的一个方法。 如图5所示,所述提升滤波器模块包括提升滤波器模块的第一输入端连接加法器的输入端,提升滤波器模块的第二输入端连接第一二选一选择器的第一输入端和第二二选一选择器的第一输入端,提升滤波器模块的第二输入端还通过存储寄存器作为一个延时块连接第一二选一选择器的第二输入端和第二二选一选择器的第二输入端,第一二选一选择器的输出端经过乘法器连接加法器的输入端,加法器和第二二选一选择器的输出经过尺度调整器输出,乘法器、加法器、存储寄存器分别连接配置寄存器。提升滤波器模块根据给定的数据表独立计算不同时刻的不同数据流,最后经尺度调整器输出各分解层次的低通、高通滤波器的小波变换系数。所述可配置的交叉开关单元的第一输入端连接输入多路复用器的奇序列数据输出端,可配置的交叉开关单元的第二输入端连接输入多路复用器的偶序列数据输出端,可配置的交叉开关单元的第一输出端连接提升滤波器模块的第一输入端,可配置的交叉开关单元的第二输出端连接提升滤波器模块的第二输入端。通过增加所述可配置的交叉开关单元的数量,便可以实现更复杂的滤波器。如图3所示,所述的反馈延时组包括两个数据缓冲器、4个三态门和一个锁存器D,所述两个数据缓存器和4个三态门分别连接配置寄存器,其中,第一数据缓冲器BI的输入端和第二数据缓冲器B2的输入端分别连接至反馈延时组的输入端In,反馈延时组输入端In连接提升滤波器模块输出的低通滤波器的小波变换系数,第一三态门、第二三态门、第三三态门的输入端分别连接第一数据缓冲器BI的输出端、第二数据缓冲器B2的输出端、反馈延时组的输入端In,第四三态门的输入端接地,第一三态门、第二三态门、第三三态门、第四三态门的输出端连接锁存器D的输入端,锁存器的输出端连接输入多路复用器的第二输入数据流。反馈延时组中,每个分解层次只需要两个数据缓冲区,所有的低通滤波器的值在下一个值被存储前传送到后面的块。本发明提出了一种能充分发挥FPGA的并行和流水线设计的特点,实现高速的信号处理,且具有可重构能力的小波算法实现方案。探讨了在提升方案在使用互补滤波器的的一个新方法,方案中我们可以看出计算单元数量。每一步提升用一个乘法器和一个加法器计算,再考虑用于调节输出比例的两个乘法器。总计算单元数量就是N+2个乘法器和N个加法器,或者每两个样本总共运算2N+2次,相比FIR方法表示的4N-2次,将减少约50%的计算量。
一个单一的计算单元是足以执行任意层深度的变换。这个架构有两个主要缺点,第一个是在计算高层次是的高延迟,但相比得到极大地节省,这并不是关键,第二个是较长 路径可能限制时钟速度。通过流水线技术操作方法可解决最后一个问题,这将增加已经是显著的延迟。
权利要求
1.基于FPGA的小波变换实现结构,其特征是包括 输入多路复用器检测到在线数据流后,输入多路复用器会执行两个功能第一,交错在线数据和已被选定为进一步分解或滤波的低通数据;第二,将传入的数据流划分成由提升滤波器所需的奇偶时钟周期,也输出提升滤波器模块中用来选择各自分解层次的存储寄存器的地址信息; 提升滤波器模块根据提升算法对输入数据进行低通或高通过滤,提升滤波器模块的操作由配置寄存器来控制;所述提升滤波器模块包括提升滤波器模块的第一输入端连接加法器的输入端,提升滤波器模块的第二输入端连接第一二选一选择器的第一输入端和第二二选一选择器的第一输入端,提升滤波器模块的第二输入端还通过存储寄存器作为一个延时块连接第一二选一选择器的第二输入端和第二二选一选择器的第二输入端,第一二选一选择器的输出端经过乘法器连接加法器的输入端,加法器和第二二选一选择器的输出经过尺度调整器输出,乘法器、加法器、存储寄存器分别连接配置寄存器;提升滤波器模块根据给定的数据表独立计算不同时刻的不同数据流,最后经尺度调整器输出各分解层次的低通、高通滤波器的小波变换系数; 可配置的交叉开关单元是一个二输入二输出的选择单元,通过配置信息可以选择是按照对应输出还是交叉输出,决定是单提升还是双提升,即允许提升方案的交替结构; 反馈延时组用于缓冲所述提升滤波器模块计算的低通输出数据以及重新安排低通输出数据在预定的时序,再将它们送入下一个提升滤波器模块的输入端; 延时寄存器组在每一步单独的提升指令的计算中,乘法器的输入要么是直接的,要么是延迟的,被延迟的数据将被存储在寄存器单元,称为延时寄存器组;延时寄存器组有一个地址输入,这个地址需要存储每层的小波分解的中间值; 地址发生器用来选择要求分解层次的存储寄存器; 所述输入多路复用器的输出端依次连接可配置的交叉开关单元、提升滤波器模块、延时寄存器组,地址发生器的输出端连接输入多路复用器和反馈延时组。
2.如权利要求I所述基于FPGA的小波变换实现结构,其特征是,所述输入多路复用器由两个二选一选择器和两个锁存器组成,第三二选一选择器的第一输入端连接第一输入数据流,第三二选一选择器的第二输入端连接第四二选一选择器的第二输入端,第三二选一选择器输出奇序列数据,第三二选一选择器的第一输入端连接第四二选一选择器的第一输入端,第四二选一选择器的第二输入端经第一锁存器连接第二输入数据流,第四二选一选择器通过第二锁存器输出偶序列数据。
3.如权利要求I所述基于FPGA的小波变换实现结构,其特征是,所述可配置的交叉开关单元的第一输入端连接输入多路复用器的奇序列数据输出端,可配置的交叉开关单元的第二输入端连接输入多路复用器的偶序列数据输出端,可配置的交叉开关单元的第一输出端连接提升滤波器模块的第一输入端,可配置的交叉开关单元的第二输出端连接提升滤波器模块的第二输入端;通过增加所述可配置的交叉开关单元的数量,来实现更复杂的滤波器。
4.如权利要求I所述基于FPGA的小波变换实现结构,其特征是,所述的反馈延时组包括两个数据缓冲器、4个三态门和一个锁存器,所述两个数据缓存器和4个三态门分别连接配置寄存器,其中,第一数据缓冲器的输入端和第二数据缓冲器的输入端分别连接至反馈延时组的输入端,反馈延时组输入端连接提升滤波器模块输出的低通滤波器的小波变换系数,第一三态门、第二三态门、第三三态门的输入端分别连接第一数据缓冲器的输出端、第二数据缓冲器的输出端、反馈延时组的输入端,第四三态门的输入端接地,第一三态门、第二三态门、第三三态门、第四三态门的输出端连接锁存器的输入端,锁存器的输出端连接输入多路复用器的第二输入数据流。
5.如权利要求I所述基于FPGA的小波变换实现结构,其特征是,所述的延时寄存器组,在对读写的数据进行缓冲中,存有反馈数据,信息不丢失。
全文摘要
本发明提供的技术方案,所述基于FPGA的小波变换实现结构包括输入多路复用器、提升滤波器模块、配置寄存器、可配置的交叉开关单元、反馈延时组、延时寄存器组、地址发生器,提升滤波器模块的操作由配置寄存器来控制,所述输入多路复用器的输出端依次连接可配置的交叉开关单元、提升滤波器模块、延时寄存器组,地址发生器的输出端连接输入多路复用器和反馈延时组。本发明的优点是将小波变换算法用硬件描述语言(HDL)在FPGA上实现,大大降低了复杂性,从而减少芯片面积和功耗。FPGA则可以通过并行和流水线设计实现高速的信号处理,且具有可重构能力,满足了数字信号处理的实时性要求。
文档编号H03H17/00GK102710236SQ201210184720
公开日2012年10月3日 申请日期2012年6月6日 优先权日2012年6月6日
发明者童亚军, 肖云龙, 赵芝璞, 高春能 申请人:江南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1