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

波变换

开发平台:

Matlab

  1. function varargout = biorfilt(Df,Rf,in3)
  2. %BIORFILT Biorthogonal wavelet filter set.
  3. %   The BIORFILT command returns either four or eight filters
  4. %   associated with biorthogonal wavelets.
  5. %
  6. %   [LO_D,HI_D,LO_R,HI_R] = BIORFILT(DF,RF) computes four
  7. %   filters associated with biorthogonal wavelet specified
  8. %   by decomposition filter DF and reconstruction filter RF.
  9. %   These filters are:
  10. %   LO_D  Decomposition low-pass filter
  11. %   HI_D  Decomposition high-pass filter
  12. %   LO_R  Reconstruction low-pass filter
  13. %   HI_R  Reconstruction high-pass filter
  14. %
  15. %   [LO_D1,HI_D1,LO_R1,HI_R1,LO_D2,HI_D2,LO_R2,HI_R2] = 
  16. %                       BIORFILT(DF,RF,'8')
  17. %   returns eight filters, the first four associated with
  18. %   the decomposition wavelet and the last four associated
  19. %   with the reconstruction wavelet.
  20. %
  21. %   See also BIORWAVF, ORTHFILT.
  22. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  23. %   Last Revision: 14-May-2003.
  24. %   Copyright 1995-2004 The MathWorks, Inc.
  25. % $Revision: 1.10.4.2 $
  26. % The filters must be of the same even length.
  27. lr = length(Rf);
  28. ld = length(Df);
  29. lmax = max(lr,ld);
  30. if rem(lmax,2) , lmax = lmax+1; end
  31. Rf = [zeros(1,floor((lmax-lr)/2)) Rf zeros(1,ceil((lmax-lr)/2))];
  32. Df = [zeros(1,floor((lmax-ld)/2)) Df zeros(1,ceil((lmax-ld)/2))];
  33. [Lo_D1,Hi_D1,Lo_R1,Hi_R1] = orthfilt(Df);
  34. [Lo_D2,Hi_D2,Lo_R2,Hi_R2] = orthfilt(Rf);
  35. switch nargin
  36.   case 2 ,  varargout = {Lo_D1,Hi_D2,Lo_R2,Hi_R1};
  37.   case 3 ,  varargout = {Lo_D1,Hi_D1,Lo_R1,Hi_R1,Lo_D2,Hi_D2,Lo_R2,Hi_R2};
  38. end