我有一个50比1的矩阵,它是解调数据。由于这个矩阵在每一行中只有一个元素,我想在每一行中重复这个元素16次,因此矩阵变为50乘16.我在Matlab中使用repmat(A,16)
命令完成了它。现在在接收端噪声也被添加到50乘16的矩阵中。我希望将它从50乘以1矩阵。我怎样才能做到这一点?
我尝试了所有行的平均值,但它不是有效的方法。如何知道此过程中何时发生错误?
答案 0 :(得分:0)
您正在描述y = A * x + n
形式的问题,y
是观察到的数据,A
是已知的线性变换,n
是噪音。最小二乘估计是未知向量x
的最简单估计。这里的关键是将repmat()
函数表示为矩阵,将观察到的数据表示为向量(即,50 * 16x1向量而不是50x16矩阵)。
x = 10 * rand(50,1); % 50x1 data vector;
A = repmat(eye(length(x)),[16,1]); % This stacks 16 replicas of x.
n = rand(50*16,1); % Noise
y = A * x + n; % Observed data
xhat = A \ y; % Least squares estimate of x.
至于A
的逆(我假设你的意思是'反向')是什么,它没有。如果你看一下它的等级,你会发现它只有50个。你能做的最好就是使用它的伪逆,这就是\
算子的作用。
我希望以上有所帮助。