西北工业大学Matlab实验报告2016.doc

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

西北工业大学Matlab实验报告2016.doc

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

西北工业大学Matlab实验报告2016.doc

西北工业大学

《基于MATLAB的数字信号处理》实验报告

学院:

学号:

姓名:

专业:

实验时间:

2016年6月

指导教师:

冯燕

西北工业大学

2016年06月

实验一MATLAB基本编程实验

一、实验目的及要求

1.熟悉MATLAB运行环境;

2.掌握MATLAB的基本语法和函数;

3.掌握MATLAB的基本绘图功能

二、实验设备(环境)及要求

1.计算机

2.Matlab软件编程实验平台

三、实验内容与步骤

1.求下列线性方程组的解

2.编写一个MATLAB函数文件,该函数的功能是求出最大的n值,

使得。

通过M文件或命令行调用该函数文件计算

realmax=50000时的n值。

3.某多项式的定义为:

其中x的值介于[-1,1]之间。

当m的值由1变化到5,可以得到5条曲线。

将这5条曲线画在同一图形

窗口上,并标明每一条曲线。

四、设计思想

1.采用矩阵求逆的方法,将系数矩阵求逆,乘以单元矩阵,直接得到未知数。

2.在M文件中使用循环语句,判断是否符合条件,返回值,主程序进行调用

3.将5条曲线分别绘制,plot用不同颜色标志,采用holdon画在一个图中,

五、程序代码及注释

1.A=[6,3,4;-2,5,7;8,-4,-3];%系数矩阵

b=[3;-4;-7];

x=inv(A)*b%求逆

2.M文件:

function[n]=fun(max)

%UNTITLEDSummaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

a=1;

b=1;

whileb

a=a+1;

b=b*a;

end

n=a-1;

end

主程序

max=input('pleaseinputtherealmax:

');

n=fun(max)

3.

x=-1:

0.01:

1;

y1=cos(acos(x));

plot(x,y1,’r’);%第一条

holdon

y2=cos(2*acos(x));

plot(x,y2,’b’);%第二条

holdon

y3=cos(3*acos(x));

plot(x,y3,’g’);%第三条

holdon

y4=cos(4*acos(x));

plot(x,y4,’y’);%第四条

holdon

y5=cos(5*acos(x));

plot(x,y5,’k’);%第五条

六、实验结果

1.结果:

2.结果:

3.结果:

实验二MATLAB基本编程实验

一、实验目的及要求

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

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

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

二、实验设备(环境)及要求

1.计算机

2.Matlab软件编程实验平台

三、实验内容

1.x(n)=[8,5,3,11,7,0,-1,4,2,6,5],是原序列,设y(n)是原序列受到噪声污染并移位了的序列y(n)=x(n-3)+w(n),其中w(n)是均值为0,方差为1的高斯随机序列。

计算y(n)与x(n)的相关性。

2.一个线性时不变系统由下面差分方程描述

1)求频率响应;

2)画出其幅频和相频图;

3)如果系统输入为,求出在内的响应y(n),并画出输入序列和输出序列的曲线图说明。

3.设计IIR滤波器(带通,三种方法,fs=2000Hz,通带频率500~700Hz,阶数自选,画频率特性并分析比较)

四、设计思想

1.由normrnd函数产生高斯序列,判断函数位进行赋值,产生移位序列,通过函数xcorr进行互相关处理

2.用freq函数求出频率相应,通过abs和angle函数求出幅频和相频图,采用filter函数求出输出序列

3.分别采用butterworth滤波器、椭圆滤波器和cheby滤波器,求出频率特性

五、程序代码及注释

1.x=[8,5,3,11,7,0,-1,4,2,6,5];

forn=1:

1:

11

ifn<4

yy(n)=0;

elseyy(n)=x(n-3);

end

end

w=normrnd(0,1,1,11);

y=yy+w;

a=xcorr(x,y);

2.fs=1000;

b=[1];

a=[1,-0.8];

[h,f]=freqz(b,a,512,fs);

mag=abs(h);

ph=angle(h);

subplot(4,1,1);

plot(f,mag);

grid;

xlabel('frequency(hz)');

ylabel('magnitude');

subplot(4,1,2);

plot(f,ph);

grid;

xlabel('frequency(hz)');

ylabel('phase');

n=1:

100;

x(n)=cos(0.02*pi*n);

y=filter(b,a,x);

subplot(4,1,3);

stem(x);

subplot(4,1,4);

stem(y)

3.

(1)n=10;

wn=[500700]/1000;

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

[h,f]=freqz(b,a,256,1000);

mag=abs(h);

ph=angle(h);

subplot(2,1,1);

plot(f,mag);

grid;

xlabel('frequency(hz)');

ylabel('magnitude');

subplot(2,1,2);

plot(f,ph);

grid;

xlabel('frequency(hz)');

ylabel('phase');

(2)n=10;

wn=[500700]/1000;

[b,a]=ellip(n,0.5,20,wn)

[h,f]=freqz(b,a,256,1000);

mag=abs(h);

ph=angle(h);

subplot(2,1,1);

plot(f,mag);

grid;

xlabel('frequency(hz)');

ylabel('magnitude');

subplot(2,1,2);

plot(f,ph);

grid;

xlabel('frequency(hz)');

ylabel('phase');

(3)n=10;

wn=[500700]/1000;

[b,a]=cheby1(n,0.5,wn);

[h,f]=freqz(b,a,256,1000);

mag=abs(h);

ph=angle(h);

subplot(2,1,1);

plot(f,mag);

grid;

xlabel('frequency(hz)');

ylabel('magnitude');

subplot(2,1,2);

plot(f,ph);

grid;

xlabel('frequency(hz)');

ylabel('phase');

六、实验结果

1结果:

2.结果:

3.

(1)

(2)

(3)

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

一、实验目的及要求

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

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

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

二、实验设备(环境)及要求

1.计算机

2.Matlab软件编程实验平台

三、实验内容

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

2.对cameraman.tif图像至少用3种方法进行边缘增强,给出实验结果并分析。

四、设计思想

1.先用imread函数读取,找出其中最大值,采用dct2函数进行dct变换,显示出来,判断小于最大值的变换系数的值赋零,再用idct反变换处理,改变变换系数,分别重构图像,最后再计算重构图像和原图像峰值信噪比

2.采用直方图处理、对比度扩展增强、对数变换这三种方式处理,分别采用histeq、imadjust和log函数。

五、程序代码及注释

1.grb=imread('barbaran.tif');

a=max(grb(:

));

i=rgb2gray(grb);

subplot(2,1,1);

imshow(i);

j=dct2(i)

subplot(2,1,2);

imshow(j);

b=a/4;

j(abs(j)

k=idct2(j);

figure;

imshow(k,[0255]);

A=double(i);

B=double(k);

[m,n]=size(i);

D=sum(sum((A-B).^2));

MSE=D/(m*n);

grb=imread('barbaran.tif');

a=max(grb(:

));

i=rgb2gray(grb);

subplot(2,1,1);

imshow(i);

j=dct2(i)

subplot(2,1,2);

imshow(j);

b=a/8;

j(abs(j)

k=idct2(j);

figure;

imshow(k,[0255]);

A=double(i);

B=double(k);

[m,n]=size(i);

D=sum(sum((A-B).^2));

MSE=D/(m*n);

grb=imread('barbaran.tif');

a=max(grb(:

));

i=rgb2gray(grb);

subplot(2,1,1);

imshow(i);

j=dct2(i)

subplot(2,1,2);

imshow(j);

b=a/16;

j(abs(j)

k=idct2(j);

figure;

imshow(k,[0255]);

A=double(i);

B=double(k);

[m,n]=size(i);

D=sum(sum((A-B).^2));

MSE=D/(m*n);

2.i=imread('cameraman.tif');

subplot(2,2,1);

imshow(i);

[j,t]=histeq(i);

subplot(2,2,2);

imshow(j);

k=imadjust(i,[0.150.9],[01]);

subplot(2,2,3);

imshow(k);

i=double(i);

l=log(i+1);

subplot(2,2,4);

imshow(l,[]);

六、实验结果

1.结果:

和原图像的峰值噪声比为190

和原图像的峰值噪声比为73

和原图像的峰值噪声比为20

2.结果:

三种图像,直方图对比度明显,整体较为中和,对比扩展方式导致黑色更黑,黑色的细节看不到,而对数增强方式,画面偏白,对比也明显。

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

一、实验目的及要求

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

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

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

二、实验设备(环境)及要求

1.计算机

2.Matlab软件编程实验平台

三、实验内容

1、利用2输入的MP模型是否可实现“与”、“或”、“非”和“异或”功能?

若能,编程实现并给出实现各种功能的权值和实验结果,若不能,请说明原因。

2、用人工神经网络拟合函数

说明:

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

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

3)用训练集训练网络

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

四、设计思想

1.使用MP模型解决此问题,选择初值,计算误差,更新全值,对所有模式进行所有训练,直到输出满足。

2.使用三层BP网络来完成函数逼近。

因为函数为一元函数,所以输入层有一个输入,输出层有一个输出,隐层神经元的个数为10。

五、程序代码及注释

1.p=[0011;

0101];%与

t=[0001];

d=[0101];

w1=0.2;

w2=0.5;

yita=-0.1;

theta=0.1;

while~isequal(t,d)

forj=1:

1:

4

w1=w1+yita*(d(j)-t(j))*p(1,j);

w2=w2+yita*(d(j)-t(j))*p(2,j);

theta=theta+yita*(d(j)-t(j));

d(j)=w1*p(1,j)+w2*p(2,j)+theta;

d(j)=round(d(j));

end

end

p=[0011;

0101];%或

t=[0111];

d=[0101];

w1=0.2;

w2=0.5;

yita=-0.1;

theta=0.1;

while~isequal(t,d)

forj=1:

1:

4

w1=w1+yita*(d(j)-t(j))*p(1,j);

w2=w2+yita*(d(j)-t(j))*p(2,j);

theta=theta+yita*(d(j)-t(j));

d(j)=w1*p(1,j)+w2*p(2,j)+theta;

d(j)=round(d(j));

end

end

p=[0011;

0101];%异或

t=[0110];

d=[0101];

w1=0.2;

w2=0.5;

yita=-0.1;

theta=0.1;

while~isequal(t,d)

forj=1:

1:

4

w1=w1+yita*(d(j)-t(j))*p(1,j);

w2=w2+yita*(d(j)-t(j))*p(2,j);

theta=theta+yita*(d(j)-t(j));

d(j)=w1*p(1,j)+w2*p(2,j)+theta;

d(j)=round(d(j));

end

end

2.x=0:

0.01:

4*pi;%画出模拟曲线

y=sin(x)+0.46*exp(-0.15*x).*cos(1.2*x);

figure

(1);plot(x,y,'g');holdon;

N=50;%初始化预测集样本数

P1=0:

0.2:

4*pi;%训练集样本点

P2=(4*pi)*rand(1,N);%预测集样本点

%计算训练集和预测集对应的目标向量T1,T2

T1=sin(P1)+0.46*exp(-0.15*P1).*cos(1.2*P1);

T2=sin(P2)+0.46*exp(-0.15*P2).*cos(1.2*P2);

%建立网络

net=newff(P1,T1,[16]);

%设置训练参数

net.trainParam.show=50;

net.trainParam.lr=0.05;

net.trainParam.mc=0.95;

net.trainParam.epochs=400;

net.trainParam.goal=1e-8;

[net,tr]=train(net,P1,T1);%训练网络

A=sim(net,P2);%对预测集进行预测

plot(P1,T1,'r+',P2,A,'b.');

六、实验结果

1.与:

w1=0.2w2=0.4theta=0

或:

w1=0.3w2=0.5theta=0.2

无法实现非功能,由于非只需要一个输入

异或:

w1=0.1w2=0.1theta=0.2

2.

图中的蓝色曲线是所需模拟函数的曲线,红色‘+’为训练集的样本点,而蓝色的‘.’是预测集P2经过网络预测的结果A,即(P2,A)。

我们可以发现模拟的结果很好。

实验五MATLAB的综合实验

一、实验目的及要求

培养学生利用Matlab解决专业问题的能力。

二、实验设备(环境)及要求

1.计算机

2.Matlab软件编程实验平台

三、实验内容(三题中选择一题)

1、实现一个数字信号处理的仿真系统,通过该系统可以方便的验证信号处理所学的基本内容,要求程序具有界面并实现以下功能:

1)能产生或得到各种数字信号(sin、方波、三角波、语音、噪声及其叠加);

2)具有根据需求设计低通、高通、带通和带阻滤波器的功能;

3)具有对数字信号进行DFT、DCT和DWT变换和经典功率谱估计功能;

4)产生或输入数字信号,显示时域、变换域及功率谱估计波形,在这个信号上叠加噪声,通过滤波器对其降噪,得到输出信号的频域特性和时间序列。

2、基于数字图像处理,实现一个汽车标志定位和分割的仿真系统。

要求系统具有界面并实现以下功能:

1)读入包含汽车标志的汽车图像;

2)预处理及汽车标志定位;

3)多种图像分割功能;

4)形态学滤波等功能;

3、结合自己的研究方向,实现一个神经网络应用的实例,要求用至少3种方法实现(可以包括不同神经网络方法或经典方法),并对实验结果进行比较分析。

四、设计思想

1.实现一个数字信号处理的仿真系统

l根据数字信号处理的仿真系统要求,设计界面框图,安排界面布局图像二值化

l用GUI按照设计进行界面交互组件添加并设置组件属性

l对回调函数进行编程,实现题设功能

l调整界面并调试程序

五、程序代码(界面除外)及注释

functionvarargout=renliang(varargin)

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@renliang_OpeningFcn,...

'gui_OutputFcn',@renliang_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforerenliangismadevisible.

functionrenliang_OpeningFcn(hObject,eventdata,handles,varargin)

%Choosedefaultcommandlineoutputforrenliang

handles.output=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

%UIWAITmakesrenliangwaitforuserresponse(seeUIRESUME)

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=renliang_OutputFcn(hObject,eventdata,handles)

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=handles.output;

%---Executesonbuttonpressincheckbox1.

functioncheckbox1_Callback(hObject,eventdata,handles)

%正弦波输入

%---Executesduringobjectcreation,aftersettingallproperties.

functioncheckbox1_CreateFcn(hObject,eventdata,handles)

functionedit1_Callback(hObject,eventdata,handles)

%正弦波幅值

%---Executesduringobjectcreation,aftersettingallproperties.

functionedit1_CreateFcn(hObj

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

当前位置:首页 > 人文社科 > 法律资料

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

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