matlab用于时域分析实验总结,实验二信号与系统时域分析的matlab实现

41528d3028836879cd698677c3999917.gif实验二信号与系统时域分析的matlab实现

实验二、信号与系统时域分析的 MATLAB 实现一、实验目的掌握利用 Matlab 求解 LTI 系统的冲激响应、阶跃响应和零状态响应,理解卷积概念。二、实验内容1、 卷积运算的 MATLAB 实现:(1) 计算连续信号卷积用 MATLAB 中的函数 conv,可编写连续时间信号卷积通用函数 sconv,function [f,n]=sconv(f1,f2,n1,n2,p)f=conv(f1,f2);f=f*p;n3=n1(1)+n2(1); L=length(n1)+length(n2)-1; n=n3:p:(n3+(L-1)*p);例 2.1 )()(21tftf在 MATLAB 编写:p=0.01;n1=-1:p:1;f1=ones(1,length(n1));n2=0:p:1;f2=2*n2;[f,n]=sconv(f1,f2,n1,n2,p);subplot(3,1,1),plot(n1,f1), axis([-1.5,1.5,0,2]),grid onsubplot(3,1,2),plot(n2,f2), axis([-0.1,1.2,0,3]),grid onsubplot(3,1,3),plot(n,f),axis([-1.5,5,0,2]),grid on运算结果如图例 2.1 所示。(2) 计算离散信号卷积用 MATLAB 中的函数 conv,其调用格式为:),(baconv式中,a、b 为待卷积两序列的向量表示。向量 c 的长度为 a、b 长度之和减 1。例 2.2 已知序列 ,计算3,20;1,][,3210;4,][ kykkx。y解:MATLAB 的程序为:x=[1,2,3,4];y=[1,1,1,1];z=conv(x,y)N=length(z);stem(0:N-1,z) 运行结果:如图例 2.2z = 1 3 6 10 9 7 42、 连续时间系统零状态响应的求解:LTI 连续时间系统的零状态响应可通过求解初始状态为零的常系数微分方程得到。在 MATLAB 中控制系统工具箱中提供了一个用于求解零初始条件微分方程数值解的函数 lsim。其调用方式为:),(tfsylim式中,sys 表示 LTI 系统模型,用来表示微分方程、差分方程、状态方程,t 表示计算系统响应的抽样点向量,f 是系统输入信号向量。在求解微分方程时,微分方程的 LTI系统模型 sys 借助于 tf 函数获得,其调用方式为:),(abtfsy式中,b 和 a 分别为微分方程右端和左端各项的系数向量。例如:对 2 阶微分方程)(2)(52)(3 tftftytt 可用 a=[3 2 -5],b=[-1 0 2], sys=tf(b,a)获得 LTI 模型。例 2.3 系统的微分方程为 ,输入信号为)(10)( tfytt,求系统的零状态响应 y(t)。tfsin1)(解:MATLAB 的程序为:sys=tf([0 0 1],[1 2 100]);t=0:0.01:5;f=10*sin(2*pi*t);y=lsim(sys,f,t);plot(t,y)运行结果如图例 2.3 所示。3、 连续时间系统冲激响应和阶跃响应的求解系统的冲激响应和阶跃响应在 MATLAB中控制系统工具箱中提供函数 impulse 和 step 分别表示。其调用方式为:),(tsytepimul例 2.4 求例 2.3 所示系统的冲激响应。解:MATLAB 的程序为:sys=tf([0 0 1],[1 2 100]);t=0:0.01:5;y=impulse(sys,t);plot(t,y)title( 连续系统冲激响应 )xlabel( time(sec) )ylabel( y(t) )运行结果如图例 2.4 所示。4、 离散时间系统零状态响应的求解LTI 离散系统一般用线性常系数差分方程描述: ][][00 jkfbikyamjni f[k]、y[k]分别表示系统的输入和输出,n 是差分方程的阶数。已知差分方程的 n 个初始状态和输入 f[k],就可以通过编程由下式迭代计算出系统的输出。在零初始状态下,MATLAB 信号处理工具中提供了一个 filter 函数,计算差分方程描述的系统的响应。其调用方式为: ),(fabfiltery式中,b=[b0,b1,---,bn],a=[a0,a1,---an]分别是差分方程左、右端的系数向量,f 表示输入序列,y 表示输出序列,它们长度要相同。5、 离散时间系统单位脉冲响应的求解离散系统的单位脉冲响应在 MATLAB 中控制系统工具箱中提供函数 impz 表示。其调用方式为: ),(kabimpzhk 表示输出序列的取值范围,h 是系统的单位脉冲响应。例 2.5 求离散时间系统 ][2[]1[3] kfyy的单位脉冲 h[k]。解:MATLAB 的程序为:k=0:10;a=[1 3 2];b=[0 0 1];h=impz(b,a,k);stem(k,h)title( 单位脉冲响应 ) 响应结果如图例 2.5 所示。练习:1、 一系统满足微分方程为 ,求出系ttftyty cos2)(,)(5)( 统的零状态响应。程序:sys=tf([0 0 1],[1 5 -1]);t=0:0.01:5;f=2*cos(pi*t);y=lsim(sys,f,t);plot(t,y)2、 求下列各系统的单位冲激响应和单位阶跃响应。(1) )()()( tfytty(2) 程序 1:sys=tf([0 0 1],[1 sqrt(2) 1]);t=0:0.01:5;y1=impulse(sys,t);y2=step(sys,t);subplot(2,1,1);plot(t,y1)title( 系统冲激响应 )xlabel( time(sec) )ylabel( y(t) )subplot(2,1,2);plot(t,y2)title( 系统阶跃响应 )xlabel( time(sec) )ylabel( y(t) )程序 2:sys=tf([0 1 1],[1 1 1]);t=0:0.01:5;y1=impulse(sys,t);y2=step(sys,t);subplot(2,1,1);plot(t,y1)title( 系统冲激响应 )xlabel( time(sec) )ylabel( y(t) )subplot(2,1,2);plot(t,y2)title( 系统阶跃响应 )xlabel( time(sec) )ylabel( y(t) )3、已知 f(k)如下式所示,用 conv 函数计算 ,并就它们的对称][],[kfhkf关系作总结。 5,4321)(,8.256,3.1,.[)(kf程序:f=[3.5,-1.2,2.3,6.5,-2.8];h=[1,2,3,4,5];z1=conv(f,h) ;z2=conv(h,f);subplot(2,1,1);N=length(z1)stem(0:N-1,z1)subplot(2,1,2);N=length(z2)stem

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值