DSP Tricks: Approximate envelope detection

Richard Lyons

November 16, 2010

Richard LyonsNovember 16, 2010

Here’s a crude (but simple to implement) complex signal envelope detection scheme. By envelope detection, we mean estimating the instantaneous magnitude of a complex signal xc(n).

Whether this envelope approximation technique yields sufficiently accurate results is for the user to decide. Its accuracy may be below the requirements of most AM (amplitude modulation) detection requirements, but the process may well be useful for estimating signal magnitude in automatic gain control (AGC) or energy detection applications.

The process is straightforward: we sum the absolute values of a complex signal’s real and imaginary parts, and apply that sum to a simple first-order lowpass IIR filter to obtain an envelope signal E(n) as shown in Figure 13–77, below.


Figure 13–77. AGC process: (α) logorithmic AGC  circuit; (c) y(n) output for α = 1 and R = 1.

The filter’s feedback coefficient α is in the range of 0 to 1. (That lowpass filter is an our exponential averager, which some DSP folks call a leaky integrator). The E(n) sequence is proportional to the desired instantaneous magnitude of xc(n), or

To gauge the envelope detector’s performance, consider a sampled version of an amplitude modulated sinusoid such as the xr(n) from which a sampled analytic (complex) xc(n) can been generated.

If xc(n) is applied to our envelope detection process, the processing results are shown in Figure 13–78(b) and 13–78(c) below, where the solid curves represent E(n) and the dashed curves are the true magnitude of xc(n). 

Figure 13–78 Envelope detection: (a) block diagram; (b) |xr(n)|+|x(n)| adder output, and E(n) for α = 0.4; (c) E(n) for α = 0.7 and α = 0.9.

Notice how the amount of smoothing of the E(n) fluctuations depends on the value of α. Sequence xr(n) must be used to generate a complex analytic xc(n) sequence upon which this envelope detector scheme can be applied.

The advantage of this envelope detection process is that, of course, no squaring or square root computations in the |xr(n)| and |xi(n)| comparisons in the vector magnitude approximations need be performed.

Used with the permission of the publisher, Prentice Hall, this on-going series of articles on is based on copyrighted material from "Understanding Digital Signal Processing, Second Edition" by Richard G. Lyons. The book can be purchased on line.

Richard Lyons is a consulting systems engineer and lecturer with Besser Associates. As a lecturer with Besser and an instructor for the University of California Santa Cruz Extension, Lyons has delivered digitasl signal processing seminars and training course at technical conferences as well at companies such as Motorola, Freescale, Lockheed Martin, Texas Instruments, Conexant, Northrop Grumman, Lucent, Nokia, Qualcomm, Honeywell, National Semiconductor, General Dynamics and Infinion.

Loading comments...