实验一名称: 小波函数的Fourier变换和Fourier逆变换 | |
实验目的 | 用Matlab实现函数的Fourier变换和Fourier逆变换 |
实验内容 一、用Matlab实现下列函数的Fourier变换和Fourier逆变换 1.Morlet小波 程序代码: >> syms x i w0; >> f=exp(-x^2/2)*exp(i*w0*x); >> F=fourier(f,x); F = (2^(1/2)*pi^(1/2))/exp((x + i*w0*sqrt(-1))^2/2) >> f=ifourier(F) f = exp((i^2*w0^2)/2 - (t - i*w0)^2/2) insiston2.Marr小波 程序代码: >> syms x; >> f=(1-x^2)*exp(-x^2/2); >> F=fourier(f) F =托福和雅思 (2^(1/2)*pi^(1/2)*w^2)/exp(w^2/2) >> f=ifourier(F) f = (2^(1/2)*((2^(1/2)*pi^(1/2))/exp(x^2/2) - (2^(1/2)*pi^(1/2)*x^2)/exp(x^2/2)))/(2*pi^(1/2)) 3.DOG小波 程序代码: >> syms x; f=exp(-x^2/2)-exp(-x^2/8)/2; >> F=fourier(f) F = (2^(1/2)*pi^(1/2))/exp(w^2/2) - (2^(1/2)*pi^(1/2))/exp(2*w^2) >> f=ifourier(F) f = ((2*pi)/exp(x^2/2) - pi/exp(x^2/8))/(2*pi) 4.Gauss函数族 同一坐标中 程序代码: >> syms x; >> g1=1/(2*pi^(1/2))*exp(-x^2/4); >> F1=fourier(g1) F1 = (5081767996463981*pi^(1/2))/(9007199254740992*exp(w^2)) >> g1=ifourier(F1) g1 = 5081767996463981/(18014398509481984*exp(x^2/4)) >> syms x; >> g2=1/(pi^(1/2))*exp(-x^2); >> F2=fourier(g2) F2 = (5081767996463981*pi^(1/2))/(9007199254740992*exp(w^2/4)) >> g2=ifourier(F2) g2 = 5081767996463981/(9007199254740992*exp(x^2)) a=1/16时 >> syms x; >> g3=2/(pi^(1/2))*exp(-4*x^2); >> F3=fourier(g3) F3 = (5081767996463981*pi^(1/2))/(9007199254740992*exp(w^2/16)) >> g3=ifourier(F3) g3 = 5081767996463981/(4503599627370496*exp(4*x^2)) 二、画出小波函数的图形 实验内容:用Matlab画出下列函数图形 1.Morlet小波 及其频域形式 >> x=-6:0.05:6; >> w0=6; >> y=exp(-1/2.*x.^2+w0*i.*x); >> plot(x,y); 2.Marr小波 及其频域形式 >> x=-6:0.05:6; >> y=(1-x.^2).*exp(-x.^2/2); >> plot(x,y); 3.DOG小波 及其频域形式 >> x=-6:0.05:6; >> y=exp(-x.^2/2)-(exp(-x.^2/8))/2; >> plot(x,y); 4.Gauss函数族 同一坐标系中 及其频域形式 >> x=-5:0.05:5; >> g1=1/(2*pi^(1/2))*exp(-x.^2/4); >> g2=1/(pi^(1/2))*exp(-x.^2); >> g3=2/(pi^(1/2))*exp(-4*x.^2); >> plot(x,g1,x,g2,x,g3); 5.定义信号,并画出图形 N=1024; >> t=1:N; >> s1=sin(2*pi*t); >> s2=sin(4*pi*t); >> s3=sin(10*pi*t); >> s=s1+s2+s3; >> plot(t,s); >> xlabel('时间t/s'); >> ylabel('幅值A'); | |
实验二名称:信号延拓 | |
实验目的 | 在Matlab中按图形接口方式和命令行方式实现一维信号延拓和二维图象延拓 |
实验内容: ①对信号noisbloc.mat,分别选择不同的延拓方式,延拓方向分别以图形接口方式和命令行方式实现一维信号延拓; ②对信号woman2.mat,分别选择不同的延拓方式,延拓方向分别以图形接口方式和命令行方式实现二维图像延拓。 ① 1.用图形接口方式对信号noisbloc.mat进行延拓,结果如下: sometimes歌词 2. 用命令行方式对信号noisbloc.mat进行延拓程序如下: >> load noisbloc; >> whos; >> subplot(2,4,1); >> plot(noisbloc); >> Xzpd=wextend('1','zpd', noisbloc,1000); >> subplot(2,4,2); >> plot(Xzpd); love explains it all>> Xzpdr=wextend('1','zpd', noisbloc,1000, 'r'); >> subplot(2,4,3); >> plot(Xzpdr); >> Xzpdl=wextend('1','zpd', noisbloc,1000, 'l'); >> subplot(2,4,4); >> plot(Xzpdl); >> Xsym=wextend('1','sym',noisbloc,1000); >> subplot(2,4,5); >> plot(Xsym); >> Xsymr=wextend('1','sym',noisbloc,1000, 'r'); >> subplot(2,4,6); >> plot(Xsymr); >> Xsyml=wextend('1','sym',noisbloc,1000, 'l'); >> subplot(2,4,7); >>plot(Xsyml); 运行结果如下: ② 1.用图形接口方式对信号woman2.mat进行二维图像延拓延拓,结果如下: 2.用命令行方式对信号woman2.mat进行二维图像延拓程序如下: >>load woman2; >> whos;deep freeze >> subplot(2,4,1); >> image(X); >> colormap(map); >> Xzpd=wextend('2','zpd',X,100); >> subplot(2,4,2); >> image(Xzpd); >> Xzpdl=wextend('2','zpd',X,100,'l'); >> subplot(2,4,3); >> image(Xzpdl); >> Xzpdr=wextend('2','zpd',X,100,'r'); >> subplot(2,4,4); >> image(Xzpdr); >> Xsym=wextend('2','sym',X,100); >> subplot(2,4,5); >> image(Xsym); >> Xsyml=wextend('2','sym',X,100, 'l'); >> subplot(2,4,6); >> image(Xsyml); >> Xsymr=wextend('2','sym',X,100, 'r'); >> subplot(2,4,7); >> image(Xsymr); 运行结果如下: | |
实验三名称:一维离散小波变换 | |
实验目的 | 在Matlab中用采用图形接口和命令行两种方式进行单尺度小波分解重构和多尺度小波分解重构 |
实验内容: 1. 对信号noissin分别采用图形接口和命令行两种方式进行单尺度小波分解重构和多尺度小波分解重构层数为4,并显示各层低频高频图形,加以比较。 2. 定义信号,并用命令行方式对该信号进行单尺度小波分解重构和多尺度小波分解重构层数为3。 1. 1)用图形接口方式对信号noissin进行单尺度小波分解重构,结果如下: 2)用命令行方式对noissin进行单尺度小波分解重构和多尺度小波分解重构 单尺度小波分解重构程序: >> load noissin; >> s=noissin (1:1000); >> [cA1,cD1]=dwt(s,'sym2'); >> A1=upcoef('a',cA1,'sym2',1); >> D1=upcoef('d',cD1,'sym2',1); >> subplot(4,1,1);plot(s);title('原始信号') >> subplot(4,1,2);plot(A1);title('低频') >> subplot(4,1,3);plot(D1);title('高频') >> s0=idwt(cA1,cD1,'sym2'); >> subplot(4,1,4);plot(s0);title('重构信号') 运行结果如下: 3) 多尺度小波分解重构程序: >> s0=idwt(cA1,cD1,'sym2'); >> [C,L]=wavedec(s,4,'sym2'); >> cA5=appcoef(C,L,'sym2',4); >> A4=wrcoef('a',C,L,'sym2',4); >> D1=wrcoef('d',C,L,'sym2',1); >> D2=wrcoef('d',C,L,'sym2',2); >> D3=wrcoef('d',C,L,'sym2',3); >> D4=wrcoef('d',C,L,'sym2',4); >> figure(2); >> subplot(4,1,1);plot(A4);title('第四层低频') >> subplot(4,1,2);plot(D4);title('第四层高频') >> subplot(4,1,3);plot(D3);title('第三层高频') >> subplot(4,1,4);plot(D2);title('第二层高频') >> subplot(4,1,5);plot(D1);title('第一层高频') >> figure(3); >> s1=waverec(C,L,'sym2'); >> subplot(3,1,1);plot(s);title('原始信号') >> subplot(3,1,2);plot(s1);title('重构信号') >> subplot(3,1,3);plot(s-s1);title('误差信号') 运行结果如下: 2.用命令行方式对信号进行单尺度小波分解重构和多尺度小波分解重构。 1)单尺度小波分解重构程序: >> syms t; >> t=1:1024; >> f=sin(8*pi*t)+sin(12*pi*t)+sin(58*pi*t); >> s=f(1:1024); [cA1,cD1]=dwt(s,'db3'); A1=upcoef('a',cA1,'db3',1); D1=upcoef('d',cD1,'db3',1); subplot(4,1,1);plot(s);title('原始信号') subplot(4,1,2);plot(A1);title('低频') subplot(4,1,3);plot(D1);title('高频') s0=idwt(cA1,cD1,'db3'); subplot(4,1,4);plot(s0);title('重构信号') 运行结果如下: 美国经典动画片大全2) 多尺度小波分解重构程序: >> s0=idwt(cA1,cD1,'db3'); >> [C,L]=wavedec(s,3,'db3'); >> cA5=appcoef(C,L,'db3',3); >> A3=wrcoef('a',C,L,'db3',3); >> D1=wrcoef('d',C,L,'db3',1); >> D2=wrcoef('d',C,L,'db3',2); >> D3=wrcoef('d',C,L,'db3',3); >> figure(2); >> subplot(4,1,1);plot(A3);title('第三层低频') >> subplot(4,1,2);plot(D3);title('第三层高频') >> subplot(4,1,3);plot(D2);title('第二层高频') >> subplot(4,1,4);plot(D1);title('第一层高频') >> figure(3); >> s1=waverec(C,L,'db3'); >> subplot(3,1,1);plot(s);title('原始信号') >> subplot(3,1,2);plot(s1);title('重构信号') >> subplot(3,1,3);plot(s-s1);title('误差信号') 运行结果如下: | |
实验四名称:二维小波变换 | |
实验目的 | 在Matlab中用图形接口和命令行两种方式对图像进行单尺度和多尺度分解 dotard |
实验内容 芝麻街1. 1.对c:\MATLAB6p5\toolbox\wavelet\wavedemo\woman.mat采用命令行的方式进行单尺度和多尺度(3层)分解,并在一个界面下显示原始信号和各层低频和高频部分如例子。 2. 2.对c:\MATLAB6p5\toolbox\wavelet\wavedemo\facets.mat采用图形接口方式选择‘sym’小波进行3层分解,并用显示模式‘tree’显示分解结果 1.单尺度分解程序: >> load woman; >> whos >> image(X); >> colormap(map); >> colorbar; >> [cA1,cH1,cV1,cD1]=dwt2(X,' bior3.7'); >> A1=upcoef2('a',cA1,' bior3.7',1); >> H1=upcoef2('h',cH1,' bior3.7',1); >> V1=upcoef2('v',cV1,' bior3.7',1); >> D1=upcoef2('d',cD1,' bior3.7',1); >> figure(2) >> colormap(map); >> nbcol=size(map,1); >> subplot(2,2,1);image(wcodemat(A1,nbcol)); >> title('低频A1') >> subplot(2,2,2);image(wcodemat(H1,nbcol)); >> title('水平高频H1')lunafly >> subplot(2,2,3);image(wcodemat(V1,nbcol)); >> title('垂直高频V1') >> subplot(2,2,4);image(wcodemat(D1,nbcol)); >> title('对角高频D1') >> Xsyn=idwt2(cA1,cH1,cV1,cD1,' bior3.7'); 运行结果如下: 2.多尺度分解程序: >> [C,S]=wavedec2(X,3,' bior3.7'); >> cA2=Appcoef2(C,S,' bior3.7',3); >> A2=wrcoef2('a',C,S,' bior3.7',3); >> H1=wrcoef2('h',C,S,' bior3.7',1); >> V1=wrcoef2('v',C,S,' bior3.7',1); >> D1=wrcoef2('d',C,S,' bior3.7',1); >> H2=wrcoef2('h',C,S,' bior3.7',2); >> V2=wrcoef2('v',C,S,' bior3.7',2); >> D2=wrcoef2('d',C,S,' bior3.7',2); >> H3=wrcoef2('h',C,S,' bior3.7',3); >> V3=wrcoef2('v',C,S,' bior3.7',3); >> D3=wrcoef2('d',C,S,' bior3.7',3); >> figure(3); >> colormap(map); >> subplot(3,4,1);image(wcodemat(A1,nbcol)); >> title('低频A1') >> subplot(3,4,2);image(wcodemat(H1,nbcol)); >> title('水平高频H1') >> subplot(3,4,3);image(wcodemat(V1,nbcol)); >> title('垂直高频V1') >> subplot(3,4,4);image(wcodemat(D1,nbcol)); >> title('对角高频D1') >> subplot(3,4,5);image(wcodemat(A2,nbcol)); >> title('低频A2') >> subplot(3,4,6);image(wcodemat(H2,nbcol)); >> title('水平高频H2') >> subplot(3,4,7);image(wcodemat(V2,nbcol)); >> title('垂直高频V2') >> subplot(3,4,8);image(wcodemat(D2,nbcol)); >> title('对角高频D2') >> subplot(3,4,9);image(wcodemat(A3,nbcol)); >> title('低频A3') >> subplot(3,4,10);image(wcodemat(H3,nbcol)); >> title('水平高频H3') >> subplot(3,4,11);image(wcodemat(V3,nbcol)); >> title('垂直高频V3') >> subplot(3,4,12);image(wcodemat(D3,nbcol)); >> title('对角高频D3') >> X0=waverec2(C,S,' bior3.7'); >> figure(4) >> image(X0); >> colormap(map); 运行结果如下: 3.用图形接口方式选择对称小波对图像facets进行3层分解,结果如下: 4.用显示模式“tree”显示分解,结果如下: | |
本文发布于:2023-06-11 19:46:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/78/931871.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |