假设我们正在从给定信号
创建以下矩阵function [ x ]=create_matrix1(b,l)
n = length(b);
m = n-l+1;
x = zeros(m,l);
for i=1:m
x(i,:)=b(i:i+l-1);
end;
end
有一些窗口长度,例如
X=[2;1;3;4;5;7]
X =
2
1
3
4
5
7
>> B=create_matrix1(X,3)
B =
2 1 3
1 3 4
3 4 5
4 5 7
如果我们给出矩阵和窗口长度,我怎么能重建原始信号?让我知道窗口长度是3,提前谢谢,我想我应该对反对角线上的元素求和并除以此元素的数量反对角线,但我怎么能通过代码来做呢?先谢谢
答案 0 :(得分:2)
您的原始矢量位于矩阵B
的顶部和右侧边缘,可以像这样重建:
>> X_reconstructed = [B(1,1:end-1).'; B(:,end)]
X_reconstructed =
2
1
3
4
5
7
如果矩阵B
是一些噪声矩阵,你实际上想要沿着对角线做平均值:
>> BB = fliplr(B);
>> X_mean = arrayfun(@(i) mean(diag(BB,i)), size(B,2)-1:-1:-size(B,1)+1).'
X_mean =
2
1
3
4
5
7