I am looking into filters, and i am using FilterLab and MATLAB's Filter designer.

I know that i need to make a bandpass filter, with a roll-off of about 48 dB/octave. This is quite high, and i would belive that i need a 16th order filter, to achieve this.

I have now read that a 6th order bandpass filter is enough, which diverges from my knowledge. I thought that a butterworth had a roll-off of 6 dB/octave, per order.

Looking a MATLAB's Filter designer:

enter image description here

This pictures shows a 6th order bandpass, butterworth IIR filter. It also shows a attenuation of ~48 dB, 1 octave above Fc2.

Why does it have such a high attenuation? What have i missed?


If looking at these two pictures from Filterlab. They are both analog butterworth filters. BP filter is 6th order, and LP is 3rd order. The X axis is logaritmic.

enter image description here enter image description here

As stated in the answer, the line looks right if measured farther away from Fc on the band pass, and looks just right on the LP filter.

What i do not understand is:

Why does the bandpass filter not have the same slope as the low pass filter at the start?

Is there a way to calculate the bandpass slope at the start?


2 Answers 2


When the ratio of the bandwidth to center frequency is low, the quality factor goes high and the response no longer has nice, smooth, constant rolloff outside the edges. In your case, I see ~200Hz~300Hz badwidth, with a ~1kHz center frequency, which makes the ratio less than 1. It's also what Andy says, about the log axis, but here, log or lin, the rolloff is initially faster as opposed to further away from the edges. Here's an IIR Butterworth, f0=48kHz, fc=1kHz, and bandwidth stepped according to the following table: 100, 200, 500, 1k, 2k, 5k, 10k [Hz]. Note that the linearity of the rolloff is only reliable further away from the edges the lower the BW/fc ratio (log axis):


For comparison, here's the same sweep on linear axis:



In the analogue world, a 2nd order low-pass filter rolls off at 12 dB/octave and, when this is converted to a band-pass filter, the roll-off rate halves to 6 dB/osctave below the mid-frequency and 6 dB/octave above the mid-frequency.

Therefore a 4th order band-pass filter would roll-off at 12 dB/octave and a 6th order band-pass filter would roll-off at 18 dB/octave: -

  • 2nd order = 6 dB/octave
  • 4th order = 12 dB/octave
  • 6th order = 18 dB/octave
  • 8th order = 24 dB/octave
  • 10th order = 30 dB/octave
  • 12th order = 36 dB/octave
  • 14th order = 42 dB/octave
  • 16th order = 48 dB/octave

The problem you have is in interpreting the graph produced. I reckon it's more like 30 dB per octave: -

enter image description here

At 5 kHz it's about -75 dB and at 20 kHz it's about -135 dB or an attenuation of 60 dB for two octaves. This is of course 30 dB/octave. You have taken a reference point at Fc and this is problematic - you have to look at the slope significantly above (or below) Fc to make a proper estimation. If you'd have plotted the response against log F you would see this much easier because then the slope would be constant. At the moment you are plotting against F (not log F) and this makes determining the slope harder.

Also, because it is an IIR filter implementation there may be nuances that can exaggerate the slope - in strictly the analogue world, the slope will be constant against log F.

Your sampling frequency is 48 kHz (according to your picture) hence the roll-off significantly above 10 kHz will be exaggerated.

  • \$\begingroup\$ I see that the line looks right further down. I have edited my question, to better describe my problem. Your answer might still answer my question, but i still do not understand. \$\endgroup\$
    – keffe
    Commented Oct 13, 2018 at 12:57
  • \$\begingroup\$ As far as I'm concerned, if the butterworth low pass filter behaves correctly (as shown) as frequency rises above Fc then, implementing a band pass filter (high-pass set to your lower frequency cut-off cascaded with a low pass filter set at the higher Fc value) then you should not get the effect you see. Either you are doing something wrong or the filter tool is doing something wrong. You should not get your band-pass area plateau distinctly higher as indictaed in your first edited graph. \$\endgroup\$
    – Andy aka
    Commented Oct 13, 2018 at 17:04
  • \$\begingroup\$ Of course it would help if you showed the low-pass filter using the same scale as the band-pass filter. Maybe try cascading HP and LP as I suggested above. \$\endgroup\$
    – Andy aka
    Commented Oct 13, 2018 at 17:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.