airefine.sci

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

SCI
35
字号
function a2 = AIRefine(a,D,Filter,EdgeFilter)
// AIRefine -- Average-Interpolating Refinement Scheme
//  Usage
//    fine = AIRefine(coarse,D,Filter,EF)
//  Inputs
//    coarse    1-d signal at a coarse scale: length(coarse)=n
//    D         D degree of polynomials used for interpolation
//    Filter    interpolating filter from MakeAIFilter(D)
//    EF        Boundary filter from MakeAIBdryFilter(D)
//  Outputs
//    fine      1-d signal at a fine scale: length(fine) = 2*n
//
//  Description
//    Average-Interpolating Refinement scheme is used to refine boxcar
//    averages on a grid of n points, imputing averages on a finer grid
//    of 2n points.
//
//    The average of imputed pairs at (2*i-1,2i) at fine scale reproduce
//    values i at the coarse scale; the pairs are obtained by polynomial
//    interpolation of the coarse averages near i.
//
//  See Also
//    AIDyadUp, AIDyaAIown, FWT_AI, IWT_AI
//
//  Copyright Aldo I Maalouf

	n = length2(a); n2 = 2*n; a2 = zeros(1,n2);
	ae = [ a; 0 .*a ]; ae = ae(:)'; 
	temp = conv(Filter,ae);	
	a2((D+1):(n2-D)) = temp((2*D+1):(n2));
	
	a2(1:D) = (EdgeFilter * (waverow(a(1:(D+1)))'))';
	a2((n2-D+1):n2) = reverse(EdgeFilter * (reverse(waverow(a((n-D):n)))'));
endfunction

⌨️ 快捷键说明

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