home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / MassoneA / pricostr.m < prev    next >
Text File  |  2003-11-04  |  687b  |  40 lines

  1. function temp=pricostr(Fin,Im,Gim,Nval,alfa)
  2.  
  3. %%%%%%%%%% temp verra` passata al main come ris
  4.  
  5. n=length(Im);
  6.  
  7. auxim=1./alfa*Im;
  8. auxg=1./alfa*Gim;
  9. tau=1./((max(abs(auxim)))^2)
  10.  
  11. for i=1:n,
  12.    primo(i)=tau*(-1)^(i-1)*conj(auxim(i))*auxg(i);
  13.    secondo(i)=1.-tau*(abs(auxim(i)))^2;
  14. end
  15.  
  16. it=0;
  17. while it < Nval,
  18.    for i=1:n,
  19.       aux(i)=primo(i)+secondo(i)*Fin(i);
  20.    end
  21.    aux1=ifft(aux);
  22.    %%%%%% Positivity constraint
  23.    
  24.    a=real(aux1);
  25.    for i=1:n,
  26.       if a(i) < 0 
  27.          a(i)=0.;
  28.       end   
  29.    end
  30.    aux1=complex(a);
  31.    aux1=alfa*aux1;
  32.    
  33.    if it == Nval-1
  34.       temp=aux1;
  35.    end
  36.       
  37.    Fin=1./alfa*fft(aux1);
  38.    it=it+1;
  39.       
  40. end