【信号与系统】【北京航空航天大学】实验二、连续时间系统的时域分析【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’ 项。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 20:52:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 20:52:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 20:52:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 20:52:01       18 阅读

热门阅读

  1. 什么是去中心化

    2024-01-17 20:52:01       33 阅读
  2. Nginx配置ssl访问 443端口

    2024-01-17 20:52:01       32 阅读
  3. 力扣124. 二叉树中的最大路径和

    2024-01-17 20:52:01       31 阅读
  4. C++——STL标准模板库——容器详解——set

    2024-01-17 20:52:01       29 阅读
  5. 笔记本装FreeBSD机器磁盘一直响的解决留档

    2024-01-17 20:52:01       53 阅读
  6. 127.0.0.1和0.0.0.0的区别

    2024-01-17 20:52:01       32 阅读
  7. 常用的消息队列和中间件都有哪些

    2024-01-17 20:52:01       36 阅读
  8. 如何理解单例模式----饿汉式?

    2024-01-17 20:52:01       29 阅读
  9. PyTorch中的FX图

    2024-01-17 20:52:01       30 阅读
  10. 合并多个大语言模型文件的方法

    2024-01-17 20:52:01       35 阅读
  11. Docker 设置 Redis 的密码失效

    2024-01-17 20:52:01       24 阅读
  12. 为 Web3 项目撰写智能合约(Web3项目三实战之二)

    2024-01-17 20:52:01       31 阅读
  13. 【软件测试学习笔记4】HTML入门

    2024-01-17 20:52:01       33 阅读