MATLAB实验报告3

合集下载

matlab实验报告

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131姓名:陈万全学号:132852一、实验目的1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。

2、掌握MATLAB常用命令的使用。

3、掌握MATLAB帮助系统的使用。

4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。

二、实验内容1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。

图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。

例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。

lookfor:用来寻找未知的命令。

例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。

找到所需的命令後,即可用help进一步找出其用法。

(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。

具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据三、源程序和实验结果1、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

MATLAB信号与系统实验报告19472[五篇范文]

MATLAB信号与系统实验报告19472[五篇范文]

MATLAB信号与系统实验报告19472[五篇范文]第一篇:MATLAB信号与系统实验报告19472信号与系统实验陈诉(5)MATLAB 综合实验项目二连续系统的频域阐发目的:周期信号输入连续系统的响应可用傅里叶级数阐发。

由于盘算历程啰嗦,最适适用MATLAB 盘算。

通过编程实现对输入信号、输出信号的频谱和时域响应的盘算,认识盘算机在系统阐发中的作用。

任务:线性连续系统的系统函数为11)(+=ωωjj H,输入信号为周期矩形波如图 1 所示,用MATLAB 阐发系统的输入频谱、输出频谱以及系统的时域响应。

-3-2-1 0 1 2 300.511.52Time(sec)图 1要领:1、确定周期信号 f(t)的频谱nF&。

基波频率Ω。

2、确定系统函数 )(Ω jn H。

3、盘算输出信号的频谱n nF jn H Y&&)(Ω=4、系统的时域响应∑∞-∞=Ω=nt jnn eY t y&)(MATLAB 盘算为y=Y_n*exp(j*w0*n“*t);要求(画出 3 幅图):1、在一幅图中画输入信号f(t)和输入信号幅度频谱|F(jω)|。

用两个子图画出。

2、画出系统函数的幅度频谱|H(jω)|。

3、在一幅图中画输出信号y(t)和输出信号幅度频谱|Y(jω)|。

用两个子图画出。

解:(1)阐发盘算:输入信号的频谱为(n)输入信号最小周期为=2,脉冲宽度,基波频率Ω=2π/ =π,所以(n)系统函数为因此输出信号的频谱为系统响应为(2)步伐:t=linspace(-3,3,300);tau_T=1/4;%n0=-20;n1=20;n=n0:n1;%盘算谐波次数20F_n=tau_T*Sa(tau_T*pi*n);f=2*(rectpuls(t+1.75,0.5)+rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5));figure(1),subplot(2,1,1),line(t,f,”linewidth“,2);%输入信号的波形 axis([-3,3,-0.1,2.1]);grid onxlabel(”Time(sec)“,”fontsize“,8),title(”输入信号“,”fontweight“,”bold“)%设定字体巨细,文本字符的粗细text(-0.4,0.8,”f(t)“)subplot(2,1,2),stem(n,abs(F_n),”.“);%输入信号的幅度频谱xlabel(”n“,”fontsize“,8),title(”输入信号的幅度频谱“,”fontweight“,”bold“)text(-4.0,0.2,”|Fn|“)H_n=1./(i*n*pi+1);figure(2),stem(n,abs(H_n),”.“);%系统函数的幅度频谱xlabel(”n“,”fontsize“,8),title(”系统函数的幅度频谱“,”fontweight“,”bold“)text(-2.5,0.5,”|Hn|“)Y_n=H_n.*F_n;y=Y_n*exp(i*pi*n”*t);figure(3),subplot(2,1,1),line(t,y,“linewidth”,2);%输出信号的波形 axis([-3,3,0,0.5]);grid onxlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)text(-0.4,0.3,“y(t)”)subplot(2,1,2),stem(n,abs(Y_n),“.”);%输出信号的幅度频谱xlabel(“n”,“fontsize”,8),title(“输出信号的幅度频谱”,“fontweight”,“bold”)text(-4.0,0.2,“|Yn|”)(3)波形:-3-2-1 0 1 2 300.511.52Time(sec)输入信号f(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输入信号的幅度频谱|Fn|-20-15-10-5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91n系统函数的幅度频谱|Hn|-3-2-1 0 1 2 300.10.20.30.4Time(sec)输出信号y(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输出信号的幅度频谱|Yn| 项目三连续系统的复频域阐发目的:周期信号输入连续系统的响应也可用拉氏变更阐发。

matlab实验报告

matlab实验报告

matlab实验报告实验1 熟悉matlab 的开发环境及矩阵操作⼀、实验的教学⽬标通过本次实验使学⽣熟悉MATLAB7.0的开发环境,熟悉MA TLAB ⼯作界⾯的多个常⽤窗⼝包括命令窗⼝、历史命令窗⼝、当前⼯作⽬录窗⼝、⼯作空间浏览器窗⼝等。

掌握建⽴表达式书写规则及常⽤函数的使⽤,建⽴矩阵的⼏种⽅法。

⼆、实验环境计算机、MATLAB7.0集成环境三、实验内容1、熟悉命令窗⼝的使⽤,⼯作空间窗⼝的使⽤,⼯作⽬录、搜索路径的设置。

命令历史记录窗⼝的使⽤,帮助系统的使⽤。

2、在当前命令窗⼝中输⼊以下命令:x=0:2:10 y=sqrt(x),并理解其含义。

3、求下列表达式的值(1)w=)1034245.01(26-?+?(2)x=ac b e abc cb a ++-+++)tan(22ππ,其中a=3.5,b=5,c=-9.8 四、实验总结1、熟悉了命令窗⼝的使⽤,⼯作空间窗⼝的使⽤。

2、了解了⼯作⽬录、搜索路径的设置⽅法。

---5317383399351542实验2 MATLAB 基本运算⼀、实验的教学⽬标通过本次实验使学⽣掌握向量和矩阵的创建⽅法;掌握矩阵和数组的算术运算、逻辑运算和关系运算;掌握字符数组的创建和运算;了解创建元胞数组和结构体的⽅法。

⼆、实验环境计算机、MATLAB7.0集成环境三、实验内容1、要求在闭区间]2,0[π上产⽣具有10个等距采样点的⼀维数组。

试⽤两种不同的指令实现。

(提⽰:冒号⽣成法,定点⽣成法)2、由指令rng('default'),A=rand(3,5)⽣成⼆维数组A ,试求该数组中所有⼤于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

(提⽰:find 和sub2ind )3、创建3阶魔⽅矩阵a 和3阶对⾓阵b ,c=a(1:3,1:3)(1)计算矩阵a,b 和c 的⾏列式、逆矩阵并进⾏最⼤值的统计。

(2)⽐较矩阵和数组的算术运算:b 和c 的*、/、^和.*、./、.^。

初识MATLAB的实验报告

初识MATLAB的实验报告

初识MATLAB的实验报告1. 引言MATLAB(Matrix Laboratory)是一种高级的技术计算环境和编程语言。

它具有强大的矩阵计算能力和丰富的科学和工程绘图功能,被广泛应用于各个领域的科研与工程实践中。

本实验旨在初步了解MATLAB的基本语法和功能,通过实际操作加深对MATLAB编程的理解。

2. 实验目的1. 掌握MATLAB的安装和基本使用方法;2. 学习MATLAB中的常用数学函数和操作;3. 了解MATLAB绘图功能并能够绘制简单的图形。

3. 实验步骤3.1 MATLAB安装首先,在官方网站(3.2 MATLAB入门3.2.1 MATLAB语法MATLAB的语法类似于其他常见的编程语言,每个语句以分号结尾。

在MATLAB 中,可以直接进行基本的数学运算,例如加减乘除、指数、对数等。

通过以下代码可以计算两个变量的和并将结果打印出来:matlaba = 10;b = 20;sum = a + b;disp(sum);3.2.2 MATLAB变量在MATLAB中,可以创建和操作各种类型的变量,例如数值、字符串、矩阵等。

以下代码演示了如何创建一个矩阵:matlabmatrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];disp(matrix);3.2.3 MATLAB函数MATLAB提供了许多内置的数学函数,可以直接调用。

以下代码演示了如何计算正弦函数值并打印结果:matlabx = pi/4;y = sin(x);disp(y);3.3 MATLAB绘图MATLAB具有强大的绘图功能,可以绘制各种图形,如曲线、散点图、柱状图等。

以下代码演示了如何绘制一个简单的正弦曲线:matlabx = linspace(0, 2*pi, 100);y = sin(x);plot(x, y);xlabel('x');ylabel('y');title('Sine Curve');4. 实验结果与分析在完成上述实验步骤后,我们成功安装了MATLAB,并学习了基本的语法、变量和函数的使用方法。

概率论与数理统计MATLAB上机实验报告

概率论与数理统计MATLAB上机实验报告

《概率论与数理统计》MATLAB上机实验实验报告一、实验目的1、熟悉matlab的操作。

了解用matlab解决概率相关问题的方法。

2、增强动手能力,通过完成实验内容增强自己动手能力。

二、实验内容1、列出常见分布的概率密度及分布函数的命令,并操作。

概率密度函数分布函数(累积分布函数) 正态分布normpdf(x,mu,sigma) cd f(‘Normal’,x, mu,sigma);均匀分布(连续)unifpdf(x,a,b) cdf(‘Uniform’,x,a,b);均匀分布(离散)unidpdf(x,n) cdf(‘Discrete Uniform’,x,n);指数分布exppdf(x,a) cdf(‘Exponential’,x,a);几何分布geopdf(x,p) cdf(‘Geometric’,x,p);二项分布binopdf(x,n,p) cdf(‘Binomial’,x,n,p);泊松分布poisspdf(x,n) cdf(‘Poisson’,x,n);2、掷硬币150次,其中正面出现的概率为0.5,这150次中正面出现的次数记为X(1) 试计算X=45的概率和X≤45 的概率;(2) 绘制分布函数图形和概率分布律图形。

答:(1)P(x=45)=pd =3.0945e-07P(x<=45)=cd =5.2943e-07(2)3、用Matlab软件生成服从二项分布的随机数,并验证泊松定理。

用matlab依次生成(n=300,p=0.5),(n=3000,p=0.05),(n=30000,p=0.005)的二项分布随机数,以及参数λ=150的泊松分布,并作出图线如下。

由此可以见得,随着n的增大,二项分布与泊松分布的概率密度函数几乎重合。

因此当n足够大时,可以认为泊松分布与二项分布一致。

4、 设22221),(y x e y x f +−=π是一个二维随机变量的联合概率密度函数,画出这一函数的联合概率密度图像。

matlab课程设计实验报告

matlab课程设计实验报告

实验一单边带调幅系统的建模仿真一、实验目的1.了解单边带调幅系统的工作原理2.掌握单边带调幅系统的Matlab和Simulink建模过程二、实验内容1、Matlab设计一个单边带发信机、带通信道和相应的接收机,参数要求如下.(1)输入话音信号为一个话音信号,采样率8000Hz。

话音输入后首先进行预滤波,预滤波器是一个频率范围在[300,3400]Hz的带通滤波器.其目的是将话音频谱限制在3400Hz以下.单边带调制的载波频率设计为10KHz,调制输出上边带。

要求观测单边带调制前后的信号功率谱。

(2)信道是一个带限高斯噪声信道,其通带频率范围是[10000, 13500]Hz。

要求能够根据信噪比SNR要求加入高斯噪声。

(3)接收机采用相干解调方式.为了模拟载波频率误差对解调话音音质的影响,设本地载波频率为9。

8KHz,与发信机载波频率相差200Hz。

解调滤波器设计为300Hz到3400Hz的带通滤波器。

2、用Simulink方式设计一个单边带传输系统并通过声卡输出接收机解调的结果声音。

系统参数参照实例5.9,系统仿真参数设置为50KH显示结果(1)能观察音频信号和SSB加载后的信号(2)能观察音频信号频谱和SSB加载后的信号频谱(3)解调结果放到.wav音频文件,改变信道信噪比听解调的结果三、实验要求1。

按要求设计仿真参数;2.按计算所得参数建立Matlab和SIMULINK系统模型;3。

设置各模块参数及仿真参数后仿真系统;4.分析仿真结果.实验二数字通信系统的建模仿真一、实验目的1.了解数字通信系统的建模过程2.了解数字通信系统的仿真过程,并掌握对建模的好坏进行分析二、实验内容建立并测试一个直接序列扩频体制的码分多址传输系统,对比以Gold序列、m序列以及随机整数发生器Random Integer Generator 作为直接序列扩频的扩频序列的传输性能,观察两路CDMA码源的收发数据波形,测试误码率,并用频谱仪观察直接序列扩频调制前后和解调前后的信号频谱。

MATLAB实训报告

一、实训目的1. 熟悉MATLAB语言的使用2. 了解MATLAB在电子信息课程中的应用3. 掌握MATLAB矩阵输入、运算以及MATLAB数值的运算功能4.掌握各种数据的创建、访问、扩建及缩减5.了解利用MATLAB计算系统响应的方法;验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。

二、实训任务和要求1、熟练利用MATLAB语言编程对系统S平面分析2、掌握利用MATLAB分析系统时域的方法,熟悉系统的零输入响应,零状态响应及冲击响应的步骤。

3、MATLAB是目前国际上最流行,应用最广泛的科学与工程计算软件,它由MATLAB语言,MATLAB工作环境,MATLAB图像处理系统,MATLAB数据函数库,MATLAB应用程序接口五大部分组成的集数值计算,图形处理,程序开发为一体的功能强大的系统.它应用于自动控制,数学计算,信号分析,计算机技术,图像信号处理,财务分析,航天工业,汽车工业,生物医学工程,语音处理和雷达工程等各行业,也是国高校和研究部门进行许多科学研究的重要工具。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。

MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,它是以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的需求。

与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。

它用解释方式工作,键入持续后立即得出结果,人机交互性能好,易于调试并被科技人员所乐于接受。

特别是它可适应多种平台,并且随着计算机硬软件的更新及时升级,因此MATLAB语言在国外的大学工学院中,特别是频繁进行数值计算的电子信息类学科中,已经成为每个学生都掌握的工具了。

它大大提高了课程教学、解题作业、分析研究的效率。

工大Matlab实验报告

实验一MATLAB环境及命令窗口1.使用命令窗口>> a=2.5a =2.5000>> b=[1 2;3 4]b =1 23 4>> c='a'c =a>> d=sin(a*b*pi/180)d =0.0436 0.08720.1305 0.1736>> e=a+ce =99.5000>> a=2.5;>> b=[1 2;3 4]b =1 23 4>> b=[1 2;3 4] %B为矩阵b =1 23 4>> d=sin(a*b*pi/...180)d =0.0436 0.08720.1305 0.17362.使用当前目录>> clear>> x=[1 2 3 4 5];>> y=sin(x)y =0.8415 0.9093 0.1411 -0.7568 -0.95893.自我练习>> x=[1 3 5 7 9];>> y=2*xy =2 6 10 14 18>> plot(y)实验二MATLAB的数值计算1.创建矩阵>> a=[1 2 3;4 5 6;7 8 9]a =1 2 34 5 67 8 9>> a=[1:3;4:6;7:9]a =1 2 34 5 67 8 9>> a=[linspace(1,3,3);linspace(4,6,3);linspace(7,9,3)]a =1 2 34 5 67 8 9>> a=ones(3)a =1 1 11 1 11 1 1>> a(1,:)=[1 2 3];>> a(2,:)=[4 5 6]a =1 2 34 5 61 1 1>> b=a(3:6)b =1 2 5 1>> b(1)=[]b =2 5 12.矩阵的运算(1).解线性方程组>> a=[2 -3 0 2;1 5 2 1;3 -1 1 -1;4 1 2 2]a =2 -3 0 21 52 13 -1 1 -14 1 2 2>> b=[8;2;7;12];>> x=a\bx =3.00000.0000-1.00001.0000(2).解矩阵方程>> A=[1/3 0 0;0 1/4 0;0 0 1/7];>> B=inv(A)*inv(inv(A)-eye(3))*6*AB =3.0000 0 00 2.0000 00 0 1.0000(3).计算特征值和特征向量,验证它们之间的关系>> x=[1 2 0;2 5 -1;4 10 -1]x =1 2 02 5 -14 10 -1>> [v,d]=eig(x)v =-0.2440 -0.9107 0.4472-0.3333 0.3333 0.0000-0.9107 -0.2440 0.8944d =3.7321 0 00 0.2679 00 0 1.0000>> x*vans =-0.9107 -0.2440 0.4472-1.2440 0.0893 0.0000-3.3987 -0.0654 0.8944>> x*dans =3.7321 0.5359 07.4641 1.3397 -1.000014.9282 2.6795 -1.00003.多项式的运算(1).表达式G(x)=(x-4)(x+5)(x^2-6x+9)>> p1=[1 -4]p1 =1 -4>> p2=[1 5]p2 =1 5>> p3=[1 -6 9]p3 =1 -6 9>> G=conv(p1,p2)G =1 1 -20>> G=conv(G,p3)G =1 -5 -17 129 -180>> x=0:20;>> y=polyval(G,x)y =Columns 1 through 8-180 -72 -14 0 0 40 198 576Columns 9 through 161300 2520 4410 7168 11016 16200 22990 31680Columns 17 through 2142588 56056 72450 92160 115600>> x0=roots(G)x0 =-5.00004.00003.00003.0000>> deconv(deconv(G,p3),p2)ans =1-4(2).多项式拟合与插值G(x)=x^4-5x^3-17x^2+129x-180>> G=[1 -5 -17 129 -180];>> x=0:20;>> y=polyval(G,x);>> y0=0.1*randn(1,21)y0 =Columns 1 through 100.0538 0.1834 -0.2259 0.0862 0.0319 -0.1308 -0.0434 0.0343 0.3578 0.2769Columns 11 through 20-0.1350 0.3035 0.0725 -0.0063 0.0715 -0.0205 -0.0124 0.1490 0.1409 0.1417Column 210.0671>> y1=y+y0y1 =1.0e+05 *Columns 1 through 10-0.0018 -0.0007 -0.0001 0.0000 0.0000 0.0004 0.0020 0.0058 0.0130 0.0252Columns 11 through 200.0441 0.0717 0.1102 0.1620 0.2299 0.3168 0.4259 0.5606 0.7245 0.9216Column 211.1560>> G1=polyfit(x,y1,4)G1 =1.0000-5.0019 -16.9766 128.9086 -179.9123实验三MATLAB的符号计算>> f=sym('sin(x)')f =sin(x)>> g=sym('y/exp(-2*t)') g =y*exp(2*t)>> syms x y t>> f=sym(sin(x))f =sin(x)>> g=sym(y/exp(-2*t)) g =y*exp(2*t)>> symvar(g)ans =[ t, y]>> symvar(g,1)ans =y>> findsym(g,2)ans =y,t>> x=0:10;>> y=subs(f,x)y =[ 0, sin(1), sin(2), sin(3), sin(4), sin(5), sin(6), sin(7), sin(8), sin(9), sin(10)] >> f1=subs(f,'5')f1 =sin(5)>> y1=double(f1)y1 =-0.9589>> y2=eval(f1)y2 =-0.9589>> digitsDigits = 32>> vpa(f1)ans =-0.95892427466313846889315440615599>> VPA(F1,10)Undefined function or variable 'F1'.Did you mean:>> vpa(f1,10)ans =-0.9589242747>> f=sym('sn(x)');>> g=sym('y/exp(-2*t)')g =y*exp(2*t)>> finverse(f)Warning: Functional inverse cannot be found.> In D:\Program Files\MATLAB\R2013a\toolbox\symbolic\symbolic\symengine.p>symengine at 56In sym.sym>sym.privBinaryOp at 1693In sym.finverse at 31ans =[ empty sym ]>> finverse(g,'t')ans =log(t/y)/2>> compose(g,'t')ans =t*exp(2*t)>> compose(f,g)ans =sn(y*exp(2*t))>> compose(f,g,'z')ans =sn(z*exp(2*t))>> diff(f)ans =diff(sn(x), x)>> cos(x)ans =Columns 1 through 81.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837 0.9602 0.7539 Columns 9 through 11-0.1455 -0.9111 -0.8391>> diff(g)ans =exp(2*t)>> diff(g,'t')ans =2*y*exp(2*t)>> syms t x>> limit((sin(x+t)-sin(x)/t,t,0)limit((sin(x+t)-sin(x)/t,t,0)|Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.>> limit((sin(x+t)-sin(x))/t,t,0)ans =cos(x)>> int(f)Warning: Explicit integral could not be found.ans =int(sn(x), x)>> f=sym('sin(x)")f=sym('sin(x)")|Error: A MATLAB string constant is not terminated properly. >> f=sym('sin(x)')f =sin(x)>>>> int(f)ans =-cos(x)>> int(g)ans =(y^2*exp(2*t))/2>> int(g,'t')ans =(y*exp(2*t))/2>> int(g,'t',0,10)ans =(y*(exp(20) - 1))/2>> f=sym('x^2+3*x+2')f =x^2 + 3*x + 2>> g=sym('x^3-1')g =x^3 - 1>> f+gans =x^3 + x^2 + 3*x + 1>> f~=gans =x^2 + 3*x + 2 ~= x^3 - 1>> f~=gans =x^2 + 3*x + 2 ~= x^3 - 1>> pretty(f)2x + 3 x + 2>> f1=horner(f)f1 =x*(x + 3) + 2>> f2=factor(f1)f2 =(x + 2)*(x + 1)>> somple(g)Undefined function 'somple' for input arguments of type 'sym'. >> simple(g)simplify:x^3 - 1radsimp:x^3 - 1simplify(Steps = 100): x^3 - 1combine(sincos):x^3 - 1combine(sinhcosh): x^3 - 1combine(ln):x^3 - 1factor:(x - 1)*(x^2 + x + 1) expand:x^3 - 1combine:x^3 - 1rewrite(exp):x^3 - 1rewrite(sincos):x^3 - 1rewrite(sinhcosh):x^3 - 1rewrite(tan):x^3 - 1mwcos2sin:x^3 - 1collect(x):x^3 - 1ans =x^3 - 1>> h=sym2poly(f)h =1 32 >> f=poly2sym(h)f =x^2 + 3*x + 2>> A=sym('[x x^2;2*x cos(2*t)]')A =[ x, x^2][ 2*x, cos(2*t)]>> A.'ans =[ x, 2*x][ x^2, cos(2*t)]>> det(A)ans =- 2*x^3 + cos(2*t)*x>> diff(A)ans =[ 1, 2*x][ 2, 0]>> eq1=sym('2*x1-3*x2+2*x4=8')eq1 =2*x1 - 3*x2 + 2*x4 == 8>> eq2=('x1+5*x2+2*x3+x4=2');>> eq3=('3*x1-x2+x3-x4=7');>> eq2=sym('x1+5*x2+2*x3+x4=2'); >> eq3=sym('3*x1-x2+x3-x4=7')eq3 =3*x1 - x2 + x3 - x4 == 7>> eq4=sym('4*x1+x2+2*x3+2*x4=12');>> [x1,x2,x3,x4]=solve(eq1,eq2,eq3,eq4)x1 =3x2 =x3 =-1x4 =1>> [y,z]=dsolve('Dy-z=cos(x),Dz+y=1','x')y =sin(x)*(C4 + (sin(x)*(sin(x) + 2))/2) + cos(x)*(C5 + x/2 + 2*cos(x/2)^3*sin(x/2) + 2*cos(x/2)^2 - cos(x/2)*sin(x/2))z =cos(x)*(C4 + (sin(x)*(sin(x) + 2))/2) - sin(x)*(C5 + x/2 + 2*cos(x/2)^3*sin(x/2) + 2*cos(x/2)^2 - cos(x/2)*sin(x/2))>>实验四MATLAB的计算可视化和GUI设计1.绘制二维曲线窗口1:y=sin(2πt),t∈[0,2]; 窗口2:y=e^(-t), y=e^(-2t), y=e^(-3t) ,t∈[0,2]; 窗口3:矩形脉冲:宽度为1,高度为2,开始时间为1;窗口4:单位圆>> subplot(2,2,1)>> t1=0:0.1:2;>> y1=sin(2*pi*t1);>> plot(t1,y1)>> title('y=sin(2\pit)')>> subplot(2,2,2)>> t2=0:0.1:2;>> y2=[exp(-t2);exp(-2*t2);exp(-3*t2)];>> plot(t2,y2)>> axis([0 2 -0.2 1.2]);>> title('y=e-t,y=e-2t,y=e-3t')>> subplot(2,2,3);>> t3=[0 1 1 2 2 3 4];>> y3=[0 0 2 2 0 0 0];>> plot(t3,y3);>> axis([0 4 -0.5 3]);>> title('脉冲信号')>> subplot(2,2,4);>> t4=0:0.1:2*pi;>> plot(sin(t4),cos(t4))>> axis([-1.2 1.2 -1.2 1.2]);>> axis equal;>> title('圆')2.绘制多条二阶系统时域曲线和三维图形二阶系统的时域响应为:y=1-1/(sqrt(1-zeta^2))*e^(-zetax)*sin(sqrt(1-zeta^2)x+a*cos(zeta)) >> x=0:0.1:20;>> zeta=0zeta =>> y1=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));>> plot(x,y1)>> zeta=0.3;>> y2=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));>> hold on>> plot(x,y2,'r:')>> zeta=0.5;>> y3=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));>> plot(x,y3,'g*')>> zeta=0.707;>> y4=1-1/sqrt(1-zeta^2)*exp(-zeta*x).*sin(sqrt(1-zeta^2)*x+acos(zeta));>> plot(x,y4,'m--')>> title('二阶系统曲线')>> legend('\zeta=0','\zeta=0.3','\zeta=0.5','zeta=0.707')>> grid on>> gtext('\zeta=0')>> gtext('\zeta=0.3')>> gtext('\zeta=0.5')>> gtext('\zeta=0.707')>> ginput(3)ans =4.5853 1.09067.9032 1.008814.2166 1.01463.特殊图形(1).绘制条形图>> x=0:0.3:2*pi;>> y=sin(x);>> subplot(2,2,1)>> bar(x,y,0.5)>> axis([0,2*pi,-1.2,1.2]) (2).绘制实心图>> subplot(2,2,2)>> fill(x,y,'r')(3).绘制阶梯图>> subplot(2,2,3)>> stairs(x,y)(4).绘制火柴杆图>> subplot(2,2,4)>> stem(x,y)。

数字信号处理实验报告MATLAB

数字信号处理实验报告姓名:班级:09电信一班学号:2)]得下图二,图二图一3.将如下文件另存为:sigadd.m文件function [y,n] = sigadd(x1,n1,x2,n2)% 实现y(n) = x1(n)+x2(n)% -----------------------------% [y,n] = sigadd(x1,n1,x2,n2)% y = 在包含n1 和n2 的n点上求序列和,% x1 = 在n1上的第一序列% x2 = 在n2上的第二序列(n2可与n1不等)n = min(min(n1),min(n2)):max(max(n1),max(n2)); % y(n)的长度y1 = zeros(1,length(n)); y2 = y1; % 初始化y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % 具有y的长度的x1y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % 具有y的长度的x2y = y1+y2;在命令窗口输入:x1=[1,0.5,0.3,0.4];n1=-1:2;x2=[0.2,0.3,0.4,0.5,0.8,1];n2=-2:3; [y,n] = sigadd(x1,n1,x2,n2)得:y =n=-1:10;x=sin(0.4*pi*n);y=fliplr(x);n1=-fliplr(n);subplot(2,1,1),stem(n,x) subplot(2,1,2),stem(n1,y在命令窗口键入:n=-1:10; x=sin(0.4*pi*n);n (samples)实验结果:1.(1)在命令窗口输入:tic; [am,pha]=dft1(x)N=length(x);w=exp(-j*2*pi/N);for k=1:Nsum=0;for n=1:Nsum=sum+x(n)*w^((k-1)*(n-1));endam(k)=abs(sum);pha(k)=angle(sum);end;toc得到如下结果:am =Columns 1 through 11120.0000 41.0066 20.9050 14.3996 11.3137 9.6215 8.6591 8.1567 8.0000 8.1567 8.6591Columns 12 through 169.6215 11.3137 14.3996 20.9050 41.0066pha =Columns 1 through 110 1.7671 1.9635 2.1598 2.3562 2.5525 2.7489 2.9452 3.1416 -2.9452 -2.7489Columns 12 through 16-2.5525 -2.3562 -2.1598 -1.9635 -1.7671Elapsed time is 0.047000 seconds.(2)在命令窗口输入:tic;[am,pha]=dft2(x)N=length(x);n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n’*k;wnk=w.^(nk); Xk=x*wnk; am= abs(Xk); pha=angle(Xk); toc得到下图:figure(1)00.10.20.30.40.50.60.70.80.91signal x(n), 0 <= n <= 99(2)在命令窗口键入:n3=[0:1:99];y3=[x(1:1:10) zeros(1,90)]; %添90个零。

奇异值分解求解病态方程组matlab实验报告

奇异值分解求解病态方程组matlab实验报告一、实验目的本实验旨在通过使用奇异值分解(SVD)方法来求解病态方程组,并利用MATLAB软件进行实现,以掌握SVD方法的基本原理和实现过程。

二、实验原理1.奇异值分解奇异值分解是一种矩阵分解的方法,可以将一个任意形状的矩阵分解为三个部分:左奇异向量、右奇异向量和奇异值。

对于一个m×n的矩阵A,它的SVD表示为:A=UΣV^T其中U是一个m×m的正交矩阵,V是一个n×n的正交矩阵,Σ是一个m×n的对角矩阵,且其主对角线上元素为非负实数。

这些非零元素被称为A的奇异值。

2.病态方程组当方程组中某些系数很小或者某些未知数之间存在较大差距时,就会出现病态方程组。

在求解这种方程组时,由于舍入误差等因素会使得计算结果产生较大误差。

3.使用SVD求解病态方程组对于一个形如Ax=b的线性方程组,在A是满秩时可以直接使用高斯消元法求解。

但是在A不满秩的情况下,可以使用SVD方法来求解。

具体方法如下:(1)将A进行奇异值分解,得到U、Σ和V。

(2)对Σ中的每个非零元素取其倒数,并将其余元素设为0,得到Σ+。

(3)计算x=VΣ+U^Tb。

三、实验步骤1.生成病态方程组在MATLAB中利用rand函数生成一个10×10的随机矩阵A和一个10×1的随机向量b。

然后将A的第10列替换为前9列之和,得到一个病态方程组Ax=b。

2.使用SVD求解方程组利用MATLAB中的svd函数对矩阵A进行奇异值分解,并计算出Σ+。

然后按照上述公式计算x,并与真实解进行比较,计算误差。

3.调整参数观察结果可以通过调整生成随机矩阵A时的参数或者改变替换第10列时前9列之和的系数来观察结果变化,并分析误差产生的原因。

四、实验结果与分析经过多次实验发现,在使用SVD方法求解病态方程组时,误差较大且不稳定。

这是因为在矩阵A不满秩时,其奇异值中存在很小的非零元素,而这些元素的倒数很大,会对计算结果产生较大影响。

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

实验三用MATLAB实现线性系统的频域分析
[实验目的]
1.掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquis图(极坐标图)绘制方法;
2.掌握利用Bode图和Nyquis图对系统性能进行分析的理论和方法。

[实验指导]
一、绘制Bode图和Nyquis图
1.Bode图绘制
采用bode()函数,调用格式:
①bode(sys);bode(num,den);
系统自动地选择一个合适的频率范围。

②bode(sys,w);
其中w(即ω)是需要人工给出频率范围,一般由语句w=logspace(a,b,n)给出。

logspace(a,b,n):表示在10a到10b之间的 n个点,得到对数等分的w 值。

③bode(sys,{wmin,wmax});
其中{wmin,wmax}是在命令中直接给定的频率w的区间。

以上这两种格式可直接画出规范化的图形。

④[mag,phase,ω]=bode(sys)或[m,p]=bode(sys)
这种格式只计算Bode图的幅值向量和相位向量,不画出图形。

m为频率特性G(jω )的幅值向量;
p为频率特性G(jω )的幅角向量,单位为角度(°)。

w为频率向量,单位为[弧度]/秒。

在此基础上再画图,可用:
subplot(211);semilogx(w,20*log10(m) %对数幅频曲线
subplot(212);semilogx(w,p) %对数相频曲线
⑤bode(sys1,sys2,…,sysN) ;
⑥bode((sys1,sys2,…,sysN,w);
这两种格式可在一个图形窗口同时绘多个系统的bode图。

2. Nyquist曲线的绘制
采用nyquist()函数调用格式:
① nyquist(sys) ;
② nyquist(sys,w) ;
其中频率范围w由语句w=w1:Δw:w2确定。

③nyquist(sys1,sys2,…,sysN) ;
④nyquist(sys1,sys2,…,sysN,w);
⑤ [re,im,w]=nyquist(sys) ;
re—频率响应实部im—频率响应虚部
使用命令axis()改变坐标显示范围,例如axis([-1,1.5,-2,2])。

⑥当传递函数串有积分环节时ω=0处会出现幅频特性为无穷大的情况,可用命令axis(),自定义图形显示范围,避开无穷大点。

二、系统分析
1.计算控制系统的稳定裕度
采用margin( )函数可以直接求出系统的幅值裕度和相角裕度。

调用格式为:
①[Gm,Pm,Wcg,Wcp]= margin(num,den) ;
[Gm,Pm,Wcg,Wcp]= margin(A,B,C,D) ;
[Gm,Pm,Wcg,Wcp]= margin(sys) ;
Gm--- 幅值裕度;
Pm---相位裕度;
wcg ---幅值裕度处对应的频率ωc;
wcp ---相位裕度处对应的频率ωg。

②[Gm,Pm,Wcg,Wcp]= margin(mag ,phase,w);
③ margin(sys)
在当前图形窗口中绘制出系统裕度的Bode图。

2.用幅值裕度和相角裕度判断闭环系统稳定性与相对稳定性
3.用Nyquist图判断闭环系统稳定性
由Nyquist曲线包围(-1,j0)点的情况,根据Nyquist稳定判据判断闭环系统稳定性。

[实验内容]
1.作各典型环节的Bode 图和Nyquist 图,参数自定。

(1)振荡环节如下:()4
682++=S S G S 程序为:n=[8];d=[1 64];sys=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys) 运行结果:
开环传递函数为:()S
S G S 732+= 程序为:n=[3];d=[1 7 0];sys=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys) 结果为:
2.自确定多环节开环传递函数,作Bode 图和Nyquist 图;求取幅值裕度和相角裕度,据此判断闭环系统稳定性与相对稳定性;按nyquist 稳定判据判断闭环系统的稳定性。

函数为:()()()
443-+=S S S G S 程序及结果:>>z=[-4];p=[0,4];k=3;sys=zpk(z,p,k)
Zero/pole/gain:
3 (s+4)
-------
s (s-4)
figure(4);nyquist(sys);v=[-5,2,-2,2];axis(v)
分析判断:p=0,nyquist曲线包围(-1,j0)点,闭环系统是不稳定的。

[实验报告要求]
1.写明实验目的和实验原理。

实验原理中简要说明作Bode图和Nyquist 图、求取幅值裕度和相角裕度采用的语句或函数、说明nyquist稳定判据的内容。

2.在实验过程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。

程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。

不方便打印的同学,要求手动从屏幕上抄写和绘制。

3.简要写出实验心得和问题或建议。

[实验心得]
通过本次实验,我掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquis图(极坐标图)绘制方法;以及掌握和利用Bode图和Nyquis 图对系统性能进行分析的理论和方法。

相关文档
最新文档