如何绘制不同时间指数的两个离散时间信号之和?

时间:2017-09-17 12:03:55

标签: matlab signals signal-processing matlab-figure

如何将两个具有不同时间指数的离散时间信号相加,即。在时间索引x=[1 2 3 4 5]给出第一个信号n1=-3:1,在时间索引y=[1 1 2 2 3]给出第二个信号n2=0:4。 我不能仅仅添加这两个信号,因为它们的长度不同。到目前为止,我的代码是:

n1=-3:1;
x=input('Enter the value of X:');
y=input('Enter the value of Y:');
subplot(3,1,1);
stem(n1,x);
grid on;
xlabel('Time index');
ylabel('Amplitude');
axis([-10 10 0 10]);
title('signal X');


n2=0:4;
subplot(3,1,2);
stem(n2,y);
grid on;
xlabel('Time index');
ylabel('Amplitude');
axis([-10 10 0 10]);
title('signal Y');

接下来我该怎么办?如何继续添加这两个信号?

2 个答案:

答案 0 :(得分:0)

作为一种简化方法,您可以衡量时域的大小,并创建具有相同大小的最终变量S。此外,创建一个索引更正器m,使我们能够使用n1n2作为矩阵索引。最后,将xy加上正确的偏移量。

m=1-min([n1 n2])
S= zeros(1+max([n1 n2]) - min([n1 n2]),1)
S(m+[n1])= S(m+[n1])+x
S(m+[n2])= S(m+[n2])+y
stem([1:1:size(S,1)]-m,S)

您可以通过感应扩展此功能以与更多时间序列兼容。

答案 1 :(得分:0)

我要写一个新的向量n3,它是n1n2的并集。然后,在xy后面附加零,以使它们的长度与n3的长度匹配,并且它们也正确对齐。

n3 = min([n1 n2]):max([n1 n2]);
x = [x 0 0 0];
y = [0 0 0 y];
subplot(3, 1, 3);
stem(n3, x + y);
grid on;
xlabel('Time index');
ylabel('Amplitude');
axis([-10 10 0 10]);
title('signal X+Y');

结果是

sum of signals