如何提取非正交 PCA 主成分

信息处理 离散信号 信号分析 协方差
2022-02-03 01:11:18

我的问题本质上是一个“盲源分离”问题。我有 3 个非正交源(或基函数)和个随机线性组合(混合)。我的问题是从混合中获取来源。N

图 A 显示了来源,B 显示了混合。

采取的方法:

  1. PCA - 我在混音上尝试了 PCA(图 C),但问题是 PCA 只会给出正交基,而我的源/基是非正交的。PCA 的这个问题如图 D 所示,其中数据由 2 个非正交基清楚地描述,但 PCA(实线)无法重建它们!
  2. Factor Rotation - 我尝试应用一些解决方案形成因子分析(不是我的强项)。promax旋转(matlab:)nw = rotatefactors(cov,'method','promax')如图所示。D 用虚线表示。据我所知,因子旋转适用于主成分,而不是原始矩阵,因此我不知道它如何重建正确的基础。我认为这只适用于因子矩阵,不适用于通用矩阵......
  3. ICA - 我用 fastICA 算法尝试了超定 ICA(也不是我的强项,但我认为我更了解它)。我希望这会起作用,因为独立组件(IC)是非正交的。解决方案如图 E 所示。虽然 IC 确实是非正交的,但它们不是我的原始来源:-(

任何其他潜在的提示或线索或解决方案将不胜感激。

数字

更多数学细节

3 个源信号本身是 5 个拉盖尔基函数的线性组合。因此,问题可以表述为:

  1. 我采用l=5长度的拉盖尔基函数m=30得到B一个[l,m]矩阵
  2. 我随机混合然后是我的x=3来源S: S=B*M1,其中M1是随机[l,x]=[5,3]混合矩阵。S显示在图A中
  3. 我混合 Sn=100次以获得混合信号,K(图 B),其中K=S*M2[x,n]=[3,100]随机生成的混合矩阵。
  4. 我有原始基础,L, & 混合矩阵,KK=S*M2=B*M1*M2. 我的目标是恢复S

注意:我知道这似乎是不可能的,因为有许多可能S的 's 可供选择(即 factorizatioS*M2=B*M1*M2不是唯一的),但是,真正的 's 将通过仅具有可以精确再现所有的基函数而不是基函数来S显着降低模型复杂性内核。 x=3l=5

谢谢!

2个回答

假设 x,y 和 z 是您的基础向量,您将它们混合以获得您所谓的混合源。如果您的基向量是 (xy)、y 和 (z+y),那么您可以以不同的方式混合它们并最终得到相同的混合源。

基本上,有很多方法可以为您的信号提供一组基向量。你需要说你想要什么样的基础。仅仅说基向量是非正交的是不够的。

从权重向量到混合信号''的映射将只是您的 3 个原型信号作为矩阵wS

A=[xyz]

所以线性组合的信号可以写成

S=Aw

A ,,pseudoinverse'' 到该矩阵(简而言之:矩阵使得)将该信号映射回AAAA=1w

AS=w

然后问题是找到这样的伪逆。然而,这个问题是众所周知的,并且实现是可用的。