coarsemeyerproj.sci

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

SCI
60
字号
function cpjf = CoarseMeyerProj(beta,C,n,deg)
// CoarseMeyerProj -- Invert Meyer Transform, coarse level C
//  Usage
//    cpjf = CoarseMeyerProj(beta,C,n,deg)
//  Inputs
//    beta     Father Meyer Coefficients, dyadic length 2^C.
//    C        coarse resolution level
//    n        length of signal vector (must be of the form 2^J)
//    deg      degree of Meyer window
//  Outputs	
//    cpjf     projection of signal onto approximation space V_C
//             (length(cpjf) = n)
//
//  See Also
//    UnfoldMeyer, QuasiDCT, QuasiDST, SeparateCoeff, ExtendProj
//
//  Copyright Aldo I Maalouf
//
// *** Set end points.

	lendp = -2^(C-1); rendp = 2^(C-1);
  
//*** Calculate trigonometric coefs from wavelet coefficients.

	[rtrigcoefs, itrigcoefs] = SeparateCoeff(beta,'f');

// *** Calculate projection of real part of \hat f (even)
// Take DCT-I of local cosine coefficients.

	rtrigrec = QuasiDCT(rtrigcoefs,'i');

// Unfold trigonometric reconstruction w/ (+,+) polarity.

	unflde = UnfoldMeyer(rtrigrec,[lendp,rendp],'pp','f',deg);

// Extend unfolded signal to integers -n/2+1 -> n/2 .

	eextproj = ExtendProj(unflde,n,'f',[lendp,rendp],'e');

// *** Calculate projection of imaginary part of \hat f (odd)
// Take DST-I of local sine coefficients.

	itrigrec = QuasiDST(itrigcoefs,'i');

// Unfold trigonometric reconstruction w/ (-,-) polarity.

	unfldo = UnfoldMeyer(itrigrec,[lendp,rendp],'mm','f',deg);

// Extend unfolded signal to integers -n/2+1 -> n/2 .

	oextproj = ExtendProj(unfldo,n,'f',[lendp,rendp],'o');

//*** Combine real and imaginary parts to yield coarse level
//*** projection of \hat f.

	cpjf = ( eextproj + %i .* oextproj ) / 2;

endfunction
    

⌨️ 快捷键说明

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