matlab已知信号x(n)=nsin(n/2),在区间[0,20]之间,绘制出y2(n)=x(-n)波形
时间: 2024-12-11 22:41:37 浏览: 15
在MATLAB中,给定信号 `x(n) = n * sin(n/2)`,要在区间 [0, 20] 上绘制其负序信号 `y2(n) = x(-n)` 的波形,你可以按照以下步骤操作:
1. 首先,你需要创建一个变量 `n`,表示离散时间序列,范围从0到20。因为 `x(n)` 中的 `n` 可以为正数,所以在计算 `x(-n)` 时,你需要对 `n` 变量取负值。
```matlab
n = 0:0.1:20; % 创建从0到20的等间距样本点
```
2. 计算 `x(n)` 和 `x(-n)` 的值。注意 `sin(n/2)` 对于负的 `n` 仍然成立,只是周期会改变方向。
```matlab
x = n .* sin(n ./ 2);
y2 = x; % 对应 y2(n),这里直接等于 x(n) 因为 x(n) = x(-n)
```
3. 使用 `plot` 函数绘制两条线,一条是 `x(n)`,另一条是 `y2(n)`,通常我们会把它们放在一起显示比较。
```matlab
% 绘制原始信号 x(n)
figure;
plot(n, x, 'b', 'LineWidth', 2, 'DisplayName', 'Original Signal');
% 绘制负序信号 y2(n)
hold on;
plot(n, y2, 'r--', 'DisplayName', 'Negative Sequence');
hold off;
% 添加标题、轴标签及 legend
title('Signal and its Negative Sequence');
xlabel('Discrete Time (n)');
ylabel('Amplitude');
legend('show');
```
以上就是在MATLAB中绘制 `y2(n) = x(-n)` 波形的示例代码。运行此代码后,你会看到 `x(n)` 和它的负序 `y2(n)` 同时出现在图上。
阅读全文