资源简介
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(:j);
end
WP=WP-WPP;
WP=WP/(norm(WP));
if count==Maxcount
fprintf(‘未找到相应的信号‘);
return;
end
end
W(:n)=WP;
end
Z=W‘*Z;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1387 2014-05-29 11:11 ICA\ICA.m
文件 909 2014-05-29 11:09 ICA\TEST_ICA.m
目录 0 2014-05-29 11:20 ICA
----------- --------- ---------- ----- ----
2296 3
- 上一篇:基于形态学的权重自适应图像去噪.zip
- 下一篇:故障分类svm代码
相关资源
-
自制的基于MATLAB Simuli
nk的SVPWM模型 - matlab论文 线性回归问题
- 自相关功率谱的线谱提取
- matlab复杂网络及其零模型性质计算
- 雅可比矩阵matlab代码
- 基于Matlab的大学物理实验模拟
- 可以实时改变占空比的Pulse Generator
- omp算法matlab稀疏表示中用来求最优解
- 修正剑桥模型程序
- 浅水波方程 matlab实现 两种不同方法
- 基于matlab的jpeg编解码程序
- 阵列信号处理的理论和应用 matlab程序
- 高光谱遥感图像FuzzyMeansCluster算法-m
- 指纹识别matlab程序
- matlab实现模糊c均值聚类
- 空间离散点最小二乘直线拟合matlab代
- 读取BMP信息并显示的MATLAB程序
- 各种调制方式的matlab程序
- MATLAB灰度共生矩阵纹理特征提取
- 借助matlab实现粗糙集属性约简算法
- 一个零水印算法的matlab实现
- 滑模变结构控制MATLAB仿真基本理论与
- 基于粒子群算法机器人路径规划matl
- matlab6.5以上版本安装advisor2002补丁
- RVM相关向量机实现代码matlab源码
- MATLAB遗传算法215695
- wave_vorticity.m
- hough变换的MATLAB程序
- 高斯混合模型matlab实现
- 语音识别的MATLAB代码
评论
共有 条评论