已知信号x(n)=n sin(n),试显示在0<n<20区间的下列波形y4(n)=x(-n+3),y5(n)=x(n/2)用MATLABstem函数表示
时间: 2024-12-11 13:24:03 浏览: 1
首先,让我们了解给定的信号 `x(n) = n * sin(n)`,它是一个离散时间周期函数,由线性和正弦函数组成。`y4(n) = x(-n + 3)` 是这个信号向右平移了3个单位,而 `y5(n) = x(n / 2)` 则是对信号进行了频率减半。
在MATLAB中,我们可以使用`stem`函数创建直方图表示法的波形,这有助于可视化离散点的分布。以下是如何分别绘制这两个变换后的波形:
```matlab
% 定义信号范围
n = 0:0.1:20;
% 定义原始信号
x_n = n .* sin(n);
% 创建 y4(n)
y4_n = x_n; % 因为 y4(n) = x(-n + 3), 所以原地赋值
y4_n = y4_n(n >= 3); % 只保留大于等于3的部分,因为我们需要0 < n < 20
% 创建 y5(n)
y5_n = x_n(2:n); % 提取每两个点,因为 n/2 要向下取整
% 使用stem函数画出波形
figure;
subplot(2,1,1)
stem(y4_n, 'filled'); % y4(n)
title('y4(n) = x(-n+3)');
xlabel('n');
ylabel('Amplitude');
subplot(2,1,2)
stem(y5_n, 'filled'); % y5(n)
title('y5(n) = x(n/2)');
xlabel('n');
ylabel('Amplitude');
```
运行这段代码后,你会看到 `y4(n)` 和 `y5(n)` 的直方图表示。注意,由于 MATLAB 的 `stem` 函数通常用于实数序列,这里的 `sin(n)` 会有一些特殊的点,因为它的周期性。
阅读全文