home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 4.ddi / OPTIM.DI$ / ELIMONE.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  819 b   |  37 lines

  1. function [x, xmask] = elimone(x, xmask, h, w, n, maxbin)
  2. %ELIMONE Eliminates a variable.(Utility function used by DFILDEMO).
  3. %    Eliminates a variable and places it in the discrete set of 
  4. %    variables that are not free to vary.    
  5. xold = x; 
  6. Fbest = -1e16; 
  7. Fix = xmask(1);
  8. ceilflag = 0;
  9. for i = xmask 
  10.     x = xold; 
  11.     x(i)  = ceil(x(i));
  12.     ht=abs(freqz(x(1:n), x(n+1:2*n), w));
  13.     F = max(abs(h-ht));
  14.     if F > Fbest  & roots(x(n+1:2*n)) < 1 
  15.         Fix = i;
  16.         Fbest = F; 
  17.         ceilflag =1; 
  18.     end
  19.  
  20.     x = xold; 
  21.     x(i)  = floor(x(i));
  22.     ht=abs(freqz(x(1:n), x(n+1:2*n), w));
  23.     F = max(abs(h-ht));
  24.     if F < Fbest & roots(x(n+1:2*n)) < 1 
  25.         Fix = i;
  26.         Fbest = F; 
  27.         ceilflag = 0; 
  28.     end
  29. end 
  30. x = xold; 
  31. if ceilflag 
  32.     x(Fix) = ceil(x(Fix)); 
  33. else
  34.     x(Fix) = floor(x(Fix)); 
  35. end
  36. xmask(find(xmask == Fix)) = [];
  37.