西北工业大学Matlab实验报告材料

上传人:仙*** 文档编号:87910692 上传时间:2022-05-10 格式:DOC 页数:35 大小:1.74MB
返回 下载 相关 举报
西北工业大学Matlab实验报告材料_第1页
第1页 / 共35页
西北工业大学Matlab实验报告材料_第2页
第2页 / 共35页
西北工业大学Matlab实验报告材料_第3页
第3页 / 共35页
点击查看更多>>
资源描述
西北工业大学基于MATLAB的数字信号处理实验报告学 院: 计算机学院 学号:姓名:专 业: 计算机科学与技术 西北工业大学2017年 07月实验一 MATLAB根本编程实验一、实验目的与要求1熟悉MATLAB运行环境;2. 掌握MATLAB的根本语法和函数;3. 掌握MATLAB的根本绘图功能二、实验设备环境与要求1 计算机2 Matlab软件编程实验平台三、实验容与步骤1 设求使2 . 分别用for或while循环结构编写程序,求出 。并考虑一种防止循环语句的程序设计算法实现同样的运算。3. 将图形窗口4等分,按顺序绘制出如下函数的曲线图与曲面图并标记。四、设计思想 1.,如此X=B*invA 2.编写循环程序,循环105次,每次循环中计算的值对做数学运算,可以得到3.使用subplot将图形窗口分为四个子窗口,在子窗口中进展绘图五、程序代码与注释% question 1*% 计算矩阵B*inv(A)A= 0 2 1 2 -1 3 -3 3 -4;B= 1 2 3 2 -3 1;X=B*inv(A)%*% question2*% 分别使用for与while循环计算矩阵K的值K=0;for i=1:105 K=K+sqrt(3)/2(i);endK%-K=0;i=1;while i106 K=K+sqrt(3)/2(i); i=i+1;endK%*% question 3*% 首先计算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:0.1:2,-4:0.4:4);Z=X.2/22+Y.2/42;subplot(2,2,1)plot(x,y1)axis(0 6.5 min(y1)-0.1 max(y1)+0.1);xlabel(x)ylabel(y1)title(x-y1 graph)subplot(2,2,2)plot(x,y2)axis(0 6.5 min(y2)-0.1 max(y2)+0.1);xlabel(x)ylabel(y2)title(x-y2 graph)subplot(2,2,3)plot(x,y3)axis(0 6.5 min(y3)-0.1 max(y3)+0.1);xlabel(x)ylabel(y3)title(x-y3 graph)subplot(2,2,4)surf(X,Y,Z);axis(-2 2 -4 4 0 2);xlabel(X)ylabel(Y)zlabel(Z)title(X-Y-Z graph)%*六、实验结果1.2.3.实验二 MATLAB根本编程实验一、实验目的与要求1. 回顾数字信号处理的主要容;2. 掌握利用MATLAB进展信号处理的方法;3. 了解信号处理工具箱中一些函数的功能;二、实验设备环境与要求1 计算机2 Matlab软件编程实验平台三、实验容1 .任何实数序列x(n)都能分解成为它的偶局部量和奇局部量之和,编写一个MATLAB函数文件,该函数的功能是将一给定序列分解成为它的偶局部量和奇局部量。并通过M文件或命令行调用该函数文件将以下序列分解成为偶局部量和奇局部量。2. 一数字滤波器由 频率响应函数描述 1写出其差分方程表示; 2画出上面滤波器的幅频和相频图; 3产生信号 的200个样本,通过该滤波器得到输出y(n), 试将输出y(n)的稳态局部与x(n)作比拟,说明这两个正弦信号的幅度和相位是如何受该滤波器影响的。3. 设计带通滤波器Butterworth、椭圆、窗函数,采样率fs2000Hz, 通带围为300 -600Hz,阶数自选, 画出频率响应并分析比拟。四、设计思想原始序列做折叠处理,得到折叠后的序列,再利用计算公式求的序列的奇偶分量 2.差分方程如下根据频率响应函数,使用freqz函数计算幅频和相频图取样出x(n)的200个样本,通过filter函数求出滤波器作用后的y(n),比照输入输出信号,进展分析设定带通滤波器阶数,本实验设定为10阶,窗函数局部使用了矩形窗,然后根据通带围频率求得各个滤波器设计所需的参数,然后调用matlab滤波器生成函数,生成相应的滤波器。五、程序代码与注释代码1function xe,xo,m=Calculatexexo(x,n)%输入一个序列,输出分解后的奇偶序列%2017-8-19 by Binwangm=-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); %计算奇偶分量end%计算序列的奇偶分量 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(original graph) subplot(2,2,3) stem(m,xe,*); %偶分量 title(xe graph) subplot(2,2,4) stem(m,xo,*); %奇分量 title(xo graph)fs=1000;b=1 0 0 0 1; %表达式分子系数a=1 0 0 0 -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; xlabel(frequency Hz);ylabel(magnitude);subplot(2,1,2)plot(w,ph);grid;xlabel(frequency Hz);ylabel(phase);n=1:0.025:5; x=sin(pi*n/2)+5*cos(pi*n); stem(n,x) b=1 0 0 0 1; %表达式分子系数 a=1 0 0 0 -0.8145; %表达式分母系数 y=filter(b,a,x); hold on stem(n,real(y),r*) legend(x(n),y(n); title(输入输出序列比照)代码3fs=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(frequency Hz); ylabel(magnitude /dB); title(矩形窗函数的幅频特性); subplot(2,3,4) plot(w,180/pi*unwrap(angle(h); xlabel(frequency Hz); ylabel(phase); title(矩形窗函数的相频特性);%巴特沃斯带通滤波器 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); xlabel(frequency Hz); ylabel(magnitude /dB); title(巴特沃斯的幅频特性); subplot(2,3,5) plot(w1,180/pi*(angle(h1); xlabel(frequency Hz); ylabel(phase); title(巴特沃斯的相频特性);%椭圆带通滤波器 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); xlabel(frequency Hz); ylabel(magnitude /dB); title(椭圆滤波器的幅频特性); subplot(2,3,6) plot(w2,180/pi*(angle(h2); xlabel(frequency Hz); ylabel(phase); title(椭圆滤波器的相频特性);六、实验结果1原始序列与得到的奇偶序列如如下图所示差分方程表示如下计算出的幅频和相频图如下2.3 输入序列与滤波器的输出序列如如下图所示分析结果可知,输出相对于输入在相位上有一定的延迟,幅度上有了提升。两个正弦信号在对应的频率处均有一定给上的幅度增加和相位延迟3带通滤波器设计根据上图结构可以看出:巴特沃斯带通滤波器的通带无波动,且设计出来的滤波器结构简单,相频变化表现较差,但带外衰减速度较慢。椭圆滤波器的通带有一定的波动起伏,边带截止频率非常陡峭,相频表现差。矩形窗函数带通滤波器通带有一定的波动,边带截止频率变现位于三者的中等,相频变化表现较好。实验三 基于MATLAB的图像处理实验一、实验目的与要求1了解图像处理的根本概念和功能;2. 掌握利用MATLAB进展图像处理的方法;3. 了解图像处理工具箱中一些函数的功能;二、实验设备环境与要求1 计算机2 Matlab软件编程实验平台三、实验容1对图像分别添加椒盐噪声密度为0.03和高斯白噪声均值为0,方差为0.02的图像,利用三种方法进展去噪,显示原始图像、加噪图像和去噪图像并对实验结果进展分析。2. 对lena.bmp 图像进展DCT变换,分别选取最大的1/5、1/10、1/15个变换系数(其余置为0),进展反DCT得到重构图像,显示原图像和各重构图像并分别计算重构图像的峰值信噪比。四、设计思想matlab的imnoise函数为图像添加椒盐噪声和高斯白噪声,并分别使用均值滤波器fspecial中值滤波器medfilt2,维纳滤波器wiener三种方法进展降噪处理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);title(原始图片); subplot(1,3,2) imshow(Jpic);title(参加椒盐噪声图片); subplot(1,3,3) imshow(Gpic);title(参加高斯白噪声图片);%均值滤波复原处理 figure; J1=filter2(fspecial(average,3),Jpic)/255; %模板尺寸为3 J2=filter2(fspecial(average,7),Jpic)/255; %模板尺寸为7 subplot(2,3,1) imshow(Jpic);title(椒盐噪声图片); subplot(2,3,2) imshow(J1);title(3x3均值滤波); subplot(2,3,3) imshow(J2);title(7x7均值滤波); G1=filter2(fspecial(average,3),Gpic)/255; %模板尺寸为3 G2=filter2(fspecial(average,7),Gpic)/255; %模板尺寸为7 subplot(2,3,4) imshow(Gpic);title(高斯白噪声图片); subplot(2,3,5) imshow(G1);title(3x3均值滤波); subplot(2,3,6) imshow(G2);title(7x7均值滤波);%中值滤波复原图像 figure; JJ1=medfilt2(Jpic,3 3); %模板尺寸为3 JJ2=medfilt2(Jpic,7 7); %模板尺寸为7 subplot(2,3,1) imshow(Jpic);title(椒盐噪声图片); subplot(2,3,2) imshow(JJ1);title(3x3中值滤波); subplot(2,3,3) imshow(JJ2);title(7x7中值滤波); GG1=medfilt2(Gpic,3 3); %模板尺寸为3 GG2=medfilt2(Gpic,7 7); %模板尺寸为7 subplot(2,3,4) imshow(Gpic);title(高斯白噪声图片); subplot(2,3,5) imshow(GG1);title(3x3中值滤波); subplot(2,3,6) imshow(GG2);title(7x7中值滤波);%维纳滤波复原图像 figure; JJJ1=wiener2(Jpic,3 3); %模板尺寸为3 JJJ2=wiener2(Jpic,7 7); %模板尺寸为7 subplot(2,3,1) imshow(Jpic);title(椒盐噪声图片); subplot(2,3,2) imshow(JJJ1);title(3x3维纳滤波); subplot(2,3,3) imshow(JJJ2);title(7x7维纳滤波); GGG1=wiener2(Gpic,3 3); %模板尺寸为3 GGG2=wiener2(Gpic,7 7); %模板尺寸为7 subplot(2,3,4) imshow(Gpic);title(高斯白噪声图片); subplot(2,3,5) imshow(GGG1);title(3x3维纳滤波); subplot(2,3,6) imshow(GGG2);title(7x7维纳滤波);代码2pic = imread(lena.bmp); %输入灰度图像subplot(2,2,1);imshow(pic);title(原始图片lena);pic=rgb2gray(pic);subplot(2,2,2);imshow(pic);title(灰度图片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变换,设置maskmask1=1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保存1/5个系数mask2=1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保存1/10个系数mask3=1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; %保存1/15个系数X = blkproc(C,8,8,P1.*x,mask1); %保存1/5个系数I1= blkproc(X,8,8,P1*x*P2,D,D); %重构图像X2 = blkproc(C,8,8,P1.*x,mask2); %保存1/10个系数I2 = blkproc(X2,8,8,P1*x*P2,D,D); %重构图像X3 = blkproc(C,8,8,P1.*x,mask3); %保存1/15个系数I3 = blkproc(X3,8,8,P1*x*P2,D,D); %重构图像subplot(2,3,4);imshow(I1);title(保存1/5个系数);subplot(2,3,5);imshow(I2);title(保存1/10个系数);subplot(2,3,6);imshow(I3);title(保存1/15个系数);I1p= imPSNR(pic,I1);I2p= imPSNR(pic,I2);I3p= imPSNR(pic,I3);disp(DCT变换保存1/5个系数的PSNR:,num2str(I1p);disp(DCT变换保存1/10个系数的PSNR:,num2str(I2p);disp(DCT变换保存1/15个系数的PSNR:,num2str(I3p);function PSNR = imPSNR( J , I )%imPSNR Summary of this function goes here% I is a image with high quality% J is a image with noise% the function will return the PSNR of the noise imagewidth = size(I,2);heigh = size(I,1);if( width = size(J,2) | heigh = size(J,1) ) disp(Please check the input image have the same size);returnendK = (I-J).*(I-J);PSNR = sum(sum(K,1);PSNR = PSNR / (width * heigh);PSNR=10*log10(255*255/PSNR);end六、实验结果噪声图片与复原图片本次实验分别使用均值滤波,中值滤波,维纳滤波三种方法对参加噪声的图片进展复原。每种方法分别采用了3x3和7x7的模板大小进展处理,最终得到的结果如上图所示。分析图片结果可以得到:均值滤波方法更适合处理椒盐噪声的图片,针对椒盐噪声图片,7x7模板处理效果趋于模糊,3x3模板的效果更好。中值滤波同样更适合处理椒盐噪声图片,3x3模板处理效果非常好,根本接近于原始图片,7x7模板处理效果有一定程度上的模糊。维纳滤波跟适合处理高斯噪声,比照不同模板大小的处理效果,7x7模板的处理效果要明显好于3x3的效果,其处理结果根本近似原始图片。2.DCT变换结果的均方误差与重构图片结果如如下图所示:分析上述结果可以看出,DCT变换保存1/5个数的系数时,重构的图像质量最好。减少DCT变换系数的个数,图像质量略有下降。实验四 基于MATLAB神经网络编程实验一、实验目的与要求1了解神经网络的根本概念和原理;2. 掌握用MATLAB实现神经网络的思路和方法;3. 了解神经网络工具箱函数的功能。二、实验设备环境与要求1 计算机2 Matlab软件编程实验平台三、实验容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个节点,训练网络,并进展最后的测试。五、程序代码与注释代码1:%生成20组数据,以y=x划分为两类load(RandData.mat,P)T=ones(1,20);for i=1:20if P(1,i)+2.1P(2,i) %x+2.1=Max1) Max3=Max2; Max(3)=Max(2); Max2=Max1; Max(2)=Max(1); Max1=S(i).Area; Max(1)=i;elseif(S(i).Area=Max2) Max3=Max2; Max(3)=Max(2); Max2=S(i).Area; Max(2)=i;elseif(S(i).Area=Max3) Max3=S(i).Area; Max(3)=i;endendendendif(Max(1)&Max(2)&Max(3)=0) errordlg(没有路标!,Warning);elsefor i=1:3 tz(i)=0; Mblen(i)=0; Mbwid(i)=0;endhang,lie,r=size(BW);for i=1:3 X=cent(Max(i),1); Y=cent(Max(i),2);%白色为1;取出最大填充快的质心坐标; MX(i)=round(X); MY(i)=round(Y);%质心坐标取整; bx=boud(Max(i),1); by=boud(Max(i),2); blen=boud(Max(i),4); bwid=boud(Max(i),3);%候选区域的左顶点坐标; bx1=round(bx); by1=round(by); Mblen(i)=round(blen); Mbwid(i)=round(bwid);if (blen=bwid) MR=bwid;else MR=blen;end%取候选区域的宽度;if (MX(i)+round(MR/4)=lie&MY(i)+round(MR/6)0&MY(i)-round(MR/6)0&TC(MY(i)-round(MR/6),MX(i)-round(MR/4)=1) t4=1;endif (MY(i)+round(MR/6)0&TC(MY(i)+round(MR/6),MX(i)-round(MR/4)=1) t7=1;endif (MY(i)-round(MR/6)0&MX(i)+round(MR/4)0.01) %当对象的象素少于1000的时候默认他不是路标 tz(i)=1; t2=0;t4=0;t7=0;t8=0;endendendif tz(3)=1 YC=bwareaopen(TC,Max3);%开运算elseif tz(2)=1 YC=bwareaopen(TC,Max2);else YC=bwareaopen(TC,Max1);endif(tz(1)+tz(2)+tz(3)=0) imshowage=0;errordlg( 没有路标!,Warning);end%找出交通标志位置; flag=0 0 0;for i=1:3if(tz(i)=1) high=Mblen(i); %Mblen(i)是对应矩形的长 liezb=round(MX(i)-Mbwid(i)/2); %MX(i)对应质心的X坐标 hangzb=round(MY(i)-Mblen(i)/2); %MY(i)对应质心的Y坐标 width=Mbwid(i); %Mbwid(i)是对应矩形的宽 flag(i)=1; Iresult=imcrop(I,liezb hangzb width high); if(i=1) IMG=drawRect(ima,liezb,hangzb,width,high,2); Crop=Iresult; %截取并返回第一交通标志 imwrite(Iresult,result1.bmp,bmp); %保存elseif(i=2) imwrite(Iresult,result2.bmp,bmp); %保存elseif(i=3) imwrite(Iresult,result3.bmp,bmp); %保存endendendend代码:GUI界面代码function varargout = traffice(varargin)% TRAFFICE, by itself, creates a new TRAFFICE or raises the existing% singleton*.% H = TRAFFICE returns the handle to a new TRAFFICE or the handle to% the existing singleton*.% TRAFFICE(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in TRAFFICE.M with the given input arguments.% TRAFFICE(Property,Value,.) creates a new TRAFFICE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before traffice_OpeningF gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to traffice_OpeningF via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help traffice% Last Modified by GUIDE v2.5 28-Aug-2017 22:45:10% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, .gui_Singleton, gui_Singleton, .gui_OpeningF, traffice_OpeningF, .gui_OutputF, traffice_OutputF, .gui_LayoutF, , .gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainf(gui_State, varargin:);else gui_mainf(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before traffice is made visible.function traffice_OpeningF(hObject, eventdata, handles, varargin)% This function has no output args, see OutputF.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin mand line arguments to traffice (see VARARGIN)% Choose default mand line output for trafficehandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes traffice wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the mand line.function varargout = traffice_OutputF(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default mand line output from handles structurevarargout1 = handles.output;% - Executes on button press in OpenPic.function OpenPic_Callback(hObject, eventdata, handles)global Img;filename,filepath=uigetfile(*.jpg,打开文件);filep=strcat(filepath,filename); Img=imread(filep);axes(handles.axes1);imshow(Img);% hObject handle to OpenPic (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function Detection_Callback(hObject, eventdata, handles)global Img;Result,pic1,pic2,pic3,pic4,pic5=Detection(Img);axes(handles.axes2);imshow(pic1);axes(han
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!