在Matlab上生成离散信号

时间:2018-01-30 13:44:53

标签: matlab

我正在尝试使用 matlab 生成constant signal x[n] = 1 for n = 1, 2, 3 and x[n] = 0 otherwise

N = -5:1:5;
X = -5:1:5;
i = 1;
for n = N
   if (n >= 1 && n <= 3)
     X[i] = 1;
   else
     X[i] = 0;
   end
   i = i + 1;
end

但它不起作用。我真的很新,使用Matlab进行离散信号,所以欢迎任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

在这种情况下,无需使用for次迭代。您可以使用索引方法完成相同的操作,如下所示:

N1 = -5:5;

X1 = zeros(1,numel(N1));
X1(N1 >= 1 & N1 <= 3) = 1

N2 = -8:2;

X2 = zeros(1,numel(N2));
X2(N2 >= 1 & N2 <= 3) = 1

N3 = 1:11;

X3 = zeros(1,numel(N3));
X3(N3 >= 1 & N3 <= 3) = 1

这将输出:

X1 =
     0     0     0     0     0     0     1     1     1     0     0

X2 =
     0     0     0     0     0     0     0     0     0     1     1

X3 =
     1     1     1     0     0     0     0     0     0     0     0