如何在 matlab 中绘制离散信号?

How to plot a discrete signal in matlab?

我想绘制函数 y[n] = x[n+2]。我的问题是它没有在正确的范围内绘图,甚至没有绘制零样本点。

n = 1:6;
x = 1:1:8;

f = figure;
subplot(1,2,1)      
stem(n, x(n));
axis([-3,8, 0, 7]);
xlabel('n');
ylabel('x[n]');
title('Subplot 1')

subplot(1,2,2)       
stem(n, x(n + 2));     
xlabel('n');
ylabel('y[n]');
title('Subplot 2')

如何更改变量 n 或 x 以获得正确的绘图? 最后,它应该看起来像这样:

您将索引的概念与您的因变量混淆了。您应该构建一个函数 x,它使用您知道的关系

转换输入 n
function y = x(n)
    % Set all outputs to 0
    y = zeros(size(n));

    % Replace the values that fall between 0 and 6 with their same value
    y(n >= 0 & n <= 6) = n(n >= 0 & n <= 6);
end

那么您应该向该函数传递一系列 n 值以进行评估。

nvalues = -3:8;
yvalues = x(nvalues);

stem(nvalues, yvalues)

您还可以对 n 值应用转换

nvalues = -3:8;
yvalues = x(nvalues + 2);

stem(nvalues, yvalues)