matlab小波分析源代码分析_第1页
matlab小波分析源代码分析_第2页
matlab小波分析源代码分析_第3页
matlab小波分析源代码分析_第4页
matlab小波分析源代码分析_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

matlab小波分析源代码分析MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。matlab小波分析源代码[x,map]=imread(‘MUCS_新建文件夹_32603.ptl_208.bmp’);subplot(1,2,1);imshow(x);[c,s]=wavedec2(x,3,‘sym4’);Csize=size(c);fori=1:Csize(2)if(c(i)》100)%低频分量----s中第一维的长度c(i)=1*c(i);elsec(i)=0.9*c(i);%高频分量endendx1=waverec2(c,s,‘sym4’);im=uint8(x1);subplot(1,2,2);imshow(im);[c,s]=wavedec2(X,2,‘bior3.7’);%对图像用小波进行层分解cal=appcoef2(c,s,‘bior3.7’,1);%提取小波分解结构中的一层的低频系数和高频系数ch1=detcoef2(‘h’,c,s,1);%水平方向cv1=detcoef2(‘v’,c,s,1);%垂直方向cd1=detcoef2(‘d’,c,s,1);%斜线方向a1=wrcoef2(‘a’,c,s,‘bior3.7’,1);%各频率成份重构[c,s]=wavedec2(X,1,‘sym4’);a1=appcoef2(c,s,‘sym4’,1);%小波分解结构中的一层的低频系数,下面是3个高频系数a1=2*a1;h1=detcoef2(‘h’,c,s,1);v1=detcoef2(‘v’,c,s,1);d1=detcoef2(‘d’,c,s,1);h1=0.5*h1;v1=0.5*v1;d1=0.5*d1;y=idwt2(a1,h1,v1,d1,‘sym4’);loadwbarb;X1=X;map1=map;subplot(2,2,1);image(X1);colormap(map1);title(‘图像wbarb’);loadwoman;X2=X;map2=map;subplot(2,2,2);image(X2);colormap(map2);title(‘图像woman’);%=====================================%对上述二图像进行分解[c1,l1]=wavedec2(X1,2,‘sym4’);[c2,l2]=wavedec2(X2,2,‘sym4’);%对分解系数进行融合c=c1+c2;%=====================================%应用融合系数进行图像重构并显示XX=waverec2(c,l1,‘sym4’);subplot(2,2,3);image(XX);title(‘融合图像1’);Csize1=size(c1);%=====================================%对图像进行增强处理fori=1:Csize1(2)c1(i)=1.2*c1(i);endCsize2=size(c2);forj=1:Csize2(2)c2(j)=0.8*c2(j);end%=====================================%通过减小融合系数以减小图像的亮度c=0.5*(c1+c2);%=====================================%对融合系数进行图像重构XXX=waverec2(c,l2,‘sym4’);%=====================================%显示重构结果subplot(2,2,4);image(XXX);title(‘融合图像2’);%本程序实现下述功能:首先读入原始图像,并对它使用db3小波进行2层分解,%然后对分解系数进行处理突出所需,弱化不需要的部分%装载并显示原始图像clearall;clc;loadflujet;subplot(1,2,1);image(X);colormap(map);title(‘原始图像’);%=====================================%对图像X用小波db3进行2层分解[c,l]=wavedec2(X,2,‘db3’);Csize=size(c);%=====================================%对分解系数作处理以突出所需部分并弱化不需要部分fori=1:Csize(2)if(c(i)》300)%低频分量c(i)=2*c(i);elsec(i)=0.5*c(i);%高频分量endend%=====================================%重构图像并显示X1=waverec2(c,l,‘db3’);subplot(1,2,2);image(X1);colormap(map);title(‘增强图像’);[c,s]=wavedec2(x,2,‘sym4’);Csize=size(c);fori=1:Csize(2)if(c(i)》169)%低频分量----s中第一维的长度c(i)=2*c(i);elsec(i)=0.3*c(i);%高频分量endendx1=waverec2(c,s,‘sym4’);im=uint8(x1);imshow(im);二维小波变换的Matlab实现%oun\{K*Y二维小波变换的函数-------------------------------------------------函数名函数功能---------------------------------------------------‘d3dtBe’x6gdwt2二维离散小波变换wavedec2二维信号的多层小波分解idwt2二维离散小波反变换waverec2二维信号的多层小波重构zH!f6~)}-P_wrcoef2由多层小波分解重构某一层的分解信号0E,\|.o|DT2@2b2K$Uupcoef2由多层小波分解重构近似分量或细节分量detcoef2提取二维信号小波分解的细节分量appcoef2提取二维信号小波分解的近似分量upwlev2二维小波分解的单层重构dwtpet2二维周期小波变换4Y/aN&Gq]EB“H)Widwtper2二维周期小波反变换-------------------------------------------------------------9Od7D`by&lX{IgusI`(1)wcodemat函数功能:对数据矩阵进行伪彩色编码格式:Y=wcodemat(X,NB,OPT,ABSOL)‘k#eCaI%HY=wcodemat(X,NB,OPT)i)E)p_!O-kjJ^Y=wcodemat(X,NB)Y=wcodemat(X)说明:Y=wcodemat(X,NB,OPT,ABSOL)返回数据矩阵X的编码矩阵Y;NB伪编码的最大值,即编码范围为0~NB,缺省值NB=16;OPT指定了编码的方式(缺省值为’mat‘),即:r(o?Lj(yefNOPT=’row‘,按行编码OPT=’col‘,按列编码OPT=’mat‘,按整个矩阵编码ABSOL是函数的控制参数(缺省值为’1‘),即:ix”^:|~5{ABSOL=0时,返回编码矩阵ABSOL=1时,返回数据矩阵的绝对值ABS(X)(2)dwt2函数DJ~0D/mS:OS“I功能:二维离散小波变换Bct_)hOXI格式:[cA,cH,cV,cD]=dwt2(X,’wname‘)3AN_WF[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。$Kv*SX2^8GQ7?M_dB(g”d(3)wavedec2函数功能:二维信号的多层小波分解HFS)bp$G:i格式:[C,S]=wavedec2(X,N,’wname‘)[C,S]=wavedec2(X,N,Lo_D,Hi_D)说明:[C,S]=wavedec2(X,N,’wname‘)使用小波基函数’wname‘对二维信号X进行N层分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D)使用指定的分解低通和高通滤波器Lo_D和Hi_D分解信号X。7Yj~q5aHS4e1r(4)idwt2函数功能:二维离散小波反变换格式:X=idwt2(cA,cH,cV,cD,’wname‘)X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)X=idwt2(cA,cH,cV,cD,’wname‘,S)X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)说明:X=idwt2(cA,cH,cV,cD,’wname‘)由信号小波分解的近似信号cA和细节信号cH、cH、cV、cD经小波反变换重构原信号X;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)使用指定的重构低通和高通滤波器Lo_R和Hi_R重构原信号X;X=idwt2(cA,cH,cV,cD,’wname‘,S)’z6Zex;o和X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)返回中心附近的S个数据点。(5)waverec2函数说明:二维信号的多层小波重构格式:X=waverec2(C,S,‘wname’)X=waverec2(C,S,Lo_R,Hi_R)说明:X=waverec2(C,S,‘wname’)由多层二维小波分解的结果C、S重构原始信号X,‘wname’为使用的小波基函数;X=waverec2(C,S,Lo_R,Hi_R)使用重构低通和高通滤波器Lo_R和Hi_R重构原信号。s)A?*ni?+Gmatlab小波分析源代码分析1.奇偶分开。非常简单,就是[2,4,6,8]组成一列向量,[1,3,5,7]组成一列向量。2.预测。用[2,4,6,8]来预测[1,3,5,7]。比如说1,3估计2;3,5估计4;5,7估计6;7,1估计8。(边缘处理,我采用循环方法)。估计公式可以用别人的,也可以自己做。举一个线性的例子:2=1*a+3*b,4=3*a+5*b,。。.,其他的都一样。这样我们就可找到最优的a,b,使得(2-(1*a+3*b)).^2+(4-(3*a+5*b)).^2+.。。最小化。就是最小均方准则。若正好为零,说明偶可以完全预测奇,也就是我们只要存储偶数列向量,和a,b就可以了,压缩也就是实现了。对于信号很长序列,就等于压缩了一半。当然,我们可以采用更复杂的立方差值预测,多项式预测,或其它的准则,来使其最小,这样我们的压缩也就得到了最优。3.提升。我们总希望,均方为零,但可望不可及。于是,提升就需要了。我们经过预测后,要存储的是偶数序列[2,4,6,8],新的奇数序列[n1,n3,n5,n7]=[2-(1*a+3*b),4-(3*a+5*b),。。.]和线性变换系数(a,b)。这里新的奇数序列就是高频分量。但偶数序列是不能完全代表信号的性质的,有所差距。所以我们要对偶数序列进行修正。即所谓的提升。我们这次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论