MATLAB实验及程序
MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容1.MATLAB软件基本运算入门。
1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。
2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。
2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。
3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
高等数学:MATLAB实验

MATLAB实验
2.fplot绘图命令 fplot绘图命令专门用于绘制一元函数曲线,格式为:
fplot('fun',[a,b]) 用于绘制区间[a,b]上的函数y=fun的图像.
MATLAB实验 【实验内容】
MATLAB实验
由此可知,函数在点x=3处的二阶导数为6,所以f(3)=3为 极小值;函数在点x= 1处的二阶导数为-6,所以f(1)=7为极大值.
MATLAB实验
例12-10 假设某种商品的需求量q 是单价p(单位:元)的函 数q=12000-80p,商 品的总成本C 是需求量q 的函数 C=25000+50q.每单位商品需要纳税2元,试求使销售 利润达 到最大的商品单价和最大利润额.
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验 实验九 用 MATLAB求解二重积分
【实验目的】 熟悉LAB中的int命令,会用int命令求解简单的二重积分.
MATLAB实验
【实验M步A骤T】 由于二重积分可以化成二次积分来进行计算,因此只要
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
MATLAB实验
实验七 应用 MATLAB绘制三维曲线图
【实验目的】 (1)熟悉 MATLAB软件的绘图功能; (2)熟悉常见空间曲线的作图方法.
【实验要求】 (1)掌握 MATLAB中绘图命令plot3和 mesh的使用; (2)会用plot3和 mesh函数绘制出某区间的三维曲线,线型
MATLAB实验程序

实验一要求: 查看matlab 的版本代码:version结果:ans =7.1.0.246 (R14) Service Pack 31.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)z 1=2185sin 2e+z1=(2*sin(85*pi/180))/(1+exp(2))z =0.2375(2)z 2=⎥⎦⎤⎢⎣⎡+=++545.0-i 212其中),1ln(212x x x x=[2,1+2*i;-0.45,5]x =2.0000 1.0000 + 2.0000i-0.4500 5.0000>> z2=1/2*log(x+sqrt(1+x*x))z2 =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i(3)z 3=23.0ln )3.0sin(23.03.0a a e e aa +++--,a=-3.0,-2.9,-2.8, …3.0 提示:用冒号表达式生成a 向量,求各点的函数值时用点乘计算。
a=[-3.0:0.1:3.0]z3=1/2.*((exp(0.3.*a)-exp(-0.3.*a))).*sin(a+0.3)+log((0.3+a).*1/2)(4)z 4=⎪⎩⎪⎨⎧<≤+-<≤-<≤32,12,21,110,222t t t t t t t 其中t=0:0.5:2.5提示:用逻辑表达式求分段函数值。
t=0:0.5:2.5t =0 0.5000 1.0000 1.5000 2.0000 2.5000>> z4=t.^2.*(t>=0&t<1)+(t.^2-1).*(t>=1&t<2)+(t.^2-2*t+1).*(t>=2&t<3) z4 =0 0.2500 0 1.2500 1.0000 2.25002.已知:A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡7653877344-3412,B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡72-3321-31求下列表达式的值:(1)A+6*B和A-B+I(其中I为单位矩阵) A=[12,34,-4;34,7,87;3,65,7]A =12 34 -434 7 873 65 7>> B=[1,3,-1;2,0,3;3,-2,7]B =1 3 -12 0 33 -2 7>> A+6*Bans =18 52 -1046 7 10521 53 49>> I=eye(size(A))I =1 0 00 1 00 0 1>> A-B+Ians =12 31 -332 8 840 67 1(2)A*B和A.*BA*Bans =68 44 62309 -72 596154 -5 241>> A.*Bans =12 102 468 0 2619 -130 49(3)A^3和A.^3A^3ans =37226 233824 48604247370 149188 60076678688 454142 118820>> A.^3ans =1728 39304 -6439304 343 65850327 274625 343(4)A/B和B\AA/Bans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000>> B/Aans =0.1027 -0.0062 -0.00690.0617 0.0403 -0.03660.0205 0.0855 -0.0507(5)[A,B]和[A([1,3],:);B^2][A,B]ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7>> [A([1,3],:);B^2]ans =12 34 -43 65 74 5 111 0 1920 -5 403.设有矩阵A和BA=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡25242322212019181716151413121110987654321,B=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡111340794-23096-171603 (1) 求它们的乘积C 。
MATLAB全部实验及答案

MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤1、命令窗口的简单使用(1)简单矩阵的输入(2)求[12+2×(7-4)]÷32的算术运算结果2、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B3、 已知⎪⎭⎫ ⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
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基本操作一、实验目的1、了解MATLAB应用程序环境2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。
3、掌握在MATLAB应用环境下编写程序4、掌握MATALB调试过程,帮助文件5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。
6、本实验可在学习完教材第一章后进行。
二、主要仪器及耗材PC电脑,MATLAB6.5软件三、实验内容和步骤1、MATLAB语言上机步骤:(1)、进入系统在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。
然后进行编辑源程序->编译->连接->执行程序->显示结果(2)、常用命令编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。
2、有下面的MATLAB程序。
(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根(2)绘图功能:如,绘制正弦曲线和余弦曲线x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));(3)仿真功能:如,请调试上述程序。
3、熟悉MATLAB环境下的编辑命令,具体见附录一。
三、实验步骤1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。
如还有错误,再编辑改正,直到不出现语法错误为止。
四、实验注意事项1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结MATLAB程序的结构和书写规则。
五、思考题1、matlab到底有多少功能?2、MATLAB的搜索路径3、掌握使用MATLAB帮助文件实验二 MATLAB 矩阵及其运算一、 实验目的1、了解矩阵的操作,包括矩阵的建立、矩阵的拆分、矩阵分析等2、了解MATLAB 运算,包括算术运算、关系运算、逻辑运算等3、掌握字符串的操作,了解结构数据和单元数据。
MATLAB实验

MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。
5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。
实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。
实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。
实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
实验二MATLAB程序设计含实验报告

实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)
B(24)=9
实验二
1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将
小于0元素个数存变量c中并将这些小于零元素存变量d中。
(实验报告
要求:写出命令)
a=randn(5)
b=find(a<0);
c=length(find(a<0))
d=a(b)
2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)
A B C D
E F G H
a b c d
a=['A B C D'
'E F G H'
'a b c d']
3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。
(实验报告要求:写出正确计算方法的命令)A=randn(3,4)
B=numel(A)
4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)
f=B{1,2}(7:end)
5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)
方法1: i=B{2,1}(:)
方法2: j=reshape(B{2,1},3,1)
6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算
=['姓名'
'张三'
'李四']
student.shuxue=[87
78]
student.yuwen=[75
81 ]
student.yingyu=[55
60]
实验三
实验四:二维绘图
(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。
要求如下:
◆正弦图象用蓝色实线,时标用方格;
◆余弦图象用黄色虚线,时标选向下三角形;
◆为整个图像加中文标题;
◆为x和y轴加轴标题;
◆改x轴的单位为pi/2的倍数;
◆增加图例;
◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。
答:程序:
x1=0:0.05*pi:6;
y1=sin(x1);
figure(1);
x2=0:0.05*pi:6;
y2=cos(x2);
plot(x1,y1,'b-s',x2,y2,'y--v');
legend('y1=sin(x1)','y2=cos(x2)')
title('函数图像');
xlabel('横坐标');
ylabel('纵坐标');
(2)在另一个窗体(figure2)中划分子图如下图所示,并在第一个子图上绘制正弦函数曲线,在第二个子图上绘制余弦函数曲线,在第三个子图上同时绘制正弦函数和余弦函数。
答:程序:
x1=0:0.05*pi:6;
y1=sin(x1);
figure(1);
subplot(2,2,1);
plot(x1,y1,'b-');
x2=0:0.05*pi:6;
y2=cos(x2);
subplot(2,2,2);
plot(x2,y2,'b-');
subplot(2,2,[3 4]);
plot(x1,y1,'b-',x2,y2,'g-');
(3)已知某体育联盟几支球队近几年战绩如下表所示,请分别使用垂直条状图和三维垂直条状图显示表格中的数据。
并用饼形图表示2011年各队的胜场数,
答:
垂直条状图:
x=2008:2011;
data=[56 50 60 48;51 48 58 46;53 47 57 47;55 45 37 49];
bar(x,data);grid on;
title('垂直条状图(3D)');
legend('湖人','火箭','骑士','太阳');
xlabel('年份');
ylabel('胜场数');
三维垂直条状图:
x=2008:2011;
data=[56 50 60 48;51 48 58 46;53 47 57 47;55 45 37 49];
bar3h(x,data);grid on;
title('3维垂直条状图(3D)');
legend('湖人','火箭','骑士','太阳');
zlabel('年份');
xlabel('胜场数');
饼状图:
a=[55 45 37 49];
pie(a);
legend('湖人','火箭','骑士','太阳');
实验五:三维绘图
设计一个M 脚本文件,完成下列三维绘图功能:
1. 分别用mesh 、meshc 、meshz 在不同的图形窗口中绘制如下函数的三维网格曲面,其中mesh 的效果如右图所示:
2
222)
sin(y x y x z ++=
程序:
x = linspace(-10, 10, 50); y= linspace(-10, 10, 50); [x,y]=meshgrid(x,y);
z=sin(sqrt(x.*x+y.*y))./(sqrt(x.*x+y.*y));
2. 分别用surf 和surfc 命令在不同的图 形窗口中绘制以下函数的曲面图,其中 Surf 命令的效果如右图所示:
)
cos()sin(y x e e z +=
要求:不显示曲面上的格线,加上图标题 和三个轴的轴标题。
注:程序中请加上必要的注释。
答:程序:
x = linspace(0, 10, 50); y= linspace(0, 10, 50); [x,y]=meshgrid(x,y);
z=sqrt(exp(sin(x)) + exp(cos(y))); surf(x,y,z);
shading faceted; shading flat;
shading interp;;surf(x,y,z);axis([0 10 0 10 0.5 2.5]); xlabel('X 轴'); ylabel('Y 轴'); zlabel('Z 轴');
title('三维绘图例子)');
实验六:符号计算。