一种小波分解电路的制作方法

文档序号:17399741发布日期:2019-04-13 01:06阅读:164来源:国知局
一种小波分解电路的制作方法
本发明属于数字电路领域,具体涉及一种小波分解电路。
背景技术
:傅立叶变换的基本思想是使用正余弦函数来表示某个函数,从而将一个时域信号映射到频域上,完成对该信号的频域分析。但正余弦函数的周期性导致了傅立叶变换不能很好的体现该信号在时域上的信息。频域的精确导致了时域的模糊,同样,时域的精确也会导致频域的模糊。小波变换,使用基函数的平移和伸缩表示目标信号,能够同时体现信号在时域和频域上的信息,因此渐渐引起重视。小波变换被普遍应用于数字信号处理和图像处理中。其主要步骤分为两个步骤,即信号的分解和重构。在信号的分解过程中,存在卷积和降采样等的基本操作。两个基本运算的性能决定了小波运算的性能。在小波计算硬件加速器的设计过程中,需要同时考虑电路计算的速度、功耗、面积等因素,并适当安排计算的流程和时序,以期得到最优的效果。小波变换的重构与分解过程正好相反,将低通和高通数据分别进行升采样,通过对应的高通和低通重构滤波器,将两者进行相加,最终计算出对应结果。整个数据重构的过程,可以理解为将低通和高通的数据,合成新的数据。如果高通和低通的数据量为n,则合成后的数据量为2n。小波分解的基本流程如图1所示,输入数据x1(n)和x2(n),对这两个信号进行2倍的升采样,并经过对应低频和高频的重构滤波器,产生新的数据流序列为conv1(n)和conv2(n),将两者相加,完成第一层的数据重构。第二层的重构方法和第一层相类似,也分为升采样,滤波和相加几个基本步骤。对于不同层次的小波重构,存在一个基本的结构单元,如虚线标识出的区域所示。对该重复单元的优化决定了电路整体的工作性能。传统的小波分解硬件计算模块遵循算法设计的思路,通过两组不同的卷积电路分别算出高通和低通滤波后的结果,再经过降采样,获得对应的分解值。不合理的卷积电路将会导致的硬件资源的过渡开销,速度的降低。由于存在降采样,前期卷积过程中得到的大量数据被直接抛弃,这就导致了计算的冗余。进行两组不同的卷积计算也导致了电路面积的增大。降采样过程中,会导致计算时间资源的浪费。在多级小波分解的过程中,针对特定位置的数据往往需要进行针对性的滤波设置。如此种种,有必要对小波分解的方法和结构进行调整,完成计算的优化。技术实现要素:本发明的目的是提供一种小波分解电路,能够放弃冗余部分数据的运算,同时合理安排时序,保证每一步的计算密度基本相同。为了实现上述目的,本发明采用如下技术方案:一种小波分解电路,包括k个分解单元,第1个分解单元为起始分解单元,第k个分解单元为终止分解单元;所述分解单元包括滤波参数输入端口、数据输入端口、卷积输入端口、数据及参数选择控制信号输入端口、数据寄存输出端口、卷积输出端口和数据及参数选择控制信号输出端口,且所述第1个分解单元的卷积输入端口的输入数据为0;所述分解单元的数据寄存输出端口、卷积输出端口和数据及参数选择控制信号输出端口分别连接下一个分解单元的数据输入端口、卷积输入端口、数据及参数选择控制信号输入端口;其中,k为小波基的长度,k为大于等于1的整数。进一步地,所述分解单元包括第一数据选择器、第二数据选择器、乘法器、加法器、数据输出寄存器和m+1个移位寄存器,其中,输入数据通过第1个移位寄存器至第m个移位寄存器可获得m+1个时刻的输入数据,第一数据选择器和第二数据选择器分别选出对应的数据和对应的滤波参数经过乘法器进行相乘运算,并与上一个分解单元的卷积输出端口所输出的数据在加法器中进行相加,相加结果存储在数据输出寄存器中,并作为该分解单元中卷积输出端口的输出数据,其中,m为小波分解电路数据分解的循环周期,m为大于等于2的幂次方的整数。进一步地,所述分解单元的第1个移位寄存器的输入端口为该分解单元的数据输入端口,第1个移位寄存器的输出端口连接第2个移位寄存器和第m+1个移位寄存器的输入端口,所述第m+1个移位寄存器的输出端口为该分解单元的数据寄存输出端口,第2个移位寄存器至第m个移位寄存器串联;所述第一数据选择器和第二数据选择器具有m+1个选择端,所述第一数据选择器的m+1个选择端分别对应输入数据、经过第1个移位寄存器输出端口的数据、以及分别经过第2个移位寄存器至第m个移位寄存器中的寄存数据,所述第二数据选择器对应该分解单元的m+1个滤波参数;所述第一数据选择器和第二数据选择器的使能端同时连接该分解单元的数据及参数选择控制信号输入端口,用于控制所述第一数据选择器和第二数据选择器选择对应的数据和滤波参数;所述第一数据选择器和第二数据选择器的输出端口同时连接乘法器的两个输入端,所述乘法器的输出端和该分解单元的卷积输入端口连接所述加法器的两个输入端口,所述加法器的输出端口连接所述数据输出寄存器,所述数据输出寄存器的另一输入端口连接该分解单元的数据及参数选择控制信号输入端口,所述数据输出寄存器的两个输出端口分别为该分解单元的卷积输出端口和数据及参数选择控制信号输出端口。进一步地,所述第i个分解单元中第m+1寄存器的输出端口为该分解单元的数据寄存输出端口,其中1≤i<k。进一步地,所述分解电路的输出数据延迟k个时钟周期,k为小波基的长度。进一步地,所述第一数据选择器的m+1个选择端中不进行运算的数据所对应的滤波参数为0。进一步地,当所述第一数据选择器的m+1个选择端中不进行运算的数据为w个时,该w个数据所对应的选择端被省略,其中,0≤w<m+1,且w为整数。进一步地,当所述分解单元中第一数据选择器的选择端只有一个数据参与计算时,该数据直接连接所述乘法器的一个输入端口。进一步地,所述数据及参数选择控制信号输出端口连接数据及参数选择控制信号,所述数据及参数选择控制信号的位数a与循环周期m的关系为:2a≥m+1,且a为整数。本发明的有益效果为:(1)相比于传统卷积电路,通过优化滤波系数和输入数据流的相对位置,对于每个分解单元只进行一次乘法和一次二数据输入的加法。有效分担了卷积核过长时带来的压力,有效提高电路工作频率。(2)相比于传统小波分解电路,需要对数据进行高低频数据的分类,本专利所示小波分解结构,将所有计算蕴含在整个数据流中,实现了对特定循环周期下,特定的数据,进行特定滤波的计算意图,是实现小波分解和重构的另一个有效思路。尤其在多级小波分解的过程中,本专利所示方法,表现出强大的适应性,能够对多级分解都进行适应。(3)由于充分利用了冗余数据对应的计算时间,电路在有效数据输入的所有计算结果都得到的充分使用,使得整个电路的计算能力得到有效释放。去除了一半的加法和乘法电路,有效减少了电路面积和功耗。附图说明附图1为现有技术中的小波分解电路。附图2为本发明中小波分解的数据流关系图。附图3为本发明一种小波分解电路的结构图。附图4为本发明分解单元的电路图。附图5为实施例中长度为3的小波基的分解电路图。附图6为实施例中长度为6的小波基的优化分解电路图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施方式做进一步的详细说明。如附图2所示,图中初始数据为d,第一级分解产生低频和高频分量,分别对应level1analysis中标识l和h对应的数据。阴影部分数据表示输出数据相比于上次而言,发生改变。对于第二层分解,第一级输出的高频分量数据不需要进一步分解,而对于低频分量,需要考虑相关性,并分解出其中的低频和高频分量,表示为ll和lh。对于第三级分解level2analysis亦然。可以发现多层次的小波分解实际上是对于数据流中特定位置的特定数据的计算。按照分解层次的不同,数据和参数的选择实际上并不相同。如附图3所示,为本发明一种小波分解电路,包括k个分解单元,第1个分解单元为起始分解单元,第k个分解单元为终止分解单元;分解单元包括滤波参数输入端口、数据输入端口、卷积输入端口、数据及参数选择控制信号输入端口、数据寄存输出端口、卷积输出端口和数据及参数选择控制信号输出端口,且第1个分解单元的卷积输入端口的输入数据为0,第k个分解单元可以不包括数据寄存输出端口或者含有数据寄存输出端口,但是不进行输出。如附图2所示,第1个分解单元的数据输入端口输入待分解数据,卷积输入端口输入的数据为0,数据及参数选择控制信号输入端口输入数据x_tilte,滤波参数输入端口输入滤波参数p1,0,p1,1,p1,2……p1,m-1,p1,m,数据寄存输出端口输出数据data2,卷积输出端口和数据及参数选择控制信号输出端口分别输出sum_2和sum_tilte_2,并且其数据寄存输出端口、卷积输出端口和数据及参数选择控制信号输出端口分别连接第2个分解单元的数据输入端口、卷积输入端口、数据及参数选择控制信号输入端口。请继续参阅附图3,依次类推,分解单元的数据寄存输出端口、卷积输出端口和数据及参数选择控制信号输出端口分别连接下一个分解单元的数据输入端口、卷积输入端口、数据及参数选择控制信号输入端口,分解单元的滤波参数为m+1个;其中,k为小波基的长度,k为大于等于1的整数。m为大于等于2的幂次方的整数;即为附图2中进行分解的层次数。本发明中分解单元包括第一数据选择器、第二数据选择器、乘法器、加法器、数据输出寄存器和m+1个移位寄存器,其中,输入数据通过第1个移位寄存器至第m个移位寄存器可获得m+1个时刻的输入数据,第一数据选择器和第二数据选择器分别选出对应的数据和对应的滤波参数经过乘法器进行相乘运算,并与上一个分解单元的卷积输出端口所输出的数据在加法器中进行相加,相加结果存储在数据输出寄存器中,并作为该分解单元中卷积输出端口的输出数据。请参阅附图4,本发明中分解单元的第1个移位寄存器r1的输入端口为该分解单元的数据输入端口,第1个移位寄存器r1的输出端口连接第2个移位寄存器r2和第m+1个移位寄存器rm+1的输入端口,第m+1个移位寄存器rm+1的输出端口为该分解单元的数据寄存输出端口,第2个移位寄存器r2至第m个移位寄存器rm串联;第一数据选择器mux1和第二数据选择器mux2具有m+1个选择端,第一数据选择器mux1的m+1个选择端分别对应输入数据x(n)、经过第1个移位寄存器r1输出端口的数据、以及分别经过第2个移位寄存器r2至第m个移位寄存器rm中的寄存数据,这里需要说明的是,本发明中一个时钟周期输入一个待分解的数据,因此,移位寄存器中存储着上一个时钟周期的数据,因此,经过第1个移位寄存器的寄存数据为上一个时钟周期输入的数据,经过第2个移位寄存器的寄存数据为上两个时钟周期输入的数据,依次类推。第二数据选择器mux2对应该分解单元的m+1个滤波参数p0,p1,p2……pm-1,pm,;第一数据选择器mux1和第二数据选择器mux2的使能端同时连接该分解单元的数据及参数选择控制信号输入端口,用于控制第一数据选择器mux1和第二数据选择器mux2选择对应的数据和滤波参数;第一数据选择器mux1和第二数据选择器mux2的输出端口同时连接乘法器的两个输入端,乘法器的输出端和该分解单元的卷积输入端口连接sum_i加法器的两个输入端口,加法器的输出端口连接数据输出寄存器r’,数据输出寄存器r’的另一输入端口连接该分解单元的数据及参数选择控制信号输入端口sum_tilte_i,数据输出寄存器r’的两个输出端口分别为该分解单元的卷积输出端口sum_i+1和数据及参数选择控制信号输出端口sum_tilte_i+1。其中,i表示第i个分解单元。第i个分解单元中第m+1寄存器的输出端口为该分解单元的数据寄存输出端口,其中1≤i<k。值得注意的是:本发明中当m取不同值时,第一数据选择器的m+1个选择端总会有一些数据不进行运算,针对这些数据,其对应的滤波采纳数为0,即对于第一数据选择器和第二数据选择器中不进行乘加运算的数据,参数配0即可。本发明中分解单元中第二数据选择器中选择端的个数与第一数据选择器中选择端的个数没有直接对应关系,只要存在相对应的映射关系即可。本发明中,每一级数据输出存在一个时钟周期的数据延迟,因此,整体的数据延迟和小波基的长度直接相关,即最终数据输出存在k个时钟周期的延迟。显然当循环周期m=1时,r2至rm部分的寄存器数位为0,参数个数为2。sum_title_i为乘法器输入参数和数据的选择信号,其位数和m直接相关,假定sum_title_i的位数为a,则存在关系a为满足公式2a≥m+1的最小值,且a为整数。当第一数据选择器的m+1个选择端中不进行运算的数据为w个时,该w个数据所对应的选择端被省略,其中,0≤w<m+1,且w为整数。此时,第一数据选择器和第二数据选择器的选择端变少,使得数据及参数选择控制信号的位数a也相应的变小,存在关系a为满足公式2a≥m+1-w的整数;但是,当第一数据选择器的m+1个选择端中不进行运算的数据为w个时,但是该w个数据所对应的选择端并没有被省略时,其对应的数据及参数选择控制信号的位数a仍然需要满足公式2a≥m+1。以下通过小波基长度k=3和k=6两个实施例进行具体说明:实施例1如附图5所示,为循环周期为1,即m=1,且小波基长度k为3的小波基对应的小波分解电路。定义输入数据为x(n),并且每个时钟周期输入一个数据,随时间顺序,输入数据分别为x(1),x(2),x(3),x(4)……x(n),每个分解单元的滤波系数的个数为m+1个,即两个,具体为{a1,a2,a3}和{b1,b2,b3}。第1个分解单元的卷积输入端口输入数据为0,第3个分解单元的卷积输出端口和数据及参数选择控制信号输出端口输出数据分别表示为conv和conv_tilte。其中,sum_title_i可以为1bit周期性的高低电平,分别对应于对a和b的选择。实施例2如附图6所示,为循环周期为2,即m=2,且小波基长度k为6的小波基对应的小波分解电路的优化图。当分解单元中经过移位寄存器输出端口的数据不参与运算时,第一数据选择器被删除,分解单元中数据输入端口所输入的数据直接连接乘法器的一个输入端口,具体如附图6所示:每个分解单元的滤波系数的个数为m+1个,即3个。由于二进制表示数按照2、4、8的顺序递增,3个参数的选择和4个参数的选择,起始需要的选择端数据是一样的,所以附图6中采用了4个滤波参数。其对应附图2中level1anasysis到level2anasysis的数据分解,结合附图2可以看出,对h的数据需要保持,而对l部分的数据需要进一步分解,计算过程可以发现x(n-1),x(n-2)和x(n-3)部分的参数永远不会被用到。因此数据选择器部分支路永远不可能选择到,简化之后的分解电路如附图6所示。定义输入数据为x(n),并且每个时钟周期输入一个数据,随时间顺序,输入数据分别为x(1),x(2),x(3),x(4)……x(n),并且该数据流为高通数据和低通数据交错排列的数据流。由于数据不需要再经过数据选择器进行选择,只保留一个数据选择器来选择其对应的滤波参数。假设该实施例中小波基的高通和低通滤波系数为{a1,a2,a3,a4,a5,a6}和{b1,b2,b3,b4,b5,b6},对于部分数据需要进行小波分解的情况,只对数据流中奇数位上的数据进行小波分解,对于数据流中偶数位上的数据不进行分解,保持原样输出,具体的输入输出数据如表1所示;每个分解单元中数据及参数选择控制信号输入端口输入的数据如表2所示;每个分解单元中的滤波参数对应的值如表3所示。表1实施例2中电路图中的数据输出情况inputoutputx1a1*x1x2x2x3b1*x1x4x4x5a1*x5+a2*x3+a3*x1x6x6x7b1*x5+b2*x3+b3*x1x8x8x9a1*x9+a2*x7+a3*x5+a4*x3+a5*x1x10x10x11b1*x9+b2*x7+b3*x5+b4*x3+b5*x1x12x12x13a1*x13+a2*x11+a3*x9+a4*x7+a5*x5+a6*x3x14x14x15b1*x13+b2*x11+b3*x9+b4*x7+b5*x5+b6*x3x16x16x17a1*x17+a2*x15+a3*x13+a4*x11+a5*x9+a6*x7x18x18x19b1*x17+b2*x15+b3*x13+b4*x11+b5*x9+b6*x7x20x20x21a1*x21+a2*x19+a3*x17+a4*x15+a5*x13+a6*x11x22x22x23b1*x21+b2*x19+b3*x17+b4*x15+b5*x13+b6*x11…………表2实施例2中分解单元中数据及参数选择控制信号输入端口输入的数据sum_tilte_ip1p2p3p4p5p62'b00p(1,0)p(2,0)p(3,0)p(4,0)p(5,0)p(6,0)2'b01p(1,1)p(2,1)p(3,1)p(4,1)p(5,1)p(6,1)2'b10p(1,2)p(2,2)p(3,2)p(4,2)p(5,2)p(6,2)2'b11p(1,3)p(2,3)p(3,3)p(4,3)p(5,3)p(6,3)表3实施例2中分解单元中的滤波参数对应的值namep(1,0)p(2,0)p(3,0)p(4,0)p(5,0)p(6,0)valuea1a2a3a4a5a6namep(1,1)p(2,1)p(3,1)p(4,1)p(5,1)p(6,1)value100000namep(1,2)p(2,2)p(3,2)p(4,2)p(5,2)p(6,2)value0b1b2b3b4b5namep(1,3)p(2,3)p(3,3)p(4,3)p(5,3)p(6,3)value100000以上所述仅为本发明的优选实施例,所述实施例并非用于限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明所附权利要求的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1