实验1 利用matlab进行系统的时域分析
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
y[k]=-
在零初始状态下,MATLAB 信号处理工具提供了一个 filter 函数计算由差分方程描述的 系统的响应。其调用方式为:
y= filter(b,a,x) 式中 b=[b0,bl,b2,…,bM],a=[a0,a1,a2,…,aN]分别是差分方程左、右端的 系数向量,x 表示输入序列,y 表示输出序列。注意输出序列的长度和输入序列长度相同。
xlabel('Time index k');legend('d[k]','s[k]','x[k]'); M=5;b=ones(M,1)/M;a=1; y=filter(b,a,x); figure(2);plot(k,s,'b--',k,y,'g-'); xlabel('Time index k'); legend('s[k]','y[k]');
rand 函教产生,将其叠加在有用信号 s[k]上,即得到受噪声干扰的输入信号 x[k]。下面的 程序实现了对信号 x[k]去噪,取 M=5。
% program2_3 Signal Smoothing by Moving Average Filter clear clc R=51; d=rand(1,R)-0.5; k=0:R-1; s=2*k.*(0.9.^k); x=s+d; figure(1);plot(k,d,'r-.',k,s,'b--',k,x,'g-');
【例 2-3】受噪声干扰的信号为 x[k]=s[k]+d[k],其中 s[k]=(2k)0.9 k 是原始信号,d[k]
是噪声。已知 M 点滑动平均( Moving Average)系统的输入与输出关系为
y[k] =
试编程实现 M 点滑动平均系统对受噪声干扰的信号去噪。 解:系统的输入信号 x[kl 含有有用信号 s[k]和噪声信号 d[k]。噪声信号 d[k]可以用
+ +100h(t)=10δ(t)
物体位移 y(t)即系统的冲激响应,计算其的 MATLAB 程序如下: %program3_2 连续时间系统的冲激响应
clear clc ts=0;te=5;dt=0.01; sys=tf([10],[1 2 100]); t=ts:dt:te; y=impulse(sys,t); plot(t,y); xlabel('Time(sec)') ylabel('h(t)')
实验 1 利用 matlab 进行系统的时域分析
一. 实验目wenku.baidu.com: 1. 了解离散时间序列卷积和的 matlab 实现; 2. 利用卷积和求解系统的零状态响应;
二. 实验原理: 1. 连续时间系统零状态响应的求解 连续时间 LTI 系统以常系数微分方程描述,系统的零状态响应可通过求解初始状态为零
的微分方程得到。在 MATLAB 中,控制系统工具箱提供了一个用于求解零初始状态微分方程 数值解的函数 lsim。其调用方式为
h(t )
1
0.8
0.6 0.4
0.2
0
-0.2
-0.4
-0.6
-0.8 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Time(sec)
图 2-2 连续时间系统的冲激响应 3.离散的时间系统零状态相应的求解
大量的离散时间 LTI 系统都可以用如下的线性常系数差分方程描述:
其中 a0=1,x[k]、y[k]分别表示系统的输入和输出,n 是差分方程的阶数。已知差分方 程的 n 个初始状态和输入 x[k],就可以编程由下式迭代计算出系统的输出:
y= impulse( sys,t) y= step( sys,t)
式中 t 表示计算系统响应的抽样点向量,sys 是连续时间 LTI 系统模型。下面举例说明其应 用。
【例 2-2】在例 2-1 所述力学系统中,若外力 x(t)是强度为 10 的冲激信号,求物体的位 移 y(t)。
解:由已知条件,系统的输入信号为 x(t)=10δ(t),系统的微分方程可写成:
y= lsim( sys,x,t) 式中 t 表示计算系统响应的抽样点向量,x 是系统输入信号向量,sys 是连续时间 LTI 系统 模型,用来表示微分方程、差分方程、状态方程。在求解微分方程时,微分方程的连续时间 LTI 系统模型 sys 要借助 tf 函数获得,其调用方式为
sys= tf(b,a) 式中 b 和 a 分别为微分方程右端和左端各项的系数向量。例如对 3 阶微分方程
y(t)
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Time(sec)
图 2-1 系统的零状态响应 2.连续时间系统冲激响应和阶跃响应的求解
在 MATLAB 中,求解系统冲激响应可应用控制系统工具箱提供的函数 impulse,求解阶 跃响应可利用函数 step。其调用方式为
计算物体位移 y(t)的 MATLAB 程序如下: %program2_1 微分方程求解
ts=0;te=5;dt=0.01; sys=tf([1],[1 2 100]); t=ts:dt:te; x=10*sin(2*pi*t); y=lsim(sys,x,t); plot(t,y); xlabel('Time(sec)') ylabel('y(t)')
+
+
+
=
+
+
+
可用 a=[ a3, a2, a1, a0];b=[b3 ,b2, b1,b0]; sys=tf( b,a)
获得连续时间 LTI 模型。注意微分方程中为零的系数一定要写入向量 a 和 b 中。 【例 2-1】描述某力学系统中物体位移 y(t)与外力 f(t)的关系为
+ + y(t)=x(t)
物体质量 m=l kg,弹簧的弹性系数 ks= 100 N/m,物体与地面的摩擦系数 fd=2 N·s/m,系 统的初始储能为零,若外力 x(t)是振幅为 10、周期为 1 的正弦信号,求物体的位移 y(t)。
解:由已知条件,系统的输入信号为 x(t)=10sin(2πt),系统的微分方程为
+ +100y(t)=x(t)
8
d[k]
7
s[k]
x[k]
6
5
4
3
2
1
0
-1 0 5 10 15 20 25 30 35 40 45 50 Time index k
在零初始状态下,MATLAB 信号处理工具提供了一个 filter 函数计算由差分方程描述的 系统的响应。其调用方式为:
y= filter(b,a,x) 式中 b=[b0,bl,b2,…,bM],a=[a0,a1,a2,…,aN]分别是差分方程左、右端的 系数向量,x 表示输入序列,y 表示输出序列。注意输出序列的长度和输入序列长度相同。
xlabel('Time index k');legend('d[k]','s[k]','x[k]'); M=5;b=ones(M,1)/M;a=1; y=filter(b,a,x); figure(2);plot(k,s,'b--',k,y,'g-'); xlabel('Time index k'); legend('s[k]','y[k]');
rand 函教产生,将其叠加在有用信号 s[k]上,即得到受噪声干扰的输入信号 x[k]。下面的 程序实现了对信号 x[k]去噪,取 M=5。
% program2_3 Signal Smoothing by Moving Average Filter clear clc R=51; d=rand(1,R)-0.5; k=0:R-1; s=2*k.*(0.9.^k); x=s+d; figure(1);plot(k,d,'r-.',k,s,'b--',k,x,'g-');
【例 2-3】受噪声干扰的信号为 x[k]=s[k]+d[k],其中 s[k]=(2k)0.9 k 是原始信号,d[k]
是噪声。已知 M 点滑动平均( Moving Average)系统的输入与输出关系为
y[k] =
试编程实现 M 点滑动平均系统对受噪声干扰的信号去噪。 解:系统的输入信号 x[kl 含有有用信号 s[k]和噪声信号 d[k]。噪声信号 d[k]可以用
+ +100h(t)=10δ(t)
物体位移 y(t)即系统的冲激响应,计算其的 MATLAB 程序如下: %program3_2 连续时间系统的冲激响应
clear clc ts=0;te=5;dt=0.01; sys=tf([10],[1 2 100]); t=ts:dt:te; y=impulse(sys,t); plot(t,y); xlabel('Time(sec)') ylabel('h(t)')
实验 1 利用 matlab 进行系统的时域分析
一. 实验目wenku.baidu.com: 1. 了解离散时间序列卷积和的 matlab 实现; 2. 利用卷积和求解系统的零状态响应;
二. 实验原理: 1. 连续时间系统零状态响应的求解 连续时间 LTI 系统以常系数微分方程描述,系统的零状态响应可通过求解初始状态为零
的微分方程得到。在 MATLAB 中,控制系统工具箱提供了一个用于求解零初始状态微分方程 数值解的函数 lsim。其调用方式为
h(t )
1
0.8
0.6 0.4
0.2
0
-0.2
-0.4
-0.6
-0.8 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Time(sec)
图 2-2 连续时间系统的冲激响应 3.离散的时间系统零状态相应的求解
大量的离散时间 LTI 系统都可以用如下的线性常系数差分方程描述:
其中 a0=1,x[k]、y[k]分别表示系统的输入和输出,n 是差分方程的阶数。已知差分方 程的 n 个初始状态和输入 x[k],就可以编程由下式迭代计算出系统的输出:
y= impulse( sys,t) y= step( sys,t)
式中 t 表示计算系统响应的抽样点向量,sys 是连续时间 LTI 系统模型。下面举例说明其应 用。
【例 2-2】在例 2-1 所述力学系统中,若外力 x(t)是强度为 10 的冲激信号,求物体的位 移 y(t)。
解:由已知条件,系统的输入信号为 x(t)=10δ(t),系统的微分方程可写成:
y= lsim( sys,x,t) 式中 t 表示计算系统响应的抽样点向量,x 是系统输入信号向量,sys 是连续时间 LTI 系统 模型,用来表示微分方程、差分方程、状态方程。在求解微分方程时,微分方程的连续时间 LTI 系统模型 sys 要借助 tf 函数获得,其调用方式为
sys= tf(b,a) 式中 b 和 a 分别为微分方程右端和左端各项的系数向量。例如对 3 阶微分方程
y(t)
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Time(sec)
图 2-1 系统的零状态响应 2.连续时间系统冲激响应和阶跃响应的求解
在 MATLAB 中,求解系统冲激响应可应用控制系统工具箱提供的函数 impulse,求解阶 跃响应可利用函数 step。其调用方式为
计算物体位移 y(t)的 MATLAB 程序如下: %program2_1 微分方程求解
ts=0;te=5;dt=0.01; sys=tf([1],[1 2 100]); t=ts:dt:te; x=10*sin(2*pi*t); y=lsim(sys,x,t); plot(t,y); xlabel('Time(sec)') ylabel('y(t)')
+
+
+
=
+
+
+
可用 a=[ a3, a2, a1, a0];b=[b3 ,b2, b1,b0]; sys=tf( b,a)
获得连续时间 LTI 模型。注意微分方程中为零的系数一定要写入向量 a 和 b 中。 【例 2-1】描述某力学系统中物体位移 y(t)与外力 f(t)的关系为
+ + y(t)=x(t)
物体质量 m=l kg,弹簧的弹性系数 ks= 100 N/m,物体与地面的摩擦系数 fd=2 N·s/m,系 统的初始储能为零,若外力 x(t)是振幅为 10、周期为 1 的正弦信号,求物体的位移 y(t)。
解:由已知条件,系统的输入信号为 x(t)=10sin(2πt),系统的微分方程为
+ +100y(t)=x(t)
8
d[k]
7
s[k]
x[k]
6
5
4
3
2
1
0
-1 0 5 10 15 20 25 30 35 40 45 50 Time index k