laurpoly.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:2k
源码类别:

波变换

开发平台:

Matlab

  1. function P = laurpoly(coefs,varargin)
  2. %LAURPOLY Constructor for the class LAURPOLY (Laurent Polynomial).
  3. %   P = LAURPOLY(C,d) returns a Laurent polynomial object.
  4. %   C is a vector whose elements are the coefficients
  5. %   of the polynomial P and d is the highest degree of 
  6. %   the monomials of P.
  7. %
  8. %   If m is the length of the vector C, P represents 
  9. %   the following Laurent polynomial:
  10. %     P(z) = C(1)*z^d + C(2)*z^(d-1) + ... + C(m)*z^(d-m+1)
  11. %
  12. %   P = LAURPOLY(C,'dmin',d) allows to specify the lowest degree   
  13. %   instead of the highest degree of monomials of P. The
  14. %   corresponding output P represents the following Laurent
  15. %   polynomial:
  16. %     P(z) = C(1)*z^(d+m-1) + ... + C(m-1)*z^(d+1) + C(m)*z^d
  17. %
  18. %   P = LAURPOLY(C,'dmax',d) is equivalent to P = LAURPOLY(C,d).
  19. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 19-Mar-2001.
  20. %   Last Revision: 09-Jul-2003.
  21. %   Copyright 1995-2004 The MathWorks, Inc.
  22. %   $Revision: 1.1.6.2 $  $Date: 2004/04/13 00:38:48 $
  23. %===============================================
  24. % Class LAURPOLY (Parent objects: )
  25. % Fields:
  26. %   maxDEG - maximal degree of monomials
  27. %   coefs  - Row Vector of coefficients 
  28. %===============================================
  29. % Check arguments.
  30. %-----------------
  31. nbIn = nargin;
  32. if nbIn > 3
  33.   error('Too many input arguments.');
  34. end
  35. switch nargin
  36. case 0 , maxDEG = 0; coefs = 1;
  37. case 1 , maxDEG = 0;
  38.     case 2 , maxDEG = varargin{1};
  39.     case 3 ,
  40.         degATTR = lower(varargin{1});
  41.         switch degATTR
  42.             case {'dmax','maxdeg'} , maxDEG = varargin{2};
  43.             case 'dmin' , maxDEG = varargin{2}+length(coefs)-1;
  44.             otherwise
  45.                 error('Invalid argument value.')
  46.         end
  47. end
  48. % Built object.
  49. %--------------
  50. [coefs,maxDEG] = reduce(coefs(:)',maxDEG);
  51. P = struct('maxDEG',maxDEG,'coefs',coefs);
  52. P = class(P,'laurpoly');