• Matlab 对连续时间信号的运算


    Matlab 对连续时间信号的运算

    1、连续时间系统零状态响应

    • 题目&函数说明
      连续时间系统的微分方程为 y"(t) + 4y’(t) + 3y(t) = f’(t) + 2f(t)
      当 输入信号 f(t) = 20e-2tu(t) 时,初始值 y(0-) = 2, y’(0-) = 1, 求系统的零状态响应

    Matlab 库函数中的 lsim()能对微分方程描述的 LTI 连续时间系统的响应进行仿真。
    函数 lsim()的调用格式: lsim(b,a,x,t)
    该调用格式中,a 和 b 是由描述系统的微分方程左边和右边系数构成的两个行向量;t 为输入信号时间范围的向量,x 为输入信号在向量 t 定义的时间点上的抽样值。

    • 结果:
      在这里插入图片描述

    代码:

    % 微分方程 y"(t) + 4y'(t) + 3y(t) = f'(t) + 2f(t)
    % 输入信号 f(t) = 20e^(-2t)u(t) 
    % 初始值 y(0^(-)) = 2, y'(0^(-)) = 1
    % 求系统的零状态响应
    
    a = [1 4 3];
    b = [1 2];
    [A B C D]=tf2ss(b,a);   %tf2ss函数将传递函数模型转化为状态空间模
    sys=ss(A,B,C,D);        %sys由函数ss构造的状态空间模型
    p=0.01;                 %定义取样时间间隔
    t=0:p:3;                %定义时间范围
    
    f=zeros(1,length(t))
    zi=[1 2];
    y1=lsim(sys,f,t,zi);     %系统的零输入响应
    x=20*exp(-2*t);
    y2=lsim(sys,x,t);        %系统的零状态响应
    y3=lsim(sys,x,t,zi);     %系统的全响应
    subplot(3,1,1);
    plot(t,y1);
    title("系统的零输入响应");
    
    subplot(3,1,2);
    plot(t,y2);
    title("系统的零状态响应");
    
    subplot(3,1,3);
    plot(t,y3);
    title("系统的全响应");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    2、连续时间系统冲激响应和阶跃响应

    • 题目&函数说明
      已知 y’‘(t) + 2y’(t) + 3y(t) = f(t), 求 系统的冲激响应和阶跃响应的时域波形

    MATLAB 为用户提供了专门用于连续系统冲激响应并绘制其时域波形的impulse 函数。其函数 impulse()的调用格式:impulse(b,a)。其中 a 和 b 是由描述系统的微分方程左边和右边系数构成的两个行向量。
    用于连续系统阶跃响应并绘制其时域波形的 step 函数。函数 step()的调用格式为:step(b,a)。其中 a 和 b 是由描述系统的微分方程左边和右边系数构成的两个行向量。

    • 结果
      在这里插入图片描述

    代码:

    a=[1 2 3];
    b=[1];
    subplot(2,1,1)
    impulse(b,a)
    title("冲激响应")
    subplot(2,1,2)
    step(b,a)
    title("阶跃响应")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3、卷积积分

    • 题目&函数说明
      计算两个指数信号 f1(t) = e-6t , f2(t) = e-3t 的卷积
      Matlab 的库函数 conv()只能计算离散序列 f1 与 f2 的卷积和,构造函数 conv() 实现两连续信号的卷积积分。
      Y=conv(x,h)
      实现 x,h 二个序列的卷积,假定都是从 n=0 开始,Y 序列的长度为 x,h 序列的长度两序列长度之和再减 1。
    • 结果
      在这里插入图片描述

    代码:

    t=0:0.01:1;
    y1=exp(-6*t);
    y2=exp(-3*t);
    y=conv(y1,y2);
    l1=length(y1);
    
    l2=length(y2);
    l=length(y);
    subplot(3,1,1);
    plot(t,y1);
    title("f1(t)");
    
    subplot(3,1,2);
    plot(t,y2);
    title("f1(t)");
    
    t1=0:0.01:2;
    subplot(3,1,3);
    plot(t1,y);
    title("f1(t) * f2(t)");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    觉得不错的,可以点个赞哦~
    在这里插入图片描述

  • 相关阅读:
    格林公式的理解
    猿创征文|前端进阶必备——WebSockt实现聊天室(附源码)
    策略模式 + 工厂模式 + 门面模式 实现用户多类型支付功能
    大学生《Web课程谁》期末网页制作 HTML+CSS+JavaScript 网页设计实例 瑜伽网站企业网站制作
    算法通过村第十一关黄金挑战——位运算如何实现压缩储存
    线上AB实验的日志分析
    车载氧吧E-mark认证流程是怎样的?
    TMGM外汇平台官网最全测评(2022年版)
    Es修改索引别名
    JMeter详细安装教程
  • 原文地址:https://blog.csdn.net/qq_43680827/article/details/127959293