Chung-Kennedy Filter

Average rating
(0 votes)

This returns a wave which is filtered according to the method of Chung & Kennedy, J. Neurocience Methods, 1991.

function /wave ChungKennedy(w,mm,kk,pp[,pis])
	wave w // Data.  
	variable mm // Analysis window length.  
	variable kk // Number of filters.  
	variable pp // An exponent.  
	wave pis // The weights (pi_i) for the filters.  Has length kk.  
 
	if(paramisdefault(pis))
		make /free/n=(kk) pis = 1
	endif
 
	variable n = numpnts(w)
	make /free/n=(n,kk*2) estimates
	estimates[][0,kk] = mean(w,pnt2x(w,p-2^(q+1)),pnt2x(w,p-1)) // Forwards.  
	estimates[][kk,] = mean(w,pnt2x(w,p+1),pnt2x(w,p+2^(q+1-kk))) // Backwards.  
 
	make /free/n=(n,kk*2) weights
	make /free/n=(n,kk,mm) forwards = (w[p-r]-estimates[p-r][q])^2
	make /free/n=(n,kk,mm) backwards = (w[p+r]-estimates[p+r][q+kk])^2
	matrixop /free forwards = powR(sumbeams(forwards),-pp)
	matrixop /free backwards = powR(sumbeams(backwards),-pp)
	weights[][0,kk] = forwards[p][q]*pis[q]
	weights[][kk,] = backwards[p][q-kk]*pis[q-kk]
 
	// Normalize.  
	matrixop /free sums = sumrows(weights)
	weights /= sums[p]
 
	matrixop /free result = sumrows(estimates * weights)
	return result
end

Thanks! But see Biophys J.

Thanks! But see

Biophys J. 2008 January 1; 94(1): 306–319.
Published online 2007 September 7. doi: 10.1529/biophysj.107.110601
PMCID: PMC2134886
A Comparison of Step-Detection Methods: How Well Can You Do?

Brian C. Carter,* Michael Vershinin,† and Steven P. Gross*†

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2134886/

for a discussion of different methods.

John Bechhoefer
Department of Physics
Simon Fraser University
Burnaby, BC, Canada

Back to top