我正在尝试使用 Matlab 研究样本协方差矩阵的特征值的统计方差。为了澄清,每个样本协方差矩阵由有限数量的矢量快照(受随机高斯白噪声影响)构成。然后,经过大量试验,生成大量此类矩阵并进行特征分解,以估计特征值的理论统计量。
根据几个来源(例如,参见 [1, Eq.3] 和 [2, Eq.11]),每个样本特征值的方差应该等于理论特征值的平方除以使用的矢量快照数对于每个协方差矩阵。但是,我从 Matlab 得到的结果甚至还不够接近。
这是我的代码的问题吗?用matlab?(我在处理类似问题时从来没有遇到过这样的麻烦)。
这是一个非常简单的例子:
% Data vector length
Lvec = 5;
% Number of snapshots per sample covariance matrix
N = 200;
% Number of simulation trials
Ntrials = 10000;
% Noise variance
sigma2 = 10;
% Theoretical covariance matrix
Rnn_th = sigma2*eye(Lvec);
% Theoretical eigenvalues (should all be sigma2)
lambda_th = sort(eig(Rnn_th),'descend');
lambda = zeros(Lvec,Ntrials);
for trial = 1:Ntrials
% Generate new (complex) white Gaussian noise data
n = sqrt(sigma2/2)*(randn(Lvec,N) + 1j*randn(Lvec,N));
% Sample covariance matrix
Rnn = n*n'/N;
% Save sample eigenvalues
lambda(:,trial) = sort(eig(Rnn),'descend');
end
% Estimated eigenvalue covariance matrix
b = lambda - lambda_th(:,ones(1,Ntrials));
Rbb = b*b'/Ntrials
% Predicted (approximate) theoretical result
Rbb_th_approx = diag(lambda_th.^2/N)
参考:
[1] 弗里德兰德,B.;韦斯,AJ;,“关于样本协方差矩阵的特征向量的二阶统计,”信号处理,IEEE Transactions on,第 46 卷,第 11 期,第 3136-3139 页,1998 年 11 月 [2] Kaveh,M.;巴拉贝尔,A。, “ MUSIC 的统计性能和解决噪声中平面波的最小范数算法”,声学、语音和信号处理,IEEE Transactions on,第 34 卷,第 2 期,第 331-341 页,1986 年 4 月