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

  1. ## Copyright (C) 1996 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 } {[@var{zer}, @var{pol}, @var{k}, @var{tsam}, @var{inname}, @var{outname}] =} sys2zp (@var{sys})
  21. ## Extract zero/pole/leading coefficient information from a system data
  22. ## structure
  23. ## 
  24. ## See @ref{zp2sys} for parameter descriptions.
  25. ## 
  26. ## @strong{Example}
  27. ## @example
  28. ## octave:1> sys=ss2sys([1 -2; -1.1,-2.1],[0;1],[1 1]);
  29. ## octave:2> [zer,pol,k] = sys2zp(sys)
  30. ## zer = 3.0000
  31. ## pol =
  32. ##   -2.6953
  33. ##    1.5953
  34. ## k = 1
  35. ## @end example
  36. ## @end deftypefn
  37.  
  38. function [zer, pol, k, tsam, inname, outname] = sys2zp (sys)
  39.  
  40.   ## Created by John Ingram July 15 1996
  41.  
  42.   if(nargin != 1)
  43.     usage("[zer,pol,k,tsam,inname,outname] = sys2zp(sys)");
  44.   elseif( !is_struct(sys))
  45.     error("syscnct: sys must be in system data structure form")
  46.   elseif (! is_siso(sys) )
  47.     [n, nz, m, p] = sysdimen(sys);
  48.     error(["system is not SISO (",num2str(m)," inputs, ...
  49.     ", num2str(p)," outputs"]);
  50.   endif
  51.  
  52.   ## update zero-pole form
  53.   sys = sysupdat(sys,"zp");
  54.  
  55.   zer = sys.zer;
  56.   pol = sys.pol;
  57.   k = sys.k;
  58.   tsam    = sysgetts(sys);
  59.   inname  = sysgetsg(sys,"in");
  60.   outname = sysgetsg(sys,"out");
  61.  
  62. endfunction
  63.  
  64.  
  65.