www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/biorfilt.m

    function varargout = biorfilt(Df,Rf,in3)
%BIORFILT Biorthogonal wavelet filter set.
%   The BIORFILT command returns either four or eight filters
%   associated with biorthogonal wavelets.
%
%   [LO_D,HI_D,LO_R,HI_R] = BIORFILT(DF,RF) computes four
%   filters associated with biorthogonal wavelet specified
%   by decomposition filter DF and reconstruction filter RF.
%   These filters are:
%   LO_D  Decomposition low-pass filter
%   HI_D  Decomposition high-pass filter
%   LO_R  Reconstruction low-pass filter
%   HI_R  Reconstruction high-pass filter
%
%   [LO_D1,HI_D1,LO_R1,HI_R1,LO_D2,HI_D2,LO_R2,HI_R2] = 
%                       BIORFILT(DF,RF,'8')
%   returns eight filters, the first four associated with
%   the decomposition wavelet and the last four associated
%   with the reconstruction wavelet.
%
%   See also BIORWAVF, ORTHFILT.

%   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
%   Last Revision: 14-May-2003.
%   Copyright 1995-2004 The MathWorks, Inc.

% The filters must be of the same even length.
lr = length(Rf);
ld = length(Df);
lmax = max(lr,ld);
if rem(lmax,2) , lmax = lmax+1; end
Rf = [zeros(1,floor((lmax-lr)/2)) Rf zeros(1,ceil((lmax-lr)/2))];
Df = [zeros(1,floor((lmax-ld)/2)) Df zeros(1,ceil((lmax-ld)/2))];

[Lo_D1,Hi_D1,Lo_R1,Hi_R1] = orthfilt(Df);
[Lo_D2,Hi_D2,Lo_R2,Hi_R2] = orthfilt(Rf);
switch nargin
  case 2 ,  varargout = {Lo_D1,Hi_D2,Lo_R2,Hi_R1};
  case 3 ,  varargout = {Lo_D1,Hi_D1,Lo_R1,Hi_R1,Lo_D2,Hi_D2,Lo_R2,Hi_R2};
end