MATLAB实验教程

合集下载

(完整版)MATLAB)课后实验[1]

(完整版)MATLAB)课后实验[1]

实验一 MATLAB 运算基础1. 先求以下表达式的值,尔后显示 MATLAB 工作空间的使用情况并保存全部变量。

(1)2sin 85 z1 21 e(2) 12z ln( x 1 x ) ,其中22 x2 1 2i5(3)ae e az sin( a 0.3) ln , a 3.0, 2.9, L , 2.9, 32 22t 0 t 1(4) 2z t 1 1 t 242t 2t 1 2 t 3,其中解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4. 完成以下操作:(1) 求[100,999] 之间能被 21 整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:m=100:999;n=find(mod(m,21)==0);length(n)ans =43(2). 建立一个字符串向量比方:ch='ABC123d4e56Fg9'; 那么要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch =123d4e56g9实验二 MATLAB矩阵解析与办理1. 设有分块矩阵 A E R3 3 3 2O S2 3 2 2,其中 E、R、O、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试经过数值计算考据 2A E R RS2O S。

实验一 Matlab使用方法和程序设计

实验一 Matlab使用方法和程序设计

实验一Matlab使用方法和程序设计一、实验目的1、掌握Matlab软件使用的基本方法;2、熟悉Matlab的数据表示、基本运算和程序控制语句3、熟悉Matlab绘图命令及基本绘图控制4、熟悉Matlab程序设计的基本方法二、实验内容:1、帮助命令使用help命令,查找 sqrt(开方)函数的使用方法;答:点击菜单栏help,选择product help选项,在search for栏输入‘sqrt’,点击go,可得到sqrt(开方)函数的使用方法.2、矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8];求A^2*B>> A=[1 2;3 4]; B=[5 5;7 8];C=A^2*BC =105 115229 251(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B>> A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];C=A\B,D=A/BWarning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.541976e-018.C =1.0e+016 *-0.4504 1.8014 -1.35110.9007 -3.6029 2.7022-0.4504 1.8014 -1.3511D =1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i];求A.', A'>> A=[5+i,2-i,1;6*i,4,9-i];>> B=A.', C=A'B =5.0000 + 1.0000i 0 +6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000iC =5.0000 - 1.0000i 0 -6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号表达式选出指定元素 P22已知: A=[1 2 3;4 5 6;7 8 9];求A中第3列前2个元素;A中所有列第2,3行的元素;>> A=[1 2 3;4 5 6;7 8 9];B1=A([1,2],[3])B2=A([2,3],:)B1 =36B2 =4 5 67 8 9方括号[]用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列>> A=magic(4)B=A(:,[1,2,3])A =16 2 3 135 11 10 89 7 6 124 14 15 1B =16 2 35 11 109 7 64 14 153、多项式(1)求多项式4=xxp的根x-(3-2)>> Y=[1 0 -2 -4];S=roots(Y)S =2.0000-1.0000 + 1.0000i-1.0000 - 1.0000i(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征多项式;把矩阵A作为未知数代入到多项式中;>> A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]P=poly(A)polyval(P,A)A =1.2000 3.0000 5.0000 0.90005.0000 1.7000 5.00006.00003.0000 9.0000 0 1.00001.00002.00003.00004.0000P =1.0000 -6.9000 -77.2600 -86.1300 604.5500 ans =1.0e+003 *0.3801 -0.4545 -1.9951 0.4601-1.9951 0.2093 -1.9951 -2.8880-0.4545 -4.8978 0.6046 0.43530.4353 0.0841 -0.4545 -1.16174、基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π] >> t=[0:0.05:2*pi];>> y=cos(t)plot(t,y)(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t ∈[0,2π]>> t=[0:0.05:2*pi];y1=cos(t-0.25);y2=sin(t-0.5);plot(t,y1)hold onplot(t,y2)5、基本绘图控制 P40绘制[0,4π]区间上的x1=10sint曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;>> syms x1;>> x1=10*sin(t);>> t=[0:0.1:4*pi];>> plot(t,x1,'r-.+'); %画图,显示红色、点划线、标记加号;axis([0,15,-10,10]); %定义显示范围,横轴为[0,15],纵轴为[-10,10];title('曲线x1=10sint'); %显示标题;xlabel('T轴');ylabel('X1轴'); %显示坐标轴名称;set(gca,'xminortick','on');set(gca,'yminortick','on'); %显示刻度线;grid on %显示网络线6、基本程序设计(1)编写命令文件:计算1+2+…+n<2000 时的最大n值;(P32例题)(1)>> sum=0;for m=1:2000;if (sum>2000),break;endsum=sum+m;endsum=sum-m,m=m-1sum =1952m =63(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。

matlab 实验教程 实验一

matlab 实验教程 实验一

MATLAB语言及其应用实验教程实验一实验目的:1.熟悉MATLAB的界面,菜单,会使用DEMO,学会使用帮助(help)。

2.学习MATLAB的基本语法实验内容:1.打开MATLAB,点击各个菜单以了解各个子菜单项。

2.更改当前路径,在指定路径下保存所作的实验。

实验具体步骤:如图所示,在D盘根目录下建立“MATLAB实验”文件夹,并在此文件夹下以各自的学号建立子文件夹。

如图所示,点击工具栏上“Current Directory”栏的浏览按钮。

选择刚刚建立的以各自学号命名的文件夹,“Current Directory”栏显示如下路径格式。

注意!以后所有的实验均保存在此目录中。

3.学习打开和关闭命令窗口(command window),工作空间(workspace)和命令历史窗口(command history)。

实验具体步骤:单击命令窗口右上角的“X”标志,关闭命令窗口;在Desktop菜单下选择“Command window”,打开命令窗口;单击工作空间窗口右上角的“X”标志,关闭工作空间;在Desktop菜单下选择“Workspace”,打开工作空间;单击命令历史窗口右上角的“X”标志,关闭命令历史窗口;在Desktop菜单下选择“Command history”,打开命令历史窗口。

4.练习变量的赋值,包括向量赋值,矩阵赋值以及复数的赋值。

实验具体步骤:变量赋值>> a=100a =100>> b=0.1b =0.1000向量赋值>> a=1:1:10a =1 2 3 4 5 6 7 8 9 10>> b=1:2:10b =1 3 5 7 9矩阵赋值>> a=[1 2 3;4 5 6;7 8 9]a =1 2 34 5 67 8 9复数赋值>> c=3+5.2ic =3.0000 + 5.2000i>> z=[1+2i,3+4i;5+6i,7+8i]z =1.0000 +2.0000i3.0000 +4.0000i5.0000 +6.0000i7.0000 +8.0000i5.用变量检查命令who和whos检查工作空间中的变量。

实验一MATLAB软件入门

实验一MATLAB软件入门

实验一:MATLAB 软件入门一、 实验目的及意义[1] 熟悉MATLAB 软件的用户环境;[2] 了解MATLAB 软件的一般目的命令;[3] 掌握MATLAB 数组操作与运算函数;[4] 掌握MATLAB 软件的基本绘图命令;[5] 掌握MATLAB 语言的几种循环、条件和开关选择结构。

通过该实验的学习,使学生能灵活应用MATLAB 软件解决一些简单问题,能借助MATLAB 软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律。

二、实验内容1.MATLAB 软件的数组操作及运算练习;2.直接使用MATLAB 软件进行作图练习;3.用MATLAB 语言编写命令M-文件和函数M-文件。

三、实验步骤1. 在E 盘建立一个自己的文件夹;2.开启软件平台——MATLAB ,将你建立的文件夹加入到MATLAB 的搜索路径中。

3.利用帮助了解函数max, min, sum, mean, sort, length ,rand, size 和diag 的功能和用法。

4.开启MATLAB 编辑窗口,键入你编写的M 文件(命令文件或函数文件);5.保存文件(注意将文件存入你自己的文件夹)并运行;6.若出现错误,修改、运行直到输出正确结果;7.写出实验报告,并浅谈学习心得体会。

四、实验任务基础实验1.设有分块矩阵⎥⎦⎤⎢⎣⎡=⨯⨯⨯⨯22322333S O R E A ,其中E,R,O,S 分别为单位阵、随机阵、零阵和对角阵,试通过数值计算验证⎥⎦⎤⎢⎣⎡+=22S 0RS R E A 。

2.某零售店有9种商品的单件进价(元)、售价(元)及一周的销量如表1.1,问哪种商品的利润最大,哪种商品的利润最小;按收入由小到大,列出所有商品及其收入;求这一周该10种商品的总收入和总利润。

表1.1单件进价 7.15 8.25 3.20 10.30 6.68 12.03 16.85 17.51 9.30 单件售价11.10 15.00 6.00 16.25 9.90 18.25 20.80 24.15 15.50 销量 568 1205 753 580 395 2104 1538 810 6943.在同一个坐标下作出y 1=e x ,y 2=1+x,y 3=1+x+(1/2)x 2,y 4= 1+x+(1/2)x 2+(1/6)x 3这四条曲线的图形,要求在图上加各种标注,观察、发现、联想、猜想,给出验证及理论证明。

MATLAB实验教程

MATLAB实验教程

实验一1.实现单位采样序列,单位阶跃序列,矩形序列,并用图形显示。

写出程序及输出图形。

代码:(1)单位采样序列x=-10:10;y=[zeros(1,10),1,zeros(1,10)];figure(3);stem(x,y);axis([ -10, 10,0,2]);(2)单位阶跃序列x=-10:10;y=[zeros(1,10),1,ones(1,10)];figure(4);stem(x,y);axis([ -10, 10,0,2]);(3)矩形序列x=-10:10;y=[zeros(1,10),1,ones(1,5),zeros(1,5)];figure(4);stem(x,y);axis([ -10, 10,0,2]);图:Figure 8.5.1. 1 单位采样序列Figure 8.5.1. 2 单位阶跃序列Figure 8.5.1. 3 矩形序列实验心得:实验二1.模拟信号x(t)=2sin(4*pi*t)+5cos(8*pi*t),以t=0.01n(n=0:N-1)进行采样,求:(1)N=40点FFT的幅度频谱,从图中能否观察出信号的2个频谱分量?(2)提高采样点数,如N=128,再求该信号的频谱幅度,此时幅度频谱发生了什么变化?代码:N=40;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1));subplot(2,1,1);stem(n,x,'.');title('signal x(n)');subplot(2,1,2);plot(w/pi,magX);title('FFT N=40');xlabel('f (unit :pi)');ylabel('|X|');gridN=128;n=0:N-1;t=0.01*n;x=2*sin(4*pi*t)+5*cos(8*pi*t);k=0:N/2;w=2*pi/N*k;X=fft(x,N);magX=abs(X(1:N/2+1));subplot(2,1,1);stem(n,x,'.');title('signal x(n)');subplot(2,1,2);plot(w/pi,magX);title('FFT N=128');xlabel('f (unit :pi)');ylabel('|X|');grid图:510152025303540signal x(n)50100FFT N=40Figure 8.2.1. 1 N=40 的FFT 频谱图20406080100120140signal x(n)0.10.20.30.40.50.60.70.80.91010*******400FFT N=128f (unit :pi)|X |Figure 8.2.1. 2 N=128 的FFT 频谱图实验心得: 实验六双线性变换法 代码%Filter clc;%clear;%digital filter specifications; lfp=100; lfs=300;ws=2*pi*lfs;wp=2*pi*lfp;Rp=1;Rs=25;fs=1000;[n,Wn]=buttord(wp,ws,Rp,Rs,'s');[z,p,k] = buttap(n);[b,a]=zp2tf(z,p,k);x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2 ,0,0,-2,-2,-2,-2,0];Y=filter(b,a,x);N=56;n=0:N-1;subplot(2,1,1);plot(n,x);subplot(2,1,2);plot(n,Y);[bt,at]=lp2lp(b,a,Wn);[bbs,abs]=bilinear(bt,at,fs);[dB,mag,pha,grd,w]=freqz_m(bbs,abs);Ripple=10^(-Rp/20);Attn=10^(-Rs/20);%»-ͼsubplot(2,2,1);plot(w/pi,mag);title('·ùƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[Attn,Ripple,1]);grid;subplot(2,2,2);plot(w/pi,pha/pi);title('ÏàƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');ylabel('µ¥Î»:pi');axis([0,1,-1.1,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[-1,-0.5,0,0.5,1]);grid;subplot(2,2,3);plot(w/pi,dB,'red');title('·ùƵÏìÓ¦:dB');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,-60,5]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'XTickMode','manual','XTick',[-60,-40,-20,5]);grid;subplot(2,2,4); plot(w/pi,grd,'red'); title('ȺʱÑÓ'); xlabel('¹éÒ»»¯ÆµÂÊ') axis([0,1,0,6]);set(gca,'XtickMode','manual','Xtick',[0,2*lfp/fs,2*lfs/fs,1]); set(gca,'YtickMode','manual','Ytick',[0,1,2,4,6]); grid;%²ÉÓÃÊý×ÖÓòƵÂʱ任·¨Éè¼ÆÊý×Ö´ø×èÂ˲¨Æ÷(using bilinear and Chebyshev-I)x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0]; Y=filter(b,a,x); N=56;n=0:N-1;figure(2)subplot(2,1,1);plot(n,x);grid on ; subplot(2,1,2);plot(n,Y);grid on ;图双线性变换法设计的滤波器特性0.05620.891310.20.40.60.81幅频响应归一化频率00.51-1-0.500.51相频响应归一化频率单位:p i-60-40-200幅频响应:dB归一化频率0.20.6101246群时延归一化频率原始心电图信号和经过滤波后的心电图信号0102030405060-100-5050102030405060-30-20-1001020实验心得:脉冲响应不变法代码:%Âö³åÏìÓ¦²»±ä·¨% digital filter specifications: lfp=100; lfs=300; ws=2*pi*lfs; wp=2*pi*lfp; Rp=1; Rs=25; fs=1000;%Êý×ÖÖ¸±êµ½Ä£ÄâÖ¸±êµÄ±ä»¯¡ªË«ÏßÐԱ任 %¼ÆËã½×ÊýºÍ½ØֹƵÂÊ[n,Wn]=buttord(wp,ws,Rp,Rs,'s'); %Éè¼ÆÄ£ÄâµÍͨÔ-ÐÍ [z,p,k]=buttap(n); [b,a]=zp2tf(z,p,k);x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-69,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];Y=filter(b,a,x);%ÓÉÄ£ÄâµÍͨÔ-Ð;-ƵÂʱ任»ñµÃÄ£ÄâµÍͨ¡¢¸ßͨ¡¢´øͨ»ò´ø×èÂ˲¨Æ÷[bt,at]=lp2lp(b,a,Wn);%ÀûÓÃÂö³åÏìÓ¦²»±ä·¨»òË«ÏßÐÔ²»±ä·¨£¬ÊµÏÖÄ£ÄâÂ˲¨Æ÷µ½Êý×ÖÂ˲¨Æ÷µÄÓ³Éä[bbs,abs]=impinvar(bt,at,fs);%Â˲¨Æ÷ƵÂÊÏìÓ¦[dB,mag,pha,grd,w]=freqz_m(bbs,abs);Ripple=10^(-Rp/20);Attn=10^(-Rs/20);%»-ͼsubplot(2,2,1);plot(w/pi,mag) %Êý×ÖÂ˲¨Æ÷·ù¶ÈÏìÓ¦title('·ùƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[Attn,Ripple,1]);grid;subplot(2,2,2);plot(w/pi,pha/pi); %Êý×ÖÂ˲¨Æ÷ÏàλÏìÓ¦title('ÏàƵÏìÓ¦');xlabel('¹éÒ»»¯ÆµÂÊ');ylabel('µ¥Î»£ºpi');axis([0,1,-1.1,1.1]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[-1,-0.5,0,0.5,1]);grid;subplot(2,2,3);plot(w/pi,dB,'red');%Êý×ÖÂ˲¨Æ÷·ù¶ÈÏìÓ¦£¨dB£©title('·ùƵÏìÓ¦£ºdB');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,-60,5]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[-60,-40,-20,5]);grid;subplot(2,2,4);plot(w/pi,grd,'red');%Êý×ÖÂ˲¨Æ÷ÑÓʱtitle('ȺÑÓʱ');xlabel('¹éÒ»»¯ÆµÂÊ');axis([0,1,0,6]);set(gca,'XTickMode','manual','XTick',[0,2*lfp/fs,2*lfs/fs,1]);set(gca,'YTickMode','manual','YTick',[0,1,2,4,6]);grid;%²ÉÓÃÊý×ÖÓòƵÂʱ任·¨Éè¼ÆÊý×Ö´ø×èÂ˲¨Æ÷£¨using bilinear and Chebyshev-1£©x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,-4,8,12,12,10,6,6,6,4,0,0,0,0,-2,-4,0,0,0,-2,-2,0 ,0,-2,-2,-2,-2,0]Y =filter(b,a,x);N=56;n=0:N-1;figure(2)subplot(2,1,1);plot(n,x);grid on; subplot(2,1,2);plot(n,Y);grid on;子函数:function[dB,mag,pha,grd,w]=freqz_m(b,a)%computation of s-domain frequency response:modified version%---------------------------------------------------------%[dB,mag,pha,grd,w]=freqz_m(b,a);% dB=Relative magintude in dB over [0 to 2pi]% mag=Absolute magintude over [0 to 2pi]% pha=Phase response in radians over [0 to 2pi]% w=array of 500 frequency samples between [0 to 2pi]% b=numerator polynomial coefficients of H(z)% a=denominator polynomial coefficients of H(z)[H,w]=freqz(b,a,1000,'whole');%w ranging from 0 to 2pi radians per sample.%uses 1000 sample points around the entire unit circle to calculate the %frequency responseH=(H(1:501))';w=(w(1:501))';mag=abs(H);dB=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);图:0.20.610.05620.89131幅频响应归一化频率00.20.61-1-0.500.51相频响应归一化频率单位:p i00.20.61-60-40-205幅频响应:dB归一化频率00.20.611246群延时归一化频率0102030405060-100-5050102030405060-30-20-1001020实验七代码:主程序:% design a digital FIR lowpass filter with Hamming windowwp=0.3*pi;ws=0.5*pi;tr_width=ws-wp;N=ceil(6.6*pi/tr_width)+1; % N=34n=[0:1:N-1];wc=(ws-wp)/2;hd = ideal_lp(wc,N);w_ham=(hamming(N))';h=hd.*w_ham;[dB,mag,pha,grd,w]=freqz_m(h,[1]);delta_w=2*pi/1000;Rp=-(min(dB(1:1:wp/delta_w+1)));As=-round(max(dB(ws/delta_w+1:1:501)));%plotssubplot(2,2,1);stem(n,hd);title('ÀíÏëÂö³åÏìÓ¦');axis([0,N-1,-0.09,0.5]);xlabel('n');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3]);subplot(2,2,2);stem(n,w_ham);title('hamming´°');axis([0,N-1,0,1.1]);xlabel('n');subplot(2,2,3);stem(n,h);title('ʵ¼ÊÂö³åÏìÓ¦');axis([0,N-1,-0.09,0.5]);xlabel('n');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3]);subplot(2,2,4);plot(w/pi,dB);title('·ùƵÏìÓ¦:dB');grid;axis([0,1,-100,0]);xlabel('pi');ylabel('dB');set(gcr,'YTickMode','manual','YTick',[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0 .8,0.9,1.0]);set(gcr,'YTickMode','manual','YTick',[-100,-90,-80,-70,-60,-50,-40,-3 0,-20,-10,0]);子程序:function[dB,mag,pha,grd,w]=freqz_m(b,a)%computation of s-domain frequency response:modified version%---------------------------------------------------------%[dB,mag,pha,grd,w]=freqz_m(b,a);% dB=Relative magintude in dB over [0 to 2pi]% mag=Absolute magintude over [0 to 2pi]% pha=Phase response in radians over [0 to 2pi]% w=array of 500 frequency samples between [0 to 2pi]% b=numerator polynomial coefficients of H(z)% a=denominator polynomial coefficients of H(z)[H,w]=freqz(b,a,1000,'whole');%w ranging from 0 to 2pi radians per sample.%uses 1000 sample points around the entire unit circle to calculate the %frequency responseH=(H(1:501))';w=(w(1:501))';mag=abs(H);dB=20*log10((mag+eps)/max(mag));pha=angle(H);grd=grpdelay(b,a,w);函数ideal_lp;function hd=ideal_lp(wc,N);alpha=(N-1)/2;n=0:1:N-1;m=n-alpha+eps;hd=sin(wc*m)./(pi*m);汉明窗法设计滤波器的102030理想脉冲响应n0102030hamming 窗n102030实际脉冲响应n 00.51-100-50幅频响应:dBpid B。

(整理)matlab实例教程-比较实用.

(整理)matlab实例教程-比较实用.

实验一特殊函数与图形一、问题背景与实验目的二、相关函数(命令)及简介三、实验内容四、自己动手一、问题背景与实验目的著名的Riemann函数大家都很熟悉了,但是关于它的图像你是否清楚呢除了最上面那几点,其他都很难画吧你想不想看看下面那些“挤在一起”的点是怎样分布的呢还有几何中的马鞍面、单叶双曲面等是怎样由直线生成的,是不是也想目睹一下呢这些,都离不开绘图.实际上绘图一直是数学中的一种重要手段,借助图形,往往可以化繁为简,使抽象的对象得到明白直观的体现.比如函数的基本性质,一个图形常可以使之一目了然,非常有效.它虽不能代替严格的分析与证明,但在问题的研究过程中,可以帮助研究人员节约相当一部分精力.此外,它还可以使计算、证明、建模等的结果得到更明白易懂的表现,有时,这比科学论证更有说服力.同时,数学的教学与学习过程也离不开绘图.借助直观的图形,常可以使初学者更容易接受新知识.如数学分析中有不少函数,其解析式着实让人望而生畏,即使对其性质作了详尽的分析,还是感到难明就里;但如果能看到它的图形,再配合理论分析,则问题可以迎刃而解.又如在几何的学习中,会遇到大量的曲线与曲面,也离不开图形的配合.传统的手工作图,往往费力耗时,效果也不尽理想.计算机恰恰弥补了这个不足,使你可以方便地指定各种视角、比例、明暗,从各个角度进行观察.本实验通过对函数的图形表示和几个曲面(线)图形的介绍,一方面展示它们的特点,另一方面,也将就Matlab软件的作图功能作一个简单介绍.大家将会看到,Matlab 的作图功能非常强大.二、相关函数(命令)及简介1.平面作图函数:plot,其基本调用形式:plot(x,y,s)以x作为横坐标,y作为纵坐标.s是图形显示属性的设置选项.例如:x=-pi:pi/10:pi;y=sin(x);plot(x,y,'--rh','linewidth',2,'markeredgecolor','b','markerfacecolor','g')图1在使用函数plot时,应当注意到当两个输入量同为向量时,向量x与y必须维数相同,而且必须同是行向量或者同是列向量.绘图时,可以制定标记的颜色和大小,也可以用图形属性制定其他线条特征,这些属性包括:linewidth 指定线条的粗细.markeredgecolor 指定标记的边缘色markerfacecolor 指定标记表面的颜色.markersize 指定标记的大小.若在一个坐标系中画几个函数,则plot的调用格式如下:plot(x1,y1,s1,x2,y2,s2,……)2.空间曲线作图函数:plot3,它与plot相比,只是多了一个维数而已.其调用格式如下:plot3(x,y,z,s).例如:x=0:pi/30:20*pi;y=sin(x);z=cos(x);plot3(x,y,z)得到三维螺旋线:图23.空间曲面作图函数:(1)mesh函数.绘制彩色网格面图形.调用格式:mesh(z),mesh(x,y,z)和mesh(x,y,z,c).其中,mesh(x,y,z,c)画出颜色由c指定的三维网格图.若x、y均为向量,则length(x)=n,length(y)=m,[m,n]=size(z).(2)surf在矩形区域内显示三维带阴影曲面图.调用格式与mesh类似.(3)ezmesh用符号函数作三维曲面网格图.调用格式:ezmesh(x,y,z)其中x = x(s,t), y = y(s,t),z = z(s,t).画图区域默认为: -2*pi < s < 2*pi 且-2*pi < t < 2*pi.或者用格式:ezmesh(x,y,z,[smin,smax,tmin,tmax])(4)ezsurf用符号函数作三维曲面图.调用格式与ezmesh类似.(5)sphere画球体命令.4.meshgrid,调用格式:[x,y]=meshgrid(m,n),这里的m,n为给定的向量,可以定义网格划分区域和划分方法.矩阵x和矩阵y是网格划分后的数据矩阵.5.图像的修饰与其他函数:(1)axis equal 控制各个坐标轴的分度,使其相等;(2)colormap设置绘图颜色.调用格式:colormap([r g b])其中r,g,b都是0-1之间的数.或者用格式:colormap(s)s颜色映像相应的颜色系颜色映像相应的颜色系autumn红黄色系hsv色调饱和色系gray线性灰色系hot黑红黄白色系cool青和洋红色系pink柔和色系(3(4)find找出符合条件的元素在数组中的位置.调用格式:y=find(条件)例如:输入:a=[4 5 78 121 4 665 225 4 1];b=find(a>7)输出: b =3 4 6 7三、实验内容数学分析中,特别是积分部分,我们接触了不少有趣的函数,由于其中有的不是一一对应的,用上面的方法无法画出它们的图像,这时就只能用参数了.此外还有些图形只能用参数来画,比如空间曲线,在计算机上不接受“两个曲面的交线”这种表示,所以也只能用参数来实现.用参数方式作图的关键在于找出合适的参数表示,尤其是不能有奇点,最好也不要用到开方.所以要找的参数最好是有几何意义的.当然这也不可一概而论,需要多积累经验.1.利用函数plot在一个坐标系中画以下几个函数图像,要求采用不同颜色、不同线形、不同的符号标记.函数为:.程序如下:t=0:pi/20:2*pi;x=sin(t);y=cos(t);z=sin(2*t);plot(t, x, '--k*', t, y, '-rs', t, z, ':bo')图像如下:图32.绘制类似田螺线的一条三维螺线(方程自己设计).程序如下:t=0:.1:30;x=2*(cos(t)+t.*sin(t));y=2*(sin(t)-t.*cos(t));z=*t;plot3(x,y,-z) %取–z 主要是为了画图看起来更清楚axis equal图像如下:图43.利用函数,绘制一个墨西哥帽子的图形.程序如下:[a,b]=meshgrid(-8:.5:8); %先生成一个网格c=sqrt(a.^2+b.^2)+eps;z=sin(c)./c;mesh(a,b,z)axis square图像如下:图5思考:这里的 eps 是什么其作用是什么4.利用surf绘制马鞍面图形(函数为:).程序如下:[x,y]=meshgrid(-25:1:25,-25:1:25);z=x.^2/9-y.^2/4;surf(x,y,z)title('马鞍面')grid off图像如下:图65.分别用ezmesh和ezsurf各绘制一个圆环面,尝试将两个圆环面放在一个图形界面内,观察它们有什么不同之处.提示:圆环面的方程为:,而圆环面的参数方程为:程序参见附录1.图像如下:图76.绘制黎曼函数图形,加深对黎曼函数的理解.说明:黎曼函数的定义为程序参见附录2.图像如下:图8四、自己动手1.作出下图所示的三维图形:图9提示:图形为圆环面和球面的组合.2.作出下图所示的墨西哥帽子及其剪裁图形:图103.画出球面、椭球面、双叶双曲面、单叶双曲面.4.若要求田螺线的一条轴截面的曲边是一条抛物线:时.试重新设计田螺线的参数方程,并画出该田螺线.5.作出下图所示的马鞍面(颜色为灰色,并有一个标题:“马鞍面”):图116.绘制图8所示的黎曼函数图形,要求分母的最大值的数值由键盘输入(提示:使用input语句).回目录下一页实验二定积分的近似计算一、问题背景与实验目的二、相关函数(命令)及简介三、实验内容1.矩形法2.梯形法3.抛物线法4. 直接应用Matlab命令计算结果四、自己动手一、问题背景与实验目的利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.二、相关函数(命令)及简介1.sum(a):求数组a的和.2.format long:长格式,即屏幕显示15位有效数字.(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.4.quad():抛物线法求数值积分.格式: quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即 .*、./、.^等.例:Q = quad('1./(x.^3-2*x-5)',0,2);5.trapz():梯形法求数值积分.格式:trapz(x,y)其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)例:计算x=0:pi/100:pi;y=sin(x);trapz(x,y)6.dblquad():抛物线法求二重数值积分.格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)这时必须存在一个函数文件:function z = integrnd(x, y)z = y*sin(x);7.fprintf(文件地址,格式,写入的变量):把数据写入指定文件.例:x = 0:.1:1;y = [x; exp(x)];fid = fopen('','w'); %打开文件fprintf(fid,'% %\n',y); %写入fclose(fid) %关闭文件8.syms 变量1 变量2 …:定义变量为符号.9.sym('表达式'):将表达式定义为符号.解释:Matlab中的符号运算事实上是借用了Maple的软件包,所以当在Matlab中要对符号进行运算时,必须先把要用到的变量定义为符号.10.int(f,v,a,b):求f关于v积分,积分区间由a到b.11.subs(f,'x',a):将 a 的值赋给符号表达式 f 中的 x,并计算出值.若简单地使用subs(f),则将f的所有符号变量用可能的数值代入,并计算出值.三、实验内容1.矩形法根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.针对不同的取法,计算结果会有不同,我们以为例(取),(1)左点法:对等分区间,在区间上取左端点,即取,,理论值,此时计算的相对误差(2)右点法:同(1)中划分区间,在区间上取右端点,即取,,理论值,此时计算的相对误差(3)中点法:同(1)中划分区间,在区间上取中点,即取,,理论值,此时计算的相对误差如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.2.梯形法等分区间,相应函数值为().曲线上相应的点为()将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为,.于是各个小梯形面积之和就是曲边梯形面积的近似值,,即,称此式为梯形公式.仍用的近似计算为例,取,,理论值,此时计算的相对误差很显然,这个误差要比简单的矩形左点法和右点法的计算误差小得多.3.抛物线法由梯形法求近似值,当为凹曲线时,它就偏小;当为凸曲线时,它就偏大.若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法.将积分区间作等分,分点依次为,,对应函数值为(),曲线上相应点为().现把区间上的曲线段用通过三点,,的抛物线来近似代替,然后求函数从到的定积分:由于,代入上式整理后得同样也有……将这个积分相加即得原来所要计算的定积分的近似值:,即这就是抛物线法公式,也称为辛卜生(Simpson)公式.仍用的近似计算为例,取,=,理论值,此时计算的相对误差4. 直接应用Matlab命令计算结果(1)数值计算方法1:int('1/(1+x^2)','x',0,1) (符号求积分)方法2:quad('1./(1+x.^2)',0,1) (抛物线法求数值积分)方法3:x=0::1;y=1./(1+x.^2);trapz(x,y) (梯形法求数值积分)(2)数值计算方法1:int(int('x+y^2','y',-1,1),'x',0,2) (符号求积分)方法2:dblquad(inline('x+y^2'),0,2,-1,1) (抛物线法二重数值积分)四、自己动手1.实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算,取,并比较三种方法的精确程度.2.分别用梯形法与抛物线法,计算,取.并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.3.试计算定积分.(注意:可以运用trapz()、quad()或附录程序求解吗为什么)4.将的近似计算结果与Matlab中各命令的计算结果相比较,试猜测Matlab中的数值积分命令最可能采用了哪一种近似计算方法并找出其他例子支持你的观点.5.通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值6.学习的程序设计方法,尝试用函数 sum 改写附录1和附录3的程序,避免for 循环.上一页回目录下一页实验三求代数方程的近似根(解)一、问题背景和实验目的二、相关函数(命令)及简介三、实验内容四、自己动手一、问题背景和实验目的求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称为线性方程,否则称之为非线性方程.当是非线性方程时,由于的多样性,尚无一般的解析解法可使用,但如果对任意的精度要求,能求出方程的近似根,则可以认为求根的计算问题已经解决,至少能满足实际要求.本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间,或给出某根的近似值.在实际问题抽象出的数学模型中,可以根据物理背景确定;也可根据的草图等方法确定,还可用对分法、迭代法以及牛顿切线法大致确定根的分布情况.通过本实验希望你能:1. 了解对分法、迭代法、牛顿切线法求方程近似根的基本过程;2. 求代数方程(组)的解.二、相关函数(命令)及简介1.abs( ):求绝对值函数.2.diff(f):对独立变量求微分,f 为符号表达式.diff(f, 'a'):对变量a求微分,f 为符号表达式.diff(f, 'a', n):对变量 a 求 n 次微分,f 为符号表达式.例如:syms x tdiff(sin(x^2)*t^6, 't', 6)ans=720*sin(x^2)3.roots([c(1), c(2), …, c(n+1)]):求解多项式的所有根.例如:求解:.p = [1 -6 -72 -27];r = roots(p)r =4.solve('表达式'):求表达式的解.solve('2*sin(x)=1')ans =1/6*pi5.linsolve(A, b):求线性方程组 A*x=b 的解.例如:A= [9 0; -1 8]; b=[1; 2];linsolve(A, b)ans=[ 1/9][19/72]6.fzero(fun, x0):在x0附近求fun 的解.其中fun为一个定义的函数,用“@函数名”方式进行调用.例如:fzero(@sin, 3)ans=7.subs(f, 'x ', a):将 a 的值赋给符号表达式 f 中的 x,并计算出值.例如:subs('x^2 ', 'x ', 2)ans = 4三、实验内容首先,我们介绍几种与求根有关的方法:1.对分法对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精度为止.对分法适用于求有根区间内的单实根或奇重实根.设在上连续,,即,或,.则根据连续函数的介值定理,在内至少存在一点,使.下面的方法可以求出该根:(1)令,计算;(2)若,则是的根,停止计算,输出结果.若,则令,,若,则令,;.……,有、以及相应的.(3) 若 (为预先给定的精度要求),退出计算,输出结果;反之,返回(1),重复(1),(2),(3).以上方法可得到每次缩小一半的区间序列,在中含有方程的根.当区间长很小时,取其中点为根的近似值,显然有以上公式可用于估计对分次数.分析以上过程不难知道,对分法的收敛速度与公比为的等比级数相同.由于,可知大约对分10次,近似根的精度可提高三位小数.对分法的收敛速度较慢,它常用来试探实根的分布区间,或求根的近似值.2. 迭代法1)迭代法的基本思想:由方程构造一个等价方程从某个近似根出发,令,可得序列,这种方法称为迭代法.若收敛,即,只要连续,有即可知,的极限是的根,也就是的根.当然,若发散,迭代法就失败.以下给出迭代过程收敛的一些判别方法:定义:如果根的某个邻域中,使对任意的,迭代过程,收敛,则称迭代过程在附近局部收敛.定理1:设,在的某个邻域内连续,并且,,则对任何,由迭代决定的序列收敛于.定理2:条件同定理 1,则定理3:已知方程,且(1) 对任意的,有.(2) 对任意的,有,则对任意的,迭代生成的序列收敛于的根,且.以上给出的收敛定理中的条件要严格验证都较困难,实用时常用以下不严格的标准:当根区间较小,且对某一,明显小于1时,则迭代收敛(参见附录3).2) 迭代法的加速:a) 松弛法:若与同是的近似值,则是两个近似值的加权平均,其中称为权重,现通过确定看能否得到加速.迭代方程是:其中,令,试确定:当时,有,即当,时,可望获得较好的加速效果,于是有松弛法:,松弛法的加速效果是明显的 (见附录4),甚至不收敛的迭代函数经加速后也能获得收敛.b) Altken方法:松弛法要先计算,在使用中有时不方便,为此发展出以下的 Altken 公式:,是它的根,是其近似根.设,,因为,用差商近似代替,有,解出,得由此得出公式;;,这就是Altken 公式,它的加速效果也是十分明显的,它同样可使不收敛的迭代格式获得收敛(见附录5).3. 牛顿(Newton)法(牛顿切线法)1) 牛顿法的基本思想:是非线性方程,一般较难解决,多采用线性化方法.记:是一次多项式,用作为的近似方程.的解为记为,一般地,记即为牛顿法公式.2) 牛顿法的收敛速度:对牛顿法,迭代形式为:注意分子上的,所以当时,,牛顿法至少是二阶收敛的,而在重根附近,牛顿法是线性收敛的.牛顿法的缺点是:(1)对重根收敛很慢;(2)对初值要求较严,要求相当接近真值.因此,常用其他方法确定初值,再用牛顿法提高精度.4. 求方程根(解)的其它方法(1) solve('x^3-3*x+1=0')(2) roots([1 0 -3 1])(3) fzero('x^3-3*x+1', -2)(4) fzero('x^3-3*x+1',(5) fzero('x^3-3*x+1',(6) linsolve([1, 2, 3; 4, 5, 6; 7, 8, 0], [1, 2, 3]')体会一下,(2)(5) 用了上述 1 3 中的哪一种方法以下是本实验中的几个具体的实验,详细的程序清单参见附录.具体实验1:对分法先作图观察方程:的实根的分布区间,再利用对分法在这些区间上分别求出根的近似值.输入以下命令,可得的图象:f='x^3-3*x+1';g='0';ezplot(f, [-4, 4]);hold on;ezplot(g, [-4, 4]); %目的是画出直线 y=0,即 x 轴grid on;axis([-4 4 -5 5]);hold off请填写下表:实根的分布区间该区间上根的近似值在某区间上求根的近似值的对分法程序参见附录1.具体实验2:普通迭代法采用迭代过程:求方程在附近的根,精确到第 4 位小数.构造等价方程:用迭代公式:,用 Matlab 编写的程序参见附录2.请利用上述程序填写下表:分析:将附录2第4行中的分别改为以及,问运行的结果是什么你能分析得到其中的原因吗看看下面的“具体实验3”是想向你表达一个什么意思.用 Matlab 编写的程序参见附录3.具体实验3:收敛/发散判断设方程的三个根近似地取,和,这些近似值可以用上面的对分法求得.迭代形式一:收敛 (很可能收敛,下同)不收敛 (很可能不收敛,下同)不收敛迭代形式二:收敛不收敛不收敛迭代形式三:不收敛收敛收敛具体实验4:迭代法的加速1——松弛迭代法,,迭代公式为程序参见附录4.具体实验5:迭代法的加速2——Altken迭代法迭代公式为:,,程序参见附录5.具体实验6:牛顿法用牛顿法计算方程在-2到2之间的三个根.提示:,迭代公式:程序参见附录6 (牛顿法程序).具体实验7:其他方法求下列代数方程(组)的解:(1)命令:solve('x^5-x+1=0')(2)命令:[x, y]=solve('2*x+3*y=0', '4*x^2+3*y=1')(3) 求线性方程组的解,已知,命令:for i=1:5for j=1:5m(i, j)=i+j-1;endendm(5, 5)=0;b=[1:5]'linsolve(m, b)思考:若,或是类似的但阶数更大的稀疏方阵,则应如何得到四、自己动手1.对分法可以用来求偶重根附近的近似解吗为什么2.对照具体实验2、4、5,你可以得出什么结论3.选择适当的迭代过程,分别使用:(1)普通迭代法;(2)与之相应的松弛迭代法和 Altken 迭代法.求解方程在附近的根,精确到4位小数,请注意迭代次数的变化.4.分别用对分法、普通迭代法、松弛迭代法、Altken 迭代法、牛顿切法线等5种方法,求方程的正的近似根,.(建议取.时间许可的话,可进一步考虑的情况.)上一页回目录下一页。

实验一 MATLAB基本操作及运算(含实验报告)

实验一 MATLAB基本操作及运算(含实验报告)

实验一 MATLAB基本操作及运算(含实验报告)实验一matlab基本操作及运算(含实验报告)实验一matlab基本操作及运算一、实验目的1、理解matlab数据对象的特点;2、掌握基本matlab运算规则;3、掌握matlab帮助的使用方法;二、实验的设备及条件计算机一台(带有matlab7.0以上的软件环境)。

三、实验内容要求建立一个名为experiment01.m的,把与实验内容1-7相关的实验命令都放入该文件中,题与题之间用相应注释分割。

注意对实验中出现的相关函数或变量,请使用help 或doc查询相关帮助文档,学习函数的用法。

1、创建以下标量:1)a=102)b=2.5×10233)c=2+3i,(i为虚数单位)4)d=ej2?/3,(j为虚数单位,这里要用到exp,pi)2、建立以下向量:1)avec=[3.1415926]2.7182)bvec=??28182??3)cvec=[54.8…-4.8-5](向量中的数值从5到-5,步长为-0.2)4)dvec=[100100.01…100.99101](产生1至10之间的等对数间隔向量,参照logspace,特别注意向量的长度)3、建立以下矩阵:221)amat2?2??amat一个9×9的矩阵,其元素全系列为2;(参照ones或zeros)10??10??0?02)bmat050??0?0?01??0?bmat是一个9×9的矩阵,除主对角上的元素为[123454321]外,其余元素均为0。

(参考diag)。

111?129192?2?3)cmat?1020?100cmat为一个10×10的矩阵,可有1:100的向量来产生(参考reshape)nan4)dmatnan??nannannannannannannannan?nan??nan??dmat为3×4的nan矩阵,(参照nan)13155)emat2210?87?6)产生一个5×3随机整数矩阵fmat,其值的范围在-3到3之间。

MATLAB实验指导书(DOC)

MATLAB实验指导书(DOC)

MATLAB实验指导书(DOC)MATLAB实验指导书前⾔MATLAB程序设计语⾔是⼀种⾼性能的、⽤于科学和技术计算的计算机语⾔。

它是⼀种集数学计算、分析、可视化、算法开发与发布等于⼀体的软件平台。

⾃1984年MathWorks公司推出以来,MATLAB以惊⼈的速度应⽤于⾃动化、汽车、电⼦、仪器仪表和通讯等领域与⾏业。

MATLAB有助于我们快速⾼效地解决问题。

MATLAB相关实验课程的学习能加强学⽣对MATLAB程序设计语⾔理解及动⼿能⼒的训练,以便深⼊掌握和领会MATLAB应⽤技术。

⽬录基础型实验............................................................................................ - 1 - 实验⼀MATLAB集成环境使⽤与基本操作命令练习............. - 1 - 实验⼆MATLAB中的数值计算与程序设计 ............................. - 7 - 实验三MATLAB图形系统......................................................... - 9 -基础型实验实验⼀ MATLAB 集成环境使⽤与基本操作命令练习⼀实验⽬的熟悉MATLAB 语⾔编程环境;熟悉MATLAB 语⾔命令⼆实验仪器和设备装有MATLAB7.0以上计算机⼀台三实验原理MATLAB 是以复杂矩阵作为基本编程单元的⼀种程序设计语⾔。

它提供了各种矩阵的运算与操作,并有较强的绘图功能。

1.1基本规则1.1.1 ⼀般MATLAB 命令格式为[输出参数1,输出参数2,……]=(命令名)(输⼊参数1,输⼊参数2,……)输出参数⽤⽅括号,输⼊参数⽤圆括号如果输出参数只有⼀个可不使⽤括号。

1.1.2 %后⾯的任意内容都将被忽略,⽽不作为命令执⾏,⼀般⽤于为代码加注释。

Matlab实验指导书(含答案)详解

Matlab实验指导书(含答案)详解

实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境。

2.学习使用图形函数计算器命令funtool及其环境。

二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。

➢求下列函数的符号导数(1) y=sin(x);(2)y=(1+x)^3*(2-x);➢求下列函数的符号积分(1) y=cos(x);(2) y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4) y=(x-1)/(x+1)/(x+2);➢求反函数(1) y=(x—1)/(2*x+3);(2) y=exp(x);(3)y=log(x+sqrt(1+x^2));➢代数式的化简(1) (x+1)*(x—1)*(x—2)/(x—3)/(x-4);(2) sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。

➢从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2(4)y4=x^2+2(5)y5=x^4(6)y6=x^2/23.两个函数之间的操作➢求和(1) sin(x)+cos(x)(2) 1+x+x^2+x^3+x^4+x^5➢乘积(1) exp(—x)*sin(x)(2)sin(x)*x➢商(1)sin(x)/cos(x);(2)x/(1+x^2);(3)1/(x-1)/(x-2);➢求复合函数(1) y=exp(u) u=sin(x)(2)y=sqrt(u) u=1+exp(x^2)(3)y=sin(u)u=asin(x)(4) y=sinh(u)u=—x三、设计提示1.初次接触Matlab应该注意函数表达式的文本式描述。

MATLAB实验指导书(共5篇)

MATLAB实验指导书(共5篇)

MATLAB实验指导书(共5篇)第一篇:MATLAB实验指导书MATLAB 实验指导书皖西学院信息工程学院实验一 MATLAB编程环境及简单命令的执行一、实验目的1.熟悉MATLAB编程环境二、实验环境1.计算机2.MATLAB7.0集成环境三、实验说明1.首先应熟悉MATLAB7.0运行环境,正确操作2.实验学时:2学时四、实验内容和步骤1.实验内容(1)命令窗口的使用。

(2)工作空间窗口的使用。

(3)工作目录、搜索路径的设置。

(4)命令历史记录窗口的使用。

(5)帮助系统的使用。

(6)了解各菜单的功能。

2.实验步骤(1)启动MATLAB,熟悉MATLAB的桌面。

(2)进入MATLAB7.0集成环境。

(3)在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。

1)(365-52⨯2-70)÷3 2)>>area=pi*2.5^2 3)已知x=3,y=4,在MATLAB中求z:x2y3 z=2(x-y)4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。

⎡162313⎤⎢511108⎥⎥m1=⎢⎢97612⎥⎢⎥414151⎣⎦执行以下命令>>m1(2 , 3)>>m1(11)>>m1(: , 3)>>m1(2 : 3 , 1 : 3)>>m1(1 ,4)+ m1(2 ,3)+ m1(3 ,2)+ m1(4 ,1)5)执行命令>>helpabs 查看函数abs的用法及用途,计算abs(3 + 4i)6)执行命令>>x=0:0.1:6*pi;>>y=5*sin(x);>>plot(x,y)7)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。

五、思考题1、以下变量名是否合法?为什么?(1)x2(2)3col(3)_row (4)for2、求以下变量的值,并在MATLAB中验证。

实验1 Matlab基本操作

实验1 Matlab基本操作

实验一 Matlab 基本操作一、实验目的:1. 熟悉Matlab 的工作环境2. 会使用Matlab 进行一些简单的运算二、实验内容:1. Matlab 的启动和退出2. 熟悉Matlab 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等3. 完成一些基本的运算操作4. 学习使用在线帮助系统三、实验步骤:1. 启动Matlab ,熟悉Matlab 的桌面。

注意:如果Matlab 的各个窗口的分布被打乱,使用菜单:Desktop/ Desktop Layout/Default 恢复原来各个窗口的分布。

2. 在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

(1)(365-52⨯2-70)÷3(2)>>area=pi*2.5^2(3)已知x=3,y=4,在Matlab 中求z :()232y x y x z -= (4)练习使用方向键“↑”键调出已经输入过的命令(5)练习常用命令:1)who 只显示变量名2)whos 给出变量的大小、数据类型等信息。

whos x3)clear(变量名):清除指定的工作区变量: clear x4)clear :清除工作区中的所有变量6)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i )(6)执行命令>>x=0:0.5:6*pi;>>y=5*sin(x);>>plot(x,y)(7)运行Matlab的演示程序,>>demo,以便对Matlab有一个总体了解。

MATLAB实验指导书

MATLAB实验指导书

实验一、Matlab 软件的安装与基本使用一、实验目的和要求:学会MATLAB 软件的安装方法,熟悉MA TLAB 的工作环境及其基本功能的设置,以及基本指令的使用,了解MATLAB 数值数组及其矩阵操作的使用、复数的输入方法,了解基本的绘图函数程序。

二、实验内容和步骤:1、完成MATLAB 软件的安装。

2、安装完成后启动MA TLAB 软件,熟悉MATLAB 的工作环境。

打开MATLAB 7,默认打开的窗口包括: (1)命令窗口(Command Window); (2)命令历史窗口(Command History); (3)工作间管理窗口(Workspace); (4)当前路径窗口(Current Directory)此外,还有捷径键、编译窗口、图形窗口和帮助窗口等其他种类的窗口,结合课本实例,熟悉每个窗口的功能和基本使用。

3、(1)求23)]47(212[÷-⨯+的运算结果,注意命令后有无分号的作用。

命令及结果如下:(2)求20012x x v t a t =++的值,其中t=5s 、010x m =、015/v m s =、29.81/sec a m =-。

命令及结果如下:(3) 设3x =, 4v =,用MATLAB 命令求下列格式的值: 1)22log()x v +2)(2)x v -3) |sin 2|vx e4) eps 5)34x v --命令及结果如下:4、比较以下三种不同的输入矩阵1234246836912a ⎛⎫⎪= ⎪ ⎪⎝⎭的方法,运行并观察实验结果,掌握矩阵的基本输入方法。

>> a=[1 2 3 42 4 6 83 6 9 12]>> a = [1:4; 2:2:8; 3:3:12]>> a1 =[1:4]; a = [a1; 2*a1; 3*a1]5、输入复数矩阵⎥⎦⎤⎢⎣⎡-+++=i ii i24356223B ,并求其实部、虚部、模和幅角(分别用弧度和角度表示),了解MATLAB 向量化运算的特点。

实验1 Matlab基本操作

实验1 Matlab基本操作

实验1 Matlab基本操作一、实验目的1、熟悉MATLAB的实验环境;2、了解MATLAB产品族及主要功能;3、掌握MATLAB通用指令和常用快捷键;4、掌握MATLAB帮助系统。

二、实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。

MATLAB有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。

1、命令窗口(The Command Window)当MATLAB启动后,出现的最大的窗口就是命令窗口。

用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。

在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。

在命令窗口中输入该文件名,这一连串命令就被执行了。

因为这样的文件都是以“.m”为后缀,所以称为m-文件。

2、m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。

在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。

3、图形窗口(The Figure Window)图形窗口用来显示MATLAB程序产生的图形。

图形可以是2维的、3维的数据图形,也可以是照片等。

三、系统的在线帮助help 命令①当不知系统有何帮助内容时,可直接输入help以寻求帮助:>> help(回车)②当想了解某一主题的内容时,如输入:>> help syntax (了解Matlab的语法规定)③当想了解某一具体的函数或命令的帮助信息时,如输入:>> help sqrt (了解函数sqrt的相关信息)lookfor命令现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:>> lookfor line (查找与直线、线性问题有关的函数)四、实验内容1、运行 MATLAB 软件,观察 MATLAB 桌面环境的组成部分,设置不同的显示方式以及字体;2、观察 Launch Pad 中的内容,了解 MATLAB 产品族和常用工具箱;3、在命令窗口中输入demo,观察 MATLAB 自带的演示程序;4、练习使用 MATLAB 通用指令clear,clc, exit,quit,dir,ls,what,diary,format;5、在命令窗口或 M 文件编辑器中练习如下快捷键的使用:1) 上下方向键(直接使用和索引使用两种方式);2) Tab键;3) Home键;4) End键;5) Ctrl+R;6) Ctrl+T;7) Ctrl+I。

MATLAB 实验教程

MATLAB 实验教程

实验一 MATLAB基本操作一、实验目的:1)熟悉MATLAB软件的运行环境和基本操作2)掌握MATLAB矩阵的输入方式、元素的提取与组合3)掌握数值运算。

二、实验内容:1)启动MATLAB软件,观察其界面组成及操作方法,了解各部分的功能2)使用基本的MATLAB命令,并观察记录执行结果帮助、查询信息类命令:Demo、help、who、whos显示、记录格式等命令:clc、clear、format尝试一下其他的命令(dos命令)3)生成一个5阶魔方矩阵,并提取其第(3、4、5)行,第(2、3、4)列构成的新的矩阵MATLAB提供了专门生成魔方矩阵的函数——magic。

magic函数的使用方法是:M = magic(n)生成一个n*n的矩阵,矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等,阶数n必须是大于等于3的标量MATLAB通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作。

为了提取矩阵a的第n行、第m列的元素值,使用a(n,m)可以得到。

同样,将矩阵a的第n行、第m裂地元素赋值为r,使用a(n,m)=r命令。

利用矩阵下标,MATLAB还提供了子矩阵功能。

同样是上面的a(n,m),如果n和m是向量,而不是标量,则将获得指定矩阵的子块。

根据以上内容,在命令行中的“>>”后输入“a=magic(5)”和“a(3:5,2:4)”:>> a=magic(5)a =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9>> a(3:5,2:4)ans =6 13 2012 19 2118 25 24)利用元素提取功能验证上一步产生的魔方矩阵(各行、各列、对角线元素和相等)。

利用上题所述的矩阵下标,提取各行、各列、对角线元素然后相加即可验证,但还有一个更为简单的方法,即MATLAB提供的的sum函数。

matlab实验教程

matlab实验教程

请思考:如何单独地给上面的 中的某个元素赋值 中的某个元素赋值? 请思考:如何单独地给上面的a中的某个元素赋值?
3元胞数组的基本操作 方法一:访问元胞数组里的元胞:方式:a(1,2);注意结果仍 然是一个元胞数组。元胞数组必须用{ }来表示,所以给 这个位置赋值的方法是:a(1,2)={5} 方法二:访问元胞数组里的元胞所对的元素:方式: 方法二:访问元胞数组里的元胞所对的元素:方式:a{1,2}; ; 注意这个时候得到就一个普通的内容, 注意这个时候得到就一个普通的内容,所以给这个位置 赋值的方法是: 赋值的方法是:a{1,2}=5 以上两种方法都可以,不过一般使用第二种方法。 访问元胞数组里的元胞元素的某一个分量。方式: 访问元胞数组里的元胞元素的某一个分量。方式:a{1,2}(…), , 即用{}和()结合的方式来进行访问 结合的方式来进行访问。 即用 和()结合的方式来进行访问 思考1:如何访问刚才创建的元胞里的第1行第2列元素的 第2到第4个字符 思考2:如何计算第4个元素的和 思考3:如何计算不同元素的和
字符串
1字符串概念:字符串其实就是字符型数组,注意表达的时候一定要用单引号 单引号。 单引号 2字符串的操作(结果是字符串) (1)取某个子串 如,要取第3到第6个字符内容 A(3:6) (2)字符串的横向连接(结果肯定是一个向量),用[,]符号或者strcat, (3)字符串的纵向连接(结果肯定是一个矩阵),用[;]符号或者strvcat strvcat('ddd','dfff') strvcat功能比用“;”连接功能强大,因为它可以按最长的字符串自动扩充 3“数形”字符串与数值之间的相互转化 (1)一般函数 A字符串转数值 str2num str2double s=[‘1 2’;’2 3’]; %将两个字符串连起来,不同的数以空格分开 a=str2num(s) B数值转字符串 num2str int2str (2)字符串数字与数值之间的通过格式化方法相互转化 A数串转数值 :sscanf函数:s1=‘3.4 4.5 4.7’ a=sscanf(s1,’%f’) B数值转数串:sprintf函数a=1/eps s=sprintf(‘%15.5f’,a) 4交互式输入字符串函数input A=input(‘input some number:’,’s’) %不加’s’表示输入数 Input some number:123 A=123

Matlab实验任务书以及教程

Matlab实验任务书以及教程

Matlab 实验任务书一、 matlab语言基础(一)实验目的1、学习了解MA TLAB的实验环境。

2、学习MA TLAB命令的基本操作。

3、学习M文件的编辑及基本操作(二)实验步骤1、学习了解MA TLAB的实验环境通过启动MA TLAB,来学习其实验环境,通过以下命令来了解matlab的使用,并且要求用中文作简要的记录。

help control;help step ;help impulse;save及load 命令的使用。

2、学习MA TLAB命令的基本操作。

要求掌握矩阵的基本操作:输入、转置、求逆、行列式、矩阵提取、矩阵大小等以及+,—,*(乘),/(左除),\(右除),^(幂)和点运算的操作,对于每一项内容,自己给出例子进行实验,并记录内容和结果。

3、学习M文件的编辑及基本操作分别就下列内容编写一个程序和一个函数程序,比较两者的异同:(1)编写一个累加程序,给定累加起始值、中止值和累加的步长。

记录程序内容及调用运行的结果。

(2)编写一个带参数的累加程序,返回参数为累加结果,输入参数为累加起始值、中止值和累加的步长。

记录程序内容及调用运行的结果。

(三)实验报告要求按照上述内容编写实验程序完成实验,并记录实验过程、程序及实验结果,完成实验报告二、控制系统的数学描述(一)实验目的1、学习系统数学模型的表示方法和转换的方法。

2、学习控制系统各类标准型的matlab求解方法。

3、学习控制系统稳定性的分析方法。

(二)实验内容与步骤1、通过学习系统数学模型的表示方法和转换的方法,按照下列内容完成实验并记录实验过程及实验结果。

给定系统Num=[1 1.3 2 2.5];den=[1 0.3 1.2 1]分别求出其状态空间表达式、零极点表达式及部分分式表达式,以及他们之间的转换函数。

2、给定系统分别利用matlab函数求出这两个系统进行串联、并联、负反馈连接后的系统状态方程及传递函数。

3、利用rmodel函数(用法利用帮助获得)构造一个三阶系统,求出该系统的特征向量矩阵和特征值标准型,并利用特征方程验证特征向量的正确性。

MATLAB图像处理与模拟实验教程

MATLAB图像处理与模拟实验教程

MATLAB图像处理与模拟实验教程第一章:MATLAB基础知识介绍1.1 MATLAB的定义与发展历程MATLAB是一种高级技术计算语言和交互式环境,广泛应用于各个科学领域。

文章介绍了MATLAB的起源、发展历史以及其在工程和科学领域中的重要性。

1.2 MATLAB环境搭建与基本操作本节详细介绍了如何下载、安装和配置MATLAB环境,并且讲解了一些基本操作,比如变量定义、矩阵操作、函数调用以及流程控制语句的使用。

1.3 MATLAB编程基础文章详细介绍了MATLAB编程的基本语法、数据类型、运算符、控制流程以及函数的定义和调用。

同时,文章还给出了一些编程的实例,帮助读者更好地理解和掌握MATLAB编程。

第二章:MATLAB图像处理基础2.1 图像的表示与存储本节首先介绍了图像的表示方法,包括灰度图像和彩色图像的定义与区别,以及图像的表示形式和存储格式。

随后,文章详细介绍了MATLAB中图像的读取、显示和保存操作。

2.2 图像的基本处理与变换文章介绍了一些常见的图像处理和变换操作,比如灰度化、二值化、平滑滤波以及直方图均衡化。

对于每个操作,文章都给出了相应的MATLAB代码,并展示了处理后的效果图。

2.3 图像的几何变换和特征提取本节介绍了图像的几何变换方法,比如缩放、旋转和镜像等操作,并给出了相应的MATLAB代码和实例。

同时,文章还介绍了一些常用的图像特征提取方法,比如边缘检测和特征点提取等。

第三章:MATLAB图像分割与识别3.1 图像分割的基本概念与方法文章首先介绍了图像分割的基本概念和目标,并详细介绍了一些经典的图像分割方法,比如阈值分割、区域生长和边缘检测等。

对于每个方法,文章都给出了相应的MATLAB代码和实例演示。

3.2 图像识别的基本原理和方法本节介绍了图像识别的基本原理和方法。

文章详细介绍了一些常见的图像特征提取方法,比如颜色特征、纹理特征和形状特征等,并给出了相应的MATLAB代码和实例演示。

MATLAB实验指导书

MATLAB实验指导书

实验一:MATLAB的基本操作一、实验目的:1.熟悉MATLAB操作环境2.熟悉MATLAB的帮助3.熟悉MATLAB矩阵的操作4.熟悉MATLAB基本运算二、实验内容:1.自行设计试题,说明三角函数是按弧度还是按角度计算。

2.找出取整的函数,并自行设计试题,说明它们的区别。

3.自行设计试题,说明如何给矩阵按列符值。

4.自行设计试题,建一个5X5矩阵,然后将第一行乘1,第二行乘2,第三行乘3,第四行乘4,第五行乘5。

5.设计编写程序(命令),解方程3x5-7x4+5x2+2x-18=0。

6.自行设计试题,说明eval()函数的功能。

三、实验原理:ceil(x)= -4 -2 0 2 5 7fix(x) = -4 -2 0 1 4 6floor(x) = -5 -3 -1 1 4 6round(x) = -5 -2 0 1 5 72、系统的在线帮助help 命令:(1).当不知系统有何帮助内容时,可直接输入help以寻求帮助:>> help(回车)(2).当想了解某一主题的内容时,如输入:>> help syntax(了解Matlab的语法规定)(3).当想了解某一具体的函数或命令的帮助信息时,如输入:>> help sqrt (了解函数sqrt的相关信息)lookfor命令现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:>> lookfor line (查找与直线、线性问题有关的函数)3、常量与变量系统的变量命名规则:变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。

此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:数值型向量(矩阵)的输入(1).任何矩阵(向量),可以直接按行方式...输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。

所有元素处于一方括号([ ])内;例1-1:>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]>> X_Data = [2.32 3.43;4.37 5.98](2).系统中提供了多个命令用于输入特殊的矩阵:上面函数的具体用法,可以用帮助命令help得到。

MATLAB教程说明实验一 matlab基本操作

MATLAB教程说明实验一 matlab基本操作

实验一 MATLAB基本操作一、实验目的1.熟悉MATLAB工作环境,包括各栏菜单以及各个工具栏的功能;2.熟悉MATLAB创建矩阵的方法,熟练进行矩阵运算;3.熟练掌握MATLAB的帮助命令,学会使用MATLAB的帮助信息。

4.掌握matlab的绘图命令;5.掌握MATLAB程序设计基本方法;并编写简单的程序。

二、实验仪器设备计算机、Matlab软件、lena.bmp数字图像三、实验内容与步骤1.熟悉Matlab工作环境(1)打开计算机,启动MATLAB程序,进入MATLAB的工作界面;(2)熟悉MATLAB的菜单及各个工具栏的功能;(3)在命令窗口创建矩阵,并对矩阵中的元素进行操作;(4)创建矩阵并对进行矩阵运算;(5)绘制以下二维函数的图像,并改变曲线的颜色和线型,分别采用蓝色实线、红色虚线、黑色圆点绘制。

π2π=-xxey x≤)25≤2sin(2. 用who、whos命令查看当前工作窗口中的变量,比较两者的区别;3. 熟练掌握Matlab的帮助命令,学会利用Matlab的帮助信息;help命令: 查看函数的帮助type命令: 查看原代码lookfor命令用帮助命令查看下面的函数:imread --- 读取图像imwrite --- 写图像imhist ---显示图像直方图4. 打开M文件编辑器,熟悉M文件编辑器;图1.1 打开M 文件编辑器图1.2 M 文件编辑器5. 应用Matlab 语言编写统计、显示一幅灰度图像lena.bmp 的直方图程序;并与Matlab 内置的程序进行比较 ;Matlab 中显示灰度图像直方图的命令:imhist知识点:图像灰度直方图是灰度级的函数,描述的是图像中每种灰度级像素个数或频率。

横坐标是灰度级,纵坐标是每一灰度级具有的像元素或灰度级出现的频率。

灰度级的频率计算公式:式中,n i 为灰度级i 的出现次数,n 为像元总数。

四、实验报告整理实习内容,分析实验结果,撰写并提交实验报告。

MATLAB实验教案5篇

MATLAB实验教案5篇

MATLAB实验教案5篇第一篇:MATLAB实验教案实验一离散系统的时域分析和复频域分析1.实验目的(1)掌握在时域求系统响应的方法。

(2)掌握时域离散系统的时域特性。

(3)通过实验判断系统稳定性(4)掌握利用Z变换对系统进行复频域分析。

(5)掌握系统零、极点的绘制方法。

(6)通过复频域分析系统稳定性、频率特性。

(7)熟悉Z变换的应用2.实验设备λ计算机λ MATLAB R2012a仿真软件3.实验原理(1)离散系统的时域分析在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。

已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,利用filter 函数或conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。

系统的时域特性是指系统的线性移不变性质、因果性和稳定性。

重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。

系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应,或者系统的单位脉冲响应满足绝对可和的条件。

系统的稳定性由其差分方程的系数决定。

实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号、输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。

可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。

系统的稳态输出是指当n→∞时系统的输出。

如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达到稳态输出。

注意在以下实验中均假设系统的初始状态为零。

(2)离散系统的复频域分析离散系统的时域方程为∑dk=0Nky(n-k)=x(n-k)∑pkK=0∞M其变换域分析如下y(n)=x(n)*h(n)=频域系统频率响应为m=-∞∑x(m)h(n-m)⇔Y(e)=X(e)H(e)jωjωjωH(e)=Z域 jωY(e)X(e)jωjωy(n)=x(n)*h(n)=系统的转移函数为m=-∞∑x(m)h(n-m)⇔Y(z)=Y(z)X(Z)-i∞X(z)H(z)H(z)=0分解因式H(z)i=N∑pkz∑dkzi=0M=K-i X(1-ξX(1-i=1i=1NMiz-1)),其中,ξ和iλzi-1λi称为零、极点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录实验一、MATLAB 基本应用实验二、实验二信号的时域表示实验三、连续信号卷积实验四、典型周期信号的频谱表示实验五、傅立叶变换性质研究实验六、系统的零极点分析实验七离散信号分析实验一 MATLAB 基本应用一、实验目的:学习MATLAB的基本用法,了解 MATLAB 的目录结构和基本功能以及MATLAB在信号与系统中的应用。

二、实验内容:例一已知x的取值范围,画出y=sin(x)的图型。

参考程序:x=0:0.05:4*pi;y=sin(x);plot(y)例二计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。

z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,用subplot函数绘图。

参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)') subplot(2,2,2),plot(x,y2),title('1.5*cos(x)') subplot(2,2,3),plot(x,y3),title('sin(2*x)') subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')单位阶跃信号 u(t+3)-2u(t)其中 u(t)=1/2+(1/2)sign(t)Sigh(t)是符号函数t>0时为1,t<0时为-1;clear all%利用maple中的heaviside函数来实现u(t+3)-2u(t)syms tf=maple('Heaviside(t+3)-2*Heaviside(t)');t1=-3*pi:0.01:3*pi;%注意精度问题ff=subs(f,t,t1);figure(1);plot(t1,ff);axis([-5,5,-1.2,1.2]);title('u(t+3)-2u(t)');%利用自己编写的heaviside函数来实现u(t+3)-2u(t)t=-5:0.01:5;f=Heaviside(t+3)-2*Heaviside(t);figure(2);plot(t,f);axis([-5,5,-1.2,1.2]);title('u(t+3)-2u(t)')%利用符号函数来实现u(t)t=-5:0.05:5;f=sign(t);ff=1/2+1/2*f;figure(3);plot(t,ff);axis([-5 5 -0.1 1.1]);title('u(t)')%利用符号函数来实现u(t+3)-2u(t)t=-5:0.01:5;f=(1/2+1/2*sign(t+3))-2*(1/2+1/2*sign(t));figure(4)plot(t,f),axis([-5,5,-1.2,1.2]),title('u(t+3)-2u(t)')MATLAB提供了一个ezplot函数绘制隐函数图形,下面介绍其用法。

(1) 对于函数f = f(x),ezplot函数的调用格式为:ezplot(f):在默认区间-2π<x<2π绘制f = f(x)的图形。

ezplot(f, [a,b]):在区间a<x<b绘制f = f(x)的图形。

例如t=-3*pi:pi/100:3*pi;f=sym('sin(t)/t');%采用符号方法ezplot(f,[-16 16])(2) 对于隐函数f = f(x,y),ezplot函数的调用格式为:ezplot(f):在默认区间-2π<x<2π和-2π<y<2π绘制f(x,y) = 0的图形。

ezplot(f, [xmin,xmax,ymin,ymax]):在区间xmin<x<xmax和ymin<y<ymax 绘制f(x,y) = 0的图形。

ezplot(f, [a,b]):在区间a<x<b和a<y< b绘制f(x,y) = 0的图形。

(3) 对于参数方程x = x(t)和y = y(t),ezplot函数的调用格式为:ezplot(x,y):在默认区间0<t<2π绘制x=x(t)和y=y(t)的图形。

ezplot(x,y, [tmin,tmax]):在区间tmin < t < tmax绘制x=x(t)和y=y(t)的图形。

连续信号的MATLAB表示1、指数信号:指数信号Ae at在MATLAB中可用exp函数表示,其调用形式为:y=A*exp(a*t) (例取 A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;2、正弦信号:正弦信号Acos(w0t+ϕ)和Asin(w0t+ϕ)分别由函数cos和sin表示,其调用形式为:A*cos(w0t+phi) ;A*sin(w0t+phi) (例取A=1,w0=2π,ϕ=π/6)参考程序:A=1;w0=2*pi; phi=pi/6;t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on ;3、抽样函数:抽样函数Sa(t)在MATLAB中用sinc函数表示,其定义为:sinc(t)=sin(πt)/( πt)其调用形式为:y=sinc(t)参考程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;4、矩形脉冲信号:在MATLAB中用rectpuls函数来表示,其调用形式为:y=rectpuls(t,width),用以产生一个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围,width的默认值为1。

例:以t=2T(即t-2⨯T=0)为对称中心的矩形脉冲信号的MATLAB源程序如下:(取T=1)t=0:0.001:4;T=1;ft=rectpuls(t-2*T,2*T);plot(t,ft);grid on; axis([0 4 –0.5 1.5]);周期性矩形波(方波)信号在MATLAB中用square函数来表示,其调用形式为:y=square(t,DUTY)用以产生一个周期为2π、幅值为±1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。

例如频率为30Hz的周期性方波信号的MATLAB参考程序如下:峰值:A=4;t=-0.0625:0.0001:0.0625;y=A*square(2*pi*30*t,75);plot(t,y);axis([-0.0625 0.0625 –1.5 1.5]);grid on ;实验二信号的时域表示实验目的:利用 MATLAB 实现信号的时域表示以及图形表示题目一:连续信号的MATLAB描述设计要求:列出单位冲激函数、单位阶跃函数、复指数函数的MATLAB表达式。

实验前说明:1、Floor(a)对a从负无穷方向取整(结果比原数小)2、ceil(a)对a从正无穷方向取整(结果比原数大)3、fix(a)对a朝零方向取整(结果的绝对值比原数小)4、round(a)对a四舍五入取整5、plot(t,real(z)),title('实部')6、plot(t,imag(z)),title('虚部')7、plot(t,abs(z)),title('模')8、plot(t,angle(z)),title('相角')建模:1、单位冲激函数δ(t)无法直接用MATLAB描述,可以把它看作是宽度为∆(程序中用dt表示),幅度为1/∆的矩形脉冲,即x1(t)= δ∆(t-t1)= 1/∆ t1<t<t1+∆0 其余表示在t=t1处的冲激。

2、单位阶跃函数:在t=t1处跃升的阶跃可写为u(t-t1).定义为x2(t)= u(t-t1)= 1 t1<t<t1+∆0 t<0ω)t3、复指数函数 x3(t)=e(u+j若ω=0,它是实指数函数,如u=0,则为虚指数函数,其实部为余弦函数,虚部为正弦函数。

本例u=-0.5, ω=10.参考程序:clear, t0=0;tf=5;dt=0.05;t1=1;t=[t0:dt:tf]; st=length(t);n1=floor ((t1-t0)/dt);x1=zeros(1,st);x1(n1)=1/dt;subplot(2,2,1),stairs(t,x1),grid on axis([0,5,0,22])x2=[zeros(1,n1-1),ones(1,st-n1+1)]; subplot(2,2,3),stairs(t,x2),grid on axis([0,5,0,1.1])alpha=-0.5;w=10;x3=exp((alpha+j*w)*t); subplot(2,2,2),plot(t,real(x3)),grid on subplot(2,2,4),plot(t,imag(x3)),grid on 程序运行结果:如图2-1图2-1程序运行结果题目二:LTI系统的零输入响应设计要求:描述n阶线性时不变(LTI)连续系统的微分方程为:a1(d n y/dt n)+ a2(d n-1y/dt)+…+ an(dy/dt)+ (an+1)y= b1(d m u/dt m)+…+ bm(du/dt)+ (bm+1)u,已知y及其各阶导数的初始值为y(0),y(1)(0),…, y(n-1)(0),求系统的零输入响应。

参考程序:a=input('输入分母系数向量a=[a1,a2......]=');n=length(a)-1;Y0=input('输入初始条件向量 Y0=[y0,Dy0,D2y0,....]=');p=roots(a);V=rot90(vander(p));c=V\Y0';dt=input('dt='); tf=input('tf=')t=0:dt:tf; y=zeros(1, length(t));for k=1:n y=y+c(k)*exp(p(k)*t);endplot(t,y),grid;hold on运行此程序并输入:a=[3,5,7,1]; dt=0.2;tf=8;Y0取[1,0,0];[0,1,0];[0,0,1],三种情况,运行结果如图2-2图2-2程序运行结果实验三连续信号卷积实验目的:掌握使用 MATLAB 实现信号的卷积运算、卷积的可视化题目一:卷积的计算设计要求:某LTI系统的冲激响应h(t)=e-0.1t,输入u(t)如图3-1(a)所示,初始条件为零,求系统的响应y(t).参考程序:clearuls=input('输入u数组 u=(例如ones(1,10))');lu=length(uls);hls=input('输入h数组 h=(例如exp(-0.1*[1:15]))');lh=length(hls);lmax=max(lu,lh);if lu>lh nu=0;nh=lu-lh;elseif lu<lh nh=0;nu=lh-lu;else nu=0;lh=0;enddt=input('输入时间间隔dt=(例如0.5)')lt=lmax;u=[zeros(1,lt),uls,zeros(1,nu),zeros(1,lt)]; t1=(-lt+1:2*lt)*dt;h=[zeros(1,2*lt),hls,zeros(1,nh)];hf=fliplr(h);y=zeros(1,3*lt);for k=0:2*ltp=[zeros(1,k),hf(1:end-k)];y1=u.*p*dt;yk=sum(y1);y(k+lt+1)=yk;subplot(4,1,1);stairs(t1,u)axis([-lt*dt,2*lt*dt,min(u),max(u)]),hold on ylabel('u(t)')subplot(4,1,2);stairs(t1,p)axis([-lt*dt,2*lt*dt,min(p),max(p)])ylabel('h(k-t)')subplot(4,1,3);stairs(t1,y1)axis([-lt*dt,2*lt*dt,min(y1),max(y1)+eps]) ylabel('s=u*h(k-t)')subplot(4,1,4);stem(k*dt,yk)axis([-lt*dt,2*lt*dt,floor(min(y)+eps),ceil(max(y+eps))]) hold on,ylabel('y(k)=sum(s)*dt')if k==round(0.8*lt) disp('暂停,按任意键继续'),pauseelse pause(1),endend运行结果如图3-1图3-1 程序运行结果程序2:u=input('输入u数组u=');h=input('输入h数组h=');dt=input('输入时间间隔dt=');y=conv(u,h);plot(dt*([1:length(y)]-1),y),grid题目二:LTI系统的零状态响应设计要求:设二阶连续系统,其特性可用常微分方程表示:d2y/dt2+2(dy/dt)+8y=u求其冲激响应。

相关文档
最新文档