第六章 基于MATLAB的小波分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 小波分析中的通用函数
举例: uam=dyadup(a,0,'m')%插值矩阵a的偶数行或偶数列 uam = 1 0 2 0 0 0 3 0 4 0 0 0 5 0 6 0 0 0 7 0 8
6.1 小波分析中的通用函数
4.wavefun 功能:小波函数和尺度函数 格式:①[phi,psi,Xval]=wavefun(‘wname’,iter) ②[phi1,hsi1,phi2,psi2,Xval]=wavefun(‘wname’,iter) ③[psi,Xval]=wavefun(‘wname’,iter) ④wavefun(‘wname’,a,b) 说明:该函数用来返回小波函数和相应的尺度函数(在尺度函数存在的 情况下)的近似值。正整数iter决定了反复计算的次数,从而确定了近 似值的精确程度。 对于一个正交小波,格式①返回尺度函数和小波函数,X在支撑空间上 有2iter个点。 对于一个双正交小波,格式②返回分别用于分解的尺度函数(1)和小 波函数(1) 即重构的尺度函数(2)和小波函数(2)。 对于一个Meyer小波,有:[phi,psi,Xval]=wavefun( ‘wname’,iter)。 对 于 一 个 M o r l e t 小 波 或 M e x i c a n H a t 小 波 , 有 [psi,Xval]=wavefun(‘wname’,iter)。 对 于 格 式 ④ , a , b 是 正 整 数 , 且 格 式 ④ 等 价 于 wavefun(‘wname’,max(a,b))。它计算尺度函数和小波函数的近似值 并画出图形。
6.1 小波分析中的通用函数
图6.2小波函数sym4的近似值
6.1 小波分析中的通用函数
5.wavemngr 功能:小波管理 格式:①wavemngr(‘create’) ②wavemngr(‘add’,Fn,Fsn,Wt,Nums,File) ③wavemngr(‘add’,Fn,Fsn,Wt,Nums,File,B) ④wavemngr(‘del’,N) ⑤wavemngr(‘restore’) ⑥wavemngr(‘restore’,In2) ⑦Out1=wavemngr(‘read’) ⑧Out1=wavemngr(‘read’,In2) ⑨Out1=wavemngr(‘read_asc’) 说明:该函数是一个用于小波管理的函数,它可以对小波进行新建、添 加、删除、存储和读取操作。对于格式①,该函数可以用来创造一个新的小
use = uso =
a
=
1
3 5 7
2
4 6 8
6.1 小波分析中的通用函数
举例: uar=dyadup(a,0,'r')%插值矩阵a的偶数行 uac=dyadup(a,1,'c')%插值矩阵a的奇数列 输出结果: uar = 1 2 0 0 3 4 0 0 5 6 0 0 7 8 uac = 0 1 0 2 0 0 3 0 4 0 0 5 0 6 0 0 7 0 8 0
6.1 小波分析中的通用函数
举例: %下面列出在MATLAB中已有的小波函数 wavemngr('read') 输出结果: ans = =================================== Haar haar Daubechies db BiorSplines bior Coiflets coif Symlets sym Morlet morl Mexican_hat mexh Meyer meyr
10
6.1 小波分析中的通用函数
举例: dar=dyaddown(a,0,'r')%抽取矩阵a的偶数行 dac=dyaddown(a,1,'c')%抽取矩阵a的奇数列 dam=dyaddown(a,0,'m')%抽取矩阵a的偶数行和偶数列 输出结果: dar = 5 6 7 8 13 14 15 16 dac = 1 3 5 7 9 11 13 15 dam = 6 8 14 16
第六章 基于MATLAB的小波分析
主讲人:第四组 庞爽爽
第六章 基于MATLAB的小波分析
MATLAB 是美国 Mathworks 公司的产品, MATLAB 是矩阵 (Matrix)和实验室(Laboratory )的缩写,其强大的 科学计算与可视化功能、简单易用的开放式可扩展环境 以及多达30多个面向不同领域而扩展的工具箱(Toolbox) 支持,使得MATLAB 在许多学科领域中成为计算机辅助设 计与分析、算法研究和应用开发的基本工具和首选平台。 MATLAB小波分析工具箱是在MATLAB中实现各种小波变换 的基础。 MATLAB 小波分析工具箱中提供了两种处理方式, 命令行和图形界面,命令行提供了灵活的处理方式,而 且可以和 Matlab 的强大接口功能连接,使用户方便地导 出各种小波工具。而图形界面方式(GUI)则具有操作简 便、界面友好的特点。
6.1 小波分析中的通用函数
用户可以实现与小波相关的滤波器组进行信号的插值和 采样、计算小波函数和尺度函数以及小波管理等功能。 表6.1 通用小波变换函数
6.1 小波分析中的通用函数
1.biorfilt 功能:双正交小波滤波器组
格式:
①[Lo-D,Hi-D,Lo-R,Hi-R]= biorfilt(DF,RF) ②[Lo-D1,Hi-D1,Lo-R1,Hi-R1,Lo-D2,Hi-D2,Lo-R2,HiR2]= biorfilt(DF,RF,’8’) 说明:该函数可以产生与双正交小波相关联的四个或八个 滤波器组, DF 为分解滤波器, RF 为重构滤波器。格式①用 来计算与由DF,RF所指定的双正交小波相关联的四个滤波器, Hi-R 为重构高通滤波器。格式②返回八个滤波器,前四个 与分解小波相关,后四个与重构小波相关。
6.1 小波分析中的通用函数
%下面列出在MATLAB中存在的所有的小波函数 wavemngr('read',1) 输出结果: ans = =================================== Haar haar =================================== Daubechies db -----------------------------db1 db2 db3 db4 db5 db6 db7 db8 db9 db10 db** =================================== BiorSplines bior -----------------------------bior1.1 bior1.3 bior1.5 bior2.2 bior2.4 bior2.6 bior2.8 bior3.1 bior3.3 bior3.5 bior3.7 bior3.9 bior4.4 bior5.5 bior6.8 ===================================
6.1 小波分析中的通用函数
图6.1 与bior3.5相关联的分解滤波器和重构滤波器
6.1 小波分析中的通用函数
2.dyaddown
功能:二元取样 格式:①Y= dyaddown(X,evenodd) ②Y= dyaddown(X) ③Y= dyaddown(X,evenodd,’type’) ④Y= dyaddown(X,’type’, evenodd) 说明:该函数是用来从向量X中每隔一个元素抽取一个元素 组成向量 Y。对于格式①,如果evenodd 为偶数,则进行偶 取样,即Y(k)=X(2k);如果evenodd为奇数,则进行奇取 样,即 Y ( k ) =X(2k+1) ,如果省略 evenodd 的值(即格式 ②),则evenodd=0,Y(k)=X(2k)。对于格式③④的情况, X是一个矩阵,如果type=c,则抽取矩阵X偶(或奇)数列, 如果type=r, 则抽取矩阵 X 偶(或奇)数行,如果 type=m, 则抽取矩阵X偶(或奇)数行和偶(或奇)数列。
6.1 小波分析中的通用函数
3.dyadup 功能:二元插值 格式:①Y= dyadup(X,evenodd) ②Y= dyadup(X) ③Y= dyadup(X,evenodd,’type’) ④Y= dyadup(X,’type’, evenodd) 说明:该函数是用来从向量X中每隔一个元素填充一个0元素组成向量Y, 该函数在小波重构算法中非常有用。对于格式①,如果evenodd为偶数, 则进行偶插值,即Y(2k-1)=X(k);Y(2k)=0;如果evenodd为奇数, 则进行奇插值,即Y(2k-1)0,Y(2k)=X(k);如果省略evenodd的值 (即格式②),则evenodd=0,Y(2k-1)=X(k),Y(2k)=0。对于格式 ③④的情况,X是一个矩阵,如果type=c,则插值矩阵X偶(或奇)数列, 如果type=r, 则插值矩阵X偶(或奇)数行,如果type=m, 则抽取矩阵X 偶(或奇)数行和偶(或奇)数列。
6.1 小波分析中的通用函数
举例: %计算与bior3.5相关联分解滤波器DF和重构滤波器RF [RF,DF]=biorwavf('bior3.5'); %计算所需的四个滤波器 [Lo_D,Hi_D,Lo_R,Hi_R]=biorfilt(DF,RF); subplot(221);stem(Lo_D); title('分解低通滤波器');grid; subplot(222);stem(Hi_D); title('分解高通滤波器');grid; subplot(223);stem(Lo_R); title('重构低通滤波器');grid; subplot(224);stem(Hi_R); title('重构高通滤波器');grid; 输出结果(如图6.1所示);
6.1 小波分析中的通用函数
举例: s=1:10%定义一个元素有1到10的向量s dse=dyaddown(s)%进行偶数序列抽取 %dse=dyaddown(s,0))%进行偶数序列抽取 dso=dyaddown(s,1)%进行奇数序列抽取 a=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]%定义一个矩阵a 输出结果: s = 1 2 3 4 5 6wenku.baidu.com7 8 9 dse = 2 4 6 8 10 dso = 1 3 5 7 9 a = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
波函数(扩展名为*.inf或*.asc);对于②、③,该函数可以把一个新的小波函 数加到工具箱里,Fn是Family Name的缩写,Fsn是Family Short Name的缩写, Wt是Wavelet Type的缩写。当Wt=1时,为正交小波,当Wt=2时,为双正交小波, 当Wt=3时,为带尺度函数的小波,当Wt=4时,为不带尺度函数的小波。Nums为字 符串的个数,File为小波函数名,对于Wt为3、4的情况B为小波有效支撑的上下 边界;对于④,该函数是用来删除一小波,N为小波函数名;对于⑤、⑥,该函 数用来保存先前的小波函数;对于⑦、⑧、⑨,该函数是用来读取小波函数。
6.1 小波分析中的通用函数
举例: iter=10;wav='sym4';%设置小波的名字和计算的次数 %下面用迭代算法计算小波函数的近似值并画出波形图 for I=1:iter [phi,psi,Xval]=wavefun(wav,I); plot(Xval,psi); hold on end title('小波函数sym4的近似值(iter从1到10)'); hold off 输出结果:(如图6.2所示)
6.1 小波分析中的通用函数
举例: s=1:5%定义一个元素有1到5的向量s use=dyadup(s,0)%进行偶数序号插值 uso=dyadup(s,1)%进行奇数序号插值 a=[1,2;3,4;5,6;7,8]%定义一个矩阵a 输出结果:
s
=
1
1 0
2
0 1 0
3
2 2
4
0 0
5
3 3 0 0 4 4 0 0 5 5 0