Bessel Filter Response and Why It Keeps Pulse Shape

Group delay is τg = −dφ/dω, and a pulse keeps its shape only when that delay is constant across its spectrum. A Bessel low-pass keeps the delay maximally flat, so its step response barely overshoots, but its magnitude roll-off is weaker than a Butterworth of the same order.

Engineer’s note: Bessel is the filter people pick for pulses and then regret when the rejection spec shows up. Work out the order first. If it's ugly, a Butterworth with a delay equaliser after it can be the cheaper answer, and a scope will tell you quickly whether the overshoot even matters.

For practitioners

Most filter specs are written in the frequency domain: insertion loss, ripple, rejection at some offset. When the signal is a pulse, a data edge or any shape you care about in time, the magnitude of S21 is only half the story. The phase of S21 decides whether the parts of the pulse come out of the filter together or spread apart. The Bessel filter, also called the Thomson filter, is the low-pass family built to keep those parts together.

Group delay: what the phase of S21 does to a signal

Write the transmission of a two-port as S21 = |S21|·e^(jφ). The group delay is defined from the slope of the phase:

τg=−dϕdω\tau_g = -\frac{d\phi}{d\omega}

Here φ is in radians and ω = 2πf in rad/s, so τg comes out in seconds. If you read phase in degrees against frequency in hertz, the same quantity is:

τg=−1360 dϕdegdf\tau_g = -\frac{1}{360}\,\frac{d\phi_{\text{deg}}}{df}

Group delay is the transit time of the envelope of a narrow band of frequencies centred on ω. A pulse is a sum of many such bands. Each band is delayed by the group delay at its own frequency. If those delays differ, the bands arrive at different times and the pulse comes out with a different shape, even when the magnitude response is perfectly flat.

The distortion-free condition

A path passes a signal without distortion when the output is a scaled, delayed copy of the input. In the frequency domain that means two things at once:

  • a flat magnitude, |S21| constant over the signal band, and
  • a constant group delay, which means a phase that is linear in frequency.
ϕ(f)=−2πfτ0⇒τg=τ0\phi(f) = -2\pi f \tau_0 \quad \Rightarrow \quad \tau_g = \tau_0

Notice that the phase does not have to be small. It can wrap through many multiples of 360°. What matters is that it is a straight line through the origin. A constant offset in delay just moves the whole pulse later in time. A change in delay with frequency is what changes its shape.

The figure for this section compares a Bessel and a Chebyshev low-pass in both domains. On the left, the Bessel group delay stays nearly flat up to the cut-off, while the Chebyshev delay peaks near the band edge. On the right is the step response of each. The Chebyshev overshoots and rings, because the components near its band edge arrive late and out of step. The Bessel output rises smoothly to its final value.

Group delayStep response0fc2fc01020Frequency f (fc = cut-off)Group delay τg (ns)BesselChebyshev010203040506001Time t (ns)Output (normalised)Chebyshev ringsBessel: smooth riseBesselChebyshev
Group delay against frequency and step response against time for Bessel and Chebyshev low-pass filters of the same order and cut-off, with the Bessel scaled to a 10 ns low-frequency delay. Computed from the formula.

How the Bessel low-pass is built

The Bessel filter turns the distortion-free condition into a design target. Instead of making the magnitude maximally flat at ω = 0, as Butterworth does, it makes the group delay maximally flat at ω = 0. The transfer function uses Bessel polynomials θn(s) in the denominator:

H(s)=θn(0)θn(s)H(s) = \frac{\theta_n(0)}{\theta_n(s)}

For the first few orders, normalised so the low-frequency delay is 1 s:

  • n = 2: θ2(s) = s² + 3s + 3
  • n = 3: θ3(s) = s³ + 6s² + 15s + 15

To scale to a real filter you divide s by ω0. That sets the low-frequency delay to 1/ω0. The coefficients are chosen so that as many derivatives of τg as possible are zero at ω = 0. In practice the delay stays close to its DC value across most of the passband and then falls away gradually above the cut-off.

The price is the magnitude. All the freedom in the polynomial is used to flatten the delay, so none is left to sharpen the skirt. The Bessel magnitude response rolls off gradually, and its selectivity is worse than a Butterworth or Chebyshev filter of the same order. If you need a given rejection at a given offset, a Bessel design needs a higher order than a Butterworth.

Worked example: a 10 ns linear-phase path

Take an ideal path with constant delay τ0 = 10 ns. Its phase is φ = −2π·f·τ0.

  • At 50 MHz: φ = −2π × 50×10⁶ × 10×10⁻⁹ = −π rad = −180°.
  • At 100 MHz: φ = −2π × 100×10⁶ × 10×10⁻⁹ = −2π rad = −360°.

The slope is constant. Using the degree form, dφ/df = −360° / 100 MHz, so τg = (1/360) × 360 / 10⁸ = 10 ns at every frequency. A 50 MHz component and a 100 MHz component both leave the path 10 ns late. Their relative timing is unchanged, so the pulse built from them keeps its shape.

Now suppose, as a hypothetical, the 100 MHz component were delayed by 12 ns while the 50 MHz component stayed at 10 ns. The 100 MHz part would arrive 2 ns late compared with the rest. At 100 MHz, 2 ns is 2π × 10⁸ × 2×10⁻⁹ = 0.4π rad, or 72° of extra phase. A misalignment of that size between harmonics changes the waveform. On a step it shows up as overshoot and ringing. That is the effect a peaking group delay near the band edge produces, and the effect the Bessel design avoids.

A phase plot that looks "almost straight" can still hide a large delay variation, because the derivative magnifies small bends. To judge pulse fidelity, look at group delay directly, not phase. Also set a sensible smoothing aperture when you compute it from measured S21, since differentiating noisy phase makes noisy delay.

When to pick Bessel over Butterworth

Choose by what the signal needs, not by habit.

Pick a Bessel low-pass when:

  • the waveform shape matters, as with pulses, data edges, or a signal you will look at on an oscilloscope;
  • overshoot would cause false triggering, clipping in a following stage, or settling errors;
  • the nearest unwanted energy is well above the cut-off, so a gradual skirt still gives enough rejection.

Pick a Butterworth (or Chebyshev) low-pass when:

  • the signal is narrowband or continuous-wave and only amplitude across the band matters;
  • you need strong rejection close to the cut-off for the least order and loss;
  • some ringing on transients is acceptable.

A useful check: work out the rejection you need, then ask whether the Bessel order needed to meet it is practical. If it is, the clean step response comes almost for free. If it is not, a Butterworth with a delay equaliser after it, or a lower-order Bessel with more spacing to the interferer, may be the better trade.

In plain words · for students and beginners

Bessel filter response in plain words

An everyday analogy

Think of a group of runners who start a race side by side and must cross the finish line still side by side. A Bessel filter is a course where every runner, slow or fast, takes the same time to get through. They stay in a line. A Chebyshev filter is a course with a muddy patch that only slows down some runners. Those runners arrive late, and the line breaks up.

In a signal, the "runners" are the different frequencies that together make up a pulse. If they all arrive at the same time, the pulse looks the same at the output. The analogy has a limit. Real runners are separate people, but frequencies add together. When some of them arrive late, they don't just trail behind. They add bumps and wiggles (called "ringing") on top of the pulse.

The same example in simple steps

The picture below shows the phase of an ideal path that delays everything by 10 ns. Phase is how far through its cycle a wave has moved, measured in degrees.

0−90−180−270−3600255075100Frequency (MHz)Phase (degrees)Ideal linear phase φ = −2π·f·τ0, τ0 = 10 ns−180° at 50 MHz−360° at 100 MHzslope = −2π·τ0same delay at every f
Phase of an ideal linear-phase path with τ0 = 10 ns, φ = −2π·f·τ0, falling in a straight line to −360° at 100 MHz. Computed from the formula.
  1. One cycle at 100 MHz lasts 10 ns. A 10 ns delay is exactly one full cycle, so the phase is −360°.
  2. One cycle at 50 MHz lasts 20 ns. A 10 ns delay is half a cycle, so the phase is −180°.
  3. Plot these points and you get a straight line. Its slope is −2π·τ0.
  4. Group delay is the steepness of that line. A straight line has the same steepness everywhere, so every frequency gets the same 10 ns delay.
  5. Same delay for every frequency means the pulse keeps its shape.

Mistakes beginners make

  • Thinking a big phase number is bad. −360° sounds large, but it is just a delay. What causes trouble is a phase that bends away from a straight line.
  • Checking only the magnitude. A filter can pass every frequency at the same strength and still smear a pulse if its delay is uneven.
  • Expecting Bessel to be sharp. "Roll-off" means how fast the filter cuts signals off above its cut-off frequency. A Bessel filter rolls off slowly. It lets more unwanted signal through just above the cut-off than a Butterworth filter of the same size.
  • Reading delay from a noisy phase plot by eye. Small bends in phase can mean large changes in delay.

Remember

  • Group delay is minus the slope of phase against angular frequency: τg = −dφ/dω.
  • Constant delay (straight-line phase) keeps a pulse's shape. A Bessel filter is designed to keep the delay as flat as possible.
  • Bessel gives a smooth step with little ringing, but weaker rejection than a Butterworth of the same order.

Frequently asked questions

Why does a Bessel filter have less overshoot than a Butterworth filter?

A Bessel filter is designed for a maximally flat group delay, so all frequency components of a pulse in the passband are delayed by nearly the same time and arrive lined up. A Butterworth filter has flat magnitude but a delay that rises toward the cut-off, so the edge components arrive late and show up as overshoot and ringing.

What is group delay in a filter?

Group delay is τg = −dφ/dω, where φ is the phase of S21 in radians and ω is the angular frequency. It is the time delay seen by the envelope of a narrow band of frequencies around ω.

Is a Bessel filter less selective than a Butterworth filter?

Yes. For the same order, the Bessel magnitude response rolls off more gradually, so it rejects less just above the cut-off than a Butterworth or Chebyshev filter. You trade selectivity for a clean time-domain response.

What phase does a constant 10 ns delay give at 100 MHz?

A linear phase φ = −2π·f·τ0 with τ0 = 10 ns gives φ = −2π rad, which is −360°, at 100 MHz. The group delay of that phase is exactly 10 ns at every frequency.

References and further reading