如何使用MATLAB绘制连续时间信号f(t) = (3t-2)[ε(t) - ε(t-2)]的时域波形,包括f(-t),f(t-2),f(0.5t),以及f(-3t-2),请给出相应的代码示例?
时间: 2024-12-14 08:19:03 浏览: 20
在MATLAB中,你可以使用`plot`函数来绘制连续时间信号的时域波形。这里是一个示例代码,用于绘制给定的函数f(t)及其变形:
```matlab
% 定义时间范围
t = -5:0.01:5; % 时间向量,从-5到5,步长0.01
% 定义函数 f(t) = (3*t-2)*[ε(t) - ε(t-2)]
% ε(t) 是单位阶跃函数,可以用Heaviside(t)表示
f_t = (3*t - (3*t - 4).*max(0, heaviside(t - 2));
% 绘制原始函数 f(t)
figure;
plot(t, f_t, 'b', 'LineWidth', 1.5);
xlabel('Time (s)');
ylabel('Amplitude');
title('Original Signal f(t)');
% 绘制其他变形函数
% f(-t)
f_minus_t = f_t; % 因为偶函数,只需将原信号翻转
hold on;
plot(-t, f_minus_t, 'r--', 'LineWidth', 1);
% f(t-2)
f_t_2_delayed = f_t; % 减去2后位置不变
plot(t - 2, f_t_2_delayed, 'g:', 'LineWidth', 1);
% f(0.5t)
f_half_t = (3.*0.5*t - 2).*max(0, heaviside(0.5*t)) - (3.*0.5*t - 4).*max(0, heaviside(0.5*t - 2));
plot(0.5*t, f_half_t, 'm-.', 'LineWidth', 1);
% f(-3t-2)
f_minus_3t_2 = -(9*t + 6).*max(0, heaviside(-3*t - 2)) + (9*t + 10).*max(0, heaviside(-3*t));
plot(-3*t - 2, f_minus_3t_2, 'c:', 'LineWidth', 1);
% 整理图例并显示图形
legend('f(t)', 'f(-t)', 'f(t-2)', 'f(0.5t)', 'f(-3t-2)');
grid on;
```
这段代码首先创建了一个时间范围,然后计算了`f(t)`函数的值,并分别画出原始信号及它的变形版本。请注意,`heaviside`函数在MATLAB中通常被替换为`Heaviside`。
阅读全文