myinfomax.m

来自「【共享】很久以前写的一个Infomax算法的程序」· M 代码 · 共 22 行

M
22
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%  out1为出信号,out2解混矩阵,x为观测信号
function [out1,out2]=myinfomax(x);

[row,col] = size(x);
x = x - (mean(x'))'*ones(1,col);
%%%%-----------------------------------------------------------------------
%%%% 参数设置
mu = 0.01; N = col;w0 = rand(row);
%%%%-----------------------------------------------------------------------
w = orth(w0);
dw = w;
for t = 1:N
    u(:,t)=w*x(:,t);
    temp1 = (exp(-u(:,t))-1)./(exp(-u(:,t))+1);
    temp2 = eye(size(w))+(temp1)*u(:,t)';
    dw = temp2*w;
    w = w+mu*dw;  
end
u = w*x;
out1 = u;
out2 = w;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?