小波变换与信号的分解重构S1.傅立叶变换与小波1、傅立叶变换的基本思想:将信号分解成许多不同频率的正弦波的叠加,将信号从时间域转换到频率域。(1.1)()()cossin()21()cossin2iwtFwfxedtwtiwtfxdtfxwtiwtdtS1.傅立叶变换与小波2、傅立叶变换的缺点:1)丢掉时间信息,无法对某一时间段对应的频域信息或者某一频率段对应的时间信息进行分析;2)不利于分析非平稳信号,例如偏移、趋势、突变等等。——需要寻求一种同时具有时间分辨率和频域分辨率的分析方法。S1.傅立叶变换与小波为了分析和处理非平稳信号,在傅里叶分析理论基础上,提出并发展了一系列新的信号分析理论:1.短时傅里叶变换(STFT)或加窗傅里叶变换(WFT)、2.Gabor变换、3.时频分析、4.小波变换、5.分数阶傅里叶变换(FractionalFourierTransform)、6.线调频小波变换等。S1.傅立叶变换与小波——1946Gabor变换——短时傅立叶变换(STFT)1)基本思想:对信号加窗,对窗内的信号进行傅立叶变换,反映信号的局部特征;2)缺点:其窗口函数通过函数时间轴的平移与频率限制得到,由此得到的时频分析窗口具有固定的大小。i(,)()etattaS1.傅立叶变换与小波Gabor变换及其应用示例Gabor变换是海森伯(Heisenberg)测不准原理下的最优的短时傅立叶变换。高斯窗函数是短时傅里叶变换同时追求时间分辨率与频率分辨率时的最优窗函数。具有高斯窗函数的短时傅里叶变换就是Gabor变换。S1.傅立叶变换与小波Gabor变换应用示例(1)高斯窗函数(2)信号函数21/4()2cos(5)tgtet22()cos(2)cosfttttS1.傅立叶变换与小波(3)平移后的高斯窗函数(4)归一化(5)Gabor变换21/4()2cos(5)lstksTgctet22()()/()gctgctgct()()2()GwHtgctdtS1.傅立叶变换与小波Gabor变换的主要程序代码:shift-l=100;%高斯窗每次平移点数shift-n=(length(t)-1)/shift_l;%高斯窗平移总次数y2=zeros(shift_n,2001);fork=0:shift_n-1gauss-c=2^(1/4)*exp(-pi*(t-k*shift-l*Ts).^2).*cos(5*pi*t);%平移后的高斯函数gaussc2=gaussc/sum(gaussc.^2);%归一化y1=conv(hilbert(fx),gaussc2);%短时傅立叶变换,即对信号和Gauss函数做卷积y2(k+1,:)=y1;endS1.傅立叶变换与小波程序运行结果:S1.傅立叶变换与小波Gabor变换的幅频图S1.傅立叶变换与小波Gabor变换的等高线图S1.傅立叶变换与小波3、小波变换窗口大小(即面积)不变,但窗口形状随频率高低而变化,是一种时间窗和频率窗都可改变的时频分析方法,在低频有较高的频率分辨率和较低的时间分辨率,在高频部分有较低的频率分辨率和较高的时间分辨率,对信号局部特征的表征能力强。S2.连续小波变换1、基本小波的定义22,()()()()()()()1(),,;0RabtLRFwFwFwCdwwtttbtabRaaa设,其傅立叶变换为,若满足容许条件(完全重构条件/恒等分辨条件):则称为一个基本小波或母小波。将母函数经伸缩和平移后得:S2.连续小波变换2、连续小波变换的定义2,2()()1(,),()11()(,)fabRfftLRtbWabfftdtaatbftWabdadbCaa对任意函数的连续小波变换为:其重构公式(逆变换)为:S2.连续小波变换3、约束条件,2()()()()()(0)0()(2),0abjttttdtFwFwFtdtFwAFwBAB由于基本小波生成的小波序列在小波变换中对被分析信号起着观察窗的作用,故还应满足一般函数的约束条件:故是一个连续函数,这意味着为了满足完全重构条件,在原点要等于零,即:为使信号重构的实现在数值上稳定,还要求满足稳定性条件:S2.连续小波变换4、对偶小波*2()()()()(2)jjttFwFwFw若小波满足稳定性条件,则定义一个对偶小波,其傅立叶变换为:可见,稳定性条件实际上是对分母的约束条件,保证对偶小波的傅立叶变换存在。一个小波的对偶小波一般并不唯一,而实际应用却希望一个小波具有唯一的对偶小波。寻找这样的小波是小波分析的基本问题之一。S2.连续小波变换5、连续小波的重要性质()(,)()(,)()(,)()1(,)ffffftWabftWabftWabfctWcacbcab(1)线性:一个多分量信号的小波变换等于各分量的小波变换之和;(2)平移不变性:若的小波变换为,则的小波变换为;(3)伸缩共变性:若的小波变换为,则的小波变换为;(4)自相似性:对应不同尺度参数和不同平移参数的连续小波之间是自相似的;(5)冗余性:连续小波变换中存在信息表述的冗余。S2.连续小波变换6、连续小波变换的计算过程从定义式可知,连续小波变换计算分以下5个步骤进行。(1)选定一个小波,并与处在分析时段部分的信号相比较。(2)计算该时刻的连续小波变换系数C。如下图所示,C表示了该小波与处在分析时段内的信号波形相似程度。C愈大,表示两者的波形相似程度愈高。小波变换系数依赖于所选择的小波。因此,为了检测某些特定波形的信号,应该选择波形相近的小波进行分析。S2.连续小波变换6、连续小波变换的计算过程(3)如图1所示,调整参数b,调整信号的分析时间段,向右平移小波,重复①~②步骤,直到分析时段已经覆盖了信号的整个支撑区间。(4)调整参数a,尺度伸缩,重复①~③步骤。(5)重复①~④步骤,计算所有的尺度的连续小波变换系数,如图2所示。图1图2S2.连续小波变换6、连续小波变换的计算过程上述步骤可用以下的公式表示。设f(t)=f(k△t),t∈(k,K+1),则(*)112112112(,)()d()d()ddkfkkkkkkkktbWabftatatbfkatatbtbafkttaaS2.连续小波变换Matlab实现连续小波变换的代码precis=10;%小波函数积分精度控制signal=signal(:)';len=length(signal);coefs=zeros(length(scales),len);nbscales=length(scales);[psi_integ,xval]=intwave(wname,precis);%计算从-∞到k的小波积分序列wtype=wavemngr('type',wname);ifwtype==5psi_integ=conj(psi_integ);end%判断是否为复小波,对复小波取共轭xval=xval-xval(1);dx=xval(2);xmax=xval(end);ind=1;fork=1:nbscales%循环计算各尺度的小波系数a=scales(k);j=[1+floor([0:a*xmax]/(a*dx))];iflength(j)==1,j=[11];endf=fliplr(psi_integ(j));coefs(ind,:)=-sqrt(a)*wkeep(diff(conv(signal,f)),len);%计算公式(*)ind=ind+1;endS3.多分辨分析与小波变换1、多分辨分析的定义221121000()(),0()()(2),()(),()|jjZjjjjjjZjZjjLRVLRMRAVVVjZVVLRfxVfxVjZfxVfxkVkZRieszgVgxk空间中一列闭子空间称为的一个多分辨分析(),若该序列满足下列条件:(1)单调性:;(2)逼近性:,;(3)伸缩性:;(4)平移不变性:;(5)基存在性:存在,使011jjjjjkZVRieszVVVVW构成的基。多分辨分析是由一个尺度函数建立起来的,故多分辨分析的建立等价于寻找尺度函数在多分辨分析的框架下的性质。下面根据以及建立尺度函数方程的关系式。S3.多分辨分析与小波变换2、正交MRA尺度函数的定理121,22()(2)2()(2)(2)(2)22()2(2)jjZkkZkjjklkZjlkljkkZjjjkVxhxkhxxkdxxlhxkhxxk设是一个具有尺度函数的正交多分辨分析,则下列尺度关系式成立:其中,等价于:S3.多分辨分析与小波变换3、Mallat定理22121()()(2)()()(2)()()(1)2(2)()jkjZkkZkkZkkkjjjkZjjjjjVtMRAhlxhxkxxgxkxLRghWspanxkWWjjWVWx设,是一个正交,则存在使得下面的双尺度方程成立,且利用尺度函数构造函数的伸缩和平移构成的正交基,其中当时,,,。上述定义的函数称为小波函数。S3.多分辨分析与小波变换4、基于Mallat方法的信号分解重构算法11112222jjjjjjjjHfHffHfDf(1)基本思想设为能量有限信号在分辨率下的近似,则可进一步分解为在分辨率下的近似以及位于分辨率与之间的细节之和,其分解过程如下所示:S3.多分辨分析与小波变换21,,21,,1111111122()2()2()()kkmnjnjmmnjnjmjjjjjkjkkkjjkjkkjjjkkkhghgHfxaxkDfxdxkHfxaxaad(2)引理双尺度方程中系数、可通过内积来计算。(3)信号分解重构设则信号分解与重构变为寻找系数、与之间的关系。S3.多分辨分析与小波变换1211211212(1)(1)jjlklkkZjkjlklkkZjjkjkkllkllkZkZahadhaahahd通过推导可得分解过程的系数表达式为:重构过程的系数表达式为:S3.多分辨分析与小波变换Mallat信号分解重构的主要程序代码(1)信号函数定义%%1.正弦波定义f1=50;%频率1f2=100;%频率2fs=2*(f1+f2);%采样频率Ts=1/fs;%采样间隔N=120;%采样点数n=1:N;y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts);%信号函数S3.多分辨分析与小波变换(2)小波滤波器谱分析h=wfilters('db30','l');%低通g=wfilters('db30','h');%高通h=[h,zeros(1,N-length(h))];%补零(圆周卷积,且增大分辨率便于观察)g=[g,zeros(1,N-length(g))];%补零(圆周卷积,且增大分辨率便于观察)S3.多分辨分析与小波变换(3)MALLAT分解算法(圆周卷积的快速傅里叶变换实现)sig1=ifft(fft(y).*fft(h));%低通(低频分量)sig2=ifft(fft(y).*fft(g));%高通(高频分量)(4)MALLAT重构算法sig1=dyaddown(sig1);%2抽取sig2=dyaddown