⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ica_kurt.m

📁 这是一个基于峰度的ICA算法
💻 M
字号:
function [w,z,c,kurtos1,kurtos2,kurtos3]=ica_kurt(x)
[vectorSize, numSamples] = size(x);
[V,z]=whiten(x);
w=[];kurtos1=[];kurtos2=[];kurtos3=[];
for p=1:vectorSize;
    w(:,p)=[1;zeros(vectorSize-1,1)];
    deta=1;k=0;
    while deta>=0.01
        if k>30
            break
        end
        wk=sign(kurt((w(:,p)'*z)'))*(z*((z'*w(:,p)).^ 3)) / numSamples - w(:,p);
        su=0;
        k=k+1;
        c(p,1)=k;
        for j=1:p-1
            su=su+wk'*w(:,j)*w(:,j);
        end
        wk=wk-su;%su是对求和sum的简写
        wk=wk/norm(wk,2);
        switch p
            case 1
                w1(:,k)=wk;
                kurtos1(1,k)=kurt((wk'*z)');
            case 2
                w2(:,k)=wk;
                kurtos2(1,k)=kurt((wk'*z)'); 
            case 3
                w3(:,k)=wk;
                 kurtos3(1,k)=kurt((wk'*z)');
         end
        deta=norm(w(:,p)-wk,2);
        w(:,p)=wk;
    end
end

⌨️ 快捷键说明

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