使用参与特征值计算的对角载荷的协方差矩阵问题

信息处理 协方差 svd 特征分解
2022-02-23 18:30:09

我有以下问题:我正在计算频域中的样本协方差矩阵(yk是时域的 FFTkth符号矢量信号,基本上是模拟的接收信号)如下:

R=1Nfk=0Nf1ykykH

好吧,我算法的下一步是解决优化过程,作为其中的重要部分,我需要通过执行 SVD、幂法等来计算特征值......在 MATLAB 中的以下等式:

(R1A)

不要涉及太多细节,因为我相信我的问题来自一个数值问题,并且不需要对实际算法/上下文的许多见解。让我们假设,A只是我计算的预定义矩阵。

真正的问题现在出现是因为R正如 MATLAB 告诉我的那样,是病态的。因此,逆过程似乎失败了,并且由于这个问题,我获得的特征值非常小(实际上我只得到 1 个不同于零的特征值)。的尺寸R通常很大(因为它们被压缩取决于我使用的实际压缩比,但假设32×32例如)。

我发现解决这个问题的一种方法是使用对角线加载:

((R+σI)1A)withσ>0

这似乎正在解决问题,由于这种背景“噪音”,特征值现在被缩放。我的问题是如何获得真正缩放好的特征值,因为稍后在我的算法中,这些特征值将用作权重,因为我将它们视为实际的功率估计。

注意:我一直在使用cond()MATLAB 中的函数σ=0.05, cond(R+sigma*I)= 2, 我相信这还不错。

随时询问有关该问题的更多问题。但我认为我的问题与涉及特征值和协方差矩阵的纯数值问题有关。

1个回答

你可以写

R=YYH
在哪里Y是一个大小矩阵N×NfN是维度yk.Y包含所有测量的yk作为它的列。

那么,排名R上限为Nf. 特别是,如果Nf<N,R将永远是一个奇异矩阵。因此,如果您的测量值太少,您可能会遇到您描述的问题。

对于您的第二部分,特征值如何RR+σI相关:考虑特征值分解R经过

R=PVP1
在哪里P包含特征向量,V 是具有特征值的对角矩阵(它们可以为零)。然后你有

R+σI=PVP1+σI=P(V+σI)P1

这意味着特征值都增加了σ.