这种分解也就是大家熟知的直和分解。若A和B不相等,且相差很大,我们就说小波不是紧框架的,所以双正交,对偶小波也就自然而然引进来了。若A和B不相等,但又相差不大,这时稳定重构也是可能的,这时成为几乎紧框架的。(好像说这样小波有橹棒性特点,也就是粗略分解,但却精确重构。)经过3步,我们最终地得到了一个二进离散化稳定的小波变换,这正是我们要的结果。 三、快速算法
如果说现代数字信号处理革命的算法,甚至是很多快速算法的老始祖,或者是满矩阵向量乘法一个几乎不可抗拒的最小计算量NlogN,那就是令我不得不佩服的快速傅里叶变换(FFT)。 这里我不想解释过多的基2算法,和所谓的三重循环,还有那经典的蝶形单元,或是分裂基之类,我想说的就是一种时频对应关系。也就是算法的来源。
我们首先明确,时域的卷积对应频域的相乘,因此我们为了实现卷积,可以先做傅里叶变
换,接着在频域相乘,最后再做反傅里叶变换。这里要注意,实际我们在玩DSP。因此,大家要记住,圆周卷积和离散傅里叶变换,是一家子。
快速傅里叶是离散傅里叶的快速算法。因此,我们实现离散线性卷积,先要补零。然后使得它和圆周卷积相等。然后就是快速傅里叶变换,频域相乘,最后反快速傅里叶变换。当然,如果我们就需要的是圆周卷积,那我们也就不需要多此一举的补零。这里,我们可以把圆周卷积,写成矩阵形式。这点很重要。Y=AX。这里的A是循环矩阵。但不幸的是A仍然是满阵。 小波的快速算法。MALLAT算法,是一个令人振奋的东西。它实质给了多分辨率分析(多尺度分析)一个变得一发而不可收的理由。它实质上,讲了这样一个意思。也就是,我在一个较高的尺度(细节)上作离散二进稳定的小波变换,得到了一个结果(小波系数),我若是想得到比它尺度低的小波系数(概貌),我不用再计算内积,只是把较高尺度的小波系数和低通或高通滤波器卷积再抽取即可。但是,所有这些证明的推导是在整个实轴上进行的。即把信号看成无限长的。但这仍不是我们想要的。还有,我们还必须在较高尺度上作一次内积,才可以使用此算法。因此,我们开始简化,并扩展此理论。
第一,我们把信号的采样,作为一个较高层的小波系数近似初始值。(这是可以的,因为小波很瘦时,和取样函数无异)。第二,我们把原来的卷积,换为圆周卷积。这和DSP何尝不一样呢?它的物理意义,就是把信号作周期延拖(边界处理的一种),使之在整个实轴上扩展。这种算法令我为之一贯坚持的是,它是完全正交的,也就是说是正交变换。正变换Y=AX;反变换
X=A’Y;一般对于标准正交基,A’是A的共轭转置,对于双正交A’是A的对偶矩阵。但不管如何,我们可以大胆的写,AA’=A’A=I。这里I是单位矩阵。
那怎样操作才是最快的呢?我们来分析A的特点,首先A是正交阵,其次A是有循环矩阵特点,但此时A上半部分是由低通滤波器构成的循环子矩阵,下半部分是由高通滤波器构成的子矩阵,但却是以因子2为循环的。为什么,因为你做了2抽取。所以我们可以,实现小波变换用快速傅里叶变换。这时如果A是满阵的,则复杂度由O(N.^2)下降到O(NlogN)。
但还有一点,我们忘了A是稀疏的,因为信号是很长的,而滤波器确实很短的,也就是这个矩阵是个近似对角阵。所以,快速傅里叶是不快的,除非你傻到含有零的元素,也作了乘法。因此,小波变换是O(N)复杂度的。这是它的优势。但要实现,却不是那么容易,第一个方法,稀疏矩阵存储和稀疏矩阵乘法。第二个方法,因子化。因子化,是一个杰出的贡献。它在原有的O(N)的复杂度基础上,对于长滤波器,又把复杂度降低一半。但量级仍然是O(N)。 四、时频分析
对于平稳信号,傅里叶再好不过了。它反映的是信号总体的整个时间段的特点。在频率上,是点频的。而对于非平稳信号,它就无能为力了。而小波恰好对此派上用场。小波是反映信号,某个时间段的特点的。在频域上,是某个频率段的表现。但小波,作为频谱分析确实存在很多问题。但我们确实可以做出很多的小波满足这个特点。大家可以看冉启文的《小波变换与分数傅里叶变换》书,这里我不再赘述。还有,我们老是说小波是近似频域二分的,这在DSP上是怎样的,最近我也在思考。
五、压缩、消噪、特征提取
傅里叶变换的压缩,已经广泛应用了。它的简化版本就是DCT变换。而小波包的提出,也就使DCT有些相形见拙。首先,它提出代价函数,一般就是熵准则。其次,一个自适应树分解。再次,基于矩阵范数或较少位编码的稀疏化策略。这些使小波包的压缩近乎完美。小波包是从频域上实现的。从时域上,我们也可采用类似的分裂和并算法,来实现信号最优的表达,这种可变窗小波成为MALVAR小波。记住,压缩是小波最大的优势。
消噪,一般的傅里叶算法,一般可以是IIR滤波和FIR滤波。两者各有优缺点。而小波的消噪,一般也是由多层分解和阈值策略组成。我们需要的是信号的特点,噪声的特点,然后确定用不用小波,或用什么小波。这点上,小波的优势并不是很明显。
特征提取。这是小波的显微镜特点很好地运用。利用模极大值和LIPSCHITZ指数,我们可以对信号的突变点做分析。但这里面的问题也是很多。首先,在不同尺度上,噪声和信号的模极大值变化不同。再次,一般我们用求内积方法,求模极大值,而不用MALLET算法,或者改用叫多孔算法的东西来做。这点,我没任何体会,希望大家多讨论吧。
这里,我不能谈应用很多的细节。但我们必须明确:
1、你要对小波概念有着明确的理解。对诸如多分辨率,时频窗口与分析,框架,消失矩,模极大值,LIPSCHITZ指数等有着清醒地认识。
2、你必须考虑小波在此问题上的可行性,这点尤为重要,小波不是万能的。 3、你必须考虑什么样的小波是合适的。
4、你必须给出一个评价的标准。(熵准则,模极小则等)
5、你必须确定一种算法,是用小波还是小波包或是类小波。(MALLET,直接求内积,多孔,模极大值重构)。
6、最后,你要把你做的效果还其他人的作比较,看看有没有优势。
7、自己编写几乎所有程序,不依靠TOOLBOX里任何的函数。(一些常用的除外)。 这样相信你会获益不少。
我个人的理解:
小波分析是傅立叶分析思想的发展与延拓,它自产生以来,就一直与傅立叶分析密切相关,他的存在性证明,小波基的构造以及结果分析都依赖于傅立叶分析,二者是相辅相成的,两者主要的不同点:
1、傅立叶变换实质是把能量有限信号f(t)分解到以{exp(jωt)}为正交基的空间上去;小波变换的实质是把能量有限信号f(t)分解到W-j和V-j所构成的空间上去的。
2、傅立叶变换用到的基本函数只有sin(ωt),cos(ωt),exp(jωt),具有唯一性;小波分析用到的函数(即小波函数)则具有多样性,同一个工程问题用不同的小波函数进行分析有时结果相差甚远。小波函数的选用是小波分析运用到实际中的一个难点问题(也是小波分析研究的一个热点问题),目前往往是通过经验或不断地试验(对结果进行对照分析)来选择小波函数。
3、在频域分析中,傅立叶变换具有良好的局部化能力,特别是对于那些频率成分比较简单的确定性信号,傅立叶变换很容易把信号表示成各频率成分的叠加和的形式,
如sin(ω1t)+0.345sin(ω2t)+4.23cos(ω3t),但在时域中傅立叶变换没有局部化能力,即无法从f(t)的傅立叶变换中看出f(t)在任一时间点附近的性态。事实上,F(w)dw是关于频率为w的谐波分量的振幅,在傅立叶展开式中,它是由f(t)的整体性态所决定的。
4、在小波分析中,尺度a的值越大相当于傅立叶变换中w的值越小。
5、在短时傅立叶变换中,变换系数S(ω,τ)主要依赖于信号在[τ-δ,τ+δ]片段中的情况,时间宽度是2δ(因为δ是由窗函数g(t)唯一确定的,所以2δ是一个定值)。在小波变换中,变换系数Wf(a,b)主要依赖于信号在[b-aΔφ,b+aΔφ)片断中的情况,时间宽度是2aΔφ,该时间的宽度是随尺度a变化而变化的,所以小波变换具有时间局部分析能力。
6、若用信号通过滤波器来解释,小波变换与短时傅立叶变换不容之处在于:对短时傅立叶变换来说,带通滤波器的带宽Δf与中心频率f无关;相反小波变换带通滤波器的带宽Δf则正比于中心频率f。
本文转载自网易博客“明月 清风 和俺”,原文来源于百度HI,但由于链接已经关闭,所以无法标识,还望见谅。