Algorithm 820

Algorithm 820: A flexible implementation of matching pursuit for Gabor functions on the interval In digital signal processing it is often advantageous to analyze a given signal using an adaptive method. The signal is approximated or represented as a superposition of “basic” waveforms chosen from a dictionary of such waveforms so as to best match the signal. The matching pursuit algorithm of Mallat and Zhang is such a method and is discussed in the context of discretized Gabor functions on an interval. We describe two software implementations based on these dictionaries. Both implementations rely on functions defined on an interval to avoid edge effects. One implementation allows users to have great flexibility in the Gabor dictionary to be used. This is a useful improvement over other implementations, which only allow for a fixed dictionary. The other implementation takes advantage of the FFT algorithm and is faster. These implementations are written in C++, and can be used in practical applications. (Source:

This software is also peer reviewed by journal TOMS.