Synchronous Waveform Averaging:
Magic Bullet for Noise
By Bob Masta
Chief Engineer, Interstellar Research
Synchronous waveform averaging, also called coherent or ensemble
averaging, or simply "signal averaging", is a technique that
can extract a desired signal from prodigious amounts of noise.
Unlike other methods, it recovers the waveform exactly, with no
phase shifts or rounding, and it can even remove contaminating
signals that are in the same frequency range.
To use this approach, the signal of interest must be repetitive,
and you must be able to trigger your data acquisition system at
each repetition. These requirements are easily met by many real-world
measurement situations, typically those where the desired signal
is the response to a stimulus -- which also provides the trigger.
For example, the trigger might be the pulse that actuates a hammer-driving
solenoid for a structural impulse test, where the signal of interest
is vibration of a certain beam. Or the trigger might be the gate
to a hardware or software tone-burst generator, where the desired
signal is the brain-wave response to an auditory stimulus.
When the trigger is received, samples of the noisy input signal
are collected and added to sequential locations in a data buffer:
The first sample after the trigger is added to location 1, the
second to location 2, and so on for the length of the buffer.
This is called one "frame" or ensemble (or sometimes "sweep",
analogous to the sweep of the electron beam on a scope trace).
On the next trigger, the whole process repeats, adding samples
to the same buffer locations in the same sequence.
If the desired response repeats with exactly the same alignment
at each trigger, while noise or other signals do not, then only
the desired signal builds up in the buffer and everything else
tends to average out to zero. The buffer contents are displayed
graphically after normalizing by the number of frames. On a real-time
display, the noise seems to melt away and the desired signal gradually
appears (see Fig.), like a fuzzy image coming into focus.
Fig. 1: Raw Input (Upper), Averaged 256 Frames (Lower)
Any signal that is not correlated with the trigger repetition
rate will be thus reduced by waveform averaging, including
interfering signals as well as random noise. This will
naturally reduce 60 Hz hum, or other constant backgrounds, as
long as the stimulus rate is not locked to the interference
Waveform averaging excels in situations where you can't control
the test environment completely, such as measurements made on a
public highway structure or on a working production floor.
Traffic noise or machine vibrations may have high energy at
certain frequencies, but as long as those frequencies are
uncorrelated with the stimulus they will be averaged away with
Don't confuse a waveform average with a "moving
average" or "boxcar average" or other sorts of
"smoothing" functions. Those provide only cosmetic
improvement, by averaging together adjacent time-samples . . .
the output may indeed look smoother, but such techniques can't
tell the signal from the noise. Everything gets smoothed,
including the signal itself: Rectangular pulses become rounded
hills, and amplitude measurements aren't reliable.
Because true waveform averaging recovers the actual time
waveform, it can also convey much more useful information than
frequency-selective approaches such as spectrum analysis . . .
and you are still free to take the spectrum of the resultant
waveform if you choose, with the benefit of a correspondingly
lower noise floor.
During the averaging process, earlier frames contribute greater
noise reduction. The reduction is inversely proportional to the
square root of the number of frames, so to cut the noise in
half, you need to quadruple the number of frames averaged. This
reflects the mathematical difference between adding correlated
signals, which double in amplitude (6 dB) when added, versus
adding uncorrelated signals, which only increase by 3 dB.
The overall improvement you obtain will thus be related to how
long you can afford to wait for the next 3 dB increment. The time
per frame is, of course, set by the trigger repetition rate, but
you can't increase that rate arbitrarily: Besides the obvious
limitation that one frame of data can't start until the prior
one finishes, there are usually other limits imposed by the system.
Since waveform averaging is typically used to measure a system's
response to a stimulus, there are response-time considerations.
You can't start a new stimulus until the prior response has decayed
so far that it won't contaminate the next response. That typically
means that the prior response must decay below the noise floor,
but note that the act of averaging greatly reduces the effective
noise floor, increasing the time you have to wait.
In addition, there may be physical properties of the system that
provide further limitations on stimulus rate, such as overheating
of a mechanical driver, or depletion of neurotransmitter chemicals
in a biological system.
Furthermore, independent of stimulus rate, many systems are simply
not stable enough to allow reliable results over long periods
of time, even if you are willing to wait. Measurement electrodes
can chemically deteriorate, weather conditions can change in an
outdoor test, or a subject may not sit still for a long test session.
So even if your software or hardware averager allows 32768 frames
or more, you will probably find that 1024 or so is as much as
you will ever use, and you may often get by with as few as 16.
Your digital scope may already support waveform averaging, or
it may be an option on your data acquisition software system.
Readers who don't have averager capability yet are welcome to
download the author's Daqarta for Windows
software for some hands-on experience. The built-in
signal generator can create various waveforms and noise types
with fully adjustable levels, and you can average any
desired number of frames. You don't even need to create an
audible output, since you can work directly with the raw signals
All Daqarta features are free to use for 30 days or
30 sessions, after which it becomes a freeware
signal generator... with full analysis capabilities.
(Only the sound card inputs are ignored.)