MATLAB实验五

合集下载

MATLAB(实验五)

MATLAB(实验五)

实验五1、 编写程序,该程序在同一窗口中绘制函数在[]0,2π之间的正弦曲线和余弦曲线,步长为200/π,线宽为 2 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记,并通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。

x=0:pi/200:2*pi;sinx = sin(x); cosx = cos(x);k=find(abs(sinx-cosx)<1e-2); x1=x(k);figure,plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*','LineWidth',2)hold on ,plot(x1,sin(x1),'r*') xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)');title('正弦曲线和余弦曲线');text(x1+0.1,sin(x1),'sin(x)=cos(x)');gtext('sin(x)') gtext('cos(x)')legend('sin(x)','cos(x)')2、 绘制图像:双曲抛物面:22164x y z =-,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。

[X,Y] = meshgrid(-16:0.4:16,-4:0.1:4); Z = X.^2/16 - Y.^2/4;subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth = 0,elevation = 180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth = -37.5,elevation = -30');subplot(1,3,3),plot3(X,Y,Z),view([3,3,2]),title('viewpoint=[3,3,1]');3、 表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

MATLAB第五章实验报告

MATLAB第五章实验报告

MATLAB数值计算班级:11电信一班姓名:何得中学号:20111060108实验目的:1.了解MATLAB提供的标准多项式的常用函数;2.掌握用MATLAB创建多项式;3.学会用MATLAB对数据的分析;实验仪器:MATLAB软件,电脑实验数据:>> poly2sym([1 2 6 -5 3 9])ans =x^5+2*x^4+6*x^3-5*x^2+3*x+9 >> A=[7 8 9;4 5 6;1 2 3];>> B=poly(A)B =1.0000 -15.0000 18.00000.0000>> poly2sym(B)ans=x^3-15*x^2+18*x+422583449577050 7/633825300114114700748351602688 >> v=[0.5 0.6i -0.4 -0.6i]v =0.5000 0 + 0.6000i -0.4000 0 - 0.6000i>> p=poly(v)p =1.0000 -0.1000 0.1600 -0.0360 -0.0720>> pr=poly2sym(p)pr=x^4-1/10*x^3+4/25*x^2-9/250*x-9/12 5>> p=poly([1 2 3 4 5]);>> polyval(p,6)ans =120>> p=[1 3 1 2 1];>> polyvalm(p,[3 6;8 4])ans = 7186 66668888 8297>> polyvalm(p,7)ans =3494>> p=[1 4 2];>> x=0:0.8:4;>> y=polyval(p,x)y = 2.0000 5.8400 10.9600 17.3600 25.0400 34.0000>> a=[1 -1 4 10];>> r=roots(a);r = 1.1879 + 2.4202i1.1879 -2.4202i-1.3758>> pp=poly(r)pp =1.0000 -1.0000 4.0000 10.0000>> p1=[1,0,1,1];>> p2=[0,1,-1,2];>> p1+p2ans =1 1 0 3>> p1-p2ans =1 -1 2 -1>> c=conv([1 1 2 2],[1 2 5 4])c = 1 3 9 15 18 18 8>> p1=[1,0,1,1]; >> p2=[1,-1,2];>> [q,r]=deconv(p1,p2) q = 1 1 r = 0 0 0 -1 >> g=[1 5 4 6 20 48 27 72 39 ]; >> h=polyder(g) h = 8 35 24 30 80 144 54 72 >> q=polyint(h) q =1 5 4 6 20 48 27 72 0 >> b=[4,9]; >> a=[1,7,8]; >> [r,p,k]=residue(b,a) r = 3.2127 0.7873 p = -5.5616 -1.4384 k = [] >> [b,a]=residue(r,p,k) b = 4.0000 9.0000 a = 1 7 8 x=linspace(0,2*pi,50); >> y=sin(x); >> [p,s]=polyfit(x,y,3) p = 0.0912 -0.8596 1.8527 -0.1649 s = R: [4x4 double] df: 46 normr: 0.5055>> plot(x,y,'r:*',x,polyval(p,x),'-o')>> a=ceil(rand(4,4)*12) a = 12 11 10 12 3 10 6 9 8 6 8 3 6 1 10 5 >> b=ceil(rand(4,4)*10) b = 10 1 2 3 10 4 3 2 5 9 2 1 9 1 7 8 >> x=a\b x = -0.6400 -0.3800 -0.5800 -0.3600 0.0814 1.4697 -0.2959 -0.7021 0.9883 1.0679 0.9748 0.7876 0.5752 -1.7738 0.2055 0.5972 >> x=[1 1.5 2 2.5 3 3.5 4 4.5 5]'; >> y=[-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2]'; >> e=[ones(size(x)) x.^2]; >> c=e\y c = -1.0685 1.0627>> x1=[1:0.1:5]'; >> y2=[ones(size(x1)),x1.^2]*c;>> plot(x,y,'ro',x1,y2,'k')>> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]'; >> x=pinv(a)*bx = -0.21510.44590.79490.2707>> x=0:0.02*pi:2*pi;>> y=sin(x);>> ymax=max(y)ymax = 1>> ymin=min(y)ymin = -1>> ymean=mean(y)ymean =2.2995e-017>> ystd=std(y)ystd =0.7071>> score=[90 80 78 98 79;100 90 68 78 69;88 77 99 87 100];>> score_sum=sum(score)score_sum = 278 247 245 263 248>> score_avg=score_sum/3.score_avg =92.6667 82.3333 81.6667 87.6667 82.6667>> score_max=max(score)score_max=100 90 99 98 100>>[score_max,score_max_student]=max(s core)score_max =100 90 99 98 100score_max_student = 2 2 3 1 3>> score_min=min(score)score_min = 88 77 68 78 69>>[score_min,score_min_student]=min(sc ore)score_min = 88 77 68 78 69score_min_studen t=3 3 2 2 2>> score_student_sum=sum(score) score_student_sum=278 247 245 263 248>>score_student_savg=score_student_sum. /3score_student_savg =92.6667 82.3333 81.6667 87.6667 82.6667>> std(score)ans =6.4291 6.8069 15.8219 10.0167 15.8219>> var(score)ans =41.3333 46.3333 250.3333 100.3333 250.3333>> x=linspace(0,2*pi,10)x =0 0.6981 1.3963 2.0944 2.7925 3.4907 4.1888 4.8869 5.5851 6.2832>> y=sin(x)y=0 0.6428 0.9848 0.8660 0.3420 -0.3420 -0.8660 -0.9848 -0.6428 -0.0000>> dy=diff(y)dy=0.6428 0.3420 -0.1188 -0.5240 -0.6840 -0.5240 -0.1188 0.3420 0.6428>> d2y=diff(y,2)d2y= -0.3008 -0.4608 -0.4052 -0.1600 0.1600 0.4052 0.4608 0.3008>> d3y=diff(y,3)d3y= -0.1600 0.0556 0.2452 0.3201 0.2452 0.0556 -0.1600>> x=[1 2 3 4 5];>> y=[4 5 6 7 8];>> cx=cov(x)cx = 2.5000>> cy=cov(y)cy = 2.5000>> cxy=cov(x,y)cxy =2.5000 2.50002.5000 2.5000>> x=-1:0.2:1;>> z=exp(x.^2);>> fx=gradient(z)fx= -0.8218 -0.6425 -0.3615 -0.1963 -0.0868 0 0.0868 0.1963 0.3615 0.6425 0.8218function ex=ex(x)ex=exp(-x.^2)return>> format long>> quad('ex',0,1,1e-6)ex = 1.00000000000000 0.981730032806080.928898599395100.778800783071400.588254444230630.473852624646280.36787944117144ex = 0.99540087747802 0.95936125127772ex =0.86171221264734 0.68574192538547ex = 0.53040332078406 0.41944631668514ans = 0.74682418072642>> quadl('ex',0,1,1e-6)ex=1.000000000000000.999184727905840.991616959101330.968441445328330.926451851978820.864349866175970.778800783071400.682385279905670.592380095006350.509706301048790.438272262810980.389185953389380.36787944117144ex = 0.99161695910133 0.926451851978820.778800783071400.592380095006350.43827226281098ans = 0.74682413398845>> quad8('ex',0,1,1e-6) ex =1.00000000000000 0.999184727905840.991616959101330.968441445328330.92645185197882 0.86434986617597 0.778800783071400.682385279905670.592380095006350.509706301048790.438272262810980.389185953389380.36787944117144ex= 0.99161695910133 0.926451851978820.778800783071400.592380095006350.43827226281098ans = 0.74682413398845x0=0:pi/5:4*pi;y0=sin(x0).*exp(-x0/10);xi=0:pi/20:4*pi;yi=interp1(x0,y0,xi,'spline');plot(x0,y0,'or',xi,yi,'--b');Untitled2>> t=0:5:65;>> x=2:5:57;>>f=[3.1025,2.256,879.5,1835.9,2968.8,41 36.2,5237.9,6152.7,6725.3,6848.3,6403. 5,6824.7,7328.5,7857.6];>> f1=interp1(t,f,x)f1 = 1.0e+003 *0.002763900000000.353153600000001.262060000000002.289060000000003.435760000000004.576880000000005.603820000000006.381740000000006.774500000000006.670380000000006.571980000000007.02622000000000>> f2=interp1(t,f,x,'nearext') f2 = 1.0e+003 *0.003102500000000.002256000000000.879500000000001.835900000000002.968800000000004.136200000000005.237900000000006.152700000000006.725300000000006.848300000000006.403500000000006.82470000000000>> f3=interp1(t,f,x,'spline') f3 = 1.0e+003 *-0.170259056484550.306978324423981.256000890788642.269771808421483.439603875525464.589619889476705.637043766567756.422853844252316.859291256423016.653528330055636.481654623354457.04407557652658 >> f4=interp1(t,f,x,'cubic')f4 = 1.0e+003 *0.002438844000000.223194994900141.248358437730492.273647289639383.436483654858934.591276133775775.636234122067276.436239461848896.797756124209326.691730400000006.507716445924327.01855707680041[x,y,z]=peaks(6);mesh(x,y,z)[xi,yi]=meshgrid(-3:0.2:3,-3:0.2:3); z1=interp2(x,y,z,xi,yi,'nearest');z2=interp2(x,y,z,xi,yi,'linear');z3=interp2(x,y,z,xi,yi,'spline');z4=interp2(x,y,z,xi,yi,'cubic'); subplot(2,2,1)mesh(xi,yi,z1)title('nearest插值的网络图') subplot(2,2,2)mesh(xi,yi,z2)title('linear插值的网络图') subplot(2,2,3)mesh(xi,yi,z3)title('spline插值的网络图') subplot(2,2,4)mesh(xi,yi,z4)title('cubic插值的网络图')。

matlab实验五

matlab实验五

实验五 基于matlab 的数据拟合与回归分析一、 实验类型验证性实验二、 实验学时2学时三、 实验目的1、掌握利用MATLAB 中实现单因变量的多元线性回归分析(经典多元线性回归分析)的方法;2、掌握利用MATLAB 中实现多因变量的多元线性回归分析(多对多线性回归分析)的方法。

3、掌握MATLAB 有关逐步回归的命令。

四、 实验内容及要求 实验内容:1 学习MATLAB 中有关经典多元线性回归分析的命令;(1) [b,bint,r,rint,stats] = regress(y,X,alpha)建立回归分析模型01122,i i i ip ip i y b b x b x b x ε=+++++其中()()2E 0,D i i εεσ==,1,2,,i n =.注:在该命令中,设计矩阵()(1)ij n p X x ⨯+=(X 的第1列全为1 ) 或响应值向量()1i n y y ⨯=中的无效值Nan 将被免忽略。

输入参数至少有2个,alpha 是检验的显著性水平,默认值为0.05。

输出参数至少有1个,b 是回归系数的估计值;bint 是各回归系数的置信度为1-alpha 的置信区间(第1列是它们的下界,第2列是它们的上界);r 是残差,rint 是残差的置信区间;stats 给出一个1*4的向量,依次是判定系数2R ,F 统计量的观测值及检验的p 值,以及误差的方差的估计值2ˆσ. 这里//(1)U p MMSF Q n p MSE==-- 是检验回归模型是否显著的检验统计量,当012:0p H b b b ====成立时, ~(,1)F F p n p --.可以通过分析残差的置信区间来观察原始数据是否存在异常点,若残差的置信区间不包括0,则可认为对应的观测值是异常值,将异常值全部去掉,重新建立的回归模型将更加精确。

可以调用命令rcoplot(r,rint)按观测顺序逐个画出各组观测值对应的残差和残差置信区间,从而观测异常值的位置。

实验五 MATLAB二维、三维图形的绘制

实验五  MATLAB二维、三维图形的绘制

实验五 MATLAB二维、三维图形的绘制一、实验目的1.掌握二维、三维图形的绘制;2.掌握特殊二维图形的绘制;3.掌握绘图参数的设置;4.了解并学习简单动画的制作。

二、实验内容1.运行下列程序,学会并掌握标题、坐标轴标签和网格线的设置方法x=0:1:10;y=x.^2-10*x+6;plot(x,y);title ('Plot of y=x.^2-10*x+6');xlabel ('x');ylabel ('y');grid on;2.运行下列程序,学会并掌握线型、点型、颜色的设置方法x = -pi:pi/20:pi;y1 = sin(x);y2 = cos(x);plot(x,y1,'bo',x,y2,'r:');title('线型、点型和颜色');xlabel('时间'),ylabel('Y');grid on;3.同一坐标系内多条曲线的绘制1)使用 plot(x,[y1;y2;…])x = -pi:pi/20:pi;y1 = sin(x);y2 = cos(x);plot(x,[y1;y2]);legend('sin x','cos x');2)使用hold命令x = -pi:pi/20:pi;y1 = sin(x);y2 = cos(x);plot(x,y1);hold on;plot(x,y2,‘r’);3)在plot后使用多输入变量x = -2*pi:pi/20:2*pi;y1 = 2*sin(x);y2 = 2*cos(x);plot(x,y1,'ro',x,y2,'b:');title('线型、点型和颜色');xlabel('时间'),ylabel('Y');4) 使用plotyy命令x = -pi:pi/20:pi;y1 = sin(x);y2 = 5*cos(x);plotyy(x,y1,x,y2);grid on;gtext(‘sinx’) ; gtext(‘5cosx’) ;4.子图形窗口的绘制subplot(2,1,1);x= -pi:pi/20:pi;y=sin(x);plot(x,y) ; grid on;title('正弦曲线');subplot(2,1,2);x= -pi:pi/20:pi;y=cos(x);plot(x,y); grid on;title('余弦曲线');5.对数坐标图形x=0:0.1:10;y=x.^2 -10.*x +25;subplot(2,2,1);plot(x,y); grid on;xlabel('a) x、y轴线性刻度');subplot(2,2,2);semilogx(x,y); grid on;xlabel('b) x轴对数刻度、y轴线性刻度');subplot(2,2,3);semilogy(x,y); grid on;xlabel('c) x轴线性刻度、y轴对数刻度');subplot(2,2,4);loglog(x,y); grid on;xlabel(‘d) x、y轴对数刻度');6.极坐标下的绘图theta = 0:pi/20:2*pi;r = 0.5+cos(theta);polar(theta,r);7.复数的绘图,并比较下面几种情况的不同1)t = 0:pi/20:6*pi;y = exp(0.1*t) .* (cos(t) + i * sin(t));plot(y);grid on ;title('Plot of Complex Function vs Time');xlabel('Real Part');ylabel('Imaginary Part');2)t = 0:pi/20:6*pi;y = exp(0.1*t) .* (cos(t) + i * sin(t));plot(t, y);grid on ;title('Plot of Complex Function vs Time');xlabel('t');ylabel('y(t)');3)t = 0:pi/20:6*pi;y = exp(0.1*t) .* (cos(t) + i * sin(t));plot(t, real(y),'b-');grid on;hold on;plot(t, imag(y),'r-');title('Plot of Complex Function vs Time');xlabel('t');ylabel('y(t)');legend('real','imaginary');hold off;4)t = 0:pi/20:6*pi;y = exp(0.1*t) .* (cos(t) + i * sin(t));polar(angle(y),abs(y));title('Plot of Complex Function');8.特殊二维图形的绘制1)x = [1 2 3 4 5 6];y = [2 6 8 7 8 5];stem(x,y);title('Example of a Stem Plot');xlabel('x');ylabel('y');axis([0 7 0 10]);将上述程序中的stem语句换为stairs、bar、barh和compass,即可实现阶梯图、条形图、罗盘图的绘制。

matlab实验五循环结构程序设计实验报告

matlab实验五循环结构程序设计实验报告

实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。

二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。

三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。

在Matlab中,循环结构主要有while 循环和for循环两种形式。

while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。

四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。

程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。

2. 编写一个使用for循环的程序,实现1~10的阶乘。

程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。

五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。

在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。

我也进一步提高了自己的编程能力和问题解决能力。

本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。

六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。

循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。

matlab实验五报告

matlab实验五报告

实验五数据可视化一、实验目的掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰。

二、实验内容(1)二维图形绘制。

(2)三维曲线和三维曲面绘制。

三、实验步骤1.二维图形绘制(1) 二维图形绘制主要使用函数plot。

(2)函数plot 的参数也可以是矩阵。

(3) 选用绘图线形和颜色(4) 添加文字标注。

(5) 修改坐标轴范围。

6) 子图和特殊图形绘制。

2. 三维曲线和三维曲面绘制(1) 三维曲线绘制使用plot3 函数。

绘制一条空间螺旋线:z=0:0.1:6*pi;x=cos(z);y=sin(z);plot3(x,y,z);(2) 三维曲面图的绘制:MATLAB 绘制网线图和曲面图的函数分别是mesh( )和surf( ),其具体操作步骤是:①用函数meshgrid( )生成平面网格点矩阵[X,Y];②由[X,Y]计算函数数值矩阵Z;③用mesh( )绘制网格图,用surf( )绘制曲面图。

绘制椭圆抛物面:clear all,close all;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('椭圆抛物面曲面图')绘制阔边帽面:clear all,close all;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('阔边帽面曲面图')四、练习:1、写出图 A2 的绘制方法。

提示:按照以下的步骤进行(1)产生曲线的数据(共有 3组数据);(2)选择合适的线形、标记、颜色(正弦曲线为红色,余弦曲线为青色);(3)添加图例及文字说明信息;(4)添加坐标轴说明与图标题。

实验五+MATLAB数值计算(含实验报告)

实验五+MATLAB数值计算(含实验报告)

实验五 MATLAB 数值计算一、实验目的1.掌握求数值导数和数值积分的方法。

2.掌握代数方程数值求解的方法。

3.掌握常微分方程数值求解的方法。

二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。

三、实验内容1.线性系统方程:分别使用左除(\)和求逆(inv )求解下面系统方程的解:⎪⎩⎪⎨⎧=+=+=++377251463c b b a c b a2. 数值积分:使用quad 和trapz 求解⎰-503/dx xe x 的数值积分,并与其解析解9243/5+--e 相比较;3. 请完成教材P154页中实验指导环节的实验内容第2题4. 请完成教材P155页中思考练习的第3题(1),并绘制解在该求解区间(即[0,5])上的图像;。

5、请完成教材P164页实验指导环节的实验内容第5题。

(提示:该函数的符号导数,可以通过函数diff 求得。

首先定义符号变表达式,如求sin(x)的一阶符号导数,可以先定义f=’sin(x)’;df=diff(f);可求得df=cos(x)。

其中df 即为函数f 的一阶符号导数)。

四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。

6.实验结果及结果分析实验结果要求必须客观,现象。

结果分析是对实验结果的理论评判。

7.实验中出现的问题及解决方法8. 思考题的回答五、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: *******************(网络工程101提交作业邮箱):E_mail: *******************(注意网络班的M是大写的)下一次课前提交,过期不收!六、参考文献参考教材和Matlab帮助文件。

实验五用MATLAB判定系统的能控性

实验五用MATLAB判定系统的能控性

实验五用MATLAB判定系统的能控性1、实验设备MATLAB软件2、实验目的①学习线性定常连续系统的状态空间模型的能控性判定、掌握MATLAB中关于该模型判定的主要函数;②通过编程、上机调试,进行模型判定。

3、实验原理说明对于连续的线性定常系统,采用代数判据判定状态能控性需要计算能控性矩阵。

Matlab提供的函数ctrb()可根据给定的系统模型,计算能控性矩阵Qc=[B AB … An-1B]能控性矩阵函数ctrb()的主要调用格式为:Qc = ctrb(A,B)Qc = ctrb(sys)其中,第1种输入格式为直接给定系统矩阵A和输入矩阵B,第2种格式为给定状态空间模型sys。

输出矩阵Qc为计算所得的能控性矩阵。

基于能控性矩阵函数ctrb()及能控性矩阵Qc的秩的计算rank(),就可以进行连续线性定常系统的状态能控性的代数判据判定。

也可用函数Judge_contr()通过调用能控性矩阵函数ctrb()和计算矩阵秩的函数rank(),完成能控性代数判据的判定。

4、实验步骤①根据所给状态空间模型,依据线性定常连续系统状态方程计算能控性矩阵,采用MATLAB 编程。

在MATLAB界面下调试程序,并检查是否运行正确。

习题1:试在Matlab中计算如下系统的状态能控性。

Matlab源程序如下:A=[1 3 2; 0 2 0; 0 1 3];B=[2 1; 1 1; -1 -1];sys=ss(A,B,[],[]);Judge_contr(sys);函数Judge_contr()的源程序为:function Judge_contr(sys)Qc=ctrb(sys);n=size(sys.a);if rank(Qc)==n(1)disp('The system is controlled')elsedisp('The system is not controlled')end表明所判定的系统状态不能控。

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

实验五
院系:物理与电子科学学院 专业:电子信息科学与技术 班级: 二班 实验名称:
用(DFT )FFT 和CZT 对信号进行频谱分析
课程名称: 数字信号处理
实验室:
实验C 楼201
成绩
实验人: 邵洋 学号:200840620225
指导教师: 赵发勇
实验目的:
1、进一步加深DFT 算法原理和基本性质的理解
2、熟悉FFT 算法原理和FFT 子程序的应用
3、学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及 其原因, 以便在实际中正确应用FFT 。

实验内容:
1.为了说明高密度频谱与高分辨率频谱之间的区别,考虑序列:
)52.0cos()45.0cos()(n n n x ππ+=
求出它基于有限个样本的频谱。

a.
当100≤≤n 时,确定并画出x (n )的离散时间傅利叶变换。

b. 当0100≤≤n 时,确定并画出x (n )的离散时间傅利叶变换。

2.设)(~
1n x 的基本周期N=50,它的一个周期由下式给出:
⎪⎩⎪⎨
⎧≤≤≤≤=-49260250,)(~
3.01n n ne n x n ,
)
(~2
n x 的基本周期N=100,它的一个周期由下式给出:
⎪⎩⎪⎨
⎧≤≤≤≤=-99260250,)(~
3.02n n ne n x n ,
这两个周期序列的区别在于它们的周期,但它们具有相同的非零样本。

a.求出)(~1n x 的DFS )(~1n X ,用stem 函数画出它的幅度和角度样本。

b.求出)(~2n x 的DFS )(~2n X ,画出它的幅度和角度样本。

3.以教材《数字信号处理导论》P179面例4.7.2为例,编程求解教材P182面习题4.10。

CZT 算法的研究
给定信号∑==
3
1
)2sin()(i i
t f t x π,已知Hz f
8.101
=,Hz f 75.112=,
Hz f 55.123=,令Hz f s 40=,对)(t x 抽样后得)(n x ,又令N=64。

实验结果分析
1、
)52.0cos()45.0cos()(n n n x ππ+=
(a )当100≤≤n 时,确定并画出x (n )的离散时间傅利叶变换。

(b )当0100≤≤n 时,确定并画出x (n )的离散时间傅利叶变换。

2、设)(~
1n x 的基本周期N=50,它的一个周期由下式给出:
⎪⎩⎪⎨
⎧≤≤≤≤=-49260250,)(~
3.01n n ne n x n ,
)
(~2
n x 的基本周期N=100,它的一个周期由下式给出:
⎪⎩⎪⎨
⎧≤≤≤≤=-99260250,)(~
3.02n n ne n x n ,
(a ).求出)(~1n x 的DFS )(~1n X ,用stem 函数画出它的幅度和角度样本。

由以下DFT图形进行周期延拓后可得DFS
(b ).求出)(~2n x 的DFS )(~2n X ,画出它的幅度和角度样本。

3、CZT 算法的研究。

给定信号∑==
3
1
)2sin()(i i
t f t x π,已知Hz f
8.101
=,Hz f 75.112=,
Hz f 55.123=,令Hz f s 40=,对)(t x 抽样后得)(n x ,又令N=64。

(1)调用MA TLAB 中的czt.m ,可求出X(k)及其幅度谱,这时f ∆=N f s /=0.625Hz ,小于(12f f -)及(23f f -),观察三个谱峰的分辨情况。

(2)在)(n x 后分别补3N 个零、7N 个零、15N 个零,再做DFT ,观察补零效果。

(3)调用MA TLAB 中的文件czt.m ,按如下两组参数赋值:
参数1:Hz f s 40=,N=64,M=50,Hz f 90=,f ∆=0.2Hz ; 参数2:Hz f s 40=,N=64,M=\60,Hz f 80=,f ∆=0.12Hz 。

分别求X(k),k=0,1,…,M-1,画出其幅度谱,并和(1),(2)的结果相比较
(1)、调用MA TLAB 中的czt.m,求出其幅度谱
(2)、在)
x后分别补3N个零、7N个零、15N个零,再做DFT,观察补零效果。

(n
(3)调用MA TLAB中的文件czt.m,按所给两组参数赋值:
思考题解答
1、用FFT作频谱分析时,分辨率主要由哪些因素决定?周期函数:抽样频率
非周期函数:窗的宽度
2、实验说明CZT相对于FFT更具有哪些估点?(1)、可以设定开始位置
(2)、可设定分辨率
(3)、可设置取点数。

相关文档
最新文档