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

波变换

开发平台:

Matlab

  1. function P = plus(A,B)
  2. %PLUS Laurent polynomial addition.
  3. %   P = PLUS(A,B) returns a Laurent polynomial which is
  4. %   the sum of the two Laurent polynomials A and B.
  5. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 19-Mar-2001.
  6. %   Last Revision: 13-Jun-2003.
  7. %   Copyright 1995-2004 The MathWorks, Inc.
  8. %   $Revision: 1.1.6.2 $  $Date: 2004/04/13 00:39:02 $
  9. if      isnumeric(A) && length(A)==1 , A = laurpoly(A,0);
  10. elseif  isnumeric(B) && length(B)==1 , B = laurpoly(B,0);
  11. end
  12. dA = A.maxDEG;
  13. dB = B.maxDEG;
  14. dP = max([dA,dB]);
  15. cA = A.coefs; lA = length(cA);
  16. cB = B.coefs; lB = length(cB);
  17. nbCoefs = dP - min([dA-lA+1,dB-lB+1])+1;
  18. cP = zeros(1,nbCoefs);
  19. idxBeg = 1+dP-dA; idxEnd = idxBeg +lA-1;
  20. cP(idxBeg:idxEnd) = cA;
  21. idxBeg = 1+dP-dB; idxEnd = idxBeg +lB-1;
  22. cP(idxBeg:idxEnd) = cP(idxBeg:idxEnd)+cB;
  23. [cP,dP] = reduce(cP,dP);
  24. P = laurpoly(cP,dP);