home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS1.DI$ / ZP2SYS.M < prev   
Encoding:
Text File  |  1993-03-11  |  1007 b   |  41 lines

  1. % function sys = zp2sys(zeros,poles,gain)
  2. %
  3. %   Similar to the MATLAB ZP2SS command; takes
  4. %   ZEROS, POLES and GAIN data, and converts this into a
  5. %   single-input, single-output SYSTEM matrix.
  6. %
  7. %   See also:  ND2SYS, PCK, PSS2SYS, SYS2PSS, UNPCK, and SYSIC.
  8.  
  9. function sys = zp2sys(zeros,poles,gain)
  10.   if nargin < 2
  11.     disp('usage: sys = zp2sys(zeros,poles,gain)');
  12.     return
  13.   end
  14.   if length(zeros) > length(poles)
  15.     error('more zeros than poles');
  16.     return
  17.   else
  18.     [nr,nc] = size(zeros);
  19.     if nr == 1
  20.       zeros = zeros.';
  21.     elseif min([nr nc]) > 1
  22.        error('too many zeros')
  23.        return
  24.     end
  25.     [nr,nc] = size(poles);
  26.     if nr == 1
  27.       poles = poles.';
  28.     elseif min([nr nc]) > 1
  29.        error('too many poles')
  30.        return
  31.     end
  32.     if nargin ~= 3
  33.       [a,b,c,d] = zp2ss(zeros,poles,1);
  34.     else
  35.       [a,b,c,d] = zp2ss(zeros,poles,gain);
  36.     end
  37.     sys = pck(a,b,c,d);
  38.   end
  39. %
  40. % Copyright MUSYN INC 1991,  All Rights Reserved
  41.