Ohmic Audio

⚙️ ENGINEER LEVEL: Filter Theory and Design

Transfer Functions of Filter Types

First-Order High-Pass (6 dB/octave):

Transfer function:

H(s) = s / (s + ω_c)

Magnitude:

|H(jω)| = (ω/ω_c) / √(1 + (ω/ω_c)²)

Phase:

∠H(jω) = 90° - arctan(ω/ω_c)

At cutoff frequency: |H| = -3 dB, Phase = 45°

Second-Order High-Pass (12 dB/octave):

Transfer function (Butterworth):

H(s) = s² / (s² + √2×ω_c×s + ω_c²)

Magnitude:

|H(jω)| = (ω/ω_c)² / √[(1-(ω/ω_c)²)² + 2×(ω/ω_c)²]

Phase:

∠H(jω) = 180° - arctan(√2×(ω/ω_c) / (1-(ω/ω_c)²))

At cutoff: |H| = -3 dB, Phase = 90°

Fourth-Order (24 dB/octave):

Cascade of two second-order sections.

Linkwitz-Riley:

H(s) = [s² / (s² + √2×ω_c×s + ω_c²)]²

Special property: LR4 HPF + LR4 LPF sum to flat response when added acoustically

At cutoff: |H| = -6 dB, Phase = 180°

Crossover Phase Relationships

Phase shift accumulates:

First-order: 90° total phase shift Second-order: 180° total Third-order: 270° total Fourth-order: 360° total

Practical implication:

If tweeter and woofer crossed with 12 dB/octave: - Each has 90° phase shift at crossover - Total: 180° difference - They sum out of phase!

Solutions:

1. Linkwitz-Riley 24 dB/octave: - Each speaker: 180° shift - Difference: 360° = 0° (in phase!) - Sums to flat response

2. Physical alignment: - Tweeter behind or ahead of woofer - Time delay compensates phase - Complex to implement

3. All-pass networks: - Add phase shift without affecting magnitude - Can align arbitrary crossovers - Used in passive crossovers

Group Delay:

Frequency-dependent time delay:

τ_g(ω) = -dφ/dω

For Butterworth second-order at cutoff:

τ_g(ω_c) = 1/ω_c

Example: 80 Hz subwoofer crossover

τ_g = 1/(2π×80) = 2.0 ms

Audibility:

Group delay <10 ms generally inaudible Crossovers typically 1-5 ms - acceptable

Passive Crossover Design

Component values for Butterworth 12 dB/octave:

High-pass section (tweeter):

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

Low-pass section (woofer):

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

Where R = speaker impedance

Example: 3000 Hz crossover, 4Ω speakers

Tweeter capacitor:

C = 1 / (√2 × π × 3000 × 4)
C = 1 / 53,308 = 18.8 μF

Standard value: 18 μF or 20 μF

Tweeter inductor:

L = (√2 × 4) / (2π × 3000)
L = 5.66 / 18,850 = 0.30 mH = 300 μH

Woofer inductor:

L = 300 μH (same)

Woofer capacitor:

C = 18.8 μF (same)

Zobel network for impedance flattening:

Component values:

R_zobel = 1.25 × R_e
C_zobel = L_e / (R_zobel)²

Where: - Re = DC voice coil resistance - Le = voice coil inductance

Example: Tweeter with Re = 3.2Ω, Le = 0.08 mH

R_zobel = 1.25 × 3.2 = 4.0Ω
C_zobel = 0.08×10⁻³ / 16 = 5 μF

Active Crossover Implementation

Analog active crossover:

Op-amp Sallen-Key topology:

Illustration in preparation Description: Circuit schematic of Sallen-Key second-order filter with component values and transfer function

Transfer function:

H(s) = K / (1 + (C₁×R₁ + C₂×R₂ + C₁×R₂×(1-K))×s + C₁×C₂×R₁×R₂×s²)

For Butterworth (Q = 0.707): - Set R₁ = R₂ = R - Set C₂ = 2×C₁ = 2C - Set K = 1.586 (gain)

Cutoff frequency:

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

Digital crossover (DSP):

IIR (Infinite Impulse Response) biquad:

Transfer function:

H(z) = (b₀ + b₁×z⁻¹ + b₂×z⁻²) / (1 + a₁×z⁻¹ + a₂×z⁻²)

Butterworth HPF coefficients:

ω_c = 2π × f_c / f_s
Q = 0.707 (Butterworth)

α = sin(ω_c) / (2×Q)
b₀ = (1 + cos(ω_c)) / 2
b₁ = -(1 + cos(ω_c))
b₂ = (1 + cos(ω_c)) / 2
a₁ = -2×cos(ω_c)
a₂ = 1 - α

Normalize: divide all by (1 + α)

Implementation:

y[n] = b₀×x[n] + b₁×x[n-1] + b₂×x[n-2] - a₁×y[n-1] - a₂×y[n-2]

Computational cost: 5 multiplies + 4 adds per sample

FIR (Finite Impulse Response):

Transfer function:

H(z) = Σ(h[n] × z⁻ⁿ)

Advantages: - Linear phase (constant group delay) - Always stable - Precise control

Disadvantages: - Many taps required (hundreds for sharp crossovers) - High CPU cost - More latency

Typical modern DSP: - Uses IIR for crossovers (efficient) - Uses FIR for EQ (accuracy) - Hybrid approach


4.2 Equalization and Time Alignment