一维连续小波变换的matlab基础程序实现
MATLAB小波变换指令及其功能介绍(超级有用)解读

MATLAB小波变换指令及其功能介绍1 一维小波变换的 Matlab 实现(1) dwt函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname'对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。
(2) idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。
'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。
X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。
2 二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能---------------------------------------------------dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换----------------------------------------------------------- (1) wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即:ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab实现(2) dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。
小波变换的matlab实现

举例: A1=upcoef('a','cA1','db1',1,ls); D1=upcoef('d','cD1','db1',1,ls);
subplot(1,2,1);plot(A1);title('Approximation A1')
subplot(1,2,2);plot(D1);title('Detail D1')
重构原始信号
*
2D图形接口
*
显示
*
小波分析用于信号处理
01
信号的特征提取
信号处理
常用信号的小波分析
GUI进行信号处理
*
正弦波的线性组合
S(t)=sin(2t)+sin(20t)+sin(200t)
*
2019
间断点检测
01
2020
波形未来预测
02
2021
各分信号的频率识别
03
2022
信号从近似到细节的迁移
*
多尺度二维小波
命令:wavedec2
格式: [C, S]=wavedec2(X,N,’wname’) [C, S]=wavedec2(X,N,Lo_D,Hi_D)
*
[C,S] = wavedec2(X,2,'bior3.7'); %图像的多尺度二维小波分解
提取低频系数
命令:appcoef2 格式: 1. A=appcoef2(C,S,’wname’,N) 2. A=appcoef2(C,S,’wname’) 3. A=appcoef2(C,S,Lo_R,Hi_R) 4. A=appcoef2(C,S,Lo_R,Hi_R,N) cA2 = appcoef2(C,S,'bior3.7',2); %从上面的C中提取第二层的低频系数
MATLAB小波变换指令及其功能介绍(超级有用)

MATLAB小波变换指令及其功能介绍1 一维小波变换的 Matlab 实现(1) dwt函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname'对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。
(2) idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。
'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。
X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。
2 二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能---------------------------------------------------dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换----------------------------------------------------------- (1) wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即:ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab实现(2) dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。
一个小波变换实例及Matlab实现

1、选择'(t)或,使心(t-k)J∙k z为一组正交归一基2、求h n。
h n *W(t)]或H( Jh?(2 •)/ ?( •)3、由h n求g n。
gn - ( -I) h1 Jn或G( J=e^1H (仁)4、由g n, ;:(t)构成正交小波基函数(t)⑴八g n ln(t)或?^ J=GC ■ /2)?C ■ /2)Haar小波的构造1)、选择尺度函数。
⑴=1 O *1 C)O 其他易知「(t - n)关于n为一正交归一基2)、求h nh n In(t);=2. - (t)(2t-n)dt其中n n 1壬F= 1 20 其他当n=0时,——Icp(2t)=[0 当n=1时,1 C -t2其他e J σj +26"S J U 6 N H e ^。
≡G怪A寸 超M O一L HU L ^二—7τdL I τu 6 0"u ⅛二甘 LHU≡ 超M 010!—’」丄U —&¥(?⅛H 0IHUP H (U l10)¾(I)Cb 匸∙f⅛LHU O H U ≡疼超M 0________CXI H — &) Cb其图形如下:1、Haar尺度函数Haar尺度函数空间:C , (2 jχ 2), (2 j X -1), (2j x), (2 jχ -1), :(2j x-1), ? J 为非负的整数,该空间又称为J级阶梯函数空间V i。
则V O 二V1二V2二=V jJ=V j= V j 1 随j的增加,分辨更为精细。
2、性质函数集、2j/2「(2j X - k): k Z ?是V j的一个标准正交基。
f(x) V0当且仅当f(2j x) V j。
3、Haar小波函数函数满足两点:(1)••是V1的成员;(2)••与V0正交。
(X)V(2x) _ (2x -1)-bo性质:j(,(x)dx=0(x)是对称的、局部支撑的函数;小波函数空间Wj : V a k (2j x-k),a k RkZW j是V j的正交互补,即V jT=V j二W j函数集、2j/2 "2j x-k):k・Zi是W i的一个标准正交基4、Haar小波分解与重建对Haar 小波,有(2j x^( (2j^xp :(2j4x))/2 (2jχ-1) = ( Q j"1 x) - ’(2j*x)) / 2Haar 小波分解定理: 设:f j (χ)=∖a k (2j x-k),f j (x) := V j k 目则它可以有如下分解:f j = f j 1 ' ' 'j Jfj 」八 a k(2 X -k), f jI (X^ V j JkNCe j 丄=Σ b k^(2j」x — k )Q j 」(X)EW j 二 k 目_ a 2k ' a 2k 1_ 2a 2k - a2k 12把函数f 分解成一个小波空间与一个尺度空间的分量f(x)=^2 (4x) 2 (4x _1) (4x _2) _ (4x _3)解:按照分解定理,此j=2, ; k=0,1,2,3对应的系数是2,2,1, -1 ;代入公式,得出分解后尺度2-2 C 0,2f(x) =2 (2x)'(2x -1)a k 」2+2 1 _1函数空间元素的系数是〒二2 w 0 ;分解后小波函数空间元素的系数是Matlab 程序image1=imread('512.jpg');image1=rgb2gray(image1); subplot(2,2,1);imshow(image1); title('original image');image1=double(image1); imagew=imread('shuiyin.bmp'); imagew= rgb2gray (imagew); subplot(2,2,2);imshow(imagew); title('original watermark');[ca,ch,cv,cd]=dwt2(image1,'db1');[ca1,ch1,cv1,cd1]=dwt2(ca, 'db1');[cas,chs,cvs,cds]=dwt2(ca1,'db1');M=512;N=64;for i=1:Nfor j=1:N Ca(i,j)=cas(i,j)+0.01*imagew(i,j); end;end;IM=idwt2(Ca,chs,cvs,cds,'db1'); IM1=idwt2(IM,ch1,cv1,cd1, 'db1'); markedimage=double(idwt2(IM1,ch,cv,cd,'db1')); subplot(2,2,3);colormap(gray(256)); image(markedimage); title('marked image');imwrite(markedimage,gray(256),'watermarked.bmp','bmp'); image1=imread('512.jpg');image1=rgb2gray(image1); image1=double(image1); imaged=imread('watermarked.bmp');[ca,ch,cv,cd]=dwt2(image1,'db1');[ca1,ch1,cv1,cd1]=dwt2(ca,'db1');[cas,chs,cvs,cds]=dwt2(ca1,'db1');[caa,chh,cvv,cdd]=dwt2(imaged,'db1');[caa1,chh1,cvv1,cdd1]=dwt2(caa,'db1');[caas,chhs,cvvs,cdds]=dwt2(caa1,'db1');for p=1:Nfor q=1:NW(p,q)=100*(caas(p,q)-cas(p,q));end; subplot(2,2,4); colormap(gray(256)); image(W);title(' 从含水印图像中提取的水印');imwrite(W,gray(256),'watermark.bmp','bmp');。
MATLAB小波变换指令及其功能介绍(超级有用)

MATLAB小波变换指令及其功能介绍(超级有用)MATLAB小波变换指令及其功能介绍1 一维小波变换的 Matlab 实现(1) dwt函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT 说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数'wname'对信号X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。
(2) idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。
'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。
X=idwt(cA,cD,'wname',L) 和X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。
2 二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能---------------------------------------------------dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换----------------------------------------------------------- (1) wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即:ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab实现(2) dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。
MATLAB小波变换指令及其功能介绍(超级有用)(可编辑修改word版)

MATLAB 小波变换指令及其功能介绍1一维小波变换的 Matlab 实现(1)dwt 函数功能:一维离散小波变换格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname'对信号 X 进行分解,cA、cD 分别为近似分量和细节分量;[cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。
(2)idwt 函数功能:一维离散小波反变换格式:X=idwt(cA,cD,'wname')X=idwt(cA,cD,Lo_R,Hi_R)X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分X=idwt(cA,cD,Lo_R,Hi_R,L)说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。
'wname' 为所选的小波函数X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和Hi_R 经小波反变换重构原始信号 X 。
X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。
2二维小波变换的 Matlab 实现二维小波变换的函数别可以实现一维、二维和 N 维 DFT函数名函数功能dwt2 二维离散小波变换wavedec2 二维信号的多层小波分解idwt2 二维离散小波反变换waverec2 二维信号的多层小波重构wrcoef2 由多层小波分解重构某一层的分解信号upcoef2 由多层小波分解重构近似分量或细节分量detcoef2 提取二维信号小波分解的细节分量appcoef2 提取二维信号小波分解的近似分量upwlev2 二维小波分解的单层重构dwtpet2 二维周期小波变换idwtper2 二维周期小波反变换(1)wcodemat 函数功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式:Y=wcodemat(X,NB,OPT,ABSOL)Y=wcodemat(X,NB,OPT)Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16;OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现一维、二维和 N 维 DFTOPT='row' ,按行编码OPT='col' ,按列编码OPT='mat' ,按整个矩阵编码函数 fft、fft2 和 fftn 分ABSOL 是函数的控制参数(缺省值为 '1'),即: ABSOL=0 时,返回编码矩阵ABSOL=1 时,返回数据矩阵的绝对值 ABS(X)1. 离散傅立叶变换的 Matlab 实现(2)dwt2 函数功能:二维离散小波变换格式:[cA,cH,cV,cD]=dwt2(X,'wname')[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)说明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函数'wname' 对二维信号 X 进行二维离散小波变幻;cA,cH,cV,cD 分别为近似分量、水平细节分量、垂直细节分量和对角细节分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通滤波器 Lo_D 和 Hi_D 分解信号 X 。
连续小波变换CWT以及MATALB例程

几点结论:
(1)尺度的倒数1/a在一定意义上对应于频 率ω。即尺度越小,对应的频率越高。如果 我们将尺度理解为时间窗口的话,则小尺度 信号为短时间信号,大尺度信号为长时间信 号。
(2)在任何τ值上,小波的时频窗口大小△t 和△ ω都随频率ω(或a)的变化而变化。 与短时傅立叶变换中的基 g, (t) g(t )e jt 不同。
t=0:0.01:1; f=3*sin(100*pi*t)+2*sin(68*pi*t)+5*cos(72*pi*t)+randn(1, length(t)); coefs=cwt(f,[1:0.2:3],db3,plot); title(对不同的尺度小波变换系数值); Ylabel(尺度); Xlabel(时间); 程序输出结果如图所示。
注意:直接将尺度序列取为等差序列,例如1:1:64,将只能得到正确 的尺度-时间-小波系数图,而无法将其转换为频率-时间-小波系数 图。这是因为此时的频率间隔不为常数。 。
下面给出一实际例子来说明小波时频图的绘制。所取仿真信号是由频率分别为100Hz和
200Hz的两个正弦分量所合成的信号。
clear;
图1.11
小波变换的系数用图所示的 灰度值图表征,横坐标表示变换 系数的系号,纵坐标表示尺度, 灰度颜色越深,表示系数的值越 大。
绘图原理 1.需要用到的小波工具箱中的三个函数 cwt(),centfrq(),
scal2frq()
COEFS = cwt(S,SCALES,‘wname’) 说明:该函数能实现连续小波变换,其中S为输入信号,SCALES为 尺度,wname为小波名称。
%尺度序列的长度,即scal的长度
wcf=centfrq(wavename);
一维连续小波变换的matlab基础程序实现

小波变换实验二连续小波变换1、实验目的本实验的目的在于充分理解连续小波变换的算法和作用,利用matlab程序实现对一维信号进行连续小波变换,进而在程序的编辑过程理解一位连续小波变换的小波系数矩阵的含义。
同时通过对预算的到的小波系数矩阵进行分析解释,得到原始信号的频谱分布以及了解小波系数在尺度和位移两个分量上的意义。
2、实验原理、实验编程思路1、根据书本的理论知识,知道一维连续小波变换的公式为:实际在编程过程当中,对于上式中积分的求解可以采用将积分函数离散化,通过求和来实现求积分,离散的过程如下式:本实验中,根据题目可以知道采样的时间间隔为0.03s,即上式中Δt,在实际编程当中为了计算方便可以省略掉这个时间常数,所以在编程过程当中使用的公式实际为:2、小波函数的选取:使用墨西哥草帽(mexhat)小波来进行小波变换,墨西哥草帽的函数为(支撑区间为-5—5):对于连续小波函数的采样间隔,根据不同的尺度参量来进行采样,比如尺度为i,实际对应小波的采样间隔取k/i,以保持和原信号在不同尺度上的同步。
3、程序运算简化:在程序设计过程当中,如果对于小波系数的每一个系数都按照公式来计算,算法的时间复杂度应当为o(n3)。
但通过对公式的分析,不难看出,对于同意尺度a,相邻的两个小波系数之间的求和项,只有第一项或者最后一项或者二者都不同,所以在下一个系数求解的时候可以减少一次循环,从而将时间复杂度降到o(n2),运算效率大大提高。
4、在程序设计的过程当中,还分别对原信号进行傅里叶分析和直接的cwt变换,将得到的结果与设计的连续小波变换程序进行比对分析。
3、实验程序和结果墨西哥草帽小波参数获取函数:mexh.m连续小波变换主函数:mexh-cwt.m傅里叶分析和cwt分析:fft cwt result.m1、利用mexh-cwt.m对源数据进行分析得到的结果:原信号波形图小波系数矩阵及原信号的三个主成分小波系数矩阵的三维视图功率谱图和功率等值线图从上述的小波变换结果,特别是小波系数矩阵的信息中可以看出,原始信号主要有三个平率不同且时域分布也不同的主成份组成,从图中可以定性地看出,频率最高的成分1始终出现在整个信号段,而频率次之的成分2只在信号刚开始的阶段出现,频率最低的成分3基本上在成分2消失之后开始出现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波变换实验二
连续小波变换
1、实验目的
本实验的目的在于充分理解连续小波变换的算法和作用,利用matlab程序实现对一维信号进行连续小波变换,进而在程序的编辑过程理解一位连续小波变换的小波系数矩阵的含义。
同时通过对预算的到的小波系数矩阵进行分析解释,得到原始信号的频谱分布以及了解小波系数在尺度和位移两个分量上的意义。
2、实验原理、实验编程思路
1、根据书本的理论知识,知道一维连续小波变换的公式为:
实际在编程过程当中,对于上式中积分的求解可以采用将积分函数离散化,通过求和来实现求积分,离散的过程如下式:
本实验中,根据题目可以知道采样的时间间隔为0.03s,即上式中Δt,在实际编程当中为了计算方便可以省略掉这个时间常数,所以在编程过程当中使用的公式实际为:
2、小波函数的选取:使用墨西哥草帽(mexhat)小波来进行小波变换,墨西哥草帽的函数为(支撑区间为-5—5):
对于连续小波函数的采样间隔,根据不同的尺度参量来进行采样,
比如尺度为i,实际对应小波的采样间隔取k/i,以保持和原信号在不同尺度上的同步。
3、程序运算简化:
在程序设计过程当中,如果对于小波系数的每一个系数都按照公式来计算,算法的时间复杂度应当为o(n3)。
但通过对公式的分析,不难看出,对于同意尺度a,相邻的两个小波系数之间的求和项,只有第一项或者最后一项或者二者都不同,所以在下一个系数求解的时候可以减少一次循环,从而将时间复杂度降到o(n2),运算效率大大提高。
4、在程序设计的过程当中,还分别对原信号进行傅里叶分析和直接的cwt变换,将得到的结果与设计的连续小波变换程序进行比对分析。
3、实验程序和结果
墨西哥草帽小波参数获取函数:mexh.m
连续小波变换主函数:mexh-cwt.m
傅里叶分析和cwt分析:fft cwt result.m
1、利用mexh-cwt.m对源数据进行分析得到的结果:
原信号波形图
小波系数矩阵及原信号的三个主成分
小波系数矩阵的三维视图
功率谱图和功率等值线图
从上述的小波变换结果,特别是小波系数矩阵的信息中可以看出,原始信号主要有三个平率不同且时域分布也不同的主成份组成,从图中可以定性地看出,频率最高的成分1始终出现在整个信号段,而频率次
之的成分2只在信号刚开始的阶段出现,频率最低的成分3基本上在成分2消失之后开始出现。
这些信息都是从单纯的傅里叶频谱分析中无法得到的。
2、利用fft cwt result.m对原信号进行频谱分析和算法校验:
从上述傅里叶频谱分析图中同样可以看出信号的三个主成份,且对
应频率近似分别为:0.651Hz、1.237Hz、2.604Hz。
在小波变换中,每个尺度对应0.03s,上述三个频率对应周期分别为:1.536s、0.808s、0.384。
对应到尺度域上容易计算的对应的尺度间隔分别为:51.2、26.9、12.8。
再次观察小波系数,分析得到的三个主成份对应的尺度间隔基本吻合,也验证了我们计算得到的结果。