资源简介
一个实用的ICA的matlab程序,非常好用,不错的
代码片段和文件信息
function Z=ICA(X)
%-----------去均值---------
[MT] = size(X); %获取输入矩阵的行/列数,行数为观测数据的数目,列数为采样点数
average= mean(X‘)‘; %均值
for i=1:M
X(i:)=X(i:)-average(i)*ones(1T);
end
%---------白化/球化------
Cx = cov(X‘1); %计算协方差矩阵Cx
[eigvectoreigvalue] = eig(Cx); %计算Cx的特征值和特征向量
W=eigvalue^(-1/2)*eigvector‘; %白化矩阵
Z=W*X; %正交矩阵
%----------迭代-------
Maxcount=10000; %最大迭代次数
Critical=0.00001; %判断是否收敛
m=M; %需要估计的分量的个数
W=rand(m);
for n=1:m
WP=W(:n); %初始权矢量(任意)
% Y=WP‘*Z;
% G=Y.^3;%G为非线性函数,可取y^3等
% GG=3*Y.^2; %G的导数
count=0;
LastWP=zeros(m1);
W(:n)=W(:n)/norm(W(:n));
while abs(WP-LastWP)&abs(WP+LastWP)>Critical
count=count+1; %迭代次数
LastWP=WP; %上次迭代的值
% WP=1/T*Z*((LastWP‘*Z).^3)‘-3*LastWP;
for i=1:m
WP(i)=mean(Z(i:).*(tanh((LastWP)‘*Z)))-(mean(1-(tanh((LastWP))‘*Z).^2)).*LastWP(i);
end
WPP=zeros(m1);
for j=1:n-1
WPP=WPP+(WP‘*W(:j))*W(
- 上一篇:PHD滤波的MATLAB实现
- 下一篇:任意十进制数转换为二进制
相关资源
- optical_flow 光流法 matlab 实现程序
- 数模9个基本模型
- MIMO-OFDM+WIRELESS+COMMUNICATIONS+WITH+MATLAB
- Mathematica完美教程 - 从入门到精通
- Linear Algebra with Applications 9th ed - Stev
- FASTICA盲源信号分离代码Matlab
- Multirate Filtering for Digital Signal Process
- Matlab coding for PAM4 basic transmission
-
Introduction to Simuli
nk with Engineering A - 信号处理滤波器设计——基于MATLAB和
- OPTICAL SCANNING HOLOGRAPHY WITH MATLAB
- Practical Finite ElementModeling in Earth Scie
- Fusiello极线校正_A compact algorithm for r
- Numerical Methods Using MATLAB_Mathews_4th(英
-
MATLAB/Simuli
nk for Digital Communication - FAM和SSCA算法的matlab源程序-detection a
- Biosignal and biomedical image processing matl
- 盲信号的语音分离MATLAB程序
- 数值方法(MATLAB版)第四版英文文字
- optisystem-matlab使用方法
- 小波工具箱
- 光流计算
- 信号处理滤波器设计-基于MATLAB和Mat
- Matlab-An Introduction with applications习题答
- Numerical Methods for Chemical Engineering App
- 统计与自适应信号处理课本和答案
- Numerical Simulation of Optical Wave Propagati
- MATLAB数值积分方法在电气工程中的应
- Designing Data Intensive Applications.mobi
- simulation_and_software_radio_for_mobile_commu
评论
共有 条评论