信号课组(一) 信号与系统 Part 0 MATLAB在信号与系统中的使用

信号的MATLAB实现

系统时域分析

微分方程求解

可以利用字符串方程。Dy的写法比较简洁。

>>> dsolve('Dy + y *tan(x) - cos(x) = 0', 'x')
警告: Support of character vectors and strings will be removed in a future release.
Use sym objects to define differential equations instead. 

dsolve的官方文档中给出了新版的使用方法:

syms y(t)
ode = diff(y,t) == t*y
ySol(t) = dsolve(ode) %注意将结果定义成符号的函数,否则结果将只是一个

为了添加微分方程的初值条件,给出如下

syms y(t)
ode = diff(y,t) == t*y
cond = y(0) == 2;
ySol(t) = dsolve(ode,cond)

求解二阶方程:

注意其中的二阶导数表示方式

syms y(x)
Dy = diff(y);

ode = diff(y,x,2) == cos(2*x)-y;
cond1 = y(0) == 1;
cond2 = Dy(0) == 0;

conds = [cond1 cond2];
ySol(x) = dsolve(ode,conds); %加入两个初始条件的二阶方程求解
ySol = simplify(ySol) %化简

数值求解系统的响应

求解冲激、阶跃响应并绘制子图

‘impulse’ 需要以下项之一:
Control System Toolbox
RF Toolbox
System Identification Toolbox

求解方程
y ′ ′ ( t ) + 5 y ′ ( t ) + 6 = 3 x ′ ( t ) + x ( t ) y''(t) + 5y'(t) + 6 = 3x'(t) + x(t) y(t)+5y(t)+6=3x(t)+x(t)
的冲激响应可以利用impulse函数。对于离散系统还可以使用impulz。同样代入step函数可以求解阶跃响应。参数为三个向量,前两个描述微分方程,第三个描述离散时间、用于取样。

a = [1 5 6];b = [3 2];
subplot(2,1,1), impulse(b,a,0:0.01:3);
subplot(2,1,2), step(b, a, 0:0.01:3);

绘制出如下的图像
在这里插入图片描述

Linear Simulation Tool

lsim函数求解任意微分方程所表出系统的响应。

MATLAB语法思考

https://jingyan.baidu.com/article/6079ad0eb611a928ff86db85.html

©️2020 CSDN 皮肤主题: 我行我“速” 设计师:Amelia_0503 返回首页