Active Noise Cancellation

An ANC headset fights noise with anti-noise: an inverted copy of the incoming sound, played so its peaks land on the noise’s troughs. The catch is timing — the anti-noise has to arrive at your eardrum at the same instant. Every microsecond the mic→chip→speaker loop takes becomes a phase error that grows with frequency, and past a point the “anti-noise” stops cancelling and starts adding. Drag the latency slider and watch the cancellation collapse.

Noise & controller

200 Hz 700 Hz
500 µs · 24 smp
latency of one DSP block @ 48 kHz — watch the band collapse as blocks grow
×1.00 · floor −∞

Loop latency — the time the system takes to respond: reference mic → ADC → processing → DAC → speaker. Anti-noise gain — how loud the inverted copy is played; it should sit at ×1.00 to exactly match the noise (any mismatch leaves a floor of |1−g|). Cancellation only works below f ≈ 1/(6·Δt), so killing noise up to ~1 kHz needs under ~170 µs — which is why ANC leans on analog or per-sample processing rather than large DSP blocks.

The acoustic path

NOISE head-start = d/c ≈ 0.23 ms REFERENCE MIC ANTI-NOISE SPEAKER ERROR MIC CONTROLLER · adaptive filter EAR signal flow

The noise travels left→right toward your ear. The reference mic catches it on the way in, giving the controller a head-start — the sound’s travel time between the mics (d/c ≈ 0.23 ms) — to compute the anti-noise the speaker plays. The error mic at the ear reports the leftover residual so the filter can adapt. The latency slider above is the electronic loop delay; what actually matters is whatever timing error is left after that head-start.

Waveforms at the eardrum

time domain
Noise Anti-noise (inverted + delayed) Residual (what you hear)

Cancellation spectrum

attenuation vs frequency

The curve is the controller’s transfer function: how much it cuts (below 0 dB, green) or boosts (above 0 dB, red) each frequency, for the current latency and gain. Dots mark the tones you’ve set.

Result

At the tone
— dB
primary frequency
Overall
— dB
power-weighted
Cancellation band
helps below ≈ 1/(6·Δt)
Effective latency
after head-start

What you're looking at