Ohmic Audio

6.4 Crossover and Filter Math

First-Order (6 dB/octave) Crossover

Component values:

High-pass (tweeter):

C = 1 / (2π × f_c × R)

Low-pass (woofer):

L = R / (2π × f_c)

Where R = speaker impedance (use nominal, e.g., 4Ω or 8Ω)

Worked example: 3,000 Hz crossover, 4Ω speakers:

C = 1 / (2π × 3000 × 4) = 1 / 75,398 = 13.3 μF
L = 4 / (2π × 3000) = 4 / 18,850 = 0.212 mH = 212 μH

Phase shift: 45° at crossover. Sum of HPF + LPF = flat but with 90° phase difference — may cause cancellation or reinforcement depending on driver polarity and placement.


Second-Order (12 dB/octave) Butterworth

Component values:

High-pass:

C₁ = 1 / (√2 × π × f_c × R) = 0.225 / (f_c × R)
L₁ = (√2 × R) / (2π × f_c) = 0.225R / f_c

Low-pass:

L₂ = (√2 × R) / (2π × f_c)
C₂ = 1 / (√2 × π × f_c × R)

(Same values as HPF — symmetric network)

At crossover: Each section = −3 dB. Drivers sum 3 dB hot (over-peaked). Reverse tweeter polarity to correct: flat sum but with polarity inversion.


Fourth-Order Linkwitz-Riley (24 dB/octave)

Most common professional crossover order.

Implementation: Cascade two Butterworth 12 dB/octave sections at same frequency.

Component values for each 2nd-order stage:

Stage 1 (Q = 0.5):

L₁ = R / (2π × f_c × 0.5)
C₁ = 0.5 / (2π × f_c × R)

Stage 2 (Q = 0.5 × same):

(Same values — both stages identical for LR4)

Properties: - At crossover: Each section = −6 dB - Phase: HPF = 360° (in phase), LPF = 360° - Sum: Flat response when both drivers in polarity - No polarity reversal needed

This is why LR4 became the standard for professional audio crossovers.


Active Crossover — High-Pass Biquad (IIR)

Digital Butterworth HPF coefficients:

ω₀ = 2π × f_c / f_s
α = sin(ω₀) / (2 × Q)

b₀ = (1 + cos(ω₀)) / 2
b₁ = −(1 + cos(ω₀))
b₂ = (1 + cos(ω₀)) / 2
a₀ = 1 + α
a₁ = −2 × cos(ω₀)
a₂ = 1 − α

Normalize: divide b₀, b₁, b₂, a₁, a₂ by a₀

Worked example: 80 Hz HPF, Q = 0.707 (Butterworth), 48 kHz sample rate:

ω₀ = 2π × 80 / 48000 = 0.01047 rad
α = sin(0.01047) / (2 × 0.707) = 0.01047 / 1.414 = 0.00740

b₀ = (1 + cos(0.01047)) / 2 = (1 + 0.99995) / 2 = 0.99997
b₁ = −(1 + 0.99995) = −1.99995
b₂ = 0.99997
a₀ = 1 + 0.00740 = 1.00740
a₁ = −2 × 0.99995 = −1.99990
a₂ = 1 − 0.00740 = 0.99260

After normalization (÷ by 1.00740):
b₀ = 0.9927    b₁ = −1.9854    b₂ = 0.9927
a₁ = −1.9852   a₂ = 0.9854

These coefficients are entered directly into DSP programming interfaces.


Parametric EQ Biquad Coefficients

Peaking filter:

A = 10^(gain_dB / 40)
ω₀ = 2π × f_center / f_s
α = sin(ω₀) / (2Q)

b₀ = 1 + α × A
b₁ = −2 × cos(ω₀)
b₂ = 1 − α × A
a₀ = 1 + α / A
a₁ = −2 × cos(ω₀)
a₂ = 1 − α / A

Normalize all by a₀.

Low-shelf filter:

A = 10^(gain_dB / 40)
ω₀ = 2π × f_c / f_s
α = sin(ω₀) / 2 × √((A + 1/A) × (1/S − 1) + 2)
(where S = shelf slope, typically 1.0)

b₀ = A × [(A+1) − (A−1)×cos(ω₀) + 2√A×α]
b₁ = 2A × [(A−1) − (A+1)×cos(ω₀)]
b₂ = A × [(A+1) − (A−1)×cos(ω₀) − 2√A×α]
a₀ = (A+1) + (A−1)×cos(ω₀) + 2√A×α
a₁ = −2 × [(A−1) + (A+1)×cos(ω₀)]
a₂ = (A+1) + (A−1)×cos(ω₀) − 2√A×α

Normalize all by a₀.

These are the "Audio EQ Cookbook" formulas — the standard reference for digital filter design, by Robert Bristow-Johnson.