IEC651 A-Weight Audio Filtering
IEC651A – A Processing Command for A-Weight Audio Filtering
This note describes an implementation of the IEC 651 standard  A-weight filter that compensates for frequency dependence in human hearing response. The filtering is packaged as a downloadable processing command,
Let's now move on to the technical details.
Accounting for Audibility of Sounds
The problem of measuring audibility of sounds is complicated by the nonlinearity of human hearing. The frequency dependence of human hearing is described by the Fletcher-Munson Curves.
" [The Fletcher-Munson Curve set] explains the non-linear response of the human ear, whereby very low and very high frequencies at a given physical intensity are perceived as softer than mid-range frequencies, with 3-4 kHz being the most sensitive frequency range." (Acoustics/Psychoacoustics Theory, Study Guide, Dr. Howard Fredrics, Brown University)
The Fletcher-Munson Curves describe sensitivity to pure tones, but in practice, many sound sources are anything but pure. The apparent loudness of a frequency mix is not necessarily a simple combination of responses to individual frequency bands. To make matters worse, the apparent loudness varies both with the level of the signal and the levels of background noise.
In an attempt to account for human hearing sensitivity in a standardized way so that measurement instruments can be compared, the International Electrotechnical Commission (IEC) issued Standard IEC 651. This standard identifies four application types (0 through 3) and three weighting curve characteristics (A, B and C).
"Owing to the complexity of operation of the human ear, it is not possible at present to design an objective noise measuring apparatus to give results which are absolutely comparable, for all types of noise, with those obtained by subjective methods. However, it is considered essential to standardize an apparatus by which sounds can be measured under closely defined conditions so that results obtained by users of such apparatus are always reproducible within stated tolerances." (IEC 651 - 1979)
The A-weighting characteristic is most widely used, and though originally intended for low-level sounds, it is commonly applied to higher sound levels as well.
Applying the A-Weighting Characteristic
For applying the A-weighting curve to a spectral power analysis, one common approach is to first measure the spectral power of a signal under test. The spectrum is partitioned into bands of increasing width, in a geometric sequence. Within each band, the relative contribution to the weighted audio power is adjusted by applying a correction factor based on tables given in the IEC standard. The weighted audio power is then the combination of the weighted contributions from each band.
A variation of this approach can be applied when using FFT techniques for the spectral power analysis. A weighting factor can be computed by integrating the A-weighting curve over the equally-sized frequency intervals spanned by the FFT. The resulting weight-factors are then applied term-by-term to the corresponding terms in the FFT power spectrum. This approach is somewhat awkward, however, because the weighting factors depend on the sampling interval and FFT size. And, of course, this only works in combination with FFT analysis.
An alternative approach is also supported by the IEC specification. The weighting curves are also described in the form of a linear low-order analog filter. Because of its linearity property, the filter adjusts the gain at each frequency but does not shift the signal energy from one frequency band to another, in this manner achieving the desired frequency-dependent weighting. If the original signal is passed through this filter, and then an FFT analysis is applied to the filtered signal, the FFT analysis yields results that are scaled according to the standard weighting curve. The power in the spectrum equals the apparent audio power as defined in the standard.
Digitizing an Analog World
An FFT analysis is applied to discrete-time samples of an audio signal. This is inconsistent with a weighting characteristic specified in terms of a continuous-time filter. Either the signal can be filtered first, in the continuous time domain, or the original signal can be sampled first and the filtering performed in the sampled data domain.
While it is possible to build an analog-world filter implementing the standard weighting curve, building a highly accurate one is not a trivial matter. The critical frequencies of the filter range from 26.6 Hz to 12200 Hz, almost three orders of magnitude. The range of component values, component tolerances, drift, parasitic effects, and even the physical packaging make the design and fabrication of the analog filter quite awkward. The difficulty of the task is indicated by the rather huge tolerances the standard allows — plus or minus 8% in response levels are acceptable for even the highest grade of laboratory filters (Level 0). This is not an attractive alternative.
Digital filtering is much more attractive. The cost of using large or small numbers is the same. The numerical computations can be performed in real time as the signal is digitized, with no need for separate filtering hardware. However, to make this happen, the right digital filter designs must be found. Until now, this alternative has had its own share of problems.
The problem isn't the capabilities of the digital filters. It is how to represent the behaviors of the analog-world filters in the digital-world filters so that the two correspond well in the frequency domain. The usual design techniques for mapping the properties of an analog filter into the equivalent digital filter (impulse-invariant mapping, Tustin's bilinear mapping, Schneider's quadratic mapping, Yule-Walker least-squares fitting, direct rational approximation, etc.) all have limitations. Some techniques work well over part of the frequency range, but then fall apart in the rest of the range. Other methods deliver designs that are accurate but unstable, and therefore useless for real-time filtering.
To understand how some of the difficulties arise, consider for example the simplest of digital filters, a first-order stage with z-domain characteristic
Y a + bz --- = -------- U 1 + cz
The frequency response of this expression is obtained by substituting
So what is the solution to this? Simple — you get somebody else to do the design work. The
Using the IEC651A Command
The following example shows a complete DAPL script for a data acquisition configuration. This configuration sends all of the A-weighted data to the PC for logging to a disk. (A PC application program takes care of all of the PC-side data management.)
// Configure the sampler for one analog channel // and 44 kHz sampling rate RESET CONSTANT SAMPLING = 44000 IDEFINE ACQUIRE 1 SET IP0 S0 TIME 22.75 ; = 44 kHz rate END // Apply processing: IEC651A filter PDEF AWEIGHT IEC651A(IPIPE0,SAMPLING,$BINOUT) END START
The input sampling procedure configured by the
Does it really work? The following configuration substitutes an artificially-generated broad-band noise signal for the signal samples, then computes the FFT spectra of the original noise signal and the filtered version so that they can be compared.
// IEC A-weight Filtering Demo RESET CONSTANT SAMPLING = 22500 PIPE POUT, PIN, PR1, PR2 PIPES SIGSPECT, FILTSPECT, AVSSPECT, AVFSPECT PDEF AWEIGHT // No external samples, // substitute white noise signal RANDOM(0,7171,PR1) RANDOM(0,81666,PR2) PIN = (PR1-PR2)/2 // Apply the A-weight filtering IEC651A(PIN,22500,POUT) // Analyze results and send to PC host FFT32(5,9,0,PIN,SIGSPECT) FFT32(5,9,0,POUT,FILTSPECT) BAVERAGE(SIGSPECT,256,64,AVSSPECT) BAVERAGE(FILTSPECT,256,64,AVFSPECT) MERGE(AVSSPECT,AVFSPECT,$BINOUT) END START
The sampling rate of 22500 Hz yields a Nyquist limit of 11250 Hz in the frequency spectrum, so each 256-term block of FFT spans from 0 through 11250 Hz, roughly half of the audio range. The following plot displays the input and output signal spectra. You can download a copy of the command module and verify these results for yourself.
The two spectral plots are obtained by passing the pre-filter and post-filter data streams through FFT processing. The results of analyzing randomized data streams are very noisy, so groups of 64 spectra are averaged.
The results clearly show the effects of the A-weight filter. From a zero-of-transmission at frequency zero, the filter response increases. At 1000 Hz the original spectrum and the filtered spectrum track exactly. This reflects the fact that the A-weight filter characteristic is normalized with 0 dB at 1000 Hz. At approximately 6000 Hz, near the middle of the spectrum plot, there is another crossing of the 0 dB gain level. From there on through the end of the spectrum there is a gradual rolloff. Between 2000 Hz to 4000 Hz there is a small but distinct positive gain. All of these features correspond to the properties of the standard A-weighting curve.
A-weighted spectrum analysis using a digital filter has many advantages but requires an uncorrupted digitized signal and a good filter design. Thanks to the
While not specifically addressing the possibilities, this technical note has suggested that other features built into the DAPL operating system complement the
The DAPL system is powerful in its own right, but the
Footnotes and References