亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? comfac.m

?? 本人自己寫的一個(gè)關(guān)于陣列信號(hào)處理的算法程序。
?? M
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
function [A,B,C,FIT,IT]=comfac(X,Fac,Options,DoComp,CompIt,Init);

%COMFAC Algorithm for fitting the complex-valued PARAFAC model
% 
% See e.g. Rasmus Bro, N. D. Sidiropoulos, and G. B. Giannakis. A Fast 
%          Least Squares Algorithm for Separating Trilinear Mixtures. 
%          Proc. ICA99 ?Int. Workshop on Independent Component Analysis 
%          and Blind Signal Separation. Jan. 11?5, Aussois, France:289-294, 1999.
%
%	        N. D. Sidiropoulos, G. B. Giannakis, and Rasmus Bro. Blind PARAFAC 
%          Receivers for DS-CDMA Systems. IEEE Transactions on Signal Processing March, 2000.
%
% The algorithm works by first compressing the data using a Tucker3 models. Subsequently the 
% PARAFAC model is fitted to the compressed array, either initialized with DTLD (~ESPRIT) or 
% with PARAFAC-ALS. The solution is de-compressed to the original space, and a few safe-guard
% PARAFAC-ALS steps are performed. Further optimization of this algorithm is possible, e.g.
% if the data are very large, if the profiles are very correlated or if the noise is huge. This
% has not been pursued here, in order to have a generally applicable algorithm
% 
% INPUT
% X       : I x J x K data three-way array 
% Fac     : Number of factors in PARAFAC model
%
% OPTIONAL INPUTS
% Options : A 1x2 vector
% (1)     : Mode to compress to dimension two in
%           DTLD if smallest mode-dimension is more
%           than two. Default is the smallest dimension
% (2)     : Number of extra components in Tucker3
%           compression model. Default if no given 
%           is one
% 
% ADVANCED OPTIONS
% DoComp  : 0      => No compression
%           1      => Compression
% CompIt  : CompIt => Max number of iterations in Compression
% Init    : 0      => GRAM/DTLD
%           1      => Ten x PARAFAC with 10 iterations started from RandOrth
%
% 
% I/O
% [A,B,C,FIT,IT]=comfac(X,Fac,Options,DoComp,CompIt,Init);
% 
% Or short : [A,B,C]=comfac(X,Fac);
crit = 1e-13; % Criterion used for fitting with Alternating LS algorithm

if length(size(X))~=3
   error(' The data must be held in a three-way array')
end
   
DimX = size(X);
X = reshape(X,DimX(1),prod(DimX(2:3)));

dbg=1;

DeafultExtraCompInTucker=2;
if exist('DoComp')~=1|isempty(DoComp)
   DoComp = 1;%%運(yùn)行
end
if exist('CompIt')~=1|isempty(CompIt)
   CompIt = 3;%%運(yùn)行
end
if exist('Init')~=1|isempty(Init)
   Init   = 1;
end
if length(find(DimX>Fac))<2 % GRAM/ESPRIT cannot be used
   ReplaceTLDwithRand = 1;
else
   ReplaceTLDwithRand = 0;
end   

if dbg
%   home
   %disp(' ')
   %disp([' Fitting ',num2str(Fac),'-comp. PARAFAC model using COMFAC ...'])
   %disp([' Array size: ',num2str(DimX(1)),' x ',num2str(DimX(2)),' x ',num2str(DimX(3))])
end

if nargin<3|isempty(Options)
  Options=[0 DeafultExtraCompInTucker];
end
if Options(1)==0
  [out,CompToTwo] = min(DimX);
else
  CompToTwo = Options(1);
end
if length(Options)<2
  Options(2)=DeafultExtraCompInTucker; % Number of additional components in compression as compared to model
end
W = Options(2)+Fac;%%% W=5+2=7
W = [W W W];
for i=1:3
  if W(i)>DimX(i)
    W(i)=DimX(i);
  end
end  %  W 4 7 7

% Display things
if DoComp & dbg
  %disp([' Array compressed to size ',num2str(W(1)),' x ',num2str(W(2)),' x ',num2str(W(3))])
end

% Compression

if DoComp  %DoComp=1
   [Ut,Vt,Zt,Gt,fit]=tucker3(X,DimX,W,CompIt);
else
   Gt = X;
   W = DimX;  
   Ut=speye(DimX(1));
   Vt=speye(DimX(2));
   Zt=speye(DimX(3));
end

% Initialize PARAFAC using DTLD
if Init == 0
   if ~ReplaceTLDwithRand
      disp(' Initializing using direct trilinear decomposition')
      [Adtld,Bdtld,Cdtld]=cdtld(Gt,W,Fac,CompToTwo);
   else
      disp(' Initializing using random values because tld cannot be used due to the sizes')
      [Adtld,Bdtld,Cdtld,fit]=cparafac(Gt,W,Fac,crit,0,0,0,10);
   end
   
elseif Init == 1%%% 運(yùn)行
  % disp(' Initializing using best of 11 initial small runs')
  
   if ~ReplaceTLDwithRand %ReplaceTLDwithRand=0  運(yùn)行
      [Adtld,Bdtld,Cdtld]=cdtld(Gt,W,Fac,CompToTwo);% DIRECT TRILINEAR DECOMPOSITION 
      %disp('張小飛');
  else
      [Adtld,Bdtld,Cdtld,fit]=cparafac(Gt,W,Fac,crit,0,0,0,10);
   end
  fitout=sum(sum(abs(  Gt-Adtld*ppp(Bdtld,Cdtld).').^2));
  for rep=1:10
     [adtld,bdtld,cdtldvar,fit]=cparafac(Gt,W,Fac,crit,0,0,0,10);
       %disp('張小飛張小飛');
     if fit<fitout %%%%% 沒(méi)有運(yùn)行
       Adtld=adtld;Bdtld=bdtld;Cdtld=cdtldvar;fitout=fit;%%%選擇較好性能
   end
  end
end

% Fit PARAFAC model in compressed space
if DoComp
  %disp(' Fitting PARAFAC in compressed space')
  [Acomp,Bcomp,Ccomp,fit2,it2]=cparafac(Gt,W,Fac,crit,Adtld,Bdtld,Cdtld);
  % Decompress to original domain
  %disp(' Transforming interim solution to original space')
  Ainit = Ut*Acomp;
  Binit = Vt*Bcomp;
  Cinit = Zt*Ccomp;
else
  Ainit = Adtld;
  Binit = Bdtld;
  Cinit = Cdtld;
  it2=0;
  fit2=NaN;
end

% Fit PARAFAC model in raw space
%disp(' Fitting PARAFAC in original space')
[A,B,C,FIT,IT]=cparafac(X,DimX,Fac,crit,Ainit,Binit,Cinit);
%disp(' Algorithm converged')


function [A,B,C,fit0,it]=cparafac(X,DimX,Fac,crit,A,B,C,maxit,DoLineSearch);

% Complex PARAFAC-ALS
% Fits the PARAFAC model Xk = A*Dk*B.' + E
% where Dk is a diagonal matrix holding the k'th
% row of C.
%
% Uses on-the-fly projection-compression to speed up 
% the computations. This requires that the first mode 
% is the largest to be effective
% 
% INPUT
% X       : Data
% DimX    : Dimension of X
% Fac     : Number of factors
% OPTIONAL INPUT
% crit    : Convergence criterion (default 1e-6)
% A,B,C   : Initial parameter values
%
% I/O
% [A,B,C,fit,it]=parafac(X,DimX,Fac,crit,A,B,C);
%
% Copyright 1998
% Rasmus Bro
% KVL, Denmark, rb@kvl.dk


% Initialization
if nargin<8
  maxit   = 250;      % Maximal number of iterations
end
showfit = pi;         % Show fit every 'showfit'th iteration (set to pi to avoid)

if nargin<4
  crit=1e-10;
end

if crit==0
  crit=1e-6;
end

I = DimX(1);
J = DimX(2);
K = DimX(3);

InitWithRandom=0;
if nargin<7
   InitWithRandom=1;
end
if nargin>6 & size(A,1)~=I
  InitWithRandom=1;
end

if InitWithRandom

  if I<Fac
    A = rand(I,Fac);
  else
    A = orth(rand(I,Fac));
  end
  if J<Fac
    B = rand(J,Fac);
  else
    B = orth(rand(J,Fac));
  end
  if K<Fac
    C = rand(K,Fac);
  else
    C = orth(rand(K,Fac));
  end
end

SumSqX = sum(sum(abs(X).^2));
fit    = sum(sum(abs(X-A*ppp(B,C).')));%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%fit
fit0   = fit;
fitold = 2*fit;
it     = 0;
Delta  = 5;

while abs((fit-fitold)/fitold)>crit & it<maxit & fit>10*eps
   it=it+1;
   fitold=fit;

   % Do line-search
   if rem(it+2,2)==-1
      [A,B,C,Delta]=linesrch(X,DimX,A,B,C,Ao,Bo,Co,Delta);
   end

   Ao=A;Bo=B;Co=C;
   % Update A
   Xbc=0;

   for k=1:K
     Xbc = Xbc + X(:,(k-1)*J+1:k*J)*conj(B*diag(C(k,:)));
   end
   A = Xbc*inv((B'*B).*(C'*C)).';

   % Project X down on orth(A) - saves time if first mode is large
   [Qa,Ra]=qr(A,0);
   x=Qa'*X;

   % Update B
   Xac=0;
   for k=1:K
     Xac = Xac + x(:,(k-1)*J+1:k*J).'*conj(Ra*diag(C(k,:)));
   end
   B = Xac*inv((Ra'*Ra).*(C'*C)).';
   
   % Update C
   ab=inv((Ra'*Ra).*(B'*B));
   for k=1:K
     C(k,:) = (ab*diag(Ra'* x(:,(k-1)*J+1:k*J)*conj(B))).';
   end

   % Calculating fit. Using orthogonalization instead
   %fit=0;for k=1:K,residual=X(:,(k-1)*J+1:k*J)-A*diag(C(k,:))*B.';fit=fit+sum(sum((abs(residual).^2)));end
   [Qb,Rb]=qr(B,0);
   [Z,Rc]=qr(C,0);
   fit=SumSqX-sum(sum(abs(Ra*ppp(Rb,Rc).').^2));%%%%%%%
   fit0(it)=fit;
   if rem(it,showfit)==0
     fprintf(' %12.10f       %g        %3.4f \n',fit,it,100*(1-fit/fit0));
   end
end

%fprintf(' %12.10f       %g        %3.4f \n',fit,it,100*(1-fit/fit0));


function [A,B,C]=cgram(X1,X2,F);

% cGRAM - Complex Generalized Rank Annihilation Method
% Fits the PARAFAC model directly for the case of a 
% three-way array with only two frontal slabs.
% For noise-free trilinear data the algorithm is exact.
% 
% INPUTS:
% X1    : I x J matrix of data from observation one
% X2    : I x J matrix of data from observation two
% Fac   : Number of factors
% 
% OUTPUTS:
% A     : Components in the row mode (I x F)
% B     : Components in the column mode (J x F)
% C     : Weights for each slab; C(1,:) are the component 
%         weights for first slab such that the approximation
%         of X1 is equivalent to X1 = A*diag(C(1,:))*B.'
%
% Copyright 1998
% Rasmus Bro, KVL, DK
% rb@kvl.dk


  DontShowOutput = 1;

  [U,s,V]=svd(X1+X2);
  U=U(:,1:F);
  V=V(:,1:F);

%  S2=S1*b
%  b*k = k*l =>
%  S1*b*k = S1*k*l =>
%  S2*k = S1*k*l =>
%  inv(S1*k)*S2*k = l = diagonal

  S1=U'*X1*V;
  S2=U'*X2*V;
  [v,d]=eig(S1\S2);

  ddd=d;
  d=diag(d);out=abs(d)>eps;v=v(:,out);d=d(out); %only significant terms
  [dd,out]=sort(abs(d));out=flipud(out);
  d=d(out);d=diag(d);v(:,out);v=v/norm(v);% sort them

  A = U*S1*v;
  B=V/v';
  B=(B.')';
  C=(pinv(ppp(A,B))*[X1(:) X2(:)]).';

  if ~DontShowOutput
    fit = sum(sum(abs([X1 X2] - [A*diag(C(1,:))*B.' A*diag(C(2,:))*B.']).^2));
    disp([' GRAM fitted data with a sum-squared error of ',num2str(fit)])
 end
 
 
 
 function [A,B,C,fit]=cdtld(X,DimX,F,SmallMode);

% DIRECT TRILINEAR DECOMPOSITION
% calculate the parameters of the three-
% way PARAFAC model directly. The model
% is not the least-squares but will be close
% to for precise data with little model-error
%
% This implementation works with an optimal
% compression using least-squares Tucker3 fitting
% to generate two pseudo-observation matrices that
% maximally span the variation of all samples. per
% default the mode of smallest dimension is compressed
% to two samples, while the remaining modes are 
% compressed to dimension F.
% 
% For large arrays it is fastest to have the smallest
% dimension in the first mode
%
% INPUT
% [A,B,C]=dtld(X,DimX,F);
% X is the I x J x K array unfolded to an I x JK matrix
% DimX = [I J K]
% F is the number of factors to fit
% An optional parameter may be given to enforce which
% mode is to be compressed to dimension two
%
% Copyright 1998
% Rasmus Bro, KVL
% rb@kvl.dk


DontShowOutput = 1;

%rearrange X so smallest dimension is in first mode
if nargin<4
  [a,SmallMode] = min(DimX);
  X = nshape(X,DimX,SmallMode);
  DimX = DimX([SmallMode 1:SmallMode-1 SmallMode+1:3]);
  Fac   = [2 F F];
else
  X = nshape(X,DimX,SmallMode);
  DimX = DimX([SmallMode 1:SmallMode-1 SmallMode+1:3]);
  Fac   = [2 F F];
end

if DimX(1) < 2
  error(' The smallest dimension must be > 1')
end
if any(DimX(2:3)-Fac(2:3)<0)
  error(' This algorithm requires that two modes are of dimension not less the number of components')
end

% Compress data into a 2 x F x F array. Only 10 iterations are used since exact SL fit is insignificant; only obtaining good truncated bases is important
[At,Bt,Ct,G]=tucker3(X,DimX,Fac,10);

% Fit GRAM to compressed data
[Bg,Cg,Ag]=cgram(reshape(G(1,:),F,F),reshape(G(2,:),F,F),F);

% De-compress data and find A
BB = Bt*Bg;
CC = Ct*Cg;
AA = X*pinv(ppp(BB,CC)).';

if SmallMode == 1
  A=AA;
  B=BB;
  C=CC;
elseif SmallMode == 2 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国内精品野花午夜精品| 在线视频中文字幕一区二区| 一区二区三区四区高清精品免费观看 | 国产三级一区二区三区| 色噜噜狠狠色综合中国| 国产伦理精品不卡| 视频一区在线播放| 亚洲黄色小视频| 久久久美女毛片| 欧美二区在线观看| 色噜噜狠狠成人网p站| 国产成人一级电影| 看国产成人h片视频| 亚洲午夜精品在线| 亚洲天堂av一区| 欧美激情综合五月色丁香小说| 91精品久久久久久久99蜜桃| 91麻豆国产精品久久| 国产精品一区2区| 免费成人av在线| 亚洲国产综合91精品麻豆| 亚洲欧美在线aaa| 日本一区二区三区电影| 欧美精品一区二区三区久久久 | 在线播放国产精品二区一二区四区 | 日韩激情一区二区| 亚洲视频一二三区| 国产免费成人在线视频| 久久久亚洲精品石原莉奈| 日韩欧美黄色影院| 精品视频在线看| 欧洲精品视频在线观看| 91传媒视频在线播放| 色综合久久久久久久久| 91香蕉视频mp4| 99麻豆久久久国产精品免费| 粉嫩在线一区二区三区视频| 国产精一品亚洲二区在线视频| 久久精品国产亚洲高清剧情介绍| 亚洲国产一区二区在线播放| 亚洲综合丝袜美腿| 亚洲成a人v欧美综合天堂| 亚洲香蕉伊在人在线观| 午夜久久电影网| 丝袜a∨在线一区二区三区不卡| 亚洲国产欧美在线| 午夜激情综合网| 久久精品国产亚洲a| 国内成人精品2018免费看| 国产精品一区二区久激情瑜伽| 国产一区二区剧情av在线| 国产河南妇女毛片精品久久久 | 在线视频一区二区三| 色av成人天堂桃色av| 欧美性受极品xxxx喷水| 欧美日韩成人一区二区| 日韩欧美一卡二卡| 久久美女艺术照精彩视频福利播放| 久久久久一区二区三区四区| 欧美国产精品一区| 一片黄亚洲嫩模| 日韩中文字幕亚洲一区二区va在线 | 成人av片在线观看| 91美女福利视频| 91麻豆精品国产91久久久久久 | 亚洲女同女同女同女同女同69| 国产欧美精品区一区二区三区| 亚洲精选在线视频| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美一级精品大片| 日韩网站在线看片你懂的| 久久久久高清精品| 亚洲精品精品亚洲| 日本不卡123| 成人黄色软件下载| 精品污污网站免费看| 精品粉嫩超白一线天av| 亚洲欧洲精品一区二区精品久久久| 夜夜夜精品看看| 狠狠狠色丁香婷婷综合久久五月| 成人av免费网站| 欧美日韩久久一区二区| www久久久久| 一区二区三区蜜桃| 欧美日韩一区二区三区在线| 欧美精品第1页| av在线不卡观看免费观看| 狠狠狠色丁香婷婷综合久久五月| 懂色av一区二区三区免费看| 国产精品第四页| 夜夜嗨av一区二区三区网页| 国产一区欧美二区| 欧美调教femdomvk| 国产网站一区二区三区| 亚洲成人av一区二区三区| 国产夫妻精品视频| 欧美日韩在线三级| 国产精品麻豆网站| 蜜臀精品久久久久久蜜臀| 91免费观看视频在线| 精品久久久久久久久久久久久久久| 亚洲免费电影在线| 国产精品综合av一区二区国产馆| 欧美亚州韩日在线看免费版国语版| 久久精品亚洲一区二区三区浴池| 视频一区二区国产| 99久久精品免费| 久久九九久久九九| 久久精品国产第一区二区三区| 在线观看av一区| 亚洲欧美综合色| 日本成人中文字幕在线视频| 91精选在线观看| 亚洲少妇中出一区| 国产真实精品久久二三区| 欧美日韩免费观看一区三区| 日韩伦理av电影| 国产成人av一区二区三区在线观看| 欧美一区二区美女| 亚洲午夜久久久久| 91美女在线观看| 国产精品久久久久久久浪潮网站 | 亚洲综合一区二区精品导航| 波多野结衣的一区二区三区| 日韩欧美资源站| 同产精品九九九| 欧美日韩在线直播| 亚洲国产视频一区| 在线观看亚洲精品| 一区在线观看视频| 日韩你懂的在线播放| 日韩激情视频在线观看| 欧美美女视频在线观看| 亚洲3atv精品一区二区三区| 欧洲精品在线观看| 亚洲第一会所有码转帖| 欧美日韩国产精品成人| 丝袜国产日韩另类美女| 9191国产精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美精品色综合| 蜜桃传媒麻豆第一区在线观看| 欧美一卡二卡三卡四卡| 美国十次了思思久久精品导航| 欧美一级片在线看| 日本va欧美va欧美va精品| 欧美一区二区三区爱爱| 欧美a级一区二区| 精品国产三级电影在线观看| 国产精品一二三在| 国产精品天天看| 欧洲一区二区三区在线| 五月综合激情网| 精品蜜桃在线看| 成人精品小蝌蚪| 亚洲精品乱码久久久久久黑人| 欧美日韩午夜精品| 久久狠狠亚洲综合| 国产日产欧美一区二区视频| av亚洲精华国产精华精| 亚洲乱码国产乱码精品精小说| 欧美日韩另类国产亚洲欧美一级| 免费高清成人在线| 久久久.com| 色哟哟国产精品| 美女视频第一区二区三区免费观看网站| 欧美不卡一区二区三区四区| 成人一区二区视频| 亚洲一区二区三区在线| 日韩天堂在线观看| 成人精品高清在线| 亚洲最新视频在线播放| 欧美成人a视频| 91美女视频网站| 精品在线免费视频| 亚洲天堂久久久久久久| 欧美一区二区成人| 北条麻妃国产九九精品视频| 亚洲一区视频在线观看视频| 精品国产一区二区三区av性色| 粉嫩aⅴ一区二区三区四区| 亚洲一区二区三区三| 337p粉嫩大胆噜噜噜噜噜91av| 97久久超碰精品国产| 欧美aⅴ一区二区三区视频| 国产精品卡一卡二| 欧美一区二区视频在线观看| 成人免费福利片| 麻豆成人在线观看| 伊人夜夜躁av伊人久久| 精品国产sm最大网站免费看| 91麻豆国产精品久久| 精品亚洲国内自在自线福利| 亚洲综合一区二区三区| 日本一区二区三级电影在线观看| 欧美色视频一区| www.日韩精品| 国产一区二区在线观看视频| 亚洲国产一区二区视频| 中文字幕在线观看不卡|