Bandpass Filter Calculator

These are parts value calculators I wrote to help design analog active bandpass filters. They are op-amp based filters and are most useful in the audio frequency range.  These parts calculators are based on formulas and tables from the book "Electronic Filter Design Handbook" by Arthur B. Williams.

Bandpass filters pass a contiguous range of frequencies while attenuating those above and below the passband.  The calculators compute parts values for 2, 4 and 6 pole multiple-feeback bandpass (MFBP) filters.  Click here for a tutorial on Bandpass filters.

Paul Falsted has a great online interactive Java program to help visualize filter responses with different poles and response types.  Use it to see how a particular filter will perform.

Usage

Select the desired filter type from the drop down menu. Butterworth is optimized for flat frequency response in the pass band. Chebyshev sacrifices flatness for a steeper roll off in the stop band. This version has 0.1 dB of passband ripple.   Bessel filters sacrifice both flatness and roll off for linear phase in the pass band.

Select the desired value for the capacitors.  All the capacitors in the circuit are identical and for best results should be 1% tolerance.  For midrange audio frequencies 0.01 uF is a good starting point.   Note: Narrow bandwidth filters require tighter component tolerances than wide band filters.

Enter the center frequency of the desired passband and the bandwidth.

Enter the desired voltage gain.  This the the ratio of the output to input voltage, not dB.  If you select a gain higher than the circuit can deliver you will see "ERROR" in the output data values.  Maximum gain will vary depending on bandwidth and number of sections.  Maximum gain per section is 2 times Q squared.  gmax = 2*Q^2 .  

Click COMPUTE and read the resistor values.  If the values are not optimum try a different capacitor value and try again.  For best results use 1% tolerance resistors.

Also computed are the Q and center frequency of each section of the filter.  If the Q is too high parts values will be very critical and the op-amp will require higher performance.  Q values up to about 20 are reasonable.  Above that may result in an unstable circuit.  Note: The center frequency of each section can be adjusted by varying R2 (R5 or R8).  Frequency goes up as resistance goes down.

More information about MFBP circuits can be found with the help of Google. The source code is here.  Report bugs via my contact page.

Op-Amps

The circuits below assume classic dual supply op-amps that use plus and minus power such as the LM348.  If you use a single supply op-amp (eg: LM324) you will need to connect the grounds (R2,R5,+op-amp inputs)  to a virtual ground, usually half way between real ground and Vcc.  One way to do this is connect two 1K resistors in series between Vcc and ground.  Connect a 10uF capacitor from the junction of the two resistors to ground.  The junction of the two resistors is a virtual ground at Vcc/2 .  Click here for an example.  It's for a high pass filter but the principle is the same.

I like to use single supply quad cmos op-amps such as LMC660 or LMC6484 because of their rail to rail output swing and wide bandwidth.  The dual version is LMC6032.

 
4 Pole Bandpass Active Filter
Input Computed Values
Filter Type
Capacitors (uF)
Center Freq (Hz)
3dB Bandwidth (Hz)
Voltage Gain
 
C1,C2,C3,C4 (uF)
R1 (K Ohms)
R2 (K Ohms)
R3 (K Ohms)
R4 (K Ohms)
R5 (K Ohms)
R6 (K Ohms)

Section 1 2
Q
Freq
4 pole bandpass filter schematic

 

 
6 Pole Bandpass Active Filter
Input Computed Values
Filter Type
Capacitors (uF)
Center Freq (Hz)
3dB Bandwidth (Hz)
Voltage Gain
 
C1,C2,C3,C4,C5,C6 (uF)
R1 (K Ohms)
R2 (K Ohms)
R3 (K Ohms)
R4 (K Ohms)
R5 (K Ohms)
R6 (K Ohms)
R7 (K Ohms)
R8 (K Ohms)
R9 (K Ohms)

Section 1 2 3
Q
Freq
6 Pole bandpass filter

 

 


 
2 Pole Bandpass Active Filter
Input Computed Values
Capacitors (uF)
Center Freq (Hz)
3dB Bandwidth (Hz)
Voltage Gain
 
C1,C2 (uF)
R1 (K Ohms)
R2 (K Ohms)
R3 (K Ohms)
Filter Q
2 Pole bandpass filter


Hit Counter = 49384