小波分析研究实验维离散小波变换Mallat快速算法.docx

上传人:b****2 文档编号:2427649 上传时间:2023-05-03 格式:DOCX 页数:20 大小:610.91KB
下载 相关 举报
小波分析研究实验维离散小波变换Mallat快速算法.docx_第1页
第1页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第2页
第2页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第3页
第3页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第4页
第4页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第5页
第5页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第6页
第6页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第7页
第7页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第8页
第8页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第9页
第9页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第10页
第10页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第11页
第11页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第12页
第12页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第13页
第13页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第14页
第14页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第15页
第15页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第16页
第16页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第17页
第17页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第18页
第18页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第19页
第19页 / 共20页
小波分析研究实验维离散小波变换Mallat快速算法.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

小波分析研究实验维离散小波变换Mallat快速算法.docx

《小波分析研究实验维离散小波变换Mallat快速算法.docx》由会员分享,可在线阅读,更多相关《小波分析研究实验维离散小波变换Mallat快速算法.docx(20页珍藏版)》请在冰点文库上搜索。

小波分析研究实验维离散小波变换Mallat快速算法.docx

小波分析研究实验维离散小波变换Mallat快速算法

小波分析实验:

实验2二维离散小波变换(Mallat快速算法)

实验目地:

在理解离散小波变换原理和Mallat快速算法地基础上,通过编程对图像进行二维离散小波变换,从而加深对二维小波分解和重构地理性和感性认识,并能提高编程能力,为今后地学习和工作奠定基础.b5E2R。

实验工具:

计算机,matlab6.5

附录:

(1)二维小波分解函数

%二维小波分解函数

 

functionY=mallatdec2(X,wname,level)

%输入:

X     载入地二维图像像数值;

%    level 小波分解次(级)数设定值(如果设定值超过最高可分解次数,按最高分解次数分解)p1Ean。

%     wname 小波名字waveletname

%输出:

Y    多极小波分解后地小波系数矩阵

 

[h,g]=wfilters(wname,'d'); %h,g分别为低通和高通滤波器

X=double(X);

t=1;

hh=size(X,2);

 

whilet<=level 

   %先进行行小波变换

   for row=1:

hh

       Y(row,1:

hh)=mdec1(X(row,1:

hh),h,g);

   end

   %再进行列小波变换

   forcol=1:

hh

       temp=mdec1(Y(1:

hh,col)',h,g);

       Y(1:

hh,col)=temp';

   end

t=t+1;

hh=hh/2;

X=Y;

end

 

%内部子函数,对一行(row)矢量进行一次小波变换,利用fft实现

functiony=mdec1(x,h,g)

%输入:

x行数组

%    h为低通滤波器

%    g为高通滤波器

%输出:

y进行一级小波分解后地系数

lenx=size(x,2);

lenh=size(h,2);

 

rh=h(end:

-1:

1);

rrh=[zeros(1,(lenx-lenh)),rh];

rrh=circshift(rrh',1)';

 

rg=g(end:

-1:

1);

rrg=[zeros(1,(lenx-lenh)),rg];

rrg=circshift(rrg',1)';

r1=dyaddown(ifft(fft(x).*fft(rrh,lenx)),1); %usepara1DXDiT。

r2=dyaddown(ifft(fft(x).*fft(rrg,lenx)),1);

y=[r1,r2];

 

(2)二维小波重构函数

%二维小波重构函数

functionY=mallatrec2(X,wname,level)

%输入:

X     载入地小波系数矩阵;

%    level 小波分解次(级)数设定值(如果设定值超过最高可分解次数,按最高分解次数分解)RTCrp。

%     wname 小波名字waveletname

%输出:

Y    重构图像矩阵

 

[h,g]=wfilters(wname,'d'); %h,g分别为重构低通滤波器和重构高通滤波器

 

hz=size(X,2);

h1=hz/(2^(level-1));

whileh1<=hz

   %对列变换

   forcol=1:

h1

       temp=mrec1(X(1:

h1,col)',h,g)';

       X(1:

h1,col)=temp;

   end

   %再对行变换

   forrow=1:

h1

       temp=mrec1(X(row,1:

h1),h,g);

        X(row,1:

h1)=temp;

    end

    h1=h1*2;

    

end

Y=X;

 

 

 

%内部子函数,对一行小波系数进行重构

functiony=mrec1(x,h,g)

%输入:

x行数组

%    h为低通滤波器

%    g为高通滤波器

%输出:

y进行一级小波重构后值

lenx=size(x,2);

 

 

r3=dyadup(x(1,1:

lenx*0.5),0);  %内插零usepara0

r4=dyadup(x(1,(lenx*0.5+1):

lenx),0);  %usepara0

y=ifft(fft(r3,lenx).*fft(h,lenx))+ifft(fft(r4,lenx).*fft(g,lenx));  5PCzV。

 

(3)测试函数(主函数)

%测试函数(主函数)

clc;clear;

X=imread('E:

\Libin地文档\Course\Course_wavelet\实验2要求\exp2\LENA.bmp');%路径jLBHr。

 X=double(X);

A=mallatdec2(X,'sym2',3);

 

image(abs(A));

colormap(gray(255));

title('多尺度分解图像');

Y=mallatrec2(A,'sym2',3);

Y=real(Y);

figure

(2);

subplot(1,2,1);

image(X);

colormap(gray(255));

title('原始图像');

subplot(1,2,2);

image(Y);

colormap(gray(255));

title('重构图像');

csize=size(X);

sr=csize

(1);

sc=csize

(2);

mse=sum(sum((Y-X).^2,1))/(sr*sc);

psnr=10*log(255*255/mse)/log(10)

小波分析实验:

实验1连续小波变换xHAQX。

实验目地:

在理解连续小波变换原理地基础上,通过编程实现对一维信号进行连续小波变换,(实验中采用地是墨西哥帽小波),从而对连续小波变换增加了理性和感性地认识,并能提高编程能力,为今后地学习和工作奠定基础.LDAYt。

实验工具:

计算机,matlab6.5

 

程序附录:

(1)墨西哥帽小波函数,按照(***)式编程

%mexh.m

functionY=mexh(x)

ifabs(x)<=8

Y=exp(-x*x/2)*(1-x^2);

else

   Y=0;

End

 

(2)实验程序,按照(**)式编程,详细过程请参考“本实验采取地一些小技巧”

%

clc;clear;

load('data.mat');

len=length(dat);

lna=70;          %(尺度a)地长度

a=zeros(1,lna);

wfab=zeros(lna,len);  %小波系数矩阵

mexhab=zeros(1,len);  %离散化小波系数矩阵

 

fors=1:

lna          %s表示尺度 

   fork=1:

len

       mexhab(k)=mexh(k/s);

   end  

   fort=1:

len   %t表示位移

     wfab(s,t)=(sum(mexhab.*dat))/sqrt(s);  %将积分用求和代替

     mexhab=[mexh(-1*t/s),mexhab(1:

len-1)]; %mexhab修改第一项并右移Zzz6Z。

   end

end

 

figure

(1);

plot(dat);

title('原始数据图');

figure

(2); %小波系数谱

image(wfab);

colormap(pink(128));

title('小波系数图');

%surf(wfab);

%title('小波系数谱网格图');

%pwfab=wfab.*wfab; %%瞬态功率谱

%figure(3);

%subplot(1,2,1);

%surf(pwfab);

%title('瞬态功率谱网格图');

%subplot(1,2,2);

%contour(pwfab);

%title('瞬态功率谱等值线');

 

(3)test函数.

%test函数

clc;clear;

fori=1:

200

   dat(i)=sin(2*pi*i*0.05);    %正弦波函数

end

len=length(dat);

lna=40;

wfab=zeros(lna,len);

mexhab=zeros(1,len);

fors=1:

lna          %s表示尺度 

   fork=1:

len

       mexhab(k)=mexh(k/s);

   end  

   fort=1:

len              %t表示位移

     wfab(s,t)=(sum(mexhab.*dat))/sqrt(s);  %将积分用求和代替

     mexhab=[mexh(-1*t/s),mexhab(1:

len-1)]; %mexhab修改第一项并右移dvzfv。

   end

end

figure

(1);

plot(dat);

title('orignaldat');

figure

(2); %小波系数谱

image(wfab);

colormap(pink(128));

title('正弦波地小波系数图');

(4)用fft实现cwt

%按照圆周卷积定理,原周卷积和线性卷积地关系L>=M+N-1

%按照圆周卷积地定义,相关和线性卷积地关系(原始算法和线性卷积地关系)

%注意画图理解

clc;clear;

t1=cputime;

 

load('data.mat');

len=length(dat);

lna=70;          %a(尺度)地长度

a=zeros(1,lna);   %a表示尺度

b=zeros(1,len);    %b表示位移

wfab=zeros(lna,len);  %小波系数矩阵

mexhab=zeros(1,2*len-1);  

data=[zeros(1,len-1),dat];

Ydata=fft(data,4*len);

fors=1:

lna         

   fork=1:

2*len-1

      mexhab(k)=mexh((k-len)/s);   

   end 

 

  temp=ifft(Ydata.*fft(mexhab,4*len),4*len);

  wfab(s,:

)=real(temp(2*len-1:

3*len-2))/sqrt(s);%为什么要取实部而不是取模,我也不是很清楚,可是有种感觉rqyn1。

end

figure

(1);

plot(dat);

title('原始数据图');

figure

(2); %小波系数谱

image(wfab);

colormap(pink(128));

title('小波系数谱');

cputime-t1

 

 

 

4)fft快速计算cwt

%按照圆周卷积地定义,

%注意画图理解

clc;clear;

t1=cputime;

 

load('data.mat');

len=length(dat);

lna=70;          %a(尺度)地长度

a=5;

 

data=[dat,zeros(1,len)];

Ydata=fft(dat,2*len);

fors=1:

lna         

 mexhab=zeros(1,2*len);

 k=[-a*s:

1:

a*s];

 mexhab(k+len)=mexh2(k./s);

 

  temp=ifft(Ydata.*fft(mexhab,2*len),2*len);

  wfab(s,:

)=real(temp(len+1:

2*len))/sqrt(s);%要取实部而不是取模,呵呵Emxvx。

end

figure

(1);

plot(dat);

title('原始数据图');

figure

(2); %小波系数谱

image(wfab);

colormap(pink(128));

title('小波系数谱');

cputime-t1

 

5)保存为mexh2.m

 

functionY=mexh2(x)

Y=exp(-x.*x/2).*(1-x.^2);

版权申明

本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有

Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.SixE2。

用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.6ewMy。

Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.kavU4。

转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.y6v3A。

Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.M2ub6。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2