Filter Design Project
Theory Part 1: Input Signal Spectrum
• The Fourier Transform is used to transform a time-domain signal that is both nonsinusoidal and non-periodic into frequency domain. The frequency domain
representation of this type of signal will still show the relative magnitudes of the signal
at each frequency component.
• The Fast Fourier Transform is an algorithm that significantly reduces the computational
complexity required for the Fourier Transform.
• The FFT function in LTSpice was used to display the magnitude spectrum of the noisy
recording of birds as shown in Figure 1. The signal content related to the low-pitched
wind noise and higher-pitched bird calls is identified in the figure. It can be seen that the
wind noise is predominantly in the 30 Hz-300 Hz range while the bird calls are in the 700
Hz-1.3 kHz range.
• LTSpice uses a reference voltage level of 1 VRMS to calculate the magnitude in dB on the
vertical axis. For this project, the actual dB value is not important; what we are
concerned with is the relative magnitudes between different frequency components at
both input and output.
Figure 1: LTSpice FFT of noisy bird call recording
• The goal of the project is to design an active high-pass filter that will substantially
reduce the amount of wind noise present in the audio file while leaving the bird calls
Theory Part 2: Designing Filters from Tables of Polynomials
• Tables of pole locations required to implement various low-pass filter response types
are widely available. These values will implement low-passfilters with a normalized
cutoff frequency of 1 radian/second using normalized resistor and capacitor values of
1 Ω and 1 F. Since you will be provided with the transfer function for a high-pass filter,
transformation from low-pass to high-pass does not need to be performed.
• The resulting transfer functions will need to have frequency scaling and component
value scaling applied in order to meet design targets.
• The most common sets of polynomials allow design of filters with the following
o Chebyshev: very rapid transition between passband and stopband with greatest
selectivity. The tradeoff is passband ripple of up to 3 dB and heavily non-linear
phase response which makes these filters less desirable for audio applications.
o Butterworth: maximally flat magnitude response in passband, phase response
between Chebyshev and Bessel.
o Bessel: most linear phase response but magnitude has very shallow transition
between passband and stopband. Often used in audio applications, however we
are using Butterworth instead as a compromise because of the very close
proximity between frequencies we want to keep and frequencies we need to
eliminate. Using a Bessel filter would require a significantly higher order than a
Butterworth filter in order to meet the design specifications.
• Figure 2 shows a sample of Butterworth pole locations for 2nd-order through 5th-order
low-pass filters. A document containing pole locations for up to 10th-order filters is in
the project folder on Blackboard.
• It is important to note that all even-order filters have one complex-conjugate pole pair
given for each 2nd-order component. The 4th-order implementation has two complexconjugate pole pairs. If an odd-order Butterworth filter is desired, then an additional
real pole must be included.
• For example, if a second-order Butterworth filter is to be designed, then the
denominator of this filter’s transfer function can be calculated directly from the values
shown in Figure 2 by multiplying the given complex-conjugate pole pair together:
(𝑠𝑠 + 0.7071 + 𝑗𝑗0.7071)(𝑠𝑠 + 0.7071 − 𝑗𝑗0.7071) = 𝑠𝑠2 + 1.414𝑠𝑠 + 1.
• For a 4th-order filter, the same process applies and will result in a pair of second-order
• For odd-order filters, the real pole must be included as an additional first-order
polynomial. The transfer function denominator for the 3rd-order filter will then appear
as (𝑠𝑠 + 0.5 + 𝑗𝑗0.866)(𝑠𝑠 + 0.5 − 𝑗𝑗0.866)(𝑠𝑠 + 1) = (𝑠𝑠2 + 𝑠𝑠 + 1)(𝑠𝑠 + 1).
• For 3rd-order and above denominators: do not multiply the 1st-order and 2nd-order
polynomials together to get one higher-order polynomial: each 1st-order and 2nd-order
polynomial corresponds to an individual 1st-order or 2nd-order filter and we will be
cascading these filters together to implement the complete circuit.
Theory Part 3: Sallen-Key Active High-Pass Filter
• This circuit implements a second-order high-pass filter and will be used to implement
each of the required 2nd-order sections of the complete filter. The op-amp can be
configured to either function as a buffer or as a non-inverting amplifier. Figure 3 shows
the circuit with the op-amp functioning as a buffer which means that the passband gain
of the circuit will be 0 dB. A passband gain of 9 dB is required for the project which will
be implemented with a separate non-inverting amplifier.
Figure 3: Sallen-Key HPF
• The transfer function for the Sallen-Key high-pass filter shown in Figure 3 is given in two
different forms as Equations 1 and 2. Equation 1 is the form required in order to
perform filter design using tables of filter polynomials, while Equation 2 is the “cleanedup” version preferred with MATLAB entry: the highest-order polynomial in the
denominator has a coefficient of 1.
𝐻𝐻(𝑠𝑠) = 𝑠𝑠2𝑅𝑅1𝑅𝑅2𝐶𝐶1𝐶𝐶2
𝐻𝐻(𝑠𝑠) = 𝑠𝑠2
• Equation 1 has a denominator in the form 𝑎𝑎𝑎𝑎2 + 𝑏𝑏𝑏𝑏 + 1. The values of 𝑎𝑎 and 𝑏𝑏 are taken
from the resulting 2nd-order polynomial that results from multiplying the complex
conjugate denominator roots given in design tables as discussed earlier. An additional
set of design equations can be used to find the required resistor and capacitor values for
the filter. These equations are given as:
𝑎𝑎 = 𝑅𝑅1𝑅𝑅2𝐶𝐶1𝐶𝐶2 (3)
𝑏𝑏 = (𝐶𝐶1 + 𝐶𝐶2)𝑅𝑅1 (4)
• In general, assume that 𝐶𝐶1 = 𝐶𝐶2 = 1 𝐹𝐹 then use Equation 4 to solve for 𝑅𝑅1. Equation 3
can then be used to solve for 𝑅𝑅2.
• Remember that at this stage you still have a filter with a normalized cutoff frequency
of 1 rad/sec and unrealistic component values: very large capacitors and very small
Theory Part 4: 1st-order Passive RC High-Pass Filter
• This circuit will need to be cascaded with one or more individual Sallen-Key filters if the
required filter order is an odd number.
• As discussed in class, the transfer function derivation assumes that the output of the
filter will be left as an open circuit. This is not realistic because filter outputs are sent to
other components that do not always have high input impedances, therefore a buffer
op-amp is included at the output of this filter as shown in Figure 4:
Figure 4: Passive RC HPF
• The transfer function for the circuit shown in Figure 4 is given as Equation 5 where the
cutoff frequency 𝜔𝜔𝑐𝑐 is equal to 1
𝐻𝐻(𝑠𝑠) = 𝑠𝑠
• The denominator term for the real 1st-order pole in an odd-order Butterworth filter
becomes 𝑠𝑠 + 1. Therefore, for this portion of the filter, R = 1 Ω and C = 1 F since 𝜔𝜔𝑐𝑐 = 1
Theory Part 5: Component and Frequency Scaling of Normalized Filters
• Component scaling of filters allows the impedance of all resistors and capacitors in the
circuit to be increased by a scaling factor 𝑘𝑘𝑀𝑀 without affecting the value of the cutoff
frequency. The design equations for this step are given as Equations 4 and 5:
𝑅𝑅𝑛𝑛𝑛𝑛𝑛𝑛 = 𝑘𝑘𝑀𝑀 ∗ 𝑅𝑅𝑜𝑜𝑜𝑜𝑜𝑜 (4)
𝐶𝐶𝑛𝑛𝑛𝑛𝑛𝑛 = 𝐶𝐶𝑜𝑜𝑜𝑜𝑜𝑜
• Frequency scaling of filters allows the resistor and capacitor values found by using
Equations 4 and 5 to be further modified by a scaling factor 𝑘𝑘𝐹𝐹 to change the cutoff
frequency to the desired value, where 𝑘𝑘𝐹𝐹 = the desired corner frequency in rad/sec.
Don’t forget to change units of frequency from Hz to radians/second! Perform this step
after component scaling is finished. Equations 6 and 7 give the required design
𝑅𝑅𝑛𝑛𝑛𝑛𝑛𝑛 = 𝑅𝑅𝑜𝑜𝑜𝑜𝑜𝑜 (6)
𝐶𝐶𝑛𝑛𝑛𝑛𝑛𝑛 = 𝐶𝐶𝑜𝑜𝑜𝑜𝑜𝑜
Theory Part 6: Determining Minimum Required Filter Order
• In lecture, we have been commonly referring to the “rolloff” or stopband slope of the
magnitude plot in units of dB/decade when discussing the performance of a filter as
related to its order. The basic relationship is that an additional slope change of -20
dB/decade is added at the corner frequency for each 1st-order pole that is added to the
denominator of the transfer function, as long as each pole has the same value.
• However, the difficulty arises when filter performance is specified in terms of required
attenuation at one frequency relative to another, especially when these frequencies are
not spaced by a decade apart.
• Equation 8 gives a formula for calculating the minimum filter order required to
attenuate the input signal magnitude by a specific amount at a given frequency relative
to the corner or cutoff frequency:
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 @ 𝑓𝑓 = 1
𝑓𝑓 = the frequency in Hz at which the required attenuation is specified,
𝑓𝑓𝑐𝑐 = the corner frequency of the filter in Hz,
𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺 @ 𝑓𝑓 equals the ratio of 𝑉𝑉𝑂𝑂𝑂𝑂𝑂𝑂
(not in units of dB), and
𝑁𝑁 = the minimum required filter order that is required to meet the attenuation
• You will need to solve Equation 8 for the value of 𝑁𝑁 and round this value up to the
nearest whole number to find the minimum filter order required for the project. Hint: a
2nd-order filter will not meet the project requirements.
Project Task List:
• Project task list:
o Display the frequency spectrum of the recording of bird calls using the Fast
Fourier Transform (FFT) function in LTSpice to verify proper operation of
o Based on the required filter performance parameters for the amount of
attenuation needed for specific input frequencies, calculate the minimum
required filter order.
o Based on the even or odd value of the required filter order, use Butterworth pole
locations from tables to create individual 1st-order or 2nd-order transfer functions
that will be cascaded to form the complete transfer function.
o Perform frequency and component value scaling on the individual transfer
functions to determine the component values required for the physical filter
implementation: implement 1st-order real pole with passive RC filter in Figure 4,
and implement each 2nd-order complex conjugate pole pair with a separate
Sallen-Key filter shown in Figure 3.
o Simulate the combined high-pass transfer function using MATLAB to verify that it
meets the specifications for the magnitude response.
o Write a netlist to simulate the physical filter in LTSpice. Perform an AC sweep
using an AC source with a magnitude of 1 V to create a Bode plot of the filter’s
performance based on a sinusoidal input. Set the frequency sweep range from
10 Hz to 10 kHz.
o In LTSpice, change the input to the noisy .WAV file and generate another .WAV
file at the filter output for evaluation.
This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.