已知信号f(t)=(t+1)[ε(t+1)-ε(t-1)],用MATLAB绘出f(t),f(t-1),f(-t),f(2t)的波形。
时间: 2024-10-09 18:04:54 浏览: 32
实验1-2 误差与插值法_4292050091
信号 \( f(t) = (t + 1)[\varepsilon(t + 1) - \varepsilon(t - 1)] \) 的定义中,包含了单位阶跃函数 \( \varepsilon(t) \)。这个函数有以下特性:当 \( t > 0 \) 时,\( \varepsilon(t) = 1 \),否则为 0。所以,\( f(t) \) 只在 \( t > -1 \) 并且 \( t \geq 1 \) 时才非零。
为了在 MATLAB 中绘制这些函数,你需要使用 `stairs` 函数表示单位阶跃函数,并结合线性变换画出其他版本的信号。以下是绘制步骤:
```matlab
% 定义t范围和步长
t = -5:0.1:5;
% 单位阶跃函数
eps_t = heaviside(t); % 注意 MATLAB 中的 heaviside 等价于 unit_step 或者 epsilon
% 定义原始信号 f(t)
f_t = (t + 1).*(eps_t - prev(eps_t)); % 使用 prev 函数获取前一时刻的值
% 绘制原始信号
figure;
plot(t, f_t, 'LineWidth', 2);
title('原始信号 f(t)');
xlabel('t');
ylabel('f(t)');
% 其他变化后的信号
% f(t-1)
f_t_minus_1 = f_t(t - 1);
figure;
hold on; % 保持当前图形
plot(t, f_t_minus_1, 'r', 'LineWidth', 2);
title('f(t-1)');
legend('f(t)', 'f(t-1)');
% f(-t)
f_minus_t = f_t(-t);
figure;
hold off; % 结束保持
plot(t, f_minus_t, 'g', 'LineWidth', 2);
title('f(-t)');
xlabel('t');
% f(2t)
f_two_t = f_t(2*t);
figure;
plot(t, f_two_t, 'b', 'LineWidth', 2);
title('f(2t)');
xlabel('t');
legend('f(t)', 'f(t-1)', 'f(-t)', 'f(2t)');
```
运行以上代码后,你会看到四个不同时间变换下 \( f(t) \) 的波形图。
阅读全文