2012实验项目2 MATLAB基础
实验二MATLAB基础知识(二)
Experiment 1.Fundamental Knowledge of Matlab (II> 【Experimental Purposes】1、熟悉并掌握MATLAB的工作环境。
2、运行简单命令,实现数组及矩阵的输入输出,了解在MATLAB下如何绘图。
【Experimental Principle】1. VectorsLet's start off by creating something simple, like a vector. Enter each element of the vector (separated by a space> between brackets, and set it equal to a variable. For example, to create the vector a, enter into the MATLAB command window (you can "copy" and "paste" from your browser into MATLAB to make it easy>: b5E2RGbCAPa = [1 2 3 4 5 6 9 8 7]MATLAB should return:a =1 2 3 4 5 6 9 8 7To generate a series that does not use the default of incrementing by 1, specify an additional value with the colon operator (first:step:last>. In between the starting and ending value is a step value that tells MATLAB how much to increment (or decrement, if step is negative> between each number it generates. To generate a vector with elementsbetween 0 and 20, incrementing by 2(this method isfrequently used to create a time vector>, usep1EanqFDPw t = 0:2:20t =0 2 4 6 8 10 12 14 16 18 20Manipulating vectors is almost as easy as creating them. First, suppose you would like to add 2 to each of the elements in vector 'a'. The equation for that looks like: DXDiTa9E3db = a + 2b =3 4 5 6 7 8 11 10 9Now suppose, you would like to add two vectors together. If the two vectors are the same length, it is easy. Simply add the two as shown below: RTCrpUDGiTc = a + bc =4 6 8 10 12 14 20 18 16Subtraction of vectors of the same length works exactly the same way.5PCzVD7HxAMATLAB sometimes stores such a list in a matrix withjust one row, and other times in a matrix with just one column. In the first instance, such a 1-row matrix is called a row-vector。
实验二MATLAB入门资料
实验二 MATLAB入门一、MATLAB介绍:MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的。
它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。
被誉为“巨人肩上的工具”。
现已发展为一种多学科、多工作平台的大型软件。
逐渐成为数字信号处理、动态系统仿真、自动控制等课程的基本教学工具,成为本科以上学历学生必须掌握的基本技能。
由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。
一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中。
在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。
MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。
MATLAB自问世以来,就是以数值计算称雄。
MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使的MATLAB 高度“向量化”。
经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。
由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。
美国许多大学的实验室都安装有MATLAB供学习和研究之用。
在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。
MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。
工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图像处理、控制系统辨识、神经网络等。
信号与系统Matlab实验2012版
信号与系统 Matlab实验1012版
董建峰 曾兴斌 周亚训 蒋刚毅 编 2012年3月修订
信号与系统
实验指导书(Matlab 版)
目
录
实验一 典型连续时间信号和离散时间信号 ······················ 1 实验二 连续和离散时间 LTI 系统的响应及卷积 ··············· 3 实验三 连续时间周期信号的傅里叶级数 ························· 5 实验四 非周期信号的频域分析 ····································· 6 实验五 连续信号的抽样和恢复 ····································· 7 实验六 拉普拉斯变换 ················································· 9 实验七 离散系统的 z 域分析 ······································ 10
二、实验内容
1、连续时间系统的冲击响应、阶跃响应 a. 利用impulse函数画出教材P44例2-15: LTI系统
波形。
dy (t ) 3 y (t ) 2 x(t ) 的冲击响应的 dt 1 x '(t ) 2 x(t ) 的阶 2
b. 利用step函数画出教材P45例2-17: LTI系统 y ''(t ) 3 y '(t ) 2 y (t )
较。
d. 画出 f (t ) u (t 1) u (t 1) 、 y (t ) f (t ) * f (t ) 及其 F ( j ) 、 F ( j ) F ( j ) 和t ) Sa(t ) ,已知信号 f (t ) 的傅里叶变换为 F ( j ) G2 ( ) [u ( 1) u ( 1)] ,求 f1 (t ) G2 (t ) 的傅里叶变换 F1 ( j ) ,画
Matlab2012教程--经典教程
Matlab2012教程--经典教程第1章基础准备及入门1.1 最简单的计算器使用法为易于学习,本节以算例方式叙述,并通过算例归纳一些MATLAB最基本的规则和语法结构。
建议读者,在深入学习之前,先读一读本节。
2【例1.3-1】求[122(74)]3的算术运算结果。
本例演示:最初步的指令输入形式和必需的操作步骤。
(1)用键盘在MA TLAB指令窗中输入以下内容>> (12+2*(7-4))/3^2(2)在上述表达式输入完成后,按[Enter] 键,该指令被执行,并显示如下结果。
ans =2〖说明〗本例在指令窗中实际运行的情况参见图 1.3-1。
指令行“头首”的“>>”是“指令输入提示符”,它是自动生成的。
本书在此后的输入指令前将不再带提示符“>>”。
理由是:(A)为使本书简洁;(B)本书用MATLAB 的M-book写成,而在M-book中运行的指令前是没有提示符的。
5MATLAB的运算符(如+、- 等)都是各种计算程序中常见的习惯符号。
一条指令输入结束后,必须按[Enter] 键,那指令才被执行。
由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给MATLAB的一个默认变量“ans”。
它是英文“answer”的缩写。
【例1.3-2】“续行输入”法。
本例演示:或由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理。
S=1-1/2+1/3-1/4+ ...1/5-1/6+1/7-1/8S =0.6345〖说明〗MA TLAB用3个或3个以上的连续黑点表示“续行”,即表示下一行是上一行的继续。
本例指令中包含“赋值号”,因此表达式的计算结果被赋给了变量S。
指令执行后,变量S被保存在MA TLAB 的工作空间(Workspace)中,以备后用。
如果用户不用clear 指令清除它,或对它重新赋值,那么该变量会一直保存在工作空间中,直到本MATLAB 指令窗被关闭为止。
实验项目1(2)(matlab入门)
实验项目1:Matlab的有关知识与操作一、实验目的1、会安装、启动、退出Matlab系统2、熟悉Matlab 软件环境,对向量、数组和矩阵处理的基本方法3、会使用Matlab作图4、会简单编程和 m 文件的使用二、实验要求熟悉Matlab系统的运行环境、掌握该系统的一些基本符号运算与数值计算,掌握Matlab函数的定义及Matlab的作图的一些基本命令;能独立地运用命令作图并学会循环、选择控制结构编程调试。
三、实验内容>> plot(y)生成的图形见图5-1,是以序号6,,2,1 为横坐标、数组y的数值为纵坐标画出的折线。
>> x=linspace(0,2*pi,30); % 请同学讲解此语句的意思>> y=sin(x);>> plot(x,y)生成的图形见图5-2,是]2,0[ 上30个点连成的光滑的正弦曲线。
图5-1 图5-2 多重线在同一个画面上可以画许多条曲线,只需多给出几个数组,例如>> x=0:pi/15:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,x,y2)则可以画出图5-3。
多重线的另一种画法是利用hold命令。
在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。
而命令hold off 将结束这个过程。
例如:>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)先画好图5-2,然后用下述命令增加cos(x)的图形,也可得到图5-3。
>> hold on>> z=cos(x); plot(x,z)>> hold off %注意hold on与hold off的配对使用图5-3线型和颜色线型线方式:- 实线:点线-.虚点线- - 波折线。
中原工学院 2012年 matlab实习报告
Matlab上机实习报告学院电子信息学院班级学号姓名2012年5月24日十二周的周末,我们进行了本学期第二个实习部分Matlab上机实习。
本次实习两天,共做了四个部分。
分别是:一,Matlab基本操作;二,数值数组及其运算;三,Matlab图形绘制基础;四,SIMULINK 仿真基础。
下面分别介绍个部分实习内容。
实习内容一Matlab基本操作1,实习目的:·掌握Matlab的启动和退出;·熟悉Matlab的命令窗口;·熟悉其他常用窗口和工具栏;2,对本软件有了初步认识后,接下来就开始指导书要求做一些训练了在指令窗中输入下面一段程序,功能是::画出衰减振荡曲线y=(e-t/3)sin3t及其他的包络线y0=(e-t/3)。
T的取值范围是。
t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)观察输出结果3,通过下拉菜单File:Preferences改变设置指令窗中的字体、颜色等。
如:数据显示格式的设置:Format short 小数点后四位(缺省情况),如显示p为3.1416。
Format long 小数点后十四位,如显示p为3.14159265358979。
Formant bank 小数点后两位,如显示p为3.14。
Format short e 小数点后四位科学记数法,如显示p为3.1416e+000。
Format long e 小数点后十四五位科学记数法,如显示p为3.141592653589793e+000。
在指令窗中键入y1=2*sin(0.3*pi)/(1+sqrt(5))然后利用回调指令计算y2=2*y1*cos(0.3*pi)/(1+sqrt(5))y1 =0.5000y2 =0.18164,了解软件中的一些功能和命令。
包括熟悉历史指令窗(Command History)、熟悉当前目录浏览器(Current Diretory)、熟悉工作空间浏览器(Workspace Browser),以及一些指令如: clear 清除当前工作区中的所有变量clc 清除指令窗中内容(未清除当前工作区中的变量)clf 清除图形窗口cd 设置当前工作目录exit,quit 退出Matlab实习内容二数值数组及其运算1,实习目的·掌握一维数组的创建和寻访;·掌握二维数组的创建和寻访;·掌握的Matlab矩阵和数组的运算;·熟悉Matlab关系操作和逻辑操作;2,实习内容和步骤(1)常量与变量变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。
Matlab基础2012-2
MATLAB基础——连续时间信号与系统课程安排MATLAB简介连续时间信号与系统离散时间信号与系统MATLAB实验内容连续时间系统的时域分析傅里叶变换拉普拉斯变换、s 域分析内容连续时间系统的时域分析1微分方程式的建立与求解零输入响应与零状态响应冲激响应与阶跃响应微分方程式的建立与求解•连续时间系统的研究方法包括输输法端描法输入-输出法(端口描述法)系统状态变量分析法•输入-输出法LTI系统可以用一元高阶微分方程描述LTI 系统可以用元高阶微分方程描述[17012]b1a = [1,7,0,12];b = 1; %定义微分方程的行矢量sys = tf(b,a)%生成系统描述sys(tf=transfer function)微分方程式的建立与求解•状态变量描述法一个一元高阶微分方程,必然可以化成两个多元一阶微分方程组,即状态方程和输出方程(观测方程)sys = ss(A,B,C,D) %ss=state space,ABCD为状态方程和输出方程的矩阵微分方程式的建立与求解•微分方程的解包括齐次解和特解两部分•齐次解即系统特征方程的根,用roots函数计算p = [1 7 16 12];%定义多项式pa = roots(p);%求解多项式p=0的根aa%打印显示a = -3.0000-2.0000 + 0.0000i-2.0000 -0.0000i微分方程式的建立与求解•特解即系统(采用微分方程表示)在给定信号激励下的输出•用lsim函数进行仿真a = [1,2,3];%定义多项式pb = [1,1];%求解多项式p=0的根asys=tf(b a);sys = tf(b,a);%建立系统描述syst = [0:0.1:10]’;%定义仿真时间为0s到10s,抽样间隔为0.1se1 = t.^2’;%定义激励信号e1r1=lsim(sys e1t);输出为r1 = lsim(sys,e1,t);%用e1激励sys,输出为r1e2 = exp(t);…微分方程式的建立与求解微分方程式的建立与求解•Help polyfunroots -Find polynomial roots.poly -Convert roots to polynomial.polyval-Evaluate polynomial.l l E l t l i lpolyvalm-Evaluate polynomial with matrix argument.residue-Partial-fraction expansion(residues).residue Partial fraction expansion (residues).polyfit-Fit polynomial to data.polyder-Differentiate polynomial.polyint-Integrate polynomial analytically.conv-Multiply polynomials.deconv-Divide polynomials.Divide polynomials零输入响应和零状态响应•lsim函数还可以对带有非零起始状态的LTI 系统进行仿真 y = lsim(sys, u, t, x0)•注意:若用lsim函数仿真非零起始状态响应,则该系统必LTI 系统,lsim函须用状态方程描述(对传递函数描述的LTI系统数无法仿真非零起始状态响应)零输入响应和零状态响应零输入响应和零状态响应•解:采用两种方法•第一种:首先仿真2V电压en作用足够长时间(10秒)后系统进入稳态,从而得到稳态的状态变量值x0,再以其作为起始值仿真4V电压e作用下的输出rf,即是系统的完全响应真作出系应•这种方法还可以得到零状态响应rzs和零输入响应rzi•第二种:构造一个激励信号,先保持2V足够长时间再跳变为4V,然后即可以零初始状态一次仿真得到系统的完全响应r1零输入响应和零状态响应• C = 1; L = 1/4; R1 = 1; R2 = 3/2;%定义器件参数• a = [-1/R1/C,-1/C;1/L,-R2/L];%定义A,B,C,D四个矩阵• b = [1/R1/C;0];• c = [-1/R1,0];• d = [1/R1];•sys = ss(a,b,c,d);建立LTI系统sys()%•tn= [-10:0.01:-0.01]‘;%生成-10s到-0.01s的抽样时间,间隔为0.01s •en = 2*(tn<0);%生成激励信号的抽样值,e(t)=2•xn]=lsim(sys en tn);[rn tn xn]= lsim(sys,en,tn);%仿真t<0时的输出信号•x0 = xn(length(tn),:);%x0记录了起始状态,即0状态的值-•t = [0:0.01:10]‘;%生成从0s到10s的抽样时间,间隔为0.01s • e = 4*(t>=0);%生成激励信号的抽样值,e(t)=4•ezi= 0*(t>=0);%生成零输入信号的抽样值,e(t)=0•rzs= lsim(sys,e,t);%仿真零状态响应•rzi= lsim(sys,ezi,t,x0);%仿真零输入响应•rf= lsim(sys,e,t,x0);%仿真完全响应f l i(t0)•r1 = lsim(sys,[en;e],[tn;t]);%用另一种方法仿真完全响应零输入响应和零状态响应冲激响应和阶跃响应•如果分别用冲激信号和阶跃信号作激励,lsim函数可仿真出冲激响应和阶跃响应•MATLAB 专门提供了impulse(sys) 和step(sys)两个函数直接产生冲激响应和阶跃响应冲激响应和阶跃响应• a = [1, 7, 10];• b = [1, 6, 4];•sys = tf(b,a);%LTI系统模型y(,);定义系统模•t = [0:0.01:3]‘;%生成0到3s,间隔0.01s的抽样时间•h1 = step(sys);%用step函数仿真sys的阶跃响应•x_step= zeros(size(t));%另一种方法:根据定义构造阶跃信号x_step•x_step(t>0) = 1;•x_step(t==0) = 1/2;%lsim函数不支持输入NaN,所以x_step(0)=1/2•lsim(sys,x_step,t);%仿真x_step激励sys的响应lsim(sys x step t);x step•[h2, t2] = impulse(sys, t);%用impulse函数仿真sys的冲激响应并保存在h2中•x delta= zeros(size(t));%另一种方法:根据定义构造冲激响应x delta_(());_•x_delta(t==0) = 100;%lsim函数不支持输入Inf,所以令x_delta(0)=100,因为抽样间隔是%0.01,选择100可保证数值积分为1•[y1,t] = lsim(sys,x_delta,t);%仿真x_delta激励sys的响应并保存在y1中•y2 = y1-x_delta;%从响应中减去一个冲激信号得到y221d lt从响应中减去个冲激信号得到2冲激响应和阶跃响应冲激响应和阶跃响应求系统的响应:卷积求系统的响应卷积•卷积运算的数值近似•MATLAB 提供了w = conv(u,v) 函数实现卷积和求系统的响应:卷积求系统的响应卷积•t = [-1:0.01:4]‘;%生成从-1s到4s,间隔0.01s的抽样时间t • e = (t>-1/2&t<1);%定义激励信号e•h = (t>0&t<2).*t/2;%定义冲激响应h•[r1,t1] = conv1(e,t,h,t);%用卷积计算系统输出r1,相应的抽样时间为t1 [r1t1]=conv1(e t h t);相应的抽样时间为•tr = t1(t1>=-1&t1<=4);%从t1中选择和t相同起止时刻的抽样时间tr•r = r1(t1>=-1&t1<=4);%用类似方法选择tr对应的输出r•function [w,tw] = conv1(u,tu,v,tv)•% 输入参数:u和v表示两个序列,tu和tv分别表示它们的抽样时间•% 返回值:w和wt分别表示卷积结果及其抽样时s间•T = tu(2)-tu(1);T tu(2)tu(1);•w = T*conv(u,v);•tw= tu(1)+tv(1)+T*[0:length(u)+length(v)-2]';求系统的响应:卷积求系统的响应卷积求系统的响应:连续时间信号的数值计算求系统的响应连续时间信号的数值计算•自然界中绝大部分物理量是连续的,数字计算机处理连续信号必须做近似,计算精度取决于算法和数字表示的位数信号必须做近似计算精度取决于算法和数字表示的位数•例如积分运算的简单数值计算方法是分段求和•复杂数值计算方法包括插值、拟合等等•help interp, resample, polyfit, …内容连续时间系统的时域分析傅里叶变换拉普拉斯变换、s 域分析内容傅里叶变换2傅里叶变换周期信号的傅里叶级数分析卷积特性(卷积定理)傅里叶变换•符号方法MATLAB 提供符号函数fourier和ifourier实现傅里叶变换和逆变换符数实傅变换变换syms t%定义符号t(())()F1 = fourier(t*heavisde(t))%计算tu(t)的傅里叶变换F1输出:F1 = i* (pi * dirac(1,w) * w^2 + i) / w^2%dirac(1,w)表示δ’(ω) F2 = fourier(sin(t))输出p(()())()表示()输出:F2 = i* pi * (dirac(w + 1)-dirac(w -1))%dirac(w + 1)δω+1)工程应用中经常需要对抽样数据做傅里叶分析,这种情况下往往无法得到信号的解析表达式,因而数值计算方法是应用傅里叶变换的法得到信号的解析表达式因而数值计算方法是应用傅里叶变换的主要途径傅里叶变换•将傅里叶变换写成离散表示形式Ω=ω2-ω1∆ω=Ω/K•同理写出逆变换傅里叶变换•三种方法二重循环循环+矢量相乘矩阵相乘傅里叶变换•二重循环T = 2;%定义时域抽样区间长度T2N = 200;%定义时域抽样点数t = linspace(-T/2,T/2-T/N,N)‘;%定义时域抽样点f = (t>-1/2&t<1/2);%初始化时域信号OMG16*iOMG = 16*pi;%定义频域抽样区间长度K = 100;%定义频域抽样点数omg= linspace(-OMG/2,OMG/2-OMG/K,K)‘;%定义频域抽样点F = zeros(size(omg));%初始化频谱for k = 1:K%循环计算每个频谱抽样点的频谱算每个频谱样频谱 for n = 1:N%用循环实现公式F(k) = F(k) + T/N*f(n)*exp(-j*omg(k)*t(n));endendfs= zeros(size(t));%初始化合成信号for n = 1:N%循环计算每个时域抽样点的合成信号 for k = 1:K%用循环实现公式fs(n) = fs(n) + OMG/2/pi/K*F(k)*exp(j*omg(k)*t(n));endend傅里叶变换傅里叶变换•矢量计算法傅里叶变换•矩阵相乘法傅里叶变换:程序优化技巧傅里叶变换程序优化技巧•程序优化技巧阵算代替用矩阵运算代替循环变量预定义•举例:计算sin(n), n=1,2,…,10^6举例i()1210^6for n = 1:1e6x(n) sin(n);x(n)=sin(n);endx = zeros(1e6, 1);x = sin([1:1e6]);•时间函数help timefun周期信号的傅里叶级数分析•和傅里叶变换的数值计算方法相似周期信号的傅里叶级数分析卷积特性(卷积定理)•验证卷积定理:时域卷积对应于频域相乘•可用两种方法计算三角脉冲的频谱一是直接对三角脉冲做傅里叶变换二是利用卷积定理,矩形脉冲的卷积是三角脉冲,所以可以先计算矩形脉冲的频谱,再取其平方将两种计算结果绘制在一起,验证卷积定理的正确性卷积特性(卷积定理)卷积特性提高函数的稳定性卷积特性:提高函数的稳定性•考察MATLAB库函数open conv open polyfit function c = conv(a, b)na= length(a);nb= length(b);if na ~= numel(a) || nb ~= numel(b)error('MATLAB:conv:AorBNotVector', 'A and B must be vectors.');endif na> nb[c,zf] = filter(b, 1, a);if nb> 1c(na+1:na+nb-1) = zf;endelse[c,zf] = filter(a, 1, b);if na>1if na> 1c(nb+1:na+nb-1) = zf;endend内容连续时间系统的时域分析傅里叶变换拉普拉斯变换、s 域分析内容拉普拉斯变换拉普拉斯变换、s域分析2拉普拉斯变换和逆变换系统函数H(s)由系统函数分析时频特性拉普拉斯变换和逆变换•用符号函数laplace和ilaplace实现(单边)拉氏变换和逆变换syms t w%定义符号syms s;F1 = laplace(t3)%计算拉氏变换F1 f = ilaplace(10(s+2)(s+5)/s F1=laplace(t^3)f=ilaplace(10*(s+2)*(s+5)/s 输出:F1 = 6/s^4/(s+1)/(s+3)) F2 = laplace(sin(w*t)) %计算拉氏变换F2输出:f = -10/3*exp(-3*t)输出:F2 = w/(s^2+w^2)-20*exp(-t)+100/3拉普拉斯变换和逆变换•用部分分式展开的函数residue 求逆变换r =%两个部分分式系数-12b = [1,5,9,7];a1 = [1,1];2[12]p =%两个极点(特征根)-2-1k =%自由项12a2 = [1,2];a = conv(a1,a2);[r,p,k] = residue(b,a)•解:先用MATLAB 求留数,写出展开式1 2•最后写出时域表达式拉普拉斯变换和逆变换•参考Symbolic Math Toolbox合并同类项collect因式分解factor化简simplify变量替换subs求极限limit微分和求导diff积分int解方程组solve解微分方程组dsolve系统函数H(s)H()•回顾前面介绍的tf函数,可知MATLAB用系统函数H(s)描述LTI系统由电路可知传递函数为H(s)=1/(s+1)sys = tf(1,[0.1 0.1]);%定义系统函数H(s)t = [0:0.01:10]‘;%定义抽样时间te = sin(3*t);%生成激励信号e(t)i= lsim(sys, e, t);%仿真电流信号i(t)系统函数H(s)H()由系统函数分析时频特性•MATLAB用zero(sys) 和pole(sys) 函数直接计算零极点•[p,z] = pzmap(sys) 函数也可以计算零极点不带返回值则绘制出系统的零极点图•[b,a]= zp2tf(z,p,k) 和[z,p,k] = tf2zp(b,a) 两个函数用于在零两个数用于在零极点和传递函数这两种描述方法之间进行转换由系统函数分析时域特性•t = [0:.1:40]‘;%定义抽样时间•figure, id = 1;%生成新图框,定义子图标号id=1•for omega = .5:-.25:0%循环omega=[0.5, -0.25, 0]•for sigma = -.06:.03:.06%循环sigma=[-.06:.03:.06]•p = sigma + j*omega;%定义极点p = sigma + j*omega•if omega ~= 0%如果极点不在实轴上if0•p = [p;p‘];%则再添加一个共轭极点•end•[b a]=zp2tf([]p1);%[b a] zp2tf([],p,1);由零、极点转换为传递函数的多项式系数•subplot(3,5,id);%生成标号为id的子图框•impulse(b,a,t);%绘制抽样时间为t的冲激响应•set(gca,‘YLim’,[-20,20]);%设置Y轴范围以求最好视觉效果•id = id + 1;%子图标号加1•end%内层sigma循环结束•end%外层omega循环结束由系统函数分析时域特性由系统函数分析频域特性•freqs(b,a) 函数用于绘制系统的频率响应(包括幅度响应和相位响应)其中b和a分别是传递函数的分子和分母多项式系数由系统函数分析频域特性•用zp2tf从零、极点求得系统的传递函数b,a•用freqs(b,a)求得频率响应•绘图查看频响特性(低通、高通、带通、带阻)。
Matlab实验2012
实验一 Matlab使用方法和程序设计一、实验目的1、熟悉MATLAB上机环境,练习MATLAB命令、m文件;2、熟悉Matlab的数据表示、基本运算和程序控制语句;3、熟悉Matlab图形绘制、数据处理;4、熟悉Matlab程序设计的基本方法。
二MA TLAB简介MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB 有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。
1.命令窗口(The Command Window)当MA TLAB启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MA TLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.图形窗口(The Figure Window)图形窗口用来显示MA TLAB程序产生的图形。
图形可以是2维的、3维的数据图形,也可以是照片等。
二、实验内容1、帮助命令2、矩阵运算(1)矩阵的乘法和乘方已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B( 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。
最新matlab实验2MATLAB基础知识
m a t l a b实验2M A T L A B基础知识实验2 MATLAB基础知识一、实验目的1.熟悉MATLAB的数据类型2.熟悉MATLAB的基本矩阵操作3.熟悉MATLAB的运算符4.熟悉MATLAB的字符串处理二、实验内容1.创建结构体DataTypes,属性包含MATLAB支持的所有数据类型,并通过赋值构造结构体二维数组。
DataTypes.char=char([65]);DataTypes.string='hello';DataTypes.int=100;DataTypes.single=1.560DataTypes =char: 'A'string: 'hello'int: 100single: 1.5600>> DataTypes(2).char=char([66]);DataTypes(2).string='kugou';DataTypes(2).int=200;DataTypes(2).single=3.14DataTypes =1x2 struct array with fields:charstringintsingle2.用满矩阵和稀疏矩阵存储方式分别构造下述矩阵。
A=答:A =1 0 0 0 0 1 0 0 0 0 1 00 0 0 1B =A =0 0 0 0 0 1 0 0 0 0 1 00 0 0 1A =0 0 0 01 1 0 0 0 0 1 00 0 0 1A =0 1 0 01 1 0 0 0 0 1 00 0 0 1A =0 1 0 01 0 0 0 0 0 1 0 0 0 0 1S=sparse([1,2,3,4],[2,1,3,4],[1,1,1,1],4,5);D=full(D)D =0 1 0 0 01 0 0 0 00 0 1 0 00 0 0 1 03.在矩阵A末尾增加一行(元素全为1)得到矩阵B,删除矩阵A的最后一列得到矩阵C,替换矩阵A的所有非零元素为2得到矩阵D。
MATLAB语言实验2012-2013上
实验一MATLAB操作基础一、实验目的1、熟悉MATLAB的操作环境及基本操作方法。
2、掌握MATLAB的搜索路径及其设置方法。
3、熟悉MATLAB帮助信息的查阅方法。
二、实验内容1、先建立自己的工作目录,再将自己的工作目录设置到MATLAB搜索路径下,再试验用help命令能否查询到自己的工作目录。
2、在MATLAB环境下验证例1-1至1-4,并完成以下题目:(1)绘制右图所示图形(23、利用MATLAB的帮助功能分别查询inv,plot、max、round等函数的功能及用法。
4、在工作空间建立一个变量a ,同时在当前目录下建立一个M文件:a.m,试在命令窗口输入a,观察结果,并解释原因。
三、思考练习1、help命令和lookfor命令有什么区别?2、什么是工作空间?假定有变量A与B存在于工作空间中,如何用命令保存这两个变量?下次重新进入MATLAB后,又如何装载这两个变量?实验二MATLAB数值计算一、实验目的1、掌握MATLAB变量和数据操作2、掌握MATLAB矩阵及其操作3、掌握MATLAB矩阵运算二、实验内容1、求下列表达示的值(1)6(10.3424510)w-=+⨯(2)22tan()b ca eabcxb c aππ++-+=++,其中a=3.5 ,b=5 ,c=-9.8(3)21ln(2tz e t=+,其中213[]50.65it-=-2、已知1540783617A--⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,831253320B-⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1)A+6B和2A B I-+(I为单位矩阵)(2)A*B、A.*B和B*A(3)A/B及B\A(4)[A,B] 和[A([1,3],:) ; B^2]3、建立一个均值为3,方差为1的10*10的正态分布随机矩阵,并将矩阵中大于0的元素置1,小于0的置0.4、当[34,,,,,,0]A NaN Inf Inf pi eps=--时,求函数all(A),any(A),isnan(A),isinf(A),isfinite(A)的值。
实验二MATLAB语言基础
实验二MATLAB语言基础实验二 MATLAB 语言基础一、实验目的基本掌握MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。
了解字符串的操作。
二、实验内容(1) 向量的生成和运算。
(2) 矩阵的创建、引用。
(3) 矩阵的运算。
(4) 字符串的操作。
三、实验步骤1. 向量的生成和运算1) 向量的生成① 直接输入法:>>A=[2,3,4,5,6] %生成行向量>>B=[1;2;3;4;5] %生成列向量② 冒号表达式法:>>A=1:2:10,B=1:10,C=10:-1:1③ 函数法:linspace( ) 是线性等分函数,logspace( ) 是对数等分函数。
>>A=linspace(1,10),B=linspace(1,30,10)>>A=logspace(0,4,5)练习:使用logspace( )创建1~4 π 的有10 个元素的行向量。
2) 向量的运算① 维数相同的行向量之间可以相加减,维数相同的列向量也可相加减,标量可以与向量直接相乘除。
>>A=[1 2 3 4 5],B=3:7,>>AT=A',BT=B', %向量的转置运算>>E1=A+B,E2=A-B %行向量相加减>>F=AT-BT, %列向量相减>>G1=3*A,G2=B、3, %向量与标量相乘除② 向量的点积与叉积运算。
>>A=ones(1,10);B=(1:10); BT=B’;>>E1=dot(A,B)>>E2=A*BT %注意E1 与E2 的结果是否一样>>clear>>A=1:4,B=3:6,>>E=cross(A,B)2. 矩阵的创建、引用1) 矩阵的创建和引用矩阵是由m×n 元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。
2012年MATLAB第二章-2.2
2) 创建符号方程 >> e='a*x^2+b*x+c=0'
e=a*x^2+b*x+c=0
3) 创建符号微分方程 >>diffeq='Dy-y=x' diffeq =Dy-y=x 注意:1)由这种方法创建的符号表达式对空格是很敏感的。因此, 不要在字符间乱加空格符,否则在其它地方调用此表达式的时候会 出错。 2)由于符号表达式在MATLAB中被看成是1*1阶的符号矩阵, 因此,它也可用sym和syms命令来创建。 如: f=sym(' sin(x) ') f=sin(x)
f=sym(' sin(x)^2=0 ')
f=sin(x)^2=0
>>syms x; f=sin(x)+cos(x) f=sin(x)+cos(x) >>syms x t; f=sin(x)+cos(t)
f=sin(x)+cos(t)
此方法不能用来创建符号方程 表1-14列有几则符号表达式和MATLAB等效表达式的例 子。
符号对象的代数运算函数
symadd(a,d) —— 符号对象的加
symsub(a,b) —— 符号对象的减
symmul(a,b) —— 符号对象的乘 symdiv(a,b) —— 符号对象的除
sympow(a,b) —— 符号对象的幂运算
symop(a,b,…) —— 符号对象的综合运
算
>>f= '2*x^2+3*x-5'; g= 'x^2+x-7';
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
matlab实验一、二(2012-2013-1)
as " ,在弹出的对话框内输入文件名为“xh2”,点“Save”按钮,
图 1.18 保存 MATLAB 文件 (3)执行程序 需要执行程序时,只要回到命令窗口中,直接键入文件名“xh2”,执行结果见图 1.19
图 1.19 运行程序 MATLAB 的这一编辑器主要用来编辑 M 文件。当一组命令通过改变某个变量的值就可以反复使用去解 决不同的问题时,可以利用 M 文件编辑器。
并在 MATLAB 中输入文件名就能运行,就要修改的当前工作目录和搜索路径,步骤如下: (1)在图 1.12 的当前路径窗口,单击“浏览”按钮,如图 1.20。
图 1.20 切换到当前路径窗口 (2)在浏览文件夹对话框中选择要加入目录,单击“确定”。如图 1.21
8
图 1.21 浏览文件夹对话框 (3)在图 1.21 的当前工作路径中出现所选的目录如下图所示
◆ Model
打开模板
◆ Open
打开已存在的.m
文件
◆ Close Command Window 关闭命令窗口
◆ Import Data
导入一个数据文件
◆ Save Workspace As… 将命令窗内容保存
为一个.mat 文件
◆ Set Path… 打开 Path Brower 窗口,可添
加 MATLAB 的搜索路径
数字图像处理
实验指导书
1
实验一 MATLAB 基本操作
一、实验目的
初步掌握 MATLAB 软件的基本操作方法。
二、实验内容
1. 熟悉 MATLAB 工作环境 2. 掌握 MATLAB 使用方法 3. 掌握 MATLAB 实用技巧 4. 掌握 MATLAB 编程 1.熟悉 MATLAB
2014秋2012级《MATLA...
武雪皎软件121 1225152014秋2012级《MATLAB程序设计》实验指导书实验一 MATLAB的基本功能一、实验目的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文件名-----载入指定文件中的数据3、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。
2012MATLAB软件二
(3)size(a,2)—列数。
length返回行数或者列数的最大值,即 length(a)=max(size(a))。
size或length有什么用?
1.大数据量的矩阵数据检查,尤其是外部数据的 读取检查。 2.编写通用程序,不会受到原始数据的改变的影 响。 如绘图、循环的程序编写。
1995
2000
2005
2010
2015
newrb训练效果
newrbe预测效果
(三) 感知器神经网络(命令:newp,sim)
例6癌症患者和非癌症患者的相关数据,试建立感
知器神经网络进行诊断。(程序见ganzhiqi.m)
Vectors to be Classified 200
2 1 0 -1
P(2)
同样,矩阵的子块还可以被赋值。如果在取子块
时,n或m是“:”,则返回指定的所有行或列。
如果在矩阵子块赋值为空矩阵(用[]表示),则相当
பைடு நூலகம்
于消除相应的矩阵子块.
矩阵的序号编址:按列计数(相当于从第一列开始
编号)。
例2 b=[1 2 3; 4 5 6; 7 8 9; 10 11 12]; b([1,4],2:3)
[X,fval,exitflag,output,lamnda]=linprog(f,A,b,Aeq,Beq, LB,UB,X0,options)
output有3个分量,iterations表示优化过程的迭代次数, cgiterations表示PCG迭代次数,algorithm表示优化所 采用的运算规则。lambda有4个分量,ineqlin是线性不 等式约束条件,eqlin是线性等式约束条件,upper是 变量的上界约束条件,lower是变量的下界约束条件。 它们的返回值分别表示相应的约束条件在约束条件在 优化过程中是否有效。
实验指导书2012matlab基础
《MATLAB基础实验指导书》哈尔滨理工大学自动化学院电子信息科学与技术系2011.4实验一 MATLAB 的基本操作一、 实验目的:1. 掌握Matlab 软件使用的基本方法;2. 熟悉常用命令的操作;3. 熟悉Matlab 的数据表示和基本运算。
二、 实验内容:1. 计算323(0.98)/( 1.35)5(1)y x x x x x =+-+-+当2x =和4x =的值。
2.计算cos 60-3. 已知223,4,,1,2,2a A b a B b c a A B C a B c ====-=+-=++,求C4. 创建一个3*3矩阵,然后用矩阵编辑器将其扩充为4*5矩阵5. 创建一个3*3矩阵魔方阵和相应的随机矩阵,将两个矩阵并接起来,然后提取任意两个列向量 6. 找出数组4202431135A --⎡⎤=⎢⎥--⎣⎦中所有绝对值大于3的元素。
利用上题的矩阵,计算矩阵的5次方。
7. 设1481354323659,6238271281397A B -⎡⎤⎡⎤⎢⎥⎢⎥=---=--⎢⎥⎢⎥⎢⎥⎢⎥-----⎣⎦⎣⎦,求*',.*C A B D A B ==。
8. 求23(2)(4)(1)1s s s s s +++++的“商”及“余”多项式。
9. 建立矩阵A ,然后找出在[10,20]区间的元素的位置。
10. 创建一个有7个元素的一维数组,并做如下处理:1) 直接寻访一维数组的第6个元素; 2) 寻访一维数组的第1、3、5个元素;3) 寻访一维数组中第4个至最后1个元素; 4) 寻访一维数组中大于70的元素。
三、 实验要求: 1. 撰写预习报告。
2. 用Matlab 完成算法设计和程序设计并上机调试通过。
3. 撰写实验报告,简述实验目的,提供实验结果和数据。
4. 分析算法,并简要给出算法设计小结和心得。
实验二 数据和函数的可视化一、 实验目的:1. 熟悉Matlab 绘图命令及基本绘图控制;2. 熟悉Matlab 程序设计的基本方法。
MATLAB实验指导书2012
8.计算
a
6 2
9 7
3 5
与
b
2 4
4 6
1 8 的数组乘积。(写出程序及运行结果)
2
4 9 2
37
9. 对于 AX B ,如果 A 7 6 4 , B 26 ,求解 X。(写出程序及运行结果)
3 5 7
28
1 2 3 10.已知:a 4 5 6 ,分别计算 a 的数组平方和矩阵平方。(写出程序及运行结果)
(第 1~5 题写出程序)
1、有一组测量数据满足 y e-at ,t 的变化范围为 0~10,用不同的线型和标记点画出
a=0.1、a=0.2 和 a=0.5 三种情况下的曲线。添加标题 y e-at 和图例框,并用箭头线标 识出各曲线 a 的取值。
2、表中列出了 4 个观测点的 6 次测量数据,将数据绘制成为分组形式和堆叠形式的
二、实验方案分析及设计:
本次实验主要目的是了 MATLAB 实验中的图形绘制函数的具体运用,以及图象处理 的初步使用。
三、实验器材:
电脑一台,MATLAB 软件
四、实验步骤:
打开 MATLAB 程序,根据实验内容中的题目要求进行设计和编程, 在 MATLAB 中运 行得到并记录结果。
五、实验内容及要求:
0 -0.0664
0
0
0.0117
0
0
0
用 MATLAB 画出其频率响应:
提示:
[H,f1,f2] = freqz2(fc2);
[X,Y] = meshgrid(f1,f2)
[C,h] = contour(X,Y,H);
switch (i)
case 1
Matlab实验指导书(12级)
《Matlab应用》实验指导书( 供2012级电子信息科学与技术专业使用) 工程学院信息技术教研室二0一二年八月目录写在前面 (I)实验一熟悉MATLAB工作环境 (1)实验二矩阵基本运算 (2)实验三数值计算与符号计算 (3)实验四、Matlab绘图 (4)实验五MA TLAB编程 (5)实验六:Simulink应用 (6)I写在前面一、遵守实验时间和实验室的规章制度,实验缺席需要请假;本学期实验中,二个以上实验缺席的,成绩不及格。
二、实验预习要求1)理解实验原理,回答实验预习问题,根据实验内容设计实验步骤;2)写出实验预习报告,无预习报告者不得做实验;3)实验步骤后留出空白,记录实验结果和实验数据。
三、实验要求1、教材上的例均需自己亲自验证;2、所有的程序均需自己亲自编写;3、实验报告和程序不得相互抄袭,如发现有抄袭,抄袭者和被抄袭者均取消本次实验成绩。
四、实验报告要求1)分析实验数据,总结概括实验原理,得出结论;2)写出实验后的收获和心得体会(经验教训);3)实验结果包括实验报告、源程序(m文件)以及相关的图表等。
实验结果存在一个文件夹内,文件夹的名称为“学号+姓名+实验名称”五、实验报告的提交:实验课程结束后,由个人亲自提交实验报告,并回答老师提问的问题。
六、最终实验成绩根据实验中表现(20%)、实验报告(20%)和最后的回答问题的情况(60%)评定。
实验一 熟悉MATLAB 工作环境一、实验目的:1、熟悉MATLAB 的工作环境。
2、掌握在MATLAB 命令窗口及在M 文件编辑调试器上进行程序的调试运行。
二、实验过程:1、阅读课本第1章的内容2、实验前必须了解各窗口的功能及调用的方法。
3、在命令窗口依次输入下列命令,根据执行结果分析其功能: helplookfor inv help inv which inv4、利用Matlab 的帮助功能,分别查询inv 、plot 、max 、round 等函数的功能及用法;5、先求下列表达式的值,然后显示Matlab 工作空间的使用情况并保存全部变量。
MATLAB基础_A(2012)
>> Y1=2+A, Y2=2*A, Y3=2\A Y1 = Y2 = 3 4 5 2 4 6 5 3 4 6 2 4 Y3 = 0.5000 1.5000
第27页
>> Z4=A.^2, Z5=2.^A Z4 = 2 4 8 8 2 4
1 2 3 0
1.0000 0.5000
1.5000 1.0000
第29页
第30页
5
例1. >>a=[1 2 3 4 5]; b=[1 3 5 7 9]; ... >> c=a.*b, d=a*b', e=a'*b c= d= e= 1 2 3 4 5
第31页
2.几个特殊常量 ans (默认变量名) pi(圆周率) eps (计算机最小数) inf(无穷大) NaN(不定量) i, j(虚数单位) 3.字符串的输入 在MATLAB中,字符串它是按(行)向量形式储存的, 文本块则按矩阵形式储存的。 例2. >> s1='Hello';s2='every';s3='body';s=[s1,',',s2,' ',s3] s = Hello,every body >> h=['河南大学';'数学学院'] h = 河南大学 数学学院
第8页
4.语句(命令) 一般形式: [变量名=] 表达式 (若缺省“变量=”,则系统默认ans为变量名) 5.M-文件 即程序文件,包括脚本M-文件和函数M-文件. 6.其它符号: … 续行符; % 注释符; ,(或;) 显示(或不显示)语句执行结果.
§2. 矩阵及其运算