gpt4 book ai didi

matlab - 在 Matlab 中估计样本协方差矩阵特征值的方差

转载 作者:太空宇宙 更新时间:2023-11-03 20:08:58 26 4
gpt4 key购买 nike

我正在尝试使用 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.;韦斯,A.J.; , "On the second-order statistics of the eigenvectors of sample covariance matrices ,"信号处理, IEEE Transactions on , vol.46, no.11, pp.3136-3139, Nov 1998[2] 卡维,M.;巴拉贝尔,A.; ,“The statistical performance of the MUSIC and the minimum-norm algorithms in resolving plane waves in noise ,”声学、语音和信号处理,IEEE Transactions on ,第 34 卷,第 2 期,第 331-341 页,1986 年 4 月

最佳答案

根据您的第一个引用文献的摘要:

“特征向量的二阶统计公式已在统计文献中推导出来并被广泛使用。我们指出,由于定义的非唯一性,数值模拟中观察到的统计数据与理论公式之间存在差异的特征向量。我们提出了两种方法来解决这种差异。第一种涉及修改理论公式以匹配计算结果。第二种涉及对计算进行简单修改以使其与现有公式匹配。”

听起来似乎存在差异,而且这两个“解决方案”听起来也像是 hack,但在没有实际论文的情况下,很难提供帮助。

关于matlab - 在 Matlab 中估计样本协方差矩阵特征值的方差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com