home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / octa21fb.zip / octave / SCRIPTS.ZIP / scripts.fat / control / tf2zp.m < prev    next >
Text File  |  1999-12-24  |  2KB  |  45 lines

  1. ## Copyright (C) 1996,1998 Auburn University.  All Rights Reserved
  2. ##
  3. ## This file is part of Octave. 
  4. ##
  5. ## Octave is free software; you can redistribute it and/or modify it 
  6. ## under the terms of the GNU General Public License as published by the 
  7. ## Free Software Foundation; either version 2, or (at your option) any 
  8. ## later version. 
  9. ## 
  10. ## Octave is distributed in the hope that it will be useful, but WITHOUT 
  11. ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  12. ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License 
  13. ## for more details.
  14. ## 
  15. ## You should have received a copy of the GNU General Public License 
  16. ## along with Octave; see the file COPYING.  If not, write to the Free 
  17. ## Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. 
  18.  
  19. ## -*- texinfo -*-
  20. ## @deftypefn {Function File } { outputs =} tf2zp ( inputs ) 
  21. ## @format
  22. ##  Converts transfer functions to poles / zeros.
  23. ## 
  24. ##  [zer,pol,k] = tf2zp(num,den) returns the zeros and poles of the SISO system
  25. ##  defined by num/den.  K is a gain associated with the system zeros.
  26. ## 
  27. ## 
  28. ## @end format
  29. ## @end deftypefn
  30.  
  31. function [zer, pol, k] = tf2zp (num, den)
  32. ## Written by A. S. Hodel, etc.
  33.  
  34.   if(nargin == 2)
  35.     if(length(den) > 1)          pol = roots(den);
  36.     else                         pol=[];                   endif
  37.     if(length(num) > 1)         zer = roots(num);
  38.     else                        zer=[];                    endif
  39.   else                    error("Incorrect number of input arguments");
  40.   endif
  41.  
  42.   [a,b,c,d] = tf2ss(num,den);
  43.   [dum,k] = tzero(a,b,c,d);
  44. endfunction
  45.