matlab产生时延信号矩阵

给定一个信号X=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15],时延数M=6
matlab中产生形如:
[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 0 0 1 2 3 4 5 6 7 8 9 10 11 12
0 0 0 0 1 2 3 4 5 6 7 8 9 10 11
0 0 0 0 0 1 2 3 4 5 6 7 8 9 10]
的时延信号矩阵,是由滤波器实现的,代码如下所示

%生成信号
X=[1:15];
%设置时延深度
M=6;
D = fix((M-1)/2);
meye = eye(M);
vand=[];
%产生时延信号矩阵
for k = 1:M
    Vand = [Vand; conj(filter(meye(k,:), 1, X))];
end

其中1-D数字滤波函数y = filter(b,a,x),用法是用分子和分母系数分别是b和a的有理传递函数滤波信号x,这个传递函数的Z域如下所示:

Y ( z ) = b ( 1 ) + b ( 2 ) z 1 + . . . + b ( n b + 1 ) z n b 1 + a ( 2 ) z 1 + . . . + a ( n a + 1 ) z n a X ( z ) ,

在时域有
a ( 1 ) y ( n ) = b ( 1 ) x ( n ) + b ( 2 ) x ( n 1 ) + . . . + b ( n b + 1 ) x ( n n b ) a ( 2 ) y ( n 1 ) . . . a ( n a + 1 ) y ( n n a ) .

猜你喜欢

转载自blog.csdn.net/qq_19531479/article/details/81508791