fwt_atrou.sci

来自「小波分解源代码」· SCI 代码 · 共 52 行

SCI
52
字号
function dwt = FWT_ATrou(x,L);
// 
// FWT_ATrou -- Fast Dyadic Wavelet Transform (periodized, orthogonal)
//  Usage
//    dwt = FWT_ATrou(x,L)
//  Inputs
//    x    	1-d signal; length(x) = 2^J = n
//    L    	Coarsest Level of V_0;  L << J
//  Outputs
//    dwt   an n times J-L+1 matrix
//           giving the wavelet transform of x at all dyadic scales.
//
//  Description
//    To reconstruct use IWT_ATrou 
//
//  See Also
//    IWT_ATrou, MakeATrouFilter
//
//  Copyright Aldo I Maalouf

  [lodyadf,dlodyadf,hidyadf,dhidyadf] = MakeATrouFilter('Spline',3);

  [n,J] = dyadlength(x) ;
  D = J-L;
  dwt = zeros(n,D+1);
  x = ShapeAsRow(x);
  dwt(:,1) = x';
  for d = 1:D,
        s = dwt(:,1)';
        s2 = s;
        for j = 1:2^(d-1)
	    s2 = lshift(s2);
	end
 	dwt(:,d+1) = iconv(hidyadf,s)';
	for j = 1:2^(d)
		p = lshift(dwt(:,d+1)');
		dwt(:,d+1) = p';
	end
	dwt(:,1) = iconv(lodyadf,s2)';
	
	f = zeros(1,2*length2(lodyadf));
        f(1:2:2*length2(lodyadf)-1) = lodyadf;

	f2 = zeros(1,2*length2(hidyadf));
	f2(1:2:2*length2(hidyadf)-1) = hidyadf;

	lodyadf = f;
	hidyadf = f2;
  end;

endfunction

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?