已知两个信号f1(t)=u(t)-u(t-3),f2(t)=e^(-t)u(t),求f(t)=f1(t)*f2(t)并利用MATLAB绘制出三个信号波形图
时间: 2024-11-23 10:41:07 浏览: 36
要计算两个信号的卷积 `f(t)`,我们可以先定义 `f1(t)` 和 `f2(t)` 的表达式,然后使用 MATLAB 中的 `conv` 函数进行卷积运算。最后,我们可以通过 `plot` 函数绘制它们的波形图。
首先,我们需要创建两个函数,`f1` 和 `f2`,以及它们的单位阶跃函数 `u(t)`:
```matlab
% 定义 u(t) 函数
u = @(t) heaviside(t);
% 定义 f1(t) 和 f2(t)
f1 = @(t) (u(t) - u(t - 3));
f2 = @(t) exp(-t).*u(t);
```
接下来,我们将计算 `f(t) = f1 * f2` 并保存到另一个函数 `f` 中:
```matlab
% 计算卷积 f(t)
f = @(t) conv(f1(t), f2(t));
```
现在,我们可以选择一系列时间点 `t` 来绘制三个函数的波形图:
```matlab
% 设置时间范围
t = linspace(0, 5, 1000); % 假设观察区间为 [0, 5] 秒
% 绘制波形图
figure;
subplot(3, 1, 1);
plot(t, f1(t), 'r', 'LineWidth', 2, 'DisplayName', 'f1(t)');
hold on;
grid on;
subplot(3, 1, 2);
plot(t, f2(t), 'b', 'LineWidth', 2, 'DisplayName', 'f2(t)');
hold on;
subplot(3, 1, 3);
plot(t, f(t), 'g', 'LineWidth', 2, 'DisplayName', 'f(t) = f1 * f2');
hold off;
legend('show');
xlabel('Time (s)');
ylabel('Amplitude');
title('Signal Waveforms');
```
这段代码会生成一个包含三个子图的窗口,分别显示 `f1(t)`、`f2(t)` 和它们卷积后的结果 `f(t)`。如果你遇到任何问题或想进一步了解其他内容,请随时告诉我。
阅读全文