仿真软件MATLAB简介MATLAB—Matrix Laboratory一.MATLAB的安装二.MATLAB的了解与使用双击MATLAB的图标,进入命令窗口。
直接在命令窗口输入几行程序冰运行的方式称为命令行方式。
对于比较复杂的问题,可编写一段程序,存为*.m的文件,然后运行,这是程序方式。
在MA TLAB命令窗口中点击工具栏中的按钮,即进入编辑/调试窗口。
例如:(新建文件)输入x = [1,2,3,4,5,6];stem(x)点保存按钮。
该程序保存之后,在程序编辑/调试窗口,点击工具栏中的运行按钮,就可执行该程序,并出现输出图形窗口。
在命令窗口输入:help,屏幕将显示系统已装入的函数库和工具箱(即子目录);help elfun,屏幕将显示elfun库中的全部函数名;help tan2 屏幕将显示函数tan2的意义及用法。
在命令窗口输入:demo 屏幕将出现MATLAB的演示窗。
从中选择一个系统提供的实例,点击右下方含有Run的按键后,通常画面的上半部是图形,下半部则是相应的程序语句,如下图所示。
利用这些演示实例也是一个很好的学习途径。
三.MATLAB语言简介1.变量在MA TLAB语言中,给出变量名就可以直接使用,给它赋什么类型的数值就是什么类型。
变量名必须以字母开头,由字母、下划线和数字组成,长度小于32个字符且区分大小写。
例如:在命令窗口下输入复变量:a = 1+2j返回:a = 1.0+2.0000i创建一个时间向量:在命令窗口下输入t = 0:1:10屏幕上显示:t = 0 1 2 3 4 5 6 7 8 9 10查看向量t (1)ans = 0注意MATLAB中的向量第一个元素的下标是1。
t = 0:1:10产生了从0道10,步长为1的11个数。
创建一个3 3矩阵:a = [1, 2, 3; 4, 5, 6; 7, 8, 9]a =1 2 34 5 67 8 9调用矩阵元素:a (3,2)ans = 8行向量是只有一行的矩阵,列向量是只有一列的矩阵,标量为一行一列的矩阵。
MATLAB中利用“[ ]”表示空矩阵。
2. 数字显示的格式在MA TLAB 6.0 以后的版本中,主菜单中的备选(Options)项功能中的子菜单含有数字格式项(Numeric Format),共有8中数字格式。
在命令窗输入help format,可了解具体的格式。
3. 部分特殊变量和常数ans 最近生成的无名结果eps 浮点数相对误差pi 3.14159265358979j / i 虚数单位inf 无穷大NaN (not a number)非数,如0/0, inf/inf4. 部分常用运算符(1) 算术运算符+、-加、减* 乘(包括标量乘,矩阵乘,标量与矩阵乘,标量与数组乘)/ 除(包括标量除,矩阵除标量,数组除标量)^ 矩阵求幂(矩阵必须为方阵).* 数组相乘(向量中对应元素相乘)./ 数组相除(向量中对应元素相除).^ 数组求幂(向量中对应元素求幂)’数组的转置数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。
中括号将元素置于矩阵或数组之中。
例:>>x=(0:0.01:1)*pi %说明数组也可以参与运算>>a=1:5,b=1:2:9 %产生两个数组(向量)>>c=[b, a] %利用已知的数组生成新的数组。
>>d=[b(1:2:5) 1 0 1] %由数组b的三个元素再加上三个元素组成新的数组数组的算术运算包括加,减,乘,除(又分为左除和右除),乘方和转置。
需要注意的是除了加减符号外,其余的数组运算符号均要多加符号“.”。
(2)= 赋值符号% 注释符: 冒号运算符,n:s:m产生从到m步长为s的一系列值。
当s=1时,s可缺省。
(3) 关系运算符< 小于<= 小于等于> 大于>= 大于等于== 等于~= 不等于(4) 逻辑运算符& 与;| 或;~ 非运算法则:若逻辑真,结果为1;若逻辑假,结果为0。
例:在命令窗下输入:n = [-2: 6];输入y1 = n > 0y1 = 0 0 0 1 1 1 1 1 1输入y2 = n < 4y2 = 1 1 1 1 1 1 0 0 0输入y = ( n > 0) & ( n < 4 )y = 0 0 0 1 1 1 0 0 05. 程序结构MATLAB有三种基本的结构,顺序结构、循环结构和分支结构。
(1) 顺序结构(2) 顺序结构for-end循环,用于循环次数已确定的情况。
基本格式为:for i = n: s: m语句体(任意合法的语句)ends为步长,可以是正整数、负数或小数,缺省为1。
While-end循环,用于循环次数事先不能确定的情况。
基本格式为:While 表达式语句体end只要表达式为真(1),就执行语句体(3) 分支结构if 条件语句,基本格式为:if 表达式1语句体1elseif 表达式2语句体2elseif 表达式3语句体3…else语句体elseend如果“表达式1”为真,执行“语句体1”,跳出分支结构,继续执行end后面的语句;否则,顺序判断后面“表达式”是否为真,若为真,执行相应“语句体”,执行后即跳出分支结构,继续执行end后面的语句。
如果if和elseif后面的表达式都为假时,执行else后面的语句体。
switch 语句switch 语句根据表达式的取值不同分别执行不同的命令。
基本格式为:switch 表达式case 值1语句体1…otherwise语句体otherwiseend如果表达式值为1,执行语句体1,跳出分支结构,继续执行end后面的语句;否则若表达式值为2,执行语句体2,跳出分支结构,继续执行end后面的语句;如此往下进行,当表达式的值不为关键字case所列的值时,执行语句体otherwise。
例如:x = 1;switch xcase 0disp(‘I’)case 1disp(‘you’)otherwisedisp(‘he’)end函数disp为显示命令,执行结果:you6.部分基本函数MATLAB具有十分丰富的函数库,可以直接调用,下面列出一些基本的数学函数。
三角函数和双曲函数名称含义名称含义名称含义sin 正弦asin 反正弦sinh 双曲正弦cos 余弦acos 反余弦cosh 双曲余弦tan 正切atan 反正切tanh 双曲正切cot 余切acot 反余切coth 双曲余切指数函数名称含义名称含义名称含义Exp E为底的指数Log10 10为底的对数Pow2 2的幂Log 自然对数Log2 2为底的对数S qrt 平方根复数函数名称含义名称含义名称含义Abs 绝对值Conj 复数共轭Real 复数的实部Angle 相角Image 复数虚部7. 基本作图函数plot 绘制连续波形stem 绘制离散波形axis 定义x, y坐标轴标度subplot 分割图形窗口hold 保留目前曲线grid 画网格线title 为图形加上标题xlable 为x轴加上轴标ylable 为y轴加上轴标text 在图上加文字说明8.自定义函数可以自己编制函数,函数文件也是.m文件。
编制和调用都非常方便。
例,定义一个升余弦函数。
function y = raicos ( t )y=1/2*(1+cos(pi*t)).*(t>-1 & t<1);第一行function y = raicos ( t )为函数定义行,定义一个名为raicos的函数,y为输出参量,t为输入参数,y与t均为形式参数。
MA TLAB的自定义函数文件的名字要与函数名统一,因此,该函数存为raicos .m,这样就可以被其它文件调用。
例:t = -2: 0.01:2;x=raicos (t);plot(t,x)实验一、基本信号的产生一、实验目的学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。
二、实验原理利用MATLAB提供的函数,产生常用信号。
1.连续信号的产生(1) 阶跃信号u(t)t = -2:0.02:6;x = ( t > 0 );plot(t, x);axis([-2, 6, 0, 1.2]);(2) 指数信号,例,x (t)=2e-tt = 0:0.001:5;x = 2*exp(-1* t );plot(t, x);(3)正弦信号利用MATLAB提供的cos和sin可产生正弦信号和余弦信号。
产生一个幅度为2,频率围Hz,相位为π/6的正弦信号的程序如下。
f0 = 4;w0 = 2*pi*f0;t = 0:0.001:1;x = 2*sin (w0*t +pi/6);plot(t, x);(4) 矩形脉冲信号函数rectpulse (t)可产生高度为1、宽度为1、关于t = 0对称的矩形脉冲信号。
函数rectpulse (t, w)可产生高度为1、宽度为w、关于t = 0对称的矩形脉冲信号。
产生高度为1、宽度为4、延时2 s的矩形脉冲信号的程序如下。
t = 0:0.001:5;x = rectpulse (t – 2,4);plot(t, x);t = -2:0.02:6;x = ( t > 0 & t<=4);plot(t, x);axis([-2, 6, 0, 1.2]);(5) 周期方波函数square(w0*t) 产生基本频率为w0 (周期T=2π/w0)的周期方波。
函数square(w0*t, DUTY) 产生基本频率为w0 (周期T=2π/w0)占空比DUTY = τ/T*100的周期方波。
τ为一个周期中信号为正的时间长度。
τ = T/2,DUTY = 50,square(w0*t,50) 等同于square(w0*t)产生一个幅度为1,基频为2Hz,占空比为50%的周期方波的程序如下。
f0 = 2;w0 = 2*pi*f0;t = 0:0.0001:2.5;y = square (w0*t , 50); %duty cycle = 50% plot(t, y); axis([0, 2.5, -1.5, 1.5]);(6) 抽样函数使用MATLAB提供的函数sinc ( x )可计算抽样信号t tt xsin)(=,函数sinc ( x )的定义为sinc ( x ) =x xππ)sin(。
产生t tt xsin)(=信号的程序如下。
t = -10: 1/500: 10;x = sinc (t / pi);plot(t, x);2. 离散信号的产生(1) 单位脉冲序列和单位阶跃序列函数ones (1, n)和zeros (1, n)可以产生生成单位脉冲序列和单位阶跃序列。