西北工业大学Matlab实验报告Word下载.docx

上传人:b****2 文档编号:4141700 上传时间:2023-05-02 格式:DOCX 页数:41 大小:1.65MB
下载 相关 举报
西北工业大学Matlab实验报告Word下载.docx_第1页
第1页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第2页
第2页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第3页
第3页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第4页
第4页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第5页
第5页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第6页
第6页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第7页
第7页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第8页
第8页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第9页
第9页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第10页
第10页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第11页
第11页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第12页
第12页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第13页
第13页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第14页
第14页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第15页
第15页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第16页
第16页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第17页
第17页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第18页
第18页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第19页
第19页 / 共41页
西北工业大学Matlab实验报告Word下载.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西北工业大学Matlab实验报告Word下载.docx

《西北工业大学Matlab实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《西北工业大学Matlab实验报告Word下载.docx(41页珍藏版)》请在冰点文库上搜索。

西北工业大学Matlab实验报告Word下载.docx

%*************************

%question2***************

%分别使用for及while循环计算矩阵K的值

K=0;

fori=1:

105

K=K+sqrt(3)/2^(i);

end

K

%-------------------------

i=1;

whilei<

106

i=i+1;

%question3*************

%首先计算x,y1,y2,y3,X,Y,Z的值,然后画图

x=0:

0.1:

2*pi;

y1=cos(x);

y2=2*sin(2*x);

y3=x.*cos(x);

[X,Y]=meshgrid(-2:

2,-4:

0.4:

4);

Z=X.^2/2^2+Y.^2/4^2;

subplot(2,2,1)

plot(x,y1)

axis([06.5min(y1)-0.1max(y1)+0.1]);

xlabel('

x'

ylabel('

y1'

title('

x-y1graph'

subplot(2,2,2)

plot(x,y2)

axis([06.5min(y2)-0.1max(y2)+0.1]);

y2'

x-y2graph'

subplot(2,2,3)

plot(x,y3)

axis([06.5min(y3)-0.1max(y3)+0.1]);

y3'

x-y3graph'

subplot(2,2,4)

surf(X,Y,Z);

axis([-22-4402]);

X'

Y'

zlabel('

Z'

X-Y-Zgraph'

六、实验结果

1.

2.K=1.7321

3.

实验二MATLAB基本编程实验

1.回顾数字信号处理的主要容;

2.掌握利用MATLAB进行信号处理的方法;

3.了解信号处理工具箱中一些函数的功能;

三、实验容

1.任何实数序列x(n)都能分解成为它的偶部分量和奇部分量之和,编写一个MATLAB函数文件,该函数的功能是将一给定序列分解成为它的偶部分量和奇部分量。

并通过M文件或命令行调用该函数文件将以下序列分解成为偶部分量和奇部分量。

2.一数字滤波器由频率响应函数描述

1)写出其差分方程表示;

2)画出上面滤波器的幅频和相频图;

3)产生信号的200个样本,通过该滤波器得到输出y(n),试将输出y(n)的稳态部分与x(n)作比较,说明这两个正弦信号的幅度和相位是如何受该滤波器影响的。

3.设计带通滤波器(Butterworth、椭圆、窗函数),采样率fs=2000Hz,通带围为300-600Hz,阶数自选,画出频率响应并分析比较。

1.首选对原始序列做折叠处理,得到折叠后的序列,再利用计算公式求的序列的奇偶分量

差分方程如下

根据频率响应函数,使用freqz函数计算幅频和相频图

取样出x(n)的200个样本,通过filter函数求出滤波器作用后的y(n),对比输入输出信号,进行分析

3.首先设定带通滤波器阶数,本实验设定为10阶,窗函数部分使用了矩形窗,然后根据通带围频率求得各个滤波器设计所需的参数,然后调用matlab滤波器生成函数,生成相应的滤波器。

代码1

function[xe,xo,m]=Calculatexexo(x,n)

%输入一个序列,输出分解后的奇偶序列

%2017-8-19byBinwang

m=-fliplr(n);

n2=min([n,m]);

n3=max([n,m]);

m=n2:

n3;

%计算折叠处理之后的横轴坐标

I=find(m==n

(1));

x1=zeros(1,length(m));

x1(I:

I+length(n)-1)=x;

%在新的横轴坐标域表示原始序列

x=x1;

xe=0.5*(x+fliplr(x));

xo=0.5*(x-fliplr(x));

%计算奇偶分量

%计算序列的奇偶分量

n=0:

100;

x=exp(-0.05*n).*sin(0.1*pi*n+pi/3);

%生成序列

[xe,xo,m]=Calculatexexo(x,n);

%计算序列奇偶分量

subplot(2,1,1)

stem(n,x,'

ro'

);

%原始序列

title('

originalgraph'

subplot(2,2,3)

stem(m,xe,'

*'

%偶分量

xegraph'

subplot(2,2,4)

stem(m,xo,'

%奇分量

xograph'

代码2.2

fs=1000;

b=[10001];

%表达式分子系数

a=[1000-0.8145]%表达式分母系数

[H,w]=freqz(b,a,256,fs);

mag=abs(H);

%计算幅值

ph=angle(H);

%计算相位

ph=ph*180/pi;

subplot(2,1,1)

plot(w,mag);

grid;

frequencyHz'

magnitude'

subplot(2,1,2)

plot(w,ph);

phase'

代码2.3

n=1:

0.025:

5;

x=sin(pi*n/2)+5*cos(pi*n);

stem(n,x)

b=[10001];

a=[1000-0.8145];

%表达式分母系数

y=filter(b,a,x);

holdon

stem(n,real(y),'

r*'

legend('

x(n)'

'

y(n)'

输入输出序列对比'

代码3

fs=2000;

fc1=300;

fc2=600;

N=10;

%阶数设置为10

wlp=fc1/(fs/2);

whp=fc2/(fs/2);

wn=[wlp,whp];

%计算带通围

%矩形窗带通滤波器

w1=boxcar(N);

%矩形窗时域响应

b1=fir1(N-1,wn,w1);

[h,w]=freqz(b1,1,256,fs);

subplot(2,3,1)

plot(w,20*log10(abs(h)));

xlabel('

ylabel('

magnitude/dB'

矩形窗函数的幅频特性'

subplot(2,3,4)

plot(w,180/pi*unwrap(angle(h)));

矩形窗函数的相频特性'

%巴特沃斯带通滤波器

[b,a]=butter(N,wn);

[h1,w1]=freqz(b,a,256,fs);

subplot(2,3,2)

plot(w1,20*log10(abs(h1)/max(abs(h1))));

巴特沃斯的幅频特性'

subplot(2,3,5)

plot(w1,180/pi*(angle(h1)));

巴特沃斯的相频特性'

%椭圆带通滤波器

rs=60;

rp=0.1;

%椭圆带通滤波器的指标

[B,A]=ellip(N,rp,rs,wn)

[h2,w2]=freqz(B,A,256,fs);

subplot(2,3,3)

plot(w2,20*log10(abs(h2)/max(abs(h2))));

椭圆滤波器的幅频特性'

subplot(2,3,6)

plot(w2,180/pi*(angle(h2)));

椭圆滤波器的相频特性'

1.原始序列及得到的奇偶序列如下图所示

2.1差分方程表示如下

2.2计算出的幅频和相频图如下

2.3输入序列与滤波器的输出序列如下图所示

分析结果可知,输出相对于输入在相位上有一定的延迟,幅度上有了提升。

两个正弦信号在对应的频率处均有一定给上的幅度增加和相位延迟

3.带通滤波器设计

根据上图结构可以看出:

巴特沃斯带通滤波器的通带无波动,且设计出来的滤波器结构简单,相频变化表现较差,但带外衰减速度较慢。

椭圆滤波器的通带有一定的波动起伏,边带截止频率非常陡峭,相频表现差。

矩形窗函数带通滤波器通带有一定的波动,边带截止频率变现位于三者的中等,相频变化表现较好。

实验三基于MATLAB的图像处理实验

1.了解图像处理的基本概念和功能;

2.掌握利用MATLAB进行图像处理的方法;

3.了解图像处理工具箱中一些函数的功能;

1.对cameraman.tif图像分别添加椒盐噪声(密度为0.03)和高斯白噪声(均值为0,方差为0.02)的图像,利用三种方法进行去噪,显示原始图像、加噪图像和去噪图像并对实验结果进行分析。

2.对lena.bmp图像进行DCT变换,分别选取最大的1/5、1/10、1/15个变换系数(其余置为0),进行反DCT得到重构图像,显示原图像和各重构图像并分别计算重构图像的峰值信噪比。

1.使用matlab的imnoise函数为图像添加椒盐噪声和高斯白噪声,并分别使用均值滤波器(fspecial)中值滤波器(medfilt2),维纳滤波器(wiener

)三种方法进行降噪处理

2.对lena图片进行灰度化,然后进行分块DCT变换,块大小设置为8x8,则共有64个参数,设置不同的mask矩阵,分别选取其中的1/5、1/10、1/15个参数进行反变换。

代码1:

pic=imread('

cameraman.tif'

Jpic=imnoise(pic,'

salt&

pepper'

0.03);

%加入椒盐噪声

Gpic=imnoise(pic,'

gaussian'

0,0.02);

%加入高斯白噪声

subplot(1,3,1)

imshow(pic);

原始图片'

subplot(1,3,2)

imshow(Jpic);

加入椒盐噪声图片'

subplot(1,3,3)

imshow(Gpic);

加入高斯白噪声图片'

%均值滤波复原处理

figure;

J1=filter2(fspecial('

average'

3),Jpic)/255;

%模板尺寸为3

J2=filter2(fspecial('

7),Jpic)/255;

%模板尺寸为7

椒盐噪声图片'

imshow(J1);

3x3均值滤波'

imshow(J2);

7x7均值滤波'

G1=filter2(fspecial('

3),Gpic)/255;

G2=filter2(fspecial('

7),Gpic)/255;

高斯白噪声图片'

imshow(G1);

imshow(G2);

%中值滤波复原图像

JJ1=medfilt2(Jpic,[33]);

%%模板尺寸为3

JJ2=medfilt2(Jpic,[77]);

%%模板尺寸为7

imshow(JJ1);

3x3中值滤波'

imshow(JJ2);

7x7中值滤波'

GG1=medfilt2(Gpic,[33]);

GG2=medfilt2(Gpic,[77]);

imshow(GG1);

imshow(GG2);

%维纳滤波复原图像

JJJ1=wiener2(Jpic,[33]);

JJJ2=wiener2(Jpic,[77]);

subplot(2,3,1)

imshow(JJJ1);

3x3维纳滤波'

imshow(JJJ2);

7x7维纳滤波'

GGG1=wiener2(Gpic,[33]);

GGG2=wiener2(Gpic,[77]);

imshow(GGG1);

imshow(GGG2);

代码2

pic=imread('

lena.bmp'

%输入灰度图像

subplot(2,2,1);

imshow(pic);

原始图片lena'

pic=rgb2gray(pic);

subplot(2,2,2);

灰度图片lena'

pic=im2double(pic);

%将lena图片进行分块压缩,块大小为8x8,共64个DCT变换系数

D=dctmtx(8);

C=blkproc(pic,[8,8],'

P1*x*P2'

D,D'

%D'

为D的转置

%分别保留1/5,1/10,1/15个系数进行DCT变换,设置mask

mask1=[11110000

11100000

11000000

10000000

00000000

00000000];

%保留1/5个系数

mask2=[11100000

%保留1/10个系数

mask3=[11000000

%保留1/15个系数

X=blkproc(C,[8,8],'

P1.*x'

mask1);

I1=blkproc(X,[8,8],'

D'

D);

%重构图像

X2=blkproc(C,[8,8],'

mask2);

I2=blkproc(X2,[8,8],'

X3=blkproc(C,[8,8],'

mask3);

I3=blkproc(X3,[8,8],'

subplot(2,3,4);

imshow(I1);

保留1/5个系数'

subplot(2,3,5);

imshow(I2);

保留1/10个系数'

subplot(2,3,6);

imshow(I3);

保留1/15个系数'

I1p=imPSNR(pic,I1);

I2p=imPSNR(pic,I2);

I3p=imPSNR(pic,I3);

disp(['

DCT变换保留1/5个系数的PSNR:

'

num2str(I1p)]);

DCT变换保留1/10个系数的PSNR:

num2str(I2p)]);

DCT变换保留1/15个系数的PSNR:

num2str(I3p)]);

function[PSNR]=imPSNR(J,I)

%imPSNRSummaryofthisfunctiongoeshere

%Iisaimagewithhighquality

%Jisaimagewithnoise

%thefunctionwillreturnthePSNRofthenoiseimage

width=size(I,2);

heigh=size(I,1);

if(width~=size(J,2)||heigh~=size(J,1))

disp('

Pleasechecktheinputimagehavethesamesize'

return

K=(I-J).*(I-J);

PSNR=sum(sum(K,1));

PSNR=PSNR/(width*heigh);

PSNR=10*log10(255*255/PSNR);

1.加入噪声图片及复原图片

本次实验分别使用均值滤波,中值滤波,维纳滤波三种方法对加入噪声的图片进行复原。

每种方法分别采用了3x3和7x7的模板大小进行处理,最终得到的结果如上图所示。

分析图片结果可以得到:

均值滤波方法更适合处理椒盐噪声的图片,针对椒盐噪声图片,7x7模板处理效果趋于模糊,3x3模板的效果更好。

中值滤波同样更适合处理椒盐噪声图片,3x3模板处理效果非常好,基本接近于原始图片,7x7模板处理效果有一定程度上的模糊。

维纳滤波跟适合处理高斯噪声,对比不同模板大小的处理效果,7x7模板的处理效果要明显好于3x3的效果,其处理结果基本近似原始图片。

2.DCT变换结果的均方误差及重构图片结果如下图所示:

分析上述结果可以看出,DCT变换保留1/5个数的系数时,重构的图像质量最好。

减少DCT变换系数的个数,图像质量略有下降。

实验四基于MATLAB神经网络编程实验

1.了解神经网络的基本概念和原理;

2.掌握用MATLAB实现神经网络的思路和方法;

3.了解神经网络工具箱函数的功能。

1、产生2维20组二类可分数据,进行标记并构成训练集(输入输出模式对),利用2输入的MP模型实现二类分类问题,给出实验结果并分析。

2、用多层前向网络的BP算法拟合下列函数

说明:

1)网络结构为三层(输入层、1个隐层和输出层);

2)获取两组数据,一组作为训练集,一组作为测试集;

3)用训练集训练网络;

4)用测试集检验训练结果。

1.随机产生一个2x20的数组P,并利用y=x+2.1直线进行分类,标签存储在

数组T中,利用函数newp生成一个仅包含一个单元的感知器,设置训练次数,进行训练,利用训练好的网络对随机生成的2x100数组p进行分类,并显示最终结果。

2.生成指定x,y围的2001组数据,随机选取其中的1900组作为训练集,其余101组作为测试机,利用newff函数生成一个三层的BP网络,隐层包含5个节点,训练网络,并进行最后的

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

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

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

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