In module 4 we predicted each speech sample from the last few, and found that what can't be predicted is the glottal kick. Rearranged, the predictor equation reads \(x[n] = \sum_k a_k\,x[n-k] + e[n]\): a source \(e[n]\) going into something that rings. This page shows that this “something” is a filter made entirely of poles, that each pair of poles is one formant, and that fitting it to a recording hands you the vocal tract's resonances, good enough to take speech apart and rebuild it.
In module 4 the predictor analysed speech: given \(x[n]\), it produced the error \(e[n]\). Now read the same equation the other way, as a recipe for making a signal:
Each new output sample is the new input plus a weighted echo of what the filter itself just produced. The output is fed back into the input: this is feedback, and it is why the model is called autoregressive (AR), “regressing on itself”.
Feedback is how anything rings. A swing, the mass on a spring from module 3, a bell: their position now is set by their position a moment ago. A microphone held near its own loudspeaker howls at one particular pitch for the same reason. With just two weights we already know exactly what the ring looks like. Module 4 showed that a decaying sinusoid \(\rho^n \sin(\omega n)\) obeys \(x[n] = 2\rho\cos\omega\,x[n-1] - \rho^2 x[n-2]\). So two feedback weights make one resonance, ringing at frequency \(\omega\) and dying away at a rate set by \(\rho\):
Try pushing \(\rho\) towards 1: the ring lasts longer and the peak gets sharper and taller, exactly like light damping on the spring. Then push \(\rho\) past 1: each echo comes back bigger than the last, and the output explodes. That is the howling microphone. A model of the vocal tract must keep \(\rho < 1\).
Engineers summarise a feedback filter with one piece of notation. Write \(z^{-1}\) for “delay by one sample”, so \(z^{-k}x[n]\) means \(x[n-k]\). The predictor equation, rearranged as “input = output minus its echoes”, becomes a polynomial:
A polynomial can be factored into its roots. The roots of \(A(z)\) are the poles \(p_1, \dots, p_p\) of \(H(z)\): the values of \(z\) where the filter's response blows up. Real filters have real weights, so complex poles always come in mirror-image pairs, \(p\) and \(p^*\). One such pair is exactly one resonance from section 01:
So we can draw a filter as dots on a plane, the z-plane. A pole's angle says which frequency it boosts (0 on the right, \(f_s/2\) = 8 kHz on the left). Its distance from the centre says how sharply: near the unit circle means a narrow, tall formant; near the centre means a weak, broad one. Outside the circle, the filter is unstable.
The frequency response is the filter evaluated on the unit circle, \(z = e^{j\omega}\). Since \(H\) is one over a product, its size is one over a product of distances:
Walk a point around the upper half of the unit circle from 0 Hz to 8 kHz. Whenever it passes close to a pole, one of the distances becomes tiny, the product drops, and \(|H|\) shoots up: a formant. Try it: drag the poles, and use the frequency slider to walk the probe around the circle.
Drag a pole (\(\times\)). Its mirror image follows automatically.
Now put the pieces together. Take a 32 ms frame of real speech, find the best predictor weights exactly as in module 4 (autocorrelation method), and read them as \(A(z)\). Then \(1/|A|\) draws a smooth curve over the spectrum (the LPC envelope), and the roots of \(A(z)\) give the formants. Nothing about formants was put in; they come out of “predict the next sample as well as possible”.

Why pre-emphasis? Toggle it in the demo. Without it, the voiced spectrum's steady downward tilt (about −6 dB/octave overall: roughly −12 from the glottal pulse, +6 from lip radiation) eats several poles just to model the slope, and the high formants come out weak or missing. A gentle high-frequency boost first, \(x[n] - 0.97\,x[n-1]\), flattens the tilt so the poles are spent on formants.
Run the fit on every 10 ms frame of a whole sentence and we have a time-varying vocal-tract filter. Two things become possible:
Pass the speech through the prediction-error filter \(A(z)\). The resonances are removed, leaving the residual: a buzz of glottal pulses (and noise where the speech is unvoiced).
Pass the residual back through the all-pole filter \(1/A(z)\). It puts the resonances back, and the speech comes out exactly as it went in.

The exciting part comes next. If the residual is basically “pulses at the pitch, or noise”, we can throw it away and regenerate it from just three numbers per frame: voiced or not, pitch, and loudness. Then we feed our home-made source through the 18 recorded filter weights. That is an LPC vocoder, the idea inside LPC-10 and the Speak & Spell. Because source and filter are now separate, we can also change the source while keeping the filter:
“We fished sharks on Niihau together.” CMU ARCTIC speaker ksp (Indian-English male), sentence a0505.
Speech through \(A(z)\): the source. A buzzy, unintelligible-ish hum of glottal pulses, with hiss for /f/, /ʃ/ and /s/.
Residual through \(1/A(z)\). Indistinguishable from the original.
Residual thrown away; replaced by clean pulses at the measured pitch (or noise), same filters. Robotic but clearly the same words and voice.
Pulses at a constant 100 Hz (this speaker talks at around 130–140 Hz): all intonation removed, the vowels and consonants untouched.
Pitch \(\times\,1.8\) with the same vocal tract: a higher voice, but not a “chipmunk”, because the formants haven't moved.
Noise everywhere, no pulses: the same filters turn it into whispered speech, as in the source–filter page's grid.
The vocoder sounds buzzy for two reasons: ideal pulses are a crude stand-in for the real glottal waveform, and a hard voiced/unvoiced switch can't do mixtures like /z/. That is precisely what CELP fixed in 1985. It keeps the same all-pole filter, but instead of 3 numbers it sends a compact code for the residual itself, chosen so that the rebuilt speech sounds closest to the original. Its descendants (VSELP, QCELP, and the ACELP family in GSM-EFR, AMR and its successors) have carried most mobile phone calls since the late 1990s.
The concatenated-tube model of module 3 and the all-pole filter on this page are mathematically the same thing. The Levinson–Durbin recursion produces, along the way, a set of reflection coefficients \(k_1, \dots, k_p\), one per joint in a chain of equal-length tubes. From those we can estimate the shape of the vocal tract from a recording alone.