小波信号分解与重构的Matlab程序.doc

小波信号分解与重构的Matlab程序.doc

ID:56704327

大小:20.00 KB

页数:4页

时间:2020-07-05

小波信号分解与重构的Matlab程序.doc_第1页
小波信号分解与重构的Matlab程序.doc_第2页
小波信号分解与重构的Matlab程序.doc_第3页
小波信号分解与重构的Matlab程序.doc_第4页
资源描述:

《小波信号分解与重构的Matlab程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Matlab小波分析工具箱丰富的函数和强大的仿真功能为我们学习小波、用好小波提供了方便、快捷的途径,但是,如果我们要深入掌握小波分析的原理,真正学好、用好小波,就应该尽量用自己编写的程序去实现小波变换和信号分析,尽量在自己的程序中少调用Matlab提供的函数,多用自己的理解去编写相关的小波函数,这样的过程是一个探索、求知的过程,更能让我们体会到小波的强大和学习的乐趣。下面,我把自己编写的小波一维、二维信号分解和重构Matlab程序共享出来,也希望有朋友共享自编的程序,共同学习,提高程序的效率和简洁性。首先要说明的一点是,虽然是自己编写Matlab程序,但并不是说一点也不用Ma

2、tlab的自带函数。我们要编写的是实现小波变换的主要功能函数,而绘图等基本功能还是要用到Matlab函数的。而且,根据小波变换的滤波器组原理,原始信号要通过低通、高通滤波器处理,这里就涉及到卷积这一运算步骤。卷积——FFT算法的实现,相信很多朋友都能用Matlab、C语言等来实现,不过与Matlab自带的用机器语言编写的FFT程序相比,运算速度一般会慢几倍、几十倍。所以,我的程序里边涉及卷积的就直接调用Matlab的conv()函数了。我们知道,小波变换的一级分解过程是,原始信号分别进行低通、高通滤波,再分别进行二元下抽样,就得到低频、高频(也称为平均、细节)两部分系数;而多

3、级分解则是对上一级分解得到的低频系数再进行小波分解,是一个递归过程。以下是一维小波分解的程序:function[cA,cD]=mydwt(x,lpd,hpd,dim);%函数[cA,cD]=MYDWT(X,LPD,HPD,DIM)对输入序列x进行一维离散小波分解,输出分解序列[cA,cD]%输入参数:x——输入序列;%         lpd——低通滤波器;%         hpd——高通滤波器;%         dim——小波分解级数。%输出参数:cA——平均部分的小波分解系数;%          cD——细节部分的小波分解系数。cA=x;      %初始化cA,c

4、DcD=[];fori=1:dim   cvl=conv(cA,lpd);  %低通滤波,为了提高运行速度,调用MATLAB提供的卷积函数conv()   dnl=downspl(cvl);  %通过下抽样求出平均部分的分解系数   cvh=conv(cA,hpd);  %高通滤波   dnh=downspl(cvh);  %通过下抽样求出本层分解后的细节部分系数   cA=dnl;            %下抽样后的平均部分系数进入下一层分解   cD=[cD,dnh];       %将本层分解所得的细节部分系数存入序列cDendfunctiony=downspl(x);

5、%函数Y=DOWMSPL(X)对输入序列进行下抽样,输出序列Y。%下抽样是对输入序列取其偶数位,舍弃奇数位。例如x=[x1,x2,x3,x4,x5],则y=[x2,x4].N=length(x);       %读取输入序列长度M=floor(N/2);       %输出序列的长度是输入序列长度的一半(带小数时取整数部分)i=1:M;y(i)=x(2*i);而重构则是分解的逆过程,对低频系数、高频系数分别进行上抽样和低通、高通滤波处理。要注意重构时同一级的低频、高频系数的个数必须相等。functiony=myidwt(cA,cD,lpr,hpr);%函数MYIDWT()对输

6、入的小波分解系数进行逆离散小波变换,重构出信号序列y%输入参数:cA——平均部分的小波分解系数;%          cD——细节部分的小波分解系数;%          lpr、hpr——重构所用的低通、高通滤波器。lca=length(cA);            %求出平均、细节部分分解系数的长度lcd=length(cD);while(lcd)>=(lca)         %每一层重构中,cA和cD的长度要相等,故每层重构后,                           %若lcd小于lca,则重构停止,这时的cA即为重构信号序列y。   upl=upsp

7、l(cA);         %对平均部分系数进行上抽样   cvl=conv(upl,lpr);     %低通卷积     cD_up=cD(lcd-lca+1:lcd);   %取出本层重构所需的细节部分系数,长度与本层平均部分系数的长度相等   uph=upspl(cD_up);      %对细节部分系数进行上抽样   cvh=conv(uph,hpr);     %高通卷积     cA=cvl+cvh;            %用本层重构的序列更新cA,以进行下一层重构   cD=cD(1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。