matlab中的独立变量分析fastica
想用matlab中的fastcia做去噪处理,一共分析21个电极,即21维。经过=fastica(sig)之后,被降至5维。我想知道的是得到这些后,怎么做才能得到噪声信号,和去噪之后的信号。请大家帮忙,谢谢可能是我表述的不够清楚。再补充一下,为什么用ICA处理后,不是得到和原始数据同样维数的icasig,而是进行了降维,这个结果是否说明了信号中只有5个独立变量。那么对原始信号,消去这几个独立变量?
因为论坛里关于这个问题很少有讨论,希望借用这个帖子和大家讨论一下。 既然没有人指导,我就试着自己缕一下思路。说不定也能帮助大家。但还是希望有经验的大侠们能够给予指导。
我在文献中看到主要思路是:
1.求出门限算子g (s)= sign (s)max (0, |s| - 2^(1/2)*Q^2)
其中s是通过=fastica(sig)计算得到,Q是噪声的方差。这里又存在一个问题,噪声是未知的,如何求噪声的方差呢? 楼主的ICA好像比较接近讯号处理专业, fastica这函数并非matlab自带的, 个人还没能玩过!
或许请版主帮忙移动下版块, 或自己去那转转, 或静待高人路过 回复 ChaChing 的帖子
谢谢教授的支持.
关于我在三楼说的求噪声的方差的问题,我想继续和大家探讨一下.mle函数是matlab中的最大似然估计函数,其形式是=mle(data,'distribution',dist),其中得到的PHAT是两位,前一位为均值,后一位为标准差。问题出在dist怎么选择,也就是如何确定数据的分布。具体方法我也没有想出,但是通过各个分布得到的均值与标准差,与用mean等简单方法得到的均值与标准差做比对,哪一组最接近,那么就属于哪一种分布。
这样就可以求出门限算子g (s),修正后的数据就是A×g (s)
期待大家的讨论 我感觉你应该去信号处理区看看! 研学论坛有一专区"盲信号处理", 或许LZ可以去转转
希望学完再与大家分享:@) =fastica(data,'numOfIC',21,'g','tanh','stabilization','on', 'finetune','tanh', 'interactivePCA','on');
通过这些参数的限定,可以得到预期的维数的icasig。也就解决了降维的问题。但是新的问题是,每次得到的icasig的具体数据都不一样。还需要继续努力啊! 问题解决了。主要是由于matlab的fastica工具箱中使用的算法对初始值的设定非常敏感,当遇到无法收敛时,就会重新设定初始值,而初始值的设定是随机的,因此就会导致每次得到的结果都有可能不同。
RobustICA工具箱也是matlab中用于处理独立变量分析的方法,这一方法更快速,而且避免了初始值问题。我用该方法进行了分析,得到了一致的结果,推荐大家使用 回复 7 # ChaChing 的帖子
嗨 怎么收不到验证码呢 急死我啦 呵呵 不过还是谢谢你推荐的学研论坛 RobustICA工具箱可以介绍一下么?LZ 楼主,能给我发一下RobustICA工具箱吗?急,急,%>_<%跪谢了,邮箱bingu94@126.com keshuang 发表于 2014-5-24 09:31
楼主,能给我发一下RobustICA工具箱吗?急,急,%>_
感觉ICA和PCA有很大的区别啊 chybeyond 发表于 2014-5-24 11:15
hi,能发一下RobustICA工具箱吗?急用!非常感谢!1964370607@qq.com
页:
[1]
2