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

波变换

开发平台:

Matlab

  1. function [Rf,Df] = binlwavf(wname)
  2. %BINLWAVF Biorthogonal wavelet filters (binary wavelets: Binlets).
  3. %   [RF,DF] = BINLWAVF(W) returns two scaling filters
  4. %   associated with the biorthogonal wavelet specified
  5. %   by the string W.
  6. %   W = 'binlNr.Nd' where possible values for Nr and Nd are:
  7. %           Nr = 7  Nd = 9
  8. %   The output arguments are filters:
  9. %           RF is the reconstruction filter
  10. %           DF is the decomposition filter
  11. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  12. %   Last Revision: 14-May-2003.
  13. %   Copyright 1995-2004 The MathWorks, Inc.
  14. % $Revision: 1.12.4.2 $
  15. % suppress the following line for extension
  16. Nr = 7; Nd = 9;
  17. % for possible extension
  18. % more wavelets in 'Binlets' family
  19. %----------------------------------
  20. if nargin==0
  21.     Nr = 7; Nd = 9;
  22. elseif  isempty(wname)
  23.     Nr = 7; Nd = 9;
  24. else
  25.     if ischar(wname)
  26.         lw = length(wname);
  27.         ab = abs(wname);
  28.         ind = find(ab==46 | 47<ab | ab<58);
  29.         li = length(ind);
  30.         err = 0;
  31.         if li==0
  32.             err = 1;
  33.         elseif ind(1)~=ind(li)-li+1
  34.             err = 1;
  35.         end 
  36.         if err==0 , 
  37.             wname = wstr2num(wname(ind));
  38.             if isempty(wname) , err = 1; end
  39.         end
  40.     end     
  41.     if err==0
  42.         Nr = fix(wname); Nd = 10*(wname-Nr);
  43.     else
  44.         Nr = 0; Nd = 0;
  45.     end
  46. end
  47. % suppress the following lines for extension
  48. % and add a test for errors.
  49. %-------------------------------------------
  50. if Nr~=7 , Nr = 7; end
  51. if Nd~=9 , Nd = 9; end
  52. if Nr == 7
  53.    if Nd == 9
  54.       Rf = [-1 0 9 16 9 0 -1]/32;
  55.       Df = [ 1 0 -8 16 46 16 -8 0 1]/64;
  56.    end
  57. end