Butterworth Lowpass Filter Gain, Phase, and Group Delay Equations

This may be the only place you will ever find the explicit formulas for Butterworth lowpass filter gain, phase, and group delay based on the basic Butterworth polynomials (until people copy my work and don't give credit*). Hoping to avoid having to do the messy math of complex numbers requiring separating out the real and imaginary parts to obtain phase (θ) - and then to get the first derivative for group delay (τd) - I  searched high and low, far and wide for closed form equations, to no avail. All I could ever find was instruction to apply arg{H(ω)} for phase (θ) and -dθ/dω for group delay -- pretty useless if you want to plug an equation into a spreadsheet or software.

Here are equations and plots for Butterworth highpass, bandpass, and bandstop filters.

Finally, I decided if I wanted the solutions, I would have to slog through all the equations myself. Here is the result. The basic steps are as follow:

  • Simplify the polynomial factors by multiplying out the parenthetical quantities.
  • Substitute jω (or iω, but engineers use jω) for each "s," where ω is the frequency (ωn) being evaluated divided by the cutoff frequency (ωco); hence, jω = jωnco.
  • Since j2 = -1 by definition, all even powers of j result in "real" parts and all odd powers of j result in "imaginary" parts. E.g., for 3rd-order:
    • H(s) = (s + 1)(s2 + s + 1) = js3 + 2s2 +2s + 1
    • H(jω) = (jω)3 + 2(jω)2 +2(jω) + 1 = j3ω3 + 2(j2ω2) +2(jω) + 1
       = -jω3 + 2(-ω2) + j2ω + 1 = -jω3 - 2ω2 + j2ω + 1
    • Re{H(jω)} =  1 - 2ω2  (parts  w/o j), and Im{H(jω)} = 2ω - ω3 (parts w/j)
  • Gain is G(ω) = sqrt [Re{H(jω)2 + Im{H(jω)2]
  • The phase angle is by definition θ(ω) =  tan-1 (Re{H(jω)}/Im{H(jω)})
          θ(ω) = tan-1 [(1 - 2ω2) / (2ω - ω3)]
  • Group delay is defined as τd(ω) = -dθ(ω)/dω. This is where it gets hard, mainly due to the arctangent, but the fraction is no walk in the park, either. Fortunately, there are online math websites like SymboLab that will handle such derivatives. For that matter, it will multiply all the factors for you as well, reducing the opportunity for errors.
  • Finally, do the ω = ωnco substitution everywhere. ωn is the frequency at which the equation is being evaluated, and ωco is the cutoff frequency. Frequency units cancel out, so a 1 Hz cutoff plots the same as a 1 kHz cutoff or a 1 GHz cutoff for gain and phase. The group delay scale needs to be divided by a factor equal to the frequency units (÷103 for kHz, ÷106 for MHz, etc.).

This table represents hours of work on my part. I will eventually get around to lowpass, highpass, bandpass, and bandreject for Butterworth, Chebyshev, and Bessel (and maybe Gaussian) filters.

Butterworth Lowpass, Highpass, Bandpass, and Bandstop Filter Calculator with Gain, Phase and Group Delay are now part of my free RF Cafe Espresso Engineering Workbook™!

* I had Archive.org save a copy of this page in order to prove this is my original work.

N  
1
Gain
H(ω)

s + 1

(jω) + 1

sqrt (1 + ω2)

Phase  θ(ω)   

tan-1 (1/ω)

Group Delay
τd(ω)

1/(1 + ω2)

2
Gain H(ω)

s2 + 1 + 1.4142s

(jω)2 + 1.4142(jω) + 1

(1 - ω2) + j1.4142ω

sqrt [(1 - ω2)2 + (1.4142ω)2]

Phase  θ(ω)   

tan-1 [(1 - ω2)/1.4142ω]

Group Delay
τd(ω)

(1 + ω2)/[1.4142(0.5ω4 - 0.0001ω2) + 0.5]

3
Gain H(ω)

s3 + 2s2 + 2s + 1
(jω)3 + 2(jω)2 + 2(jω) + 1
(1 - 2ω2) + j(2ω - ω3)
sqrt [(1 - 2ω2)2 + (2ω - ω3)2]

Phase  θ(ω)   

tan-1 [(1 - 2*ω2)/(2ω - ω3)]

Group Delay
τd(ω)

(2*ω4 + ω2 + 2)/(ω6 + 1)

4
Gain H(ω)

 s4 + 2.6131s3 + 3.4142s2 + 2.6131s + 1

(jω)4 + 2.6131(jω)3 + 3.4142(jω)2 + 2.6131(jω) + 1

4 - 3.4142ω2 + 1) + j(-2.6131ω3 + 2.6131ω)

sqrt [(ω4 - 3.4142ω2 + 1)2 + (-2.6131ω3 + 2.6131ω)2]

Phase  θ(ω)    tan-1 [(ω4 - 3.4142ω2 + 1)/(-2.6131ω3 + 2.6131ω)]
Group Delay
τd(ω)
(2.6131ω6 + 1.08234602ω4 + 1.08234602ω2 + 2.6131) / (ω8 - 0.00010839ω6 + 0.00017842ω4 - 0.00010839ω2 + 1)
5
Gain H(ω)

s5 + 3.2361s4 + 5.2361s3 + 5.2361s2 + 3.2361s + 1

(jω)5 + 3.2361(jω)4 + 5.2361(jω)3 + 5.2361(jω)2 + 3.2361(jω) + 1

(3.2361ω4 - 5.2361ω2+1) + j(ω5 - 5.2361ω3 + 3.2361ω)

sqrt [(3.2361ω4 - 5.2361ω2 + 1)2 + (ω5 - 5.2361ω3 + 3.2361ω)2]

Phase  θ(ω)    tan-1 [(3.2361ω4 - 5.2361ω2 + 1)/(ω5 - 5.2361ω3 + 3.2361ω)]
Group Delay
τd(ω)
(3.2361ω8 + 1.23624321ω6 + 0.99971358ω4 + 1.23624321ω2 + 3.2361) / (ω10 + 0.00014321ω8 - 0.00014321ω6 - 0.00014321ω4 + 0.00014321ω2 + 1)
6
Gain H(ω)

 s6 + 3.8637s5 + 7.4641s4 + 9.1416s3 + 7.4641s2 + 3.8637s + 1

(jω)6 + 3.8637(jω)5 + 7.4641(jω)4 + 9.1416(jω)3 + 7.4641(jω)2 + 3.8637(jω) + 1

(-ω6 + 7.4641ω4 - 7.4641ω2 + 1) + j(3.8637ω5 - 9.1416ω3 + 3.8637ω)

sqrt [(-ω6 + 7.4641ω4 - 7.4641ω2 + 1)2 + (3.8637ω5 - 9.1416ω3 + 3.8637ω)2]

Phase  θ(ω)   

tan-1 [(-ω6 + 7.4641ω4 - 7.4641ω2 + 1)/(3.8637ω5 - 9.1416ω3 + 3.8637ω)]

Group Delay
τd(ω)

(3.8637*ω10 + 1.41424317*ω8 + 1.03518705*ω6 + 1.03518705*ω4 + 1.41424317*ω2 + 3.8637) / (ω12 - 0.00002231*ω10 + 0.00018897*ω8 - 0.00037168*ω6 + 0.00018897*ω4 - 0.00002231*ω2 + 1)

7
Gain H(ω)

 s7 + 4.4940s6 + 10.0978s5 + 14.5920s4 + 14.5920s3 + 10.0978s2 + 4.4940s + 1

(jω)7 + 4.4940(jω)6 + 10.0978(jω)5 + 14.5920(jω)4 + 14.5920(jω)3 + 10.0978(jω)2 + 4.4940(jω) + 1

(-4.494ω6 + 14.592ω4 - 10.0978ω2 + 1) + j(-ω7 + 10.0978ω5 - 14.592ω3 + 4.494ω)

sqrt [(-4.494ω6 + 14.592ω4 - 10.0978ω2 + 1)2 + (-ω7 + 10.0978ω5 - 14.592ω3 + 4.494ω)2]

Phase  θ(ω)    tan-1 [(-4.494ω6 + 14.592ω4 - 10.0978ω2 + 1)/(-ω7 + 10.0978ω5 - 14.592ω3 + 4.494ω)]
Group Delay
τd(ω)

(4.494ω12 + 1.6035132ω10 + 1.1067536ω8 + 1.00994948ω6 + 1.1067536ω4 + 1.6035132ω2 + 4.494) / (ω14+0.000436ω12 - 0.00333116ω10 + 0.0032952ω8 + 0.0032952ω6-0.00333116ω4 + 0.000436ω2 + 1)

8
Gain H(ω)

 s8 + 5.1528s7 + 13.1371s6 + 21.8462s5 + 25.6884s4 + 21.8462s3 + 13.1371s2 + 5.1528s + 1

 (jω)8 + 5.1258(jω)7 + 13.1371(jω)6 + 21.8462(jω)5 + 25.6884(jω)4 + 21.8462(jω)3 + 13.1371(jω)2 + 5.1258(jω) + 1

8 - 13.1371ω6 + 25.6884ω4 - 13.1371ω2 + 1) + j(-5.1258ω7 + 21.8462ω5 - 21.8462ω3 + 5.1258ω)

Phase  θ(ω)   

tan-1 [(ω8 - 13.1371ω6 + 25.6884ω4 - 13.1371ω2 + 1)/(-5.1258ω7 + 21.8462ω5 - 21.8462ω3 + 5.1258ω)]

Group Delay
τd(ω)

(5.1258ω14 + 1.79954718ω12 + 1.20591186ω10 + 1.01691792ω8 + 1.01691792ω6 - 1.20591186ω4 + 1.79954718ω2 + 5.1258) / (ω16 - 0.00037436ω14 + 0.00169249ω12 - 0.00140092ω10 + 0.00012722ω8 - 0.00140092ω6 + 0.00169249ω4 - 0.00037436ω2 + 1)

9
Gain H(ω)

ω9  + 5.7588ω8 + 16.5817ω7 + 31.1634ω6 + 41.9864ω5 + 41.9864ω4 + 31.1634ω3 + 16.5817ω2 + 5.7588ω + 1

(jω)9 + 5.7588(jω)8 + 16.5817(jω)7 + 31.1634(jω)6 + 41.9864(jω)5 + 41.9864(jω)4 + 31.1634(jω)3 + 16.5817(jω)2 + 5.7588(jω) + 1

(5.7588ω8 - 31.1634ω6 + 41.9864ω4 - 16.5817ω2 + 1) + j(ω9 - 16.5817ω 7 + 41.9864ω5 - 31.1634ω3 + 5.7588ω)

sqrt [(5.7588ω8 - 31.1634ω6 + 41.9864ω4 - 16.5817ω2 + 1)2 + (ω9 - 16.5817ω 7 + 41.9864ω5 - 31.1634ω3 + 5.7588ω)2]

Phase  θ(ω)   

tan-1 [(5.7588ω8 - 31.1634ω6 + 41.9864ω4 - 16.5817ω2 + 1)/(ω9 - 16.5817ω 7 + 41.9864ω5 - 31.1634ω3 + 5.7588ω)]

Group Delay
τd(ω)

(5.7588ω16 + 2.00049396ω14 + 1.30030882ω12 + 1.06835072ω10 + 1.00271865ω8 + 1.06835072ω6 + 1.30030882ω4 + 2.00049396ω2 + 5.7588) / (ω18 + 0.00037744ω16 - 0.00200095ω14 + 0.00148244ω12 + 0.00034108ω10 + 0.00034108ω8 + 0.00148244ω6 - 0.00200095ω4 + 0.00037744ω2 + 1)

 

 

Posted December 1, 2023