Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The following paper describes an application of the Teager-Kaiser energy operator to x-ray image enhancement:

Reinhard Bernstein, Michael S. Moore and Sanjit K. Mitra, "Adjustable Quadratic Filters for Image Enhancement" Proc. IEEE International Conference on Image Processing (ICIP), Santa Barbara, CA, vol. 1, pp. 287-290, Oct. 1997.

The authors develop intuition for the behavior of the filter through analogy with a similar linear operator (i.e. "Thus the output of a Teager filter is approximately equal to a highpass filter response weighted by the local mean."). For the sake of precision, by quadratic polynomial filters, I mean non-linear, non-recursive filters that can be completely characterized by a truncated Volterra Series, as follows (for the 1D case):

$$ y(n) = \sum_{m_1=0}^{N_1-1}{ h_1(m_1)x(n - m_1) } + \sum_{m_1=0}^{N_2-1}{\hphantom{.}\sum_{m_2=0}^{N_2-1}{ h_2(m_1,m_2)x(n - m_1)x(n - m_2) } } $$

It seems that most approaches to the design of low-order polynomial filters involve system identification frameworks, but without any deep understanding as to why the estimated filters work. Are analytic approaches based on linear analogies currently the state-of-the-art, or are there any known mathematical tools that can be used?

share|improve this question
I have used the Teager-Kaiser energy operator before. I know that it is excellent for magnifying 'pulling out' short impulses from noisy data, (sort of the opposite of a median filter). It can also make pink noise white. For pure tones, its output is a constant, (the energy of the tone). – Mohammad Apr 17 '12 at 18:07
@Mohammad Interesting. Just using it as an example for the question, but wasn't aware of the pink-to-white property. Thanks for that! – datageist Apr 17 '12 at 18:12
Here is my Matlab implementation if you want to play around with it. ( – Mohammad Apr 17 '12 at 18:31
@Mohammad Thanks! – datageist Apr 17 '12 at 18:39
@datageist Have you ever managed to find an answer to this? Can you post it is you have? This is the highest voted unanswered question no less! = ) – Phonon Oct 27 '13 at 6:41

Not really an answer (hence this is community wiki), but I thought we should capture @Mohammad's code:

%Mohammad Z

%Teager-Kaiser Non-Linear Energy Operator. 
function [out] = TKEO(x)
    N = length(x);
    x = x(:).';
    temp = x(2:N-1).^2 - x(3:N).*x(1:N-2);
    out = [temp(1) temp temp(end)];    
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.