实验报告实验课程MATLAB实验学院电子与信息工程学院专业电子信息工程班级电子 1404 姓名祝东喜指导教师许大毛实验六MATLAB数据可视化一、实验目的掌握MATLAB二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。
二、实验内容(1)、二维图形绘制(2)、三维曲线和三维曲面绘制(3)、图像文件的读取和显示三、实验步骤1、二维图形绘制(1)二维图形绘制主要使用函数plotx=linspace(0,2*pi,100)y1=sin(x) ;plot(x,y1)hold on%保持原有图形y2=cos(x)plot(x,y2)(2)函数plo t的参数也可以是矩阵x=linspace(0,2*pi,100)y1=sin(x)y2=cos(x)A=[y1;y2]’;%把矩阵转置B=[x;x];Plot(B,A)(3)选用绘图线和颜色plot(x,y1,'g+',x,y2,'r:')grid on%添加网络线(4)添加文字标注title('正弦曲线和余弦曲线') ylabel('幅度')xlabel('时间')legend('sin(x)','cox(x)')gtext('\leftarrowsinx')(5)修改坐标轴范围axis equalaxis normalaxis ([0 pi 0 1.5])(6)子图和特殊图形绘制subplot(2,2,1)t1=0:0.1:3;y1=exp(-t1);bar(t1,y1);subplot(2,2,2)t2=0:0.2:2*pi;y2=sin(t2);stem(t2,y2);subplot(2,2,3)t3=0:0.1:3;y3=t3.^2+1;stairs(t3,y3);subplot(2,2,4)t4=0:.01:2*pi;y4=abs(cos(2*t4));polar(t4,y4)练习写出图形绘制方法x=linspace(0,4*pi,100)y1=sin(x)y2=cos(x)y3=0plot(x,y1,'r:',x,y2,'m',x,y3,'-') xlabel('时间')ylabel('幅值')legend('sinx','cosx')gtext('\leftarrowsinx')gtext('\leftarrowcosx')axis([0 16 -1 1])2.三维曲线和三维曲面绘制(1)三维曲线绘制使用plot函数。
绘制一条空间螺旋线z=0:0.1:6*pi;x=cos(z);y=sin(z);plot3(x,y,z);(2)三维曲面图的绘制:函数mesh()和surf()绘制椭圆抛物面x=-4:0.2:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2/9+Y.^2/9;mesh(X,Y,Z);title('椭圆抛物面网线图')figure(2)surf(X,Y,Z);title('椭圆抛物面网面图')绘制阔边帽面:x=-7.5:0.5:7.5;y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R;mesh(X,Y,Z);title('阔边帽面网线图') figure(2)surf(X,Y,Z);title('阔边帽面网面图')练习考虑以下问题:z=x^e^-(X6+y^),求定义域x=[-2,2],y=[-2,2]内的Z值代码如下:x=-2:0.1:2;y=-2:0.1:2;[X,Y]=meshgrid(x,y);Z=X.^2.*exp(-(X.^2+Y.^2));surf(X,Y,Z)3、图像文件的读取和显示x=imread('cameraman.tif')%首先读取图像文件imshow(x)y=255-double(x);%对图像进行反色处理y=uint8(y);figureimshow(y)imwrite(y,'reverse.tif')%将图像数据保存为文件实验七SIMULINK仿真集成环境一、实验目的熟悉simulink的模型窗口、熟练掌握simuilink模型的创建,熟练掌握常用模块的操作及其连接。
二、实验内容(1)SIMULINK模型的创建和运行(2)一阶系统仿真三、实验步骤1、Simulink模型的创建和运行(1)、创建模型①在matlab的命令窗口中输入simulink语句,或者单击matlab工具条上的simulink图标,simulink模块库浏览器。
②在matlab菜单或库浏览器菜单中选择File|New|Model,或者单击库浏览器的图标,即可新建一个“untitle”的空白模型窗口。
③打开Source是模块库,选择Sine Wave模块,将其拖到模型窗口,再重复一次,打开Math Operations模块库选取Product模块,打开Sinks模块库选取Scope 模块。
(2)、设置模块参数①修改模块注释,在编辑框中修改注释②双击下边Sine Wave模块,弹出参数对话框,将Frequency设置为100;双击Scope模块,弹出示波器窗口,单击示波器图标,弹出对话参数,修改示波器的通道数Number of axes为3.③如下图,用信号线连接模块(3)启动仿真①单击启动图标,启动仿真;双击Scope模块弹出示波器窗口,可以看到波形图。
②修改仿真步长。
在模型窗口的Simulatio菜单下选择configuration Parameters 命令,把Max step size 设置为0.01;启动仿真,观察波形。
③再次修改Max step size为0.001,设置仿真时间为10s,启动仿真④将示波器的参数对话框打开,选择Data history页,把Limit data pointTolast设置为10000;再次启动仿真,观察示波器将看到完整的波形。
2、一阶系统仿真使用阶跃信号作为输入信号,经过传递函数为1/(0.6+1)的一阶系统,观察其输出。
①设置Step模块的Steptime为0,将仿真参数的最大步长Max step size设置为0.01.②打开Sources模块库,选取Clock模块添加到模型窗口。
③打开sinks模块库,选取两个To workspace模块添加到模型窗口中,两个模块分别连接输出和Clock模块。
④设置To workspace模块参数,设置variable name分别为y和t,如图所示:仿真图⑤启动仿真后,在工作空间可以有两个结构体y和t,在命令窗口输入如下命令:y1=y.signals.values;t1=t.signals.values;plot(t1,y1)仿真结果图如下:MATLAB图形用户界面小程序:程序:%simpleGUI2.m-a simple use of Radiobutton and Pushbuttonclear all;FigWin=figure('Position',[100,100,600,300],'Name','Uicontrol:Push Button & RadioButton',...'NumberTitle','off');AxesHandle=axes('Position',[0.4,0.15,0.5,0.8],'Box','on');RadioNum=3;for i=1:RadioNumRadio(i)=0;%initial value=0endRadio(1)=uicontrol(FigWin,...%父对象FigWin(一figure对象),备注③'Style','Radio',...'Position',[50 255 100 30],...'String','Draw in Red',...'CallBack',...['n=1;'...'if get(Radio(1),''Value'')==1;'...%要使各radio button之间具有互斥性,要用if...else 语句'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'...'else;'...%要加上分号,一种规定?参备注①'set(Radio(1),''Value'',1);'...'end;'...'ColorStr=''r'';'...'set(FunHandle,''Color'',''red'')']);%曲线颜色根据radio button的选项实时变化,ColorStr是一个全局变量Radio(2)=uicontrol(FigWin,...'Style','Radio',...'Position',[50 215 100 30],...'String','Draw in Green',...'CallBack',...['n=2;'...'if get(Radio(2),''Value'')==1;'...'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'...'else;'...'set(Radio(2),''Value'',1);'...'end;'...'ColorStr=''g'';'...'set(FunHandle,''Color'',''green'')']);Radio(3)=uicontrol(FigWin,...'Style','Radio',...'Position',[50 175 100 30],...'String','Draw in Blue',...'CallBack',...['n=3;'...'if get(Radio(3),''Value'')==1;'...'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'... 'else;'...'set(Radio(3),''Value'',1);'...'end;'...'ColorStr=''b'';'...'set(FunHandle,''Color'',''blue'')']);push1=uicontrol(FigWin,...'Style','pushbutton',...'Position',[50 135 100 30],...'String','Plot sin(x)',...'CallBack',...['subplot(AxesHandle);' ...'x=0:.1:4*pi;'...'FunHandle=plot(x,sin(x),ColorStr);'...'axis([0 4*pi -1 1]);'...'grid on;'...'xlabel(''x'');'...'ylabel(''y=sin(x)'');']);push2=uicontrol(FigWin,...'Style','pushbutton',...'Position',[50 95 100 30],...'String','Plot cos(x)',...'CallBack',...['subplot(AxesHandle);' ...'x=0:.1:4*pi;'...'FunHandle=plot(x,cos(x),ColorStr);'...'axis([0 4*pi -1 1]);'...'grid on;'...'xlabel(''x'');'...'ylabel(''y=cos(x)'');']);push3=uicontrol(FigWin,...'Style','pushbutton',...'Position',[50 55 100 30],...'String','Grid off',...'CallBack','grid off;');push4=uicontrol(FigWin,...'Style','pushbutton',...'Position',[50 15 100 30],...'String','Exit',...'CallBack','close(FigWin)');%绘制初始曲线ColorStr='r';set(Radio(1),'Value',1);X=0:0.1:4*pi;FunHandle=plot(X,sin(X),ColorStr); axis([0 4*pi -1 1]);xlabel('x');ylabel('y=sin(x)');grid on;结果截图:MATLAB 在数字信号处理中的应用应用实例:计算16点序列 150,165cos )(≤≤=n n n x π的16点和32点DFT ,绘出幅度谱图形,并绘出该序列的DTFT 图形 程序:N1=16;n1=0:N1-1;N2=32;n2=0:N2-1;x=cos(5*pi*n1/16);x1=fft(x,N1);x2=fft(x,N2);subplot(2,2,1);stem(n1,abs(x1));title('16点DFT 幅度谱图');subplot(2,2,2);stem(n2,abs(x2));title('32点DFT 幅度谱图');num=x;den=1;[h,w]=freqz(num,den,'whole'); subplot(2,2,3);plot(w,abs(h));title('DTFT 幅度谱图');subplot(2,2,4);plot(w,angle(h)*180/pi);title('DTFT 相位谱图');。