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

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

?? designf.m

?? Sparse Signal Representation using Overlapping Frames (matlab toolbox)
?? M
?? 第 1 頁 / 共 2 頁
字號:
               end
            end
            clear Wt Wt1
         end
         EnergyR=R(:)'*R(:);
         er=er+EnergyR;
         %
         if Type~='s'
            TotWWT=TotWWT+WWT;
            TotXWT=TotXWT+XWT;
         end
         SNRtot(m,ItNo+i)=10*log10(ss2/EnergyR);
         if m==Mdat
            SNRtot(Mdat+1,ItNo+i)=10*log10(ex/er);
         end
         %
         if Display
            t1=int2str(i);t1=[blanks(4-length(t1)),t1];
            t2=int2str(m);t2=[blanks(4-length(t2)),t2];
            t3=num2str(SNRtot(m,ItNo+i),4);t3=[blanks(8-length(t3)),t3];
            disp(['Find W, iteration ',t1,'  signal ',t2,' (',Name,') gives SNR =',t3]);
         end
         %   
         if (UpdateFforEachSignal & i>1) | (m==Mdat)
            if Type=='g'
               % update of F must be done by using C and D matrices
               C=zeros(Q,Q);
               for i1=1:size(Ctab,1)
                  ci=Ctab(i1,1);ai=Ctab(i1,2);
                  C(ci)=C(ci)+sign(ai)*TotWWT(abs(ai));
               end
               C=C+C'-diag(diag(C));   % IMPORTANT!               
               D=zeros(Q,1);
               for i1=1:size(Dtab,1)
                  di=Dtab(i1,1);bi=Dtab(i1,2);
                  D(di)=D(di)+sign(bi)*TotXWT(abs(bi));
               end
               F=CalculateFg(C,D,G,10000);            % almost F=inv(C)*D
               [F,Fnormfact]=NormalizeF(F,G);
               % if (i==1); save('temp','C'); end;
            elseif Type=='s'
               % This is the special separable frame
               [N1,K1]=size(Fv);
               [N2,K2]=size(Fh);
               K=K1*K2;N=N1*N2;        % Fg is size NxK
               for i1=1:20
                  Fvhold=[Fv(:);Fh(:)]; 
                  % first update Fv
                  TotXWT=zeros(N1,K1);
                  TotWWT=zeros(K1,K1);
                  for m=1:Mdat
                     t1=int2str(m);t1=['0000',t1];t1=t1((length(t1)-2):length(t1));
                     DataFile=['DataX',t1]; 
                     load(DataFile); % saved in line 260, where X is NxL and W is KxL
                     [n,L]=size(X);  % we need the L variable
                     X=reshape(X,N1,N2*L);
                     W=reshape(full(W),K1,K2,L);
                     Wv=zeros(K1,N2,L);
                     for l=1:L; Wv(:,:,l)=W(:,:,l)*(Fh'); end;
                     Wv=reshape(Wv,K1,N2*L);
                     if 0  % test
                        R=X-Fv*Wv;
                        EnergyR=R(:)'*R(:);
                        disp(['Fv before iteration ',int2str(i1),' image ',Name,...
                              ' has SNR ',num2str(10*log10(ss2/EnergyR))]);
                     end
                     TotXWT=TotXWT+X*Wv';
                     TotWWT=TotWWT+Wv*Wv';
                  end
                  Fv=CalculateF(TotWWT,TotXWT,Fv,400);   % almost Fv=TotXWT*inv(TotWWT)
                  % then update Fh
                  TotXWT=zeros(N2,K2);
                  TotWWT=zeros(K2,K2);
                  for m=1:Mdat
                     t1=int2str(m);t1=['0000',t1];t1=t1((length(t1)-2):length(t1));
                     DataFile=['DataX',t1]; 
                     load(DataFile); % saved in line 260, where X is NxL and W is KxL
                     [n,L]=size(X);  % we need the L variable
                     X=reshape(X,N1,N2,L);
                     W=reshape(full(W),K1,K2,L);
                     Wh=zeros(K2,N1,L);   % actually Wh'
                     for l=1:L; Wh(:,:,l)=(Fv*W(:,:,l))'; end;
                     if 0  % test X (N1xN2xL) Wh(') (K2xN1xL) Fh (N2xK2)
                        R=X; for l=1:L; R(:,:,l)=X(:,:,l)-(Fh*Wh(:,:,l))'; end;
                        EnergyR=R(:)'*R(:);
                        disp(['Fh before iteration ',int2str(i1),' image ',Name,...
                              ' has SNR ',num2str(10*log10(ss2/EnergyR))]);
                     end
                     Wh=reshape(Wh,K2,N1*L);  
                     X=permute(X,[2,1,3]);    % change dim 1 and 2, X(:,:,l)=X(:,:,l)'
                     X=reshape(X,N2,N1*L);
                     TotXWT=TotXWT+X*Wh';
                     TotWWT=TotWWT+Wh*Wh';
                  end
                  Fh=CalculateF(TotWWT,TotXWT,Fh,400);   % almost Fh=TotXWT*inv(TotWWT)
                  change=norm(Fvhold-[Fv(:);Fh(:)]);
                  Fvhold=[Fv(:);Fh(:)];    
                  if Display
                     disp(['done Fv and Fh ',int2str(i1),...
                           ' times, change is ',num2str(change)]);
                  end
                  if (change < 1e-5); break; end;
                  if (change > 1000); 
                     disp(['done Fv and Fh ',int2str(i1),' times, change is ',...
                           num2str(change),' no convergence(?) !!']);
                     break 
                  end;
               end
               [Fh,Fhn]=NormalizeF(Fh);
               [Fv,Fvn]=NormalizeF(Fv);
               Fnormfact=kron(Fhn,Fvn);
               F{1}=Fv;
               F{2}=Fh;
               % the end for Type=='s'
            else         % Type=='b'  or Type=='o'  (if P>1)
               if (Mdim==2) & (P==4) & (L==4096)
                  % this is the special 2D overlapping case handled
                  Fstar=CalculateF(TotWWT,TotXWT,reshape(F,N,K*P),400);
                  F=reshape(Fstar,N,K,P);
                  clear Fstar
                  [F,Fnormfact]=NormalizeF(F);
               else
                  % the normal (block-oriented or 1D overlap) case
                  F=CalculateF(TotWWT,TotXWT,F,400);   % almost F=TotXWT*inv(TotWWT)
                  [F,Fnormfact]=NormalizeF(F);
               end
            end
         end
         if (now>StopTime); break; end;
      end   % for m
      %
      if (m==Mdat)    % this is the normal situation      
         if SNRtot(Mdat+1,ItNo+i)>SNRbest
            SNRbest=SNRtot(Mdat+1,ItNo+i);
            Fbest=F;
         end
         %
         History=char(History0,[Mfile,': ',datestr(now,0),' done ',...
               int2str(i),' iterations.']);
         save(FrameFile,'Class','Type','Mdim','F','SizeF','G','Ctab','Dtab',...
            'Fbest','Savg','Mdat','PreProc','VecSel','InitialF','History','SNRtot');
         %
         if Display
            t1=int2str(i);t1=[blanks(4-length(t1)),t1];
            t3=num2str(SNRtot(Mdat+1,ItNo+i),4);t3=[blanks(8-length(t3)),t3];
            disp([FrameFile,': Iteration ',t1,'  for all signals gives SNR =',t3]);
         end
      end
      %       
   end   % for i
   %catch
  % ErrCode=1;
  %end

return;


%-----------------------------------------------------------------------------------
% F=CalculateF(A,B,F,Ratio)    essentially this is: F=B*inv(A) 
% (problem if A is non-invertible is handled), usually A is ivertible  
% arguments:
%   Ratio  the ratio of largest diagonal element on to small elements in A
%          possible values could be: 400, 1000, 160*K*Savg (Savg=1/16 f.ex) 
function F=CalculateF(A,B,F,Ratio)
[N,K,P]=size(F);     
if P>1       % overlappping frame (and 1D signal)
   % input A is now different submatrices of the Cstar matrix
   % also B is submatrices of the D matrix (XW')
   % the current map from Cp to A is valid for 1D overlap only!!
   Cp=A;    % size should be KxKxP
   A=zeros(K*P,K*P);
   for p1=0:(P-1)
      for p2=0:(P-1)
         if p1>p2
            A((1:K)+p1*K,(1:K)+p2*K)=Cp(:,:,p1-p2+1)';
         else
            A((1:K)+p1*K,(1:K)+p2*K)=Cp(:,:,p2-p1+1);
         end
      end
   end
   B=reshape(B,N,K*P);   
   F=reshape(F,N,K*P);   
end
Ad=diag(A);     % all these elements are non-negative
[Adma,Ima]=max(Ad);
SmallAd=find((Ratio*Ad)<Adma);
if (length(SmallAd) | (rcond(A)<1e-6))  
   if 1
      disp(['Special treatment for ',num2str(length(SmallAd)),' vectors.']);
   end
   Ftemp=F;
   % there may be different ways to deal with singular A matrix
   if length(SmallAd)==0
      % we add values to the diagonal to avoid sigular matrix A
      disp(['Add a little bit to the diagonal of A.']);
      A=A+eye(length(Ad))*Adma/Ratio;
      F=B/A;     % and update F the usual way
   else
      % we use only the larger ones
      Ad=diag(A); 
      LargeAd=find((Ratio*Ad)>=Adma);
      disp(['Update the large ones in a normal way.']);
      F(:,LargeAd)=B(:,LargeAd)/A(LargeAd,LargeAd);     % and update F
      % the rarly used ones are changed in another way 
      [temp,Ima]=sort(-Ad);    % sort Ad with largest first
      if 0
         disp(['Update the small ones by adding factor of other vectors.']);
         for i1=1:length(SmallAd); 
            if SmallAd(i1)<=K
               f=(Adma+Ad(SmallAd(i1))*Ratio*0.98)/(2*Adma);  %  0.5 <= f <= 0.99
               t1=rem(Ima(i1)-1,K)+1;
               for p=0:(P-1)
                  F(:,SmallAd(i1)+p*K)=f*Ftemp(:,SmallAd(i1)+p*K)+(1-f)*Ftemp(:,t1); 
               end
            end
         end 
      else
         disp(['Update the small ones by adding noise to the largest ones.']);
         F(:,SmallAd)=F(:,Ima(1:length(SmallAd)))+randn(size(F,1),length(SmallAd))*0.01;
      end
   end
else
   % this is the standard way to update F
   F=B/A;
end
% now F is NxKP, we should resize F
if P>1; F=reshape(F,N,K,P); end;
%
return

%-----------------------------------------------------------------------------------
% F=CalculateFg(C,D,G,Ratio)    essentially this is: F=inv(C)*D
% (problem if C is non-invertible is handled), usually C is ivertible  
% arguments:
%   Ratio  the ratio of largest diagonal element on to small elements in C
%          possible values could be: 400, 1000, 160*K*Savg (Savg=1/16 f.ex) 
%   C      a QxQ matrix
%   D      a Qx1 vector
%   F      and the result is a Qx1 vector
function F=CalculateFg(C,D,G,Ratio)
d=diag(C);             % all these elements are non-negative
F=zeros(size(D));
[d_max,temp]=max(d);
Small_d=find((Ratio*d)<d_max);
if length(Small_d)
   disp(['Special treatment for ',num2str(length(Small_d)),' variables:']);
   % Small_d
   Large_d=find((Ratio*d)>=d_max);
   F(Large_d)=C(Large_d,Large_d)\D(Large_d);     % and update F
   % give som random values to the other values
   temp=mean(abs(F(Large_d)));
   if 1   % try 'low-pass'
      temp2=filter(fir1(9,0.1+0.4*rand),1,randn(length(Small_d)+10,1));
      F(Small_d)=temp*temp2(11:length(temp2));
   else   % just random
      F(Small_d)=0.5*temp*randn(length(Small_d),1);
   end   
   % save('temp','d');
else
   F=C\D;
end
%
return


% OLD code segments, not active now

% kode for VS, if strcmp(VecSel.Prog1,'BlockVS')
if VecSel.arg4
   if ~mod((i-1), VecSel.arg4)  
      [W,S]=GlobalMP(X,Fg,Savg);  
   end
else
   if (i==1)
      % perhaps this should be done for all i, by using the returned
      % S over and over again, it may become "corrupted"
      S=zeros(1,L);
      t1=0;
      for l=1:L
         t1=t1+N*Savg;
         S(l)=floor(t1);
         t1=t1-S(l);
      end
   end
end
if strcmp(VecSel.arg1,'VSab2')
   if (i==1)
      W=S;
   else
      W=(Fnormfact*ones(1,L)).*W;
   end
   [W,S]=BlockVS(X,Fg,W,VecSel.arg1,VecSel.arg2,VecSel.arg3);   
else
   % disp([Mfile,': start BlockVS, sum(S)=',int2str(sum(S)),'.']);
   [W,S]=BlockVS(X,Fg,S,VecSel.arg1,VecSel.arg2,VecSel.arg3);   
   % disp([Mfile,': ended BlockVS, sum(S)=',int2str(sum(S)),'.']);
end

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18女电影在线观看| 99国产精品久久久久久久久久久 | 午夜影视日本亚洲欧洲精品| 日本不卡视频一二三区| 欧美精品一二三| 蜜臀精品一区二区三区在线观看 | 精品国产乱码久久久久久蜜臀| 日韩在线观看一区二区| 日韩精品专区在线影院重磅| 亚洲午夜免费视频| 337p亚洲精品色噜噜狠狠| 视频精品一区二区| 久久久久久电影| 色吧成人激情小说| 婷婷久久综合九色综合伊人色| 日韩欧美国产三级| 国产精品1区2区3区| 亚洲一区二区三区四区在线| 欧美日韩成人一区| 国产美女av一区二区三区| 日本午夜精品视频在线观看| 久久久99久久| 欧美精品自拍偷拍| 99国产精品久久久久| 国产永久精品大片wwwapp| 狠狠色丁香久久婷婷综| 亚洲九九爱视频| 2023国产精品自拍| 欧美一区二区三区四区在线观看 | 亚洲日本成人在线观看| 久久久不卡网国产精品一区| 99久久99久久久精品齐齐| 精品一区二区在线视频| 婷婷国产v国产偷v亚洲高清| 一区二区三区高清| 一区二区三区小说| 亚洲免费大片在线观看| 久久综合色一综合色88| 日韩你懂的电影在线观看| 欧美日韩国产精品成人| 91国偷自产一区二区三区成为亚洲经典 | 欧美日韩国产综合久久| 在线免费观看日本一区| 欧美亚洲精品一区| 色欧美片视频在线观看| 欧美在线一二三四区| 欧美图片一区二区三区| 欧美体内she精高潮| 欧美日韩视频在线观看一区二区三区| 91久久精品网| 欧美久久久久中文字幕| 欧美一卡二卡在线| 日韩午夜精品电影| 国产亚洲成年网址在线观看| 中文字幕不卡在线| 国产精品视频观看| 亚洲国产精品久久人人爱蜜臀| 日韩和欧美一区二区三区| 久久99蜜桃精品| av欧美精品.com| 欧美亚一区二区| 精品99久久久久久| 亚洲欧美日韩成人高清在线一区| 亚洲成在人线免费| 久久精品国产77777蜜臀| 99re热视频精品| 精品国产伦一区二区三区观看方式 | 国产又粗又猛又爽又黄91精品| 成人午夜电影小说| 日韩一区二区三区av| 欧美高清在线一区二区| 麻豆精品视频在线| 欧美喷水一区二区| 日韩一区日韩二区| 激情综合网天天干| 欧美一a一片一级一片| 久久精品视频在线看| 蜜桃视频第一区免费观看| 91浏览器在线视频| 国产午夜精品久久久久久久| 日本色综合中文字幕| 色999日韩国产欧美一区二区| 精品日韩在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 欧美亚洲一区二区在线观看| 国产精品久久久久久久久晋中| 麻豆精品视频在线观看| 这里只有精品视频在线观看| 一区二区三区四区不卡视频| av中文字幕不卡| 中文字幕中文字幕一区二区 | 顶级嫩模精品视频在线看| 国产午夜亚洲精品不卡| 狠狠色狠狠色合久久伊人| 91精品国产福利| 激情综合网最新| 国产亚洲精品资源在线26u| 国产又黄又大久久| 中文一区二区完整视频在线观看| 国产成人av一区二区三区在线| 久久久精品蜜桃| 成人动漫视频在线| 亚洲高清在线精品| 欧美成人三级在线| 国产在线不卡一卡二卡三卡四卡| 欧美va亚洲va在线观看蝴蝶网| 久久99精品久久久久久| 国产欧美一区二区精品仙草咪| 亚洲欧美色图小说| 久久久国产午夜精品| 不卡一区二区在线| 一二三区精品视频| 欧美二区在线观看| 国产精品一二三区| 中文字幕第一区| 色久优优欧美色久优优| 亚洲成人午夜电影| 欧美日韩精品电影| 婷婷六月综合网| 国产精品美女一区二区三区| 在线亚洲免费视频| 美女视频黄 久久| 日本一二三四高清不卡| 欧美日韩dvd在线观看| 欧美va亚洲va国产综合| 成人高清视频在线| 国产成人日日夜夜| 日本中文字幕一区二区有限公司| 26uuuu精品一区二区| 欧美一区二区三区小说| 日韩美女视频一区二区| 99久久综合精品| 欧美激情在线看| 国内精品嫩模私拍在线| 久久亚洲捆绑美女| 美女视频黄久久| 久久综合视频网| 久久se精品一区二区| 久久色在线观看| 老司机一区二区| 婷婷激情综合网| 国内精品伊人久久久久影院对白| 91麻豆成人久久精品二区三区| 久久你懂得1024| 国产精品影视网| 亚洲精品在线免费观看视频| 久久99在线观看| 欧美成人精品二区三区99精品| 水蜜桃久久夜色精品一区的特点| 精品国产凹凸成av人导航| 国产精品系列在线观看| 亚洲三级在线免费观看| 精品不卡在线视频| 自拍偷在线精品自拍偷无码专区| 免费久久99精品国产| 欧美性受xxxx| 亚洲电影中文字幕在线观看| av在线一区二区三区| 日本视频一区二区| 精品国产成人在线影院| eeuss影院一区二区三区| 午夜精品视频一区| 国产精品免费久久| 精品久久久久久久久久久久包黑料 | 国产精品日日摸夜夜摸av| 成人成人成人在线视频| 在线观看一区日韩| 成人黄色软件下载| 欧美精品一二三区| 国产亚洲精品资源在线26u| 欧美一区二区视频在线观看2022| 久久国产精品99久久久久久老狼 | 日本一区二区三区国色天香| 久久精品国产亚洲高清剧情介绍| 欧洲亚洲国产日韩| 一区二区三区日韩| 日韩亚洲欧美中文三级| 韩日精品视频一区| 亚洲欧美日韩国产综合在线| 欧美亚洲国产bt| 国产成人精品免费| 亚洲亚洲人成综合网络| 久久婷婷综合激情| 天堂一区二区在线免费观看| 国内偷窥港台综合视频在线播放| 中文字幕一区二区三区乱码在线| 暴力调教一区二区三区| 色综合中文字幕国产 | 欧美精品一区二区三区在线| 综合婷婷亚洲小说| 99麻豆久久久国产精品免费| 成人免费高清在线| 亚洲免费高清视频在线| 久久综合视频网| 欧美在线不卡一区| 成人教育av在线| 秋霞午夜av一区二区三区| 亚洲免费伊人电影| 精品国产乱码久久久久久久久| 欧美综合欧美视频|