我目前使用Matlab创建不同的信号,将它们乘以混合矩阵A进行混合,然后尝试使用FastICA找回原始信号。ICA - 统计独立性和协方差矩阵的特征值
到目前为止,恢复信号与原始信号相比非常糟糕,这不是我所期望的。
我想看看我是否做错了什么。我生成的信号如下:(振幅的范围是[0,1])
s1 = (-x.^2 + 100*x + 500)/3000; % quadratic
s2 = exp(-x/10); % -ve exponential
s3 = (sin(x)+ 1) * 0.5; % sine
s4 = 0.5 + 0.1 * randn(size(x, 2), 1); % gaussian
s5 = (sawtooth(x, 0.75)+ 1) * 0.5; % sawtooth
对于ICA是成功
一个条件是至多一个信号是高斯,并且我在信号生成中观察到了这一点。
但是,另一个条件是所有信号都是统计独立的。我知道的是,这意味着,给定两个信号A & B,知道一个信号不会给出关于另一个的任何信息,即:P(A | B)= P(A)其中P是概率。
现在我的问题是这样的:我的信号是统计独立的吗?有什么办法可以确定吗?也许一些必须遵守的财产?
我注意到另一件事是,当我计算协方差矩阵的特征值(计算为含有混合的信号的矩阵),的eigenspectrum似乎表明,只有一个(主)主成分。这是什么意思?不应该有5,因为我有5(所谓)独立的信号?
例如,使用以下的混合矩阵时:
A =
0.2000 0.4267 0.2133 0.1067 0.0533
0.2909 0.2000 0.2909 0.1455 0.0727
0.1333 0.2667 0.2000 0.2667 0.1333
0.0727 0.1455 0.2909 0.2000 0.2909
0.0533 0.1067 0.2133 0.4267 0.2000
的特征值是:0.0000 0.0005 0.0022 0.0042 0.0345
(!只有4)
当使用单位矩阵作为混合矩阵(即,混合的信号是与原始的一样),特征谱是:0.0103 0.0199 0.0330 0.0811 0.1762
。还有一个值比其他值大得多..
谢谢你的帮助。
我很抱歉,如果我的问题的答案是痛苦的明显,但我真的是新统计,ICA和Matlab。再次感谢。
编辑 -我有500个样本的每个信号,范围[0.2,100],步长为0.2,即x = 0:0.1:100
。
编辑 -鉴于ICA型号:X =作为+ N(我不加入此刻任何噪音),但我指的是X的转置的eigenspectrum,即eig(cov(X'))
。
我用x = 0.2:0.2:100(我刚刚把这个细节加到了我原来的问题 - 谢谢指出。)你是如何到达协方差矩阵的?我在问题中发布的混合矩阵A的协方差矩阵是不同的。另外,使用eig(cov(A))给出矩阵的特征值,而不是特征向量。除此之外,我并不是指A的协方差矩阵的特征值,而是指混合信号的协方差矩阵的特征值。我将这个添加到我的问题中,使其更清晰。 – Rachel 2012-02-21 19:29:32
哦,谢谢你的链接,但你可以请进一步解释吗?就像我说的,我是一个统计新手。我想知道是否有一种常用的方法来检查一些信号是否具有统计独立性。 – Rachel 2012-02-21 19:31:23
谢谢您的评论,但是,它并没有真正让我获得任何地方。我的问题不是计算特征值,而是更多的为什么特征值是他们是什么..你可以看到,其中一个特征值相对较大。我认为对统计独立的信号来说,特征值或多或少是相等的,我想知道这是否正确。另外我还没有找到具体的方法来检查我的信号是否独立。 – Rachel 2012-02-22 11:37:32