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

波变换

开发平台:

Matlab

  1. function  [P,R] = wlagrang(N)
  2. %WLAGRANG "Lagrange a trous" filters computation.
  3. %   [P,R] = WLAGRANG(N) returns the order N Lagrange filter P.
  4. %   P has (2N-1) roots located in 1. R contains the other roots
  5. %   sorted in complex modulus ascending order.
  6. %   
  7. %   Possible values for N are:
  8. %      N = 1, 2, 3, ...
  9. %   Caution: Instability may occur when N is too large (N > 45).
  10. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 06-Feb-98.
  11. %   Last Revision: 14-May-2003.
  12. %   Copyright 1995-2004 The MathWorks, Inc.
  13. %   $Revision: 1.9.4.2 $  $Date: 2004/03/15 22:43:01 $
  14. lon = 2*N-1;
  15. sup = [-N+1:N];
  16. a = zeros(1,N);
  17. for k = 1:N
  18.     nok  = sup(sup ~= k);
  19.     a(k) = prod(0.5-nok)/prod(k-nok);
  20. end
  21. P = zeros(1,lon);
  22. P(1:2:lon) = a;
  23. P = [wrev(P),1,P]; 
  24. if nargout>1
  25.     R = roots(P);
  26.     [s,K] = sort(abs(R+1));
  27.     R = R(K(lon+2:2*lon));
  28.     [s,K] = sort(abs(R));
  29.     R = R(K);
  30. end