Difference between revisions of "Filter Synthesis"
(Created page with "== Filter Tables == == Continued Fraction Expansion ==") |
|||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | Filters can be implemented (1) as a cascade if biquadratic filters, or ''biquads'', that implements one or two poles at a time, or (2) as '''ladder filters'''. | ||
+ | |||
+ | == Biquadratic Filters == | ||
+ | To implement a single real pole, we can use a simple RC cicuit, as shown in Fig. 1, whose transfer function is given by: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | H\left(s\right) = \frac{1}{1 + sRC} | ||
+ | </math>|{{EquationRef|1}}}} | ||
+ | |||
+ | To implement two complex conjugate poles, we can use a lossy LC circuit, as shown in Fig. 2. We can then express the transfer function of this circuit as: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | H\left(s\right) = \frac{1}{s^2LC + s\frac{L}{R}+1} | ||
+ | </math>|{{EquationRef|2}}}} | ||
+ | |||
+ | {| | ||
+ | |[[File:RC 1pole.png|thumb|260px|Figure 1: A simple RC circuit.]] | ||
+ | |[[File:RLC 2poles.png|thumb|300px|Figure 2: A lossy RLC circuit.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | A more complex filter can then be implemented by cascading 2-pole filters, and an extra 1-pole filter for odd-order complex filters, as shown in Fig. 3 for a fifth order filter. Note that (1) filters built as a cascade of biquads are easy to implement, but they are very sensitive to mismatch since the filter transfer function is dependent not only on the pole locations, but on the pole placement relative to other poles, (2) buffers are used to prevent loading effects, and (3) the biquads are arranged from lowest to highest Q to help reduce loss and noise. | ||
+ | |||
+ | {| | ||
+ | |[[File:Cascade biquads.png|thumb|600px|Figure 3: A 5th order filter implemented using cascaded biquads.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | == Ladder Networks == | ||
+ | A better alternative to cascading biquads is to expand the filter's driving point or input impedance using ''continued fraction expansion''. Consider a general ladder network shown in Fig. 4. The input impedance, <math>Z_{11}</math>, can then be expressed as the continued fraction: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | Z_{11} = \cfrac{1}{Y_1 + \cfrac{1}{Z_2 + \cfrac{1}{Y_3 + \ldots + \cfrac{1}{Z_{N-1} + \cfrac{1}{Y_N}}}}} | ||
+ | </math>|{{EquationRef|3}}}} | ||
+ | |||
+ | Thus, we can build filters using ladder networks if we know their input impedance. | ||
+ | |||
+ | {| | ||
+ | |[[File:Ladder filter.png|thumb|500px|Figure 4: A general ladder network.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === Example: A Low-Pass Butterworth Filter === | ||
+ | Consider a third order low-pass Butterworth filter with the normalized (to <math>\omega_0 = 1\,\mathrm{\tfrac{rad}{s}}</math>) transfer function: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | H\left(s\right) = \frac{N\left(s\right)}{D\left(s\right)} = \frac{1}{s^3 + 2s^2 + 2s + 1} | ||
+ | </math>|{{EquationRef|4}}}} | ||
+ | |||
+ | The filter is shown in Fig. 5, where it is driven by a source with input resistance, <math>R_S</math>, and loaded by the resistance, <math>R_L</math>. | ||
+ | |||
+ | {| | ||
+ | |[[File:Generic filter.png|thumb|300px|Figure 5: A filter driven by a source with resistance, <math>R_S</math>, and driving a resistive load, <math>R_L</math>.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | For the normalized impedance case, where <math>R_S=R_L=1\,\mathrm{\Omega}</math>, and with <math>N=3</math>: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \begin{align} | ||
+ | Z_{11} & = \frac{D\left(s\right)-s^N}{D\left(s\right)+s^N} \\ | ||
+ | & = \frac{s^3 + 2s^2 + 2s + 1 - s^3}{s^3 + 2s^2 + 2s + 1 + s^3}\\ | ||
+ | & = \frac{2s^2 + 2s + 1}{2s^3 + 2s^2 + 2s + 1} | ||
+ | \end{align} | ||
+ | </math>|{{EquationRef|5}}}} | ||
+ | |||
+ | We can then expand this as: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \begin{align} | ||
+ | Z_{11} & = \cfrac{1}{\cfrac{s^3 + 2s^2 + 2s + 1 + s^3}{2s^2 + 2s + 1}}\\ | ||
+ | & = \cfrac{1}{s + \cfrac{s+1}{2s^2 + 2s + 1}}\\ | ||
+ | & = \cfrac{1}{s + \cfrac{1}{\frac{2s^2 + 2s + 1}{s+1}}}\\ | ||
+ | & = \cfrac{1}{s + \cfrac{1}{2s + \cfrac{1}{s+1}}}\\ | ||
+ | \end{align} | ||
+ | </math>|{{EquationRef|6}}}} | ||
+ | |||
+ | Thus, for the low-pass case, we have capacitors as the admittances to ground, and inductors as the impedances in the forward path, or equivalently <math>Y_i = sC_i</math> and <math>Z_i = sL_i</math>, and in the terminated case, <math>Y_N=sC_N + \tfrac{1}{R_L}</math>. We can then determine the capacitance and inductance values of the third order low-pass Butterworth filter: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \begin{align} | ||
+ | Y_1 = s & \rightarrow C_1 = 1\,\mathrm{F}\\ | ||
+ | Z_2 = s & \rightarrow L_2 = 2\,\mathrm{H}\\ | ||
+ | Y_3 = s & \rightarrow C_3 = 1\,\mathrm{F}\\ | ||
+ | \end{align} | ||
+ | </math>|{{EquationRef|7}}}} | ||
+ | |||
+ | The resulting filter is shown in Fig. 6. | ||
+ | |||
+ | {| | ||
+ | |[[File:Butterworth ladder LPF 3.png|thumb|400px|Figure 6: A third order low-pass normalized Butterworth filter.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
== Filter Tables == | == Filter Tables == | ||
+ | For higher-order filters, calculating the inductance and capacitance values could take some time and effort, though these values are well known. An alternative to continued fraction expansion, in implementing ladder filters, is the use of ''filter tables''. Fig. 8 shows a sample filter table taken from the famous book by Anatoly Zverev<ref name="zverev1967">Zverev, Anatoly I., ''Handbook of filter synthesis'', New York, Wiley [1967]</ref>. To illustrate the use of filter tables, consider the example below. | ||
+ | |||
+ | === Filter Design Example === | ||
+ | Let us design a filter with the following specifications: | ||
+ | * A maximally flat low-pass filter | ||
+ | * A cut-off frequency, <math>f_0 = 10\,\mathrm{MHz}</math> | ||
+ | * An attenuation of at least <math>27\,\mathrm{dB}</math> at <math>f_\text{stop} = 20\,\mathrm{MHz}</math> | ||
+ | |||
+ | ==== Step 1: Determine the filter family ==== | ||
+ | Let us use the Butterworth low-pass filter prototype since it has a maximally flat pass band. | ||
+ | |||
+ | ==== Step 2: Determine the filter order ==== | ||
+ | We can determine the order from the magnitude response of the filter, which we can get using tools like Python or Matlab, or in this case, we can use filter tables and graphs. Fig. 7 shows the Butterworth attenuation characteristics for different filter orders. Note that this graph is normalized to <math>\omega_0=1\,\mathrm{\tfrac{rad}{s}}</math>. | ||
+ | |||
+ | {| | ||
+ | |[[File:Butterworth attenuation annotated.png|thumb|600px|Figure 7: Attenuation characteristics of Butterworth filters<ref name="zverev1967"/>.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | To get the lowest order filter that satisfies our requirements, we can then look at the point where: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \frac{f_\text{stop}}{f_0} = 2 | ||
+ | </math>|{{EquationRef|8}}}} | ||
+ | |||
+ | Thus, we can see that we need at least a fifth order filter, i.e. <math>N=5</math>. | ||
+ | |||
+ | ==== Step 3: Determine the normalized LC values ==== | ||
+ | We can obtain the inductor and capacitor values of the 5th order low-pass Butterworth filter normalized to <math>\omega_0=1\,\mathrm{\tfrac{rad}{s}}</math> from the filter transfer function using continued fraction expansion, or just use a filter table, as shown in Fig. 8. | ||
+ | |||
+ | {| | ||
+ | |[[File:Butterworth LP filter table annotated.png|thumb|600px|Figure 8: Butterworth LC element values<ref name="zverev1967"/>.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Looking at the entry for <math>N=5</math>, with <math>R_S=R_L=1\,\mathrm{\Omega}</math>, we get the normalized values <math>C_{1,\text{norm}}=0.6180\,\mathrm{F}</math>, <math>L_{2,\text{norm}}=1.6180\,\mathrm{H}</math>, <math>C_{3,\text{norm}}=2.0000\,\mathrm{F}</math>, <math>L_{4,\text{norm}}=1.6180\,\mathrm{H}</math>, and <math>C_{5,\text{norm}}=0.6180\,\mathrm{F}</math>. | ||
+ | |||
+ | ==== Step 4: Denormalize ==== | ||
+ | Denormalization is the process of shifting the corner frequency from <math>\omega_0=1\,\mathrm{\tfrac{rad}{s}}</math> to <math>\omega_0=2\pi \cdot \left(10\,\mathrm{MHz}\right)\,\mathrm{\tfrac{rad}{s}}</math>. For now, let us leave <math>R_S=R_L=R=1\,\mathrm{\Omega}</math>. We then define <math>L_r=\tfrac{R}{\omega_0}</math> and <math>C_r=\tfrac{1}{\omega_0 R}</math>, where <math>\omega_0=2\pi \cdot \left(10\,\mathrm{MHz}\right)\,\mathrm{\tfrac{rad}{s}}</math>. Thus, in this case, we get: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \begin{align} | ||
+ | L_r & =\tfrac{R}{\omega_0}=\frac{1\,\mathrm{\Omega}}{2\pi \cdot \left(10\,\mathrm{MHz}\right)} = 15.9\,\mathrm{nH} \\ | ||
+ | C_r & =\tfrac{1}{\omega_0 R}=\frac{1}{2\pi \cdot \left(10\,\mathrm{MHz}\right)\cdot \left(1\,\mathrm{\Omega}\right)} = 15.9\,\mathrm{nF} \\ | ||
+ | \end{align} | ||
+ | </math>|{{EquationRef|9}}}} | ||
+ | |||
+ | We can then determine the denormalized element values using <math>L_i = L_{i,\text{norm}}\cdot L_r</math> and <math>C_i = C_{i,\text{norm}}\cdot C_r</math>, thus: | ||
+ | |||
+ | {{NumBlk|::|<math> | ||
+ | \begin{align} | ||
+ | C_1 & = C_{1,\text{norm}}\cdot C_r = 9.836\,\mathrm{nF} \\ | ||
+ | L_2 & = L_{2,\text{norm}}\cdot L_r = 25.75\,\mathrm{nH} \\ | ||
+ | C_3 & = C_{3,\text{norm}}\cdot C_r = 31.83\,\mathrm{nF} \\ | ||
+ | L_4 & = L_{4,\text{norm}}\cdot L_r = 25.75\,\mathrm{nH} \\ | ||
+ | C_5 & = C_{5,\text{norm}}\cdot C_r = 9.836\,\mathrm{nF} \\ | ||
+ | \end{align} | ||
+ | </math>|{{EquationRef|10}}}} | ||
+ | |||
+ | The resulting fifth order low-pass Butterworth filter is shown in Fig. 9. | ||
+ | |||
+ | {| | ||
+ | |[[File:Butterworth ladder LPF 5 denorm.png|thumb|600px|Figure 9: The resulting 5th order low-pass Butterworth filter with <math>f_0=10\,\mathrm{MHz}</math>.]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | We can verify the magnitude response of the filter using SPICE, as shown in Fig. 10. Note that the low frequency gain is maximally flat, and is at <math>-6\,\mathrm{dB}</math> due to the voltage division between the source and load resistances. | ||
+ | |||
+ | {| | ||
+ | |[[File:Butter lpf 5.svg|thumb|600px|Figure 10: Fifth order Butterworth filter SPICE simulation result.]] | ||
+ | |- | ||
+ | |} | ||
− | == | + | == References == |
+ | <references/> |
Latest revision as of 14:38, 24 March 2021
Filters can be implemented (1) as a cascade if biquadratic filters, or biquads, that implements one or two poles at a time, or (2) as ladder filters.
Contents
Biquadratic Filters
To implement a single real pole, we can use a simple RC cicuit, as shown in Fig. 1, whose transfer function is given by:
-
(1)
-
To implement two complex conjugate poles, we can use a lossy LC circuit, as shown in Fig. 2. We can then express the transfer function of this circuit as:
-
(2)
-
A more complex filter can then be implemented by cascading 2-pole filters, and an extra 1-pole filter for odd-order complex filters, as shown in Fig. 3 for a fifth order filter. Note that (1) filters built as a cascade of biquads are easy to implement, but they are very sensitive to mismatch since the filter transfer function is dependent not only on the pole locations, but on the pole placement relative to other poles, (2) buffers are used to prevent loading effects, and (3) the biquads are arranged from lowest to highest Q to help reduce loss and noise.
Ladder Networks
A better alternative to cascading biquads is to expand the filter's driving point or input impedance using continued fraction expansion. Consider a general ladder network shown in Fig. 4. The input impedance, , can then be expressed as the continued fraction:
-
(3)
-
Thus, we can build filters using ladder networks if we know their input impedance.
Example: A Low-Pass Butterworth Filter
Consider a third order low-pass Butterworth filter with the normalized (to ) transfer function:
-
(4)
-
The filter is shown in Fig. 5, where it is driven by a source with input resistance, , and loaded by the resistance, .
For the normalized impedance case, where , and with :
-
(5)
-
We can then expand this as:
-
(6)
-
Thus, for the low-pass case, we have capacitors as the admittances to ground, and inductors as the impedances in the forward path, or equivalently and , and in the terminated case, . We can then determine the capacitance and inductance values of the third order low-pass Butterworth filter:
-
(7)
-
The resulting filter is shown in Fig. 6.
Filter Tables
For higher-order filters, calculating the inductance and capacitance values could take some time and effort, though these values are well known. An alternative to continued fraction expansion, in implementing ladder filters, is the use of filter tables. Fig. 8 shows a sample filter table taken from the famous book by Anatoly Zverev[1]. To illustrate the use of filter tables, consider the example below.
Filter Design Example
Let us design a filter with the following specifications:
- A maximally flat low-pass filter
- A cut-off frequency,
- An attenuation of at least at
Step 1: Determine the filter family
Let us use the Butterworth low-pass filter prototype since it has a maximally flat pass band.
Step 2: Determine the filter order
We can determine the order from the magnitude response of the filter, which we can get using tools like Python or Matlab, or in this case, we can use filter tables and graphs. Fig. 7 shows the Butterworth attenuation characteristics for different filter orders. Note that this graph is normalized to .
To get the lowest order filter that satisfies our requirements, we can then look at the point where:
-
(8)
-
Thus, we can see that we need at least a fifth order filter, i.e. .
Step 3: Determine the normalized LC values
We can obtain the inductor and capacitor values of the 5th order low-pass Butterworth filter normalized to from the filter transfer function using continued fraction expansion, or just use a filter table, as shown in Fig. 8.
Looking at the entry for , with , we get the normalized values , , , , and .
Step 4: Denormalize
Denormalization is the process of shifting the corner frequency from to . For now, let us leave . We then define and , where . Thus, in this case, we get:
-
(9)
-
We can then determine the denormalized element values using and , thus:
-
(10)
-
The resulting fifth order low-pass Butterworth filter is shown in Fig. 9.
We can verify the magnitude response of the filter using SPICE, as shown in Fig. 10. Note that the low frequency gain is maximally flat, and is at due to the voltage division between the source and load resistances.