当前位置: 首页 > news >正文

【信号与系统】【北京航空航天大学】实验二、连续时间系统的时域分析【MATLAB】

一、实验目的

1、掌握连续时间信号的卷积运算以及其对应的 MATLAB 实现方法;
2、掌握连续系统的冲激响应阶跃响应 以及其对应的 MATLAB 实现方法;
3、掌握利用 MATLAB 求 LTI (Linear Time-Invariant, 线性时不变)系统响应的方法;
4、掌握利用 MATLAB 求函数卷积解微分方程

二、实验内容

1、
在这里插入图片描述

MATLAB代码:

>> clear all;
>> t = -2 : 0.01 : 6;
>> x = exp(-t) .* (t >= 0 & t < 2);
>> h = t .* (t >= 0 & t < 3);
>> y = conv(x, h) * 0.01;
>> figure
>> plot(t, x);
>> hold on;
>> plot(t, h);
>> hold on;
>> plot(t, y(201: 1001));
>> xlabel('Time(sec)');
>> ylabel('Amplitude');
>> title('Ex.1');
>> legend('x(t)', 'h(t)', 'y(t)', 'Location', 'Best');
>> axis([-2 6 -0.5 3.5]);

生成的信号波形图

在这里插入图片描述

2、

在这里插入图片描述

MATLAB代码:

>> clear all;
>> n = -10 : 10;
>> figure
>> subplot(3, 1, 1);
>> x = (n >= 0 & n < 4);
>> stem(n, x);
>> grid on
>> title('x[n]', 'Fontsize', 14);
>> xlabel('n', 'FontSize', 11);
>> ylabel('x[n]', 'FontSize', 11);
>> subplot(3, 1, 2);
>> h = 2 .^ (-n) .* (n >= 0 & n < 6);
>> stem(n, h);
>> grid on
>> title('h[n]', 'Fontsize', 14);
>> xlabel('n', 'FontSize', 11);
>> ylabel('h[n]', 'FontSize', 11);
>> subplot(3, 1, 3);
>> y = conv(x, h);
>> n2 = -20 : 20;
>> stem(n2, y);
>> axis([-10 10 0 2]);
>> title('y[n]', 'Fontsize', 14);
>> xlabel('n', 'FontSize', 11);
>> ylabel('y[n]', 'FontSize', 11);
>> grid on;

生成的信号波形图

在这里插入图片描述

3、

在这里插入图片描述
MATLAB代码:

>> clear all;
>> t = 0 : 0.01 : 5;
>> figure;
>> a = [1 5 600];
>> b = [3 100];
>> sys = tf(b, a);
>> y = impulse(sys, t);
>> plot(t, y);
>> hold on;
>> z = step(sys, t);
>> plot(t, z);
>> grid on;
>> title('Ex.3', 'FontSize', 14);
>> xlabel('Time(sec)');
>> ylabel('Amplitude');
>> legend('冲激响应', '阶跃响应', 'Location', 'Best');

生成的信号波形图

在这里插入图片描述

4、
在这里插入图片描述MATLAB代码:

>> clear all;
>> figure;
>> subplot(2, 1, 1);
>> %卷积法求零状态响应
>> a = [1 1 2];
>> b = [0 1 2];
>> t = 0 : 0.01 : 15;
>> [r, p, k] = residue(b, a);
>> h = r(1) * exp(p(1) * t) + r(2) * exp(p(2) * t);
>> x = exp(-t) .* sin(t) .* (t >= 0);
>> dt = 0.01;
>> y = conv(x, h) * dt;
>> plot(t, y(1: length(t)));
>> grid on;
>> title('卷积法求零状态响应', 'FontSize', 14);
>> xlabel('Time(sec)');
>> ylabel('y(t)');
>> subplot(2, 1, 2);
>> %lsim法求零状态响应
>> sys = tf(b, a);
>> z = lsim(sys, x, t);
>> plot(t, z);
>> title('lsim法求零状态响应', 'FontSize', 14);
>> xlabel('Time(sec)');	
>> ylabel('y(t)');
>> grid on;

生成的信号波形图

在这里插入图片描述

思考题1: 写出连续、离散信号卷积的定义?卷积运算的作用是?

解答:

在这里插入图片描述

思考题2: conv函数输出的数组维度与输入维度有何关系?如何将输出结果与时间向量相对应?

解答:

在这里插入图片描述

>> clear all;
>> t1 = 0 : 0.01 : 3;
>> t2 = 0 : 0.01 : 5;
>> x = exp(- t);
>> x = exp(- t1);
>> y = sin(2 * t2);
>> z = conv(x, y);
>> figure;
>> plot(t1, y(1:length(t1)));

实验收获与感想:
1、 求解连续时间系统零状态响应时,需注意系数向量 a, b的写法,次数从高到低;
2、 注意调用卷积函数conv之后 结果向量的维数
3、 别误关当前图像;
4、 卷积法求零状态响应时,t 应设定为 tmin = 0,否则会报错;
5、 (重要)MATLAB中所有的计算都是针对离散数据点进行的,连续函数只能通过近似的方法得到;
6、 注意连续信号卷积的公式中的 ’dt’ 项。

http://www.lryc.cn/news/280196.html

相关文章:

  • 【Linux 内核源码分析笔记】系统调用
  • mysql清空并重置自动递增初始值
  • 计算机算法之二分算法
  • 获取当前设备的IP
  • koa2文件的上传下载功能
  • test-02-test case generate 测试用例生成 EvoSuite 介绍
  • 1.单表查询
  • FFmpeg 的使用与Docker安装流媒体服务器
  • Qt QListWidget列表框控件
  • 小知识分享2
  • 【Golang开源项目】Golang高性能内存缓存库BigCache设计与分析
  • Elasticsearch 7.8.0从入门到精通
  • 寻找最富裕的小家庭 - 华为OD统一考试
  • ssm基于Java的药店药品信息管理系统的设计与实现论文
  • Word插件-大珩助手-手写电子签名
  • Edge扩展插件安装位置
  • Git将本地项目上传到Gitee仓库
  • linux环境安装docker
  • 机器人技能学习-robosuite-0-入门介绍
  • 【工具】tmux简单用法
  • 使用 C++/WinRT 的错误处理
  • 计算机基础专升本笔记九-Windows7基础(一)Windows 7 介绍
  • LeetCode1109. Corporate Flight Bookings
  • 视觉SLAM十四讲|【五】相机与IMU时间戳同步
  • js null和undefined的区别
  • Arduino| IDE下载、安装和设置以及开发板的连接
  • Linux之Ubuntu环境Jenkins部署前端项目
  • QT下的几种实现modbus的库,记录
  • HarmonyOS4.0系统性深入开发18公共事件简介
  • 华为路由器OSPF动态链路路由协议配置