Also known as: LPC, linear prediction
Linear predictive coding (LPC) is a speech-coding method that models the human vocal tract as an all-pole digital filter driven by an excitation signal, transmitting only a handful of predictor coefficients instead of the raw waveform.1 Because those few parameters capture the resonances of speech, LPC compresses voice to very low bit rates and forms the analytical core of most digital-voice vocoders.
How it works
LPC rests on the source–filter model of speech: the vocal cords (or turbulent airflow) produce an excitation, and the throat, mouth, and nasal cavity shape it into recognisable sounds. The shaping is modelled as a linear predictor — each speech sample is estimated as a weighted sum of the previous p samples:
- Analysis. For each short frame (typically 20–30 ms), the encoder solves for the predictor coefficients a₁…aₚ that minimise the energy of the prediction error, usually via the autocorrelation method and the Levinson–Durbin recursion. Ten to sixteen coefficients suffice for telephone-band speech; the poles of the resulting filter sit at the speech formants (vocal-tract resonances).
- Residual. What the predictor cannot foresee is the residual or excitation signal. Classic LPC vocoders reduce it to two decisions — voiced or unvoiced, and a pitch period — and send a single gain. This is the aggressive compression that gives 1970s-era LPC-10 (2.4 kbps) its characteristic buzzy, synthetic sound.
- Synthesis. The decoder rebuilds the excitation (a pulse train at the pitch rate for voiced frames, white noise for unvoiced) and runs it through the all-pole filter reconstructed from the coefficients, producing audible speech.
Coefficients are rarely sent as raw aₚ values, which are sensitive to quantisation. Instead they are converted to more robust equivalents — reflection coefficients, log-area ratios, or line spectral pairs (LSPs) — before being packed into the frame.
Variants
Plain LPC’s two-state excitation is its weakness: real speech is rarely purely voiced or purely noisy. Later families keep the LPC vocal-tract filter but model the excitation far more richly. Code-excited linear prediction (CELP) picks the excitation from a codebook by analysis-by-synthesis, and MELP uses a mixed voiced/unvoiced excitation per frequency band. Both sound dramatically better at the same bit rate. Even the multi-band-excitation family used in land-mobile radio, though not strictly LPC, shares the same source–filter philosophy of sending pitch, voicing, and spectral-envelope parameters rather than the waveform.
Relevance to SDR
Almost every low-rate digital-voice mode a scanner meets is an LPC descendant. The IMBE and AMBE vocoders of P25 and DMR, the MELPe used in military HF, and open Codec 2 used by M17 all build on the same linear-prediction foundation of compressing speech to a few kbps by modelling the vocal tract. GopherTrunk does not run a standalone LPC-10 decoder, but understanding LPC explains why digital voice sounds the way it does and why a corrupted spectral-parameter frame degrades far more audibly than a corrupted PCM sample — the parameters, not the samples, carry the speech.
Sources
-
Linear predictive coding — Wikipedia, for the all-pole model, coefficient estimation, and LPC-10 history. ↩