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

波变换

开发平台:

Matlab

  1. function [MatFACT,PM,OkFACT] = ppmfact(H,G,flagCONTROL)
  2. %PPMFACT Polyphase matrix factorizations.
  3. %    [MATFACT,PM] = PPMFACT(H,G) returns the polyphase matrix 
  4. %    PM associated with two Laurent polynomials H and G and
  5. %    the factorizations MATFACT of PM.
  6. %    This polyphase matrix (see PPM) is such that:
  7. %  
  8. %                 | even(H(z)) even(G(z)) |
  9. %         PM(z) = |                       |
  10. %                 | odd(H(z))   odd(G(z)) |
  11. %
  12. %    MATFACT is a cell array such that each cell contains
  13. %    a factorization of PM.
  14. %
  15. %    In addition, [MATFACT,PM,OKFACT] = PPMFACT(H,G,flagCONTROL) 
  16. %    returns a logical array OKFACT. Each factorization is
  17. %    controlled and OKFACT is such that:
  18. %       OKFACT(k) = true if an only if prod(MATFACT{k}{:}) == PM;
  19. %
  20. %   Each "elementary factor" F = MatFACT{j}{k} is of one
  21. %   of the two following form:
  22. %
  23. %            | 1     0 |            | 1     P |
  24. %            |         |            |         |
  25. %        F = |         |   or   F = |         |
  26. %            |         |            |         |
  27. %            | P     1 |            | 0     1 |
  28. %
  29. %   where P is a Laurent polynomial.
  30. %
  31. %   Example:
  32. %      [Hs,Gs,Ha,Ga] = wave2lp('db2');
  33. %      [MatFACT,PM]  = ppmfact(Hs,Gs);
  34. %      disp(PM);
  35. %      displmf(MatFACT{1});
  36. %
  37. %    See also EVEN, ODD, PPM.
  38. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 25-Apr-2001.
  39. %   Last Revision: 30-Jun-2003.
  40. %   Copyright 1995-2004 The MathWorks, Inc.
  41. %   $Revision: 1.1.6.1 $ $Date: 2004/03/15 22:36:54 $ 
  42. % Polyphase Matrix.
  43. PM = ppm(H,G);
  44. % Compute factorizations.
  45. MatFACT = mftable(PM);
  46. % Control of factorizations under request.
  47. if nargin>2
  48.     nbFACT = length(MatFACT);
  49.     OkFACT = true(1,nbFACT);
  50.     for k = 1:nbFACT
  51.         OkFACT(k) = prod(MatFACT{k}{:}) == PM;
  52.     end
  53. end