CPB Analysis (Constant Percentage Bandwidth)

CPB analysis runs the signal through a bank of real digital band-pass filters, one per frequency band, and measures the mean square of each filter output in the time domain. Because the measurement never passes through an FFT, the low-frequency bands are not limited by FFT resolution.

Four elements share this engine and differ only in what the horizontal axis shows: CPB Spectrum, CPB vs Time, CPB vs RPM and CPB Synthesis. All four are inserted from the Insert menu into the analysis pool.

CPB or octave analysis? They are different methods

Deepsona ships both. They answer the same question with different machinery, and the results are not interchangeable at low frequencies.

CPB analysisOctave Spectrum (1/1, 1/3)
MethodTime-domain IIR filter bank, one band-pass per bandFFT synthesis: FFT lines are grouped into bands
Band definitionIEC 61260 base-ten, G = 100.3 ≈ 1.99526ISO preferred values (base-two lineage)
Low-frequency behaviourUnaffected by FFT resolutionDegrades when too few lines fall inside a band
Bandwidths1/1, 1/3, 1/6, 1/12, 1/241/1, 1/3
CostHigher (filtering + decimation per octave)Lower (one FFT, then grouping)
The two use different centre-frequency tables and must not be mixed. CPB follows the base-ten system (G = 100.3); the octave engine follows the ISO preferred nominal values. Comparing a CPB band against an octave band of the same nominal name is only meaningful once you have checked that the band edges actually coincide.

Why low frequencies fail under FFT synthesis

A constant-percentage band gets narrower in absolute terms as the centre frequency drops, while an FFT has a constant line spacing Δf. Below roughly

fc < 4.32 · lines · Δf

the number of FFT lines inside the band becomes too small to represent it, and the band level collapses towards whatever the few surviving lines happen to contain. This is a property of the method, not a defect: it is exactly why a filter bank is used instead. A 20 Hz 1/3-octave band is only about 4.6 Hz wide — at a typical analysis resolution it may contain a handful of lines.

How the filter bank works

Filtering every band at the full sampling rate would be wasteful and numerically poor at low frequencies, so the bank decimates by one octave at a time:

Each absolute octave carries its own set of decimation low-pass coefficients. Sharing a single prototype across octaves is what makes the error grow with decimation depth, so the coefficients are stored per octave rather than reused.

Effective time resolution is not the same in every band. Once an octave is decimated below one sample per frame, it produces a value only every 2k frames and holds it in between (zero-order hold). The low bands therefore have an effective time resolution of Pre-averaging time × 2k. This matters when reading CPB vs Time: a slow-moving staircase in the lowest bands is the time resolution, not the signal.

Detection and framing

The four elements

CPB Spectrum

One spectrum for the whole selected segment: every band is averaged over time according to the chosen averaging mode. This is the element to use for a stationary condition — a steady load point, an idle run, a constant-speed pass.

CPB vs Time

Band levels as a function of time, one column per pre-averaging frame. Use it to see when something appears, and in which bands. Remember the note above: the lowest bands update more slowly than the frame rate.

CPB vs RPM

Band levels against a speed axis. Deepsona extracts one spectrum at the moment the speed crosses each grid value, rather than sorting frames into speed bins and averaging them.

CPB Synthesis

Bands synthesised from an existing FFT spectrum rather than from a filter bank. It is the cheap option when an FFT is already available and the frequencies of interest are high enough for the line count to be adequate. When a band does not contain enough lines, the band is marked invalid rather than being given a plausible-looking number.

Weighting, averaging and Overall

Frequency weighting

A, B, C and D weighting are applied in the time domain, before the signal enters the filter bank. The weighting stated on the Y axis always matches what was actually applied: if the selected weighting cannot be applied to the signal, the axis will not claim it was.

Averaging

ModeBehaviour
Exponential — Fast125 ms time constant.
Exponential — Slow1 s time constant.
Linear (finite window)Arithmetic mean over a fixed window.
Linear (whole segment)Arithmetic mean of all frames in the segment.

Overall level

The Overall value shown alongside the bands is computed by an independent broadband time-domain chain — it is not the sum of the band levels. Both an A-weighted and a linear Overall are produced by default. Summing bands and measuring broadband give slightly different answers because the band filters overlap at their edges; the broadband chain is the one to quote.

Parameters

ParameterOptions / defaultDescription
Bands per octave1/1, 1/3, 1/6, 1/12, 1/24 (default 1/3)Band width. An unsupported value falls back to 1/3 and says so in the log.
Lower / upper frequency20 Hz / 20 kHzBand centre frequencies, not band edges. A value that is not a valid centre snaps to the nearest one, and the substitution is written to the log.
Pre-averaging time0.01 sDetector block length. Rounded to a power of two internally.
Frequency weightingZ (linear), A, B, C, DApplied in the time domain before banding.
AveragingFast / Slow / Linear / Linear whole segmentSee above.
Skip settlingOff by defaultDiscards the leading frames covering the settling time of the lowest band. Off means the start-up transient is included.

Band range limits

The band range you get is not always the band range you asked for, and every reduction is logged:

The Nyquist rule uses the upper band edge against fs/2. A rule of thumb such as “highest frequency = fs/2.56” would discard the 20 kHz band on 48 kHz data, which is wrong — the 20 kHz band has an upper edge of about 22.4 kHz and fits below 24 kHz.

Practical Tips

Do not apply A-weighting to acceleration signals. The frequency weightings defined in IEC 61672 are intended exclusively for sound pressure.

© 2026 Deepsona. All Rights Reserved.