IEC 61260-1: Digital Filter Implementation Considerations
TL;DR
Digital implementation of IEC 61260-1 filters uses either IIR filter banks or FFT-based power spectrum methods. IIR approach: design analog prototype Butterworth bandpass filters, apply bilinear transform to convert to digital domain, cascade 3rd/4th-order sections per band. FFT approach: compute power spectrum via FFT, sum bin energies within each band's edge frequencies. FFT method inherently provides rectangular-passband response that exceeds IEC 61260-1 requirements when resolution is sufficient. Both methods must account for sample rate limitations: at 48 kHz, the Nyquist frequency is 24 kHz, limiting the useful range to the 16 kHz octave band.
IIR Filter Bank Approach
The traditional implementation uses a parallel bank of IIR bandpass filters:
- Design analog prototype Butterworth or Bessel bandpass filter for each band
- Apply bilinear transform: s → (2/T)·(z-1)/(z+1) to convert to digital domain
- Factor into cascaded second-order sections (biquads) for numerical stability
- Process input through all filters simultaneously
For 1/3 octave Class 1 compliance, 6th to 8th order filters are typically needed. With 30 bands, this means 90-120 biquad sections processing in parallel — computationally intensive but straightforward on modern hardware.
Bilinear Transform Warping
The bilinear transform introduces frequency warping: analog frequencies are mapped non-linearly to digital frequencies. The centre frequency of each digital filter is pre-warped to ensure it matches the analog specification: ω_analog = (2/T)·tan(ω_digital·T/2). This correction is essential for high-frequency bands where warping is most severe.
FFT-Based Approach
The FFT method computes the power spectrum and sums energy within each band:
- Apply window function (Hanning, Blackman-Harris) to the time-domain block
- Compute FFT → power spectrum |X(k)|²
- For each band, sum power spectrum bins where f₁ ≤ f(k) < f₂
- Convert summed power to dB: L = 10·log₁₀(Σ|X(k)|²)
This approach provides a rectangular frequency response per band — zero attenuation in-band, infinite attenuation out-of-band. This exceeds IEC 61260-1 tolerance mask requirements at all points, provided FFT resolution is sufficient for the narrowest band.
FFT Resolution Requirements
The FFT frequency resolution must be fine enough to accurately define band edges. For the lowest 1/3 octave band (20 Hz, bandwidth ~4.6 Hz), the FFT resolution should be ≤1 Hz, requiring at least 48000 points at 48 kHz (or overlap-add with shorter FFTs). For 1/1 octave analysis, 4096-point FFT at 48 kHz provides 11.7 Hz resolution — adequate for all bands above 31.5 Hz.
| Analysis | Min FFT size (48 kHz) | Resolution |
|---|---|---|
| 1/1 octave (31.5 Hz+) | 4096 | 11.7 Hz |
| 1/3 octave (20 Hz+) | 16384 | 2.9 Hz |
| 1/3 octave (precise) | 65536 | 0.73 Hz |
WASM Performance
The SonaVyx Rust DSP engine compiled to WebAssembly processes FFT and octave-band analysis efficiently in the browser. A 4096-point FFT with octave-band summation completes in under 1 ms on modern devices, supporting real-time update rates of 25+ Hz. The WASM module handles both the FFT computation and the band energy summation in a single function call.
Sample Rate Considerations
At 48 kHz sample rate, the Nyquist frequency (24 kHz) limits the maximum analyzable frequency to the 16 kHz octave band or 20 kHz 1/3 octave band. The anti-aliasing filter of the ADC may already attenuate the 16 kHz band. For critical high-frequency measurements, 96 kHz sampling extends the range.
SonaVyx Architecture
The RTA mode uses FFT-based band analysis via the Rust WASM engine. The DSP Worker receives audio blocks, computes the windowed FFT, and returns both the raw spectrum and octave-band levels per IEC 61260-1 centre frequencies. Frequency weighting corrections are applied per IEC 61672-1 integration.
Try It Now
Open this measurement tool in your browser — free, no download required.
Last updated: March 19, 2026