问1:
.MATLAB中连续小波变换cwt结果是指a和b都连续变化后的小波系数,wavedec是离散小波变换,是mallat算法后的近似和细节部分小波系数。mallat算法中a是2的幂次方变化,b不是连续变化。因此,cwt中2/4/8/16/32结果应该不是对应wavedec中的1/2/3/4/5尺度吧?(因为b一个是连续,一个是不连续的)
答1:
首先应明白连续或不连续多指数学的概念而已,应用中的信号都是离散的,只是你的采样足够高就可认为是连续的,所以小波变换中关心的是点数问题,而不关心信号是否连续。对于CWT或DWT其连续与否不是指分析信号,而是你说的a或b的问题,但你仍可以借鉴上面对于信号连续的理解。CWT中a是连续的,b其实就是点数,也可认为是连续的。最早的DWT是没有mallat算法的,那时a是以2的幂次方变化离散,b却是连续变化的,即二进小波变换。这种变换很鸡肋,还不如直接做CWT。DWT的应用之所以远远多于CWT就是引入了mallat算法,好处是终于可以分解和重构信号了,这种方式对信号特征的研究非常有利。DWT的核心思想其实就是CWT引出的伸缩和平移的概念,a以2的幂次方变化实现了小波的伸缩,b通过下抽样实现了小波的平移。从实际应用中进行小波变换的目的和效果来看,cwt中2/4/8/16/32的小波系数结果应该对应DWT中的阶次(层数)1/2/3/4/5的小波细节系数(或更准确的是重构后的小波细节,因为cwt的系数个数是不变的等于原信号长度,但DWT细节系数是每层近似减半的,重构后才会等长,b也是姑且认为是减半的不连续吧)。
问2:
从实际应用中进行小波变换的目的和效果来看,cwt中2/4/8/16/32的小波系数结果应该对应DWT中的阶次(层数)1/2/3/4/5的小波细节系数。 那么为什么我对信号采用cwt处理(scale(1:512))后的256层系数与wavedec分解后第8层高频系数重构后的结果不一样呢?
答2:
先回答追问,我的回答前提已经明确表达了“对应”一词,可没说一样。DWT相应阶次的细节与CWT的结果是对应的,这主要用于研究信号的奇异性的,在这一点上DWT细节可能还可提供其它的更多信息,从CWT和DWT的实现理论算法上二者是毫不相同的,意义上也有所区别,但都可用于奇异性研究,所以肯定不同。另外,实际应用中CWT一般到尺度64已经非常了不得了,再高的尺度会有吉布斯效应的影响,你会很难分辨,也会有很多假象产生。一般奇异性研究为定位准确和易于分辨,尺度16左右已经比较合适了,如果你看到文献中有超过尺度100的情况,那要么信号的点数很多,要么作者就是一棒槌外行。再追吧!
问3:
MATLAB实现过程,wavedec是通过mallat计算过程实现的,跟滤波器有什么关系?另外,mallat算法跟‘scale和shift都离散成是2的幂次方’的离散小波有区别么?(我看一篇文章里讲到haar小波的mallat算法好像就是把‘scale和shift都离散成是2的幂次方’,其他小波的mallat算法不是这样的吗?)
答3:
可先参看http://zhidao.baidu.com/question/754358507298535324.html?from=pubpage&msgtype=2 。由于正交函数的引入,提出了尺度函数的概念,表明小波函数可由尺度函数伸缩和平移的线性组合表述,从而推出著名的二尺度方程,将原始待分析信号也当作某阶的逼近(从逼近的理论意义上是完全可以理解和接受地),则可将二尺度方程引申,发现其频域表达式就可用高低通滤波器来实现DWT的计算。即当今DWT的应用计算都是靠滤波器来完成的,所以很多难以构造尺度函数的小波函数只能用在CWT上,没尺度函数我们就没法构造滤波器了,也就不能计算DWT了。进行一个完整的DWT需要构造一个滤波器组,通常是4个滤波器,即分解高、低通滤波器和重构高、低通滤波器。通常由尺度函数构造低通尺度滤波器然后构造高通(带通)小波滤波器然后推出小波函数,这是很复杂的问题,可以参考某些资料,但对你可能太深了些。所以目前的DWT就是在玩滤波器,只有滤波器才能计算实现DWT的mallat算法。CWT中用的是积分,虽然计算上也用卷积,但和滤波器无关,只是将卷积当作了一种运算法则而已,DWT的滤波器卷积才是正宗的滤波器理论。所有通常的的DWT都是二进制的(多进制的小波除外),都是以2的幂次方变化的。请续追!