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

📄 cubica34a.m

📁 一种基于累计量的独立分量分析改进算法
💻 M
字号:
function [R,y]=cubica34a(x)
  verbose=0;
  [n,p]=size(x);
  Q=eye(n);
  R=eye(n);
%---------------中心化和白化-------------------------
  if nargin==1
       fprintf('\n中心化和白化!\n\n');
  end 
  x=x-mean(x,2)*ones(1,p);
  [F,d]=eig(x*x'/p);
  v=diag(real(diag(d).^(-0.5)))*F';
 x=v*x;
  if nargin==1
      fprintf('变换\n');
  end
%-------------------开始变化迭代---------------------------
 for t=1:(1+round(sqrt(n)))
   for i=1:n-1
           for j=i+1:n
           %------计算累计量-----------
             u=x([i j],:);
             sq=u.^2;
             sq1=sq(1,:);
             sq2=sq(2,:);
             u1=u(1,:)';
             u2=u(2,:)';
             c111=sq1*u1/p;
             c112=sq1*u2/p;
             c122=sq2*u1/p;
             c222=sq2*u2/p;
             c1111=sq1*sq1'/p-3;
             c1112=(sq1.*u1')*u2/p;
             c1122=sq1*sq2'/p-1;
             c1222=(sq2.*u2')*u1/p;
             c2222=sq2*sq2'/p-3;
             %----------系数----------------
             c_34=(1/8)*(1/6)*(3*(c111^2+c222^2)-9*(c112^2+c122^2)-6*(c111*c122+c112*c222));
             c_44=(1/24)*(1/16)*(7*(c1111^2+c2222^2)-16*(c1112^2+c1222^2)-12*(c1111*c1122+c1122*c2222)-36*c1122^2-32*c1122*c1222-2*c1111*c2222);
             s_34=(1/4)*(1/6)*(6*(c111*c112-c122*c222));
             s_44=(1/24)*(1/32)*(56*(c1111*c1112-c1222*c2222)+48*(c1112*c1122-c1122*c1222)+8*(c1111*c1222-c1112*c2222));
             %计算变换角
               phi_max=(1/4)*atan2( s_34+s_44,c_34+c_44);
             %-----------givens变换矩阵Qij--------------------
             Qij=eye(n);
             c=cos(phi_max);
             s=sin(phi_max);
             Qij(i,j)=s;
             Qij(j,i)=-s;
            Qij(i,i)=c;
            Qij(j,j)=c;
             Q=Qij*Q;
             %----------变换估计信号y-----------------------
             y([i j],:)=[c s;-s c]*u;
           end 
   end
 end
R=Q*v;
% y=R*x;
 
              

⌨️ 快捷键说明

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