The Butterworth Transform
Table Of Contents
Introduction
In this document, we will provide an overview of the Butterworth transform, a concept thoroughly studied by Vadim Zavalishin in his book titled The Art of VA Filter Design.1
The Butterworth transform is so named because when applied to a first-order filter, it transforms it into a Butterworth filter.
Definition
The Butterworth transform is a transformation that modifies the magnitude \(G(\omega)\) of a filter through the substitution:
$$ \omega \leftarrow \omega^n $$
where \(n\) denotes the order of the transform, an integer with \(n \geq 1\).
Using the relation \(s = i\omega\), we can also express this substitution as:
$$ s \leftarrow i^{n-1}s^n $$
By applying this substitution to any transfer function \(H(s)\), we obtain a new transfer function that corresponds to a filter where the octave axis is compressed by a factor of \(n\).
To ensure the stability of the newly created filter and eliminate any potential positive real parts in the new poles and zeros, we define an operator \(\mathcal{S}\) that adjusts these real parts accordingly.
We denote the Butterworth transform by the operator \(\mathcal{B_n}\), where \(\mathcal{B_n}\{H(s)\}\) represents the filter obtained by applying the Butterworth transform:
$$ \boxed{\mathcal{B_n}\{H(s)\} = \mathcal{S}\{H(i^{n-1}s^n)\}}. $$
Visualization of the Butterworth Transform
In a log-log magnitude plot (e.g., in dB per octave), applying the Butterworth Transform compresses the magnitude curve horizontally, resulting in a steeper slope for a lowpass filter.
This transformation can be contrasted with the method of stacking multiple copies of a filter, which increases the order by vertically stretching the magnitude response curve. The following code demonstrates this comparison visually:
|
|
Geometrical Interpretation
At first glance, evaluating \(\mathcal{B_n}\{H(s)\}\) may seem complicated due to the potential manipulation of high-degree polynomials when refactoring the positive poles and zeros to the negative axis. Therefore, it is helpful to examine how the function \(s \to i^{n-1}s^n\) stretches the complex \(s\)-plane. This transformation can be visualized using tools such as this one.
By doing so, we can understand that applying the Butterworth Transform geometrically replicates the initial poles and zeros within circular sectors, as illustrated in the interactive plot below. Additionally, the absolute values of these poles and zeros are stretched according to the transformation \(x \mapsto \sqrt[n]{x}\). Consequently, the locations of the poles and zeros of \(\mathcal{B_n}\{H(s)\}\) can be accurately predicted based on the initial positions of the poles and zeros and can be computed using standard trigonometric principles, as we will demonstrate in the next section.
Poles Zeros location
Let’s be \(p_i\) and \(z_i\) The poles/zeros of any filter we want to apply the Butterworth transform on. The resulting poles/zeros are:
$$p_{i,k} = j\sqrt[n]{-jp_i}e^{\frac{j\pi k}{n}}$$
$$z_{i,k} = j\sqrt[n]{-jz_i}e^{\frac{j\pi k}{n}}$$
With \(k = 0, 1, …, n-1\).
This formula is explained as follow: We first rotate the pole/zero by multiplying it by \(-j\) such the square root gives us the right angle rotation (in addition to the magnitude stretching), then we mutiply by \(j\) back, and apply a final rotation by \(e^{\frac{j\pi k}{n}}\) for each individual new poles/zeros.
We might also express the poles/zeros in term of its magnitude and angle (operator \(\angle\)) as follow:
$$p_{i,k}=\sqrt[n]{\left|p_i\right|} e^{j\frac{\angle{p_i}+\pi\left(k+\frac{n+1}{2}\right)}{n}}$$
$$z_{i,k}=\sqrt[n]{\left|z_i\right|} e^{j\frac{\angle{z_i}+\pi\left(k+\frac{n+1}{2}\right)}{n}}$$
Application to a Second-Order Lowpass Prototype
The Butterworth transform can be applied to second-order lowpass filters. The transfer function of a second-order lowpass prototype is:
$$ H(s) = \frac{1}{s^2 + 2Rs + 1} $$
where \(R = \frac{1}{2Q}\) is the damping factor.
Poles/Zeros Representation
The transfer function can be expressed in terms of its poles:
$$ H(s) = \frac{1}{(s - p_0)(s - p_1)} $$
with the poles:
$$ p_0 = -R + \sqrt{R^2 - 1}, \quad p_1 = -R - \sqrt{R^2 - 1} $$
Applying the Butterworth Transform
Applying the Butterworth transform to \(H(s)\), the transfer function becomes:
$$ \mathcal{B_n}\{H(s)\} = \prod_{k=1}^{n} \frac{1}{(s - p_{0,k})(s - p_{1,k})} $$
The poles \(p_{i,k}\) are:
$$ p_{i,k} = r_i e^{j\frac{\theta_i + \pi(k + \frac{n+1}{2})}{n}}, \quad i = 0, 1, \quad k = 0, 1, \dots, n-1 $$
Case 1: \(R < 1\)
For \(R < 1\), the parameters are:
$$ r_0 = r_1 = 1, \quad \theta_0 = \arccos(R), \quad \theta_1 = -\arccos(R) $$
Case 2: \(R \geq 1\)
For \(R \geq 1\), we have:
$$ r_0 = \sqrt[n]{R + \sqrt{R^2 - 1}}, \quad r_1 = \sqrt[n]{R - \sqrt{R^2 - 1}}, \quad \theta_0 = \theta_1 = 0 $$
Poles Symmetry
To simplify the poles computation, we can use the following property:
$$ p_{1,k} = \begin{cases} \overline{p_{0,k}} & \text{if } R < 1 \newline \frac{1}{p_{0,k}} & \text{if } R \geq 1 \end{cases} $$
Application to a Second-Order Highshelf Prototype
The highshelf filter prototype is derived from the lowpass filter by combining the lowpass filter with its mirrored version, creating a transition band. The transfer function is:
$$ H_{\text{shelf}}(s) = \mathcal{B_n}\left\{\frac{H(g^{-\frac{1}{4n}}s)}{H(g^{\frac{1}{4n}}s)} \right\} = g \prod_{k=1}^{n} \frac{(s - g^{-\frac{1}{4n}}p_{0,k})(s - g^{-\frac{1}{4n}}p_{1,k})}{(s - g^{\frac{1}{4n}}p_{0,k})(s - g^{\frac{1}{4n}}p_{1,k})} $$
where \(g\) is the linear gain factor of the highshelf filter.
Standard filter shapes (Lowpass, Highpass, Bandpass, Notch, Highshelf, Lowshelf, and Peak) can be obtained by combining prototype filters with the highpass transform and bandpass transform 2.
Resonant Butterworth Filter using the Butterworth Transform
The Butterworth transform can be employed to design resonant Butterworth filters, but it has some limitations that make it less ideal for this purpose:
- The transform only works for even values of \(n\), restricting designs to filters with slopes in multiples of 12 dB/octave. This makes it impossible to achieve resonant filters with slopes like 18 dB/oct or 30 dB/oct using this method.
- In the case of overdamped resonant filters, the resulting stepped response, similar to that of a resonant 12 dB/oct filter, can be undesirable for most practical applications.
- Computing the coefficients involves additional mathematical complexity, including trigonometric functions, which are not required in simpler design methods.
For these reasons, the approach outlined here is generally more efficient for designing resonant Butterworth filters.
Using the Butterworth Transform to Create Fractional Slopes
While the Butterworth transform is not the best method for resonant filters, it excels in other areas. In particular, it is highly useful for designing fractional-slope shelving filters, allowing for flexible and precise control over frequency response. I will explore this application further in an upcoming blog post.
Conclusion
We have shown that the Butterworth transform is an effective technique for modifying filter characteristics by compressing the frequency axis and ensuring stability. While it presents challenges when designing resonant filters, its strength lies in facilitating fractional-slope shelving filters, providing precise control over frequency response. Overall, the Butterworth transform enhances filter design, making it a valuable tool in audio and signal processing applications.