小波变换快速算法及应用小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Mallat算法[经典算法]
在小波理论中,多分辨率分析是一个重要的组成部分。多分辨率分析是一种对信号的空间分
解方法,分解的最终目的是力求构造一个在频率上高度逼近L2(R)空间的正交小波基,这些
频率分辨率不同的正交小波基相当于带宽各异的带通滤波器。因此,对于一个能量有限信号,
可以通过多分辨率分析的方法把其中的逼近信号和细节信号分离开,然后再根据需要逐一研究。多分辨率分析的概念是在构造正交小波基的时候提出的,并同时给出了着名的Mallat
算法。Mallat算法在小波分析中的地位相当于快速傅立叶变换在经典傅立叶变换中的地位,为小波分析的应用和发展起到了极大的推动作用。
MALLAT算法的原理
在对信号进行分解时,该算法采用二分树结构对原始输入信号x(n)进行滤波和二抽取,得
到第一级的离散平滑逼近和离散细节逼近価和.,再采用同样的结构对网进行滤波和二抽取
得到第二级的离散平滑逼近和离散细节逼近杠沈恋,再依次进行下去从而得到各级的离散细
节逼近对•丿品…,即各级的小波系数。重构信号时,只要将分解算法中的步骤反过来进行即可,但要注意,此时的滤波器与分解算法中的滤波器不一定是同一滤波器,并且要将二
抽取装置换成二插入装置才行。
多孔算法
[小波变换快速算法及其硬件实现的研究毛建华]
多孔算法是由于1992年提出的一种利用Mallat算法结构计算小波变换的快速算法,因在低
通滤波器I加⑹和高通滤波器山(4中插入适当数目的零点而得名。它适用于&二刃的二分树
结构,与Mallat算法的电路实现结构相似。先将Mallat算法的电路实现的基本支路作一下
变形。令孔(k)和的z变换为血⑺与止,下两条支路完全等价,只不过是将插值和二抽取的顺序调换一下罢了。图中其它的上下两条支路也为等效支路,可仿照上面的方
法证明。这样,我们便可由Mallat算法的二分树电路结构得出多孔算法的电路级联图,原
Mallat算法中的电路支路由相应的等效支路所取代,所以整个电路形式与Mallat算法非常
相似。如果舍去最后的抽取环节们实际上相当于把所有点的小波变换全部计算出来。
基干FFT的小波快速算法
[小波变换快速算法及其硬件实现的研究毛建华]
Mallat算法是由法国科学家提出的计算小波分解与重构的快速算法,能大大降低小波分解与重构的计算量,因此在数字信号处理和数字通信领域中得到了广泛的应用。但是如果直接采用该算法计算信号的分解和重构,其运算量还是比较大。主要体现在信号长度较大时,与小波滤波器组作卷积和相关的乘加法的计算量很大,不利于信号的实时处理。故有必要对该算法作进一步的改进。众所周知,FFT 是计算离散傅里叶变换(DFT) 的一种快速算法,如能将它和Mallat 算法结合在一起,势必会进一步降低小波分解和重构的计算量,事实证明这一想法是可行的。
基于FFT的小波变换快速算法是通过离散傅里叶变换建立起FFT和mallat算法之何的桥梁,从而将、FFT 引入到小波变换中来,达到改小波变换快速算法及硬件实现的研究进Mallat
算法的目的。
当信号长度较小时,FFT算法效率不及直接算法;随着长度的增加,特别是对于长度是2的
幕次方的信号,FFT算法比直接算法更适用,能大大降低计算t。当信号是长序列信号时,
小波分解与重构中,滤波器要补很多的零,这对信号的实时计算很不利,我们可以采用长序列快速相关卷积算法对信号进行分段后再运用FFT算法,提高运算速度。
基于算术傅里叶变换的小波变换快速算法
[小波变换快速算法及其硬件实现的研究毛建华]
算术傅里叶变换(AFT)是1988年由Tufts和Sadasiv提出的一种用Mobius反演公式计算连续函数傅里叶系数的方法•它具有乘法运算t仅为0(N)算法简单、并行性好的优点。根据DPT 和连续函数傅里叶系数的关系,可以用AFT计算DFT同直接算法相比,APT方法可以将DFT
的计算时间减少90%尤其是对于含有较大素因子,特别是其长度本身为素数的DFT,它的
速度比传统的FFT更快.另一方面,Mallat算法的分解和重构算法也可由DFT来计算,从而将AFT与Mallat算法联系了起来,从而为小波变换快速算法开辟了新的途径。
对于尺度
为j 的快速分解算法步骤如下:
1) 选定滤波器系数h(n)和g(n),再根据FFT的性质2,用N点的AFT分别计算出H(k)和G(k),分别取共扼,进而得到H*(k) ,G*(k) 。
2) 在已知cj(n)的情况下,用N点的AFT求出其DFT Cj(k)
3) 分别计算出H*(k) Cj(k) ,G*(k) Cj(k) ,即C'j(k) 和D'j(k)
4) 用N 点的AFT求出C' j+1(k)和D' j+1(k)IDFT ,得到C' j+1(n)和D' j+1(n)IDFT ,再分别对它
们作二抽取,就可求出Cj+1(n) 和Dj+1(n) 。
在进行分解计算时,H(k) G(k) 只要计算一次即可。重复步骤(2) 一(4) 可实现下一尺度小波分解,直到达到规定的尺度为止。不过要注意: 尺度增加一个级别,信号长度减半。
对于尺度为j+1 的快速重构算法为:
1) 对Cj+1(n) 和Dj+1(n) 进行二插值,得到C' j+1(n) 和D' j+1(n);
2) 用N点的AFT分别求出h(n)、g(n)的DFT H(k)和G(k)
3) 用N点的AFT分别求出C' j+1(n)和D' j+1(n)的DFT C' j+1(k)和D' j+1(k);
4) 根据(17)式求出Cj(k),再用N点的AFT进行IDFT,可求出cj(n)。