How to Calculate
Octave Band Filters

Octave and fractional octave band filters are filters used in a huge amount of acoustic calculations. It is something every acoustician has some implementation of lying somewhere. I want to share my implementation with you! So how to calculate octave band filters? 

Kasper Kiis

By Kasper Kiis Jensen

Octave bands and fractional octave bands are special designed filter based on e.g IEC 61260-1:2014. If you do not want to read my explanation of the filters but just want that awesome Python code to design and use octave filters then skip to the bottom! 

The 1/1 octave band and 1/3 fractional octave band is the most used octave band filter designs used in many different acoustic applications to study the frequency spectrum of a sound source or sound field. It is especially used when measuring noise and related acoustic ISO standards.

Filter Specifications

The octave band filters are designed using specified equations in IEC 61260-1:2014. These equation uses a reference frequency (fm) which is nominal 1000 Hz, the start and stop frequencies of the entire filter bank and the number of bands per octave (b) to calculate edge and center frequencies for each filter. An example of normalized frequencies, can be seen in the table below for: fm=1,000 Hz, start=100 Hz, end=10,000 Hz and b=1

Left [Hz] Center [Hz] Right[Hz]
90 125 178
178 250 355
355 500 708
708 1000 1412
1412 2000 2818
2818 4000 5623
5623 8000 11220

This example octave band filter has 7 filters which each must adhere to specific requirements for slope to be named a class 1 or class 2 octave band filter. Class 1 is the must demanding class. On the figure below the requirements for 1 octave band filter at 1000 Hz can be seen. 

1000 Hz filter with requirements
1/1 octave band at 1000 Hz with requirements.

As stated before each filter must live up to the requirements. The table of center and edge frequencies results in the following 7 filters. The filters are 4th order Butterworth filters as second order systems.

100 to 10000 octave band filters filters with requirements
Octave band filters.

When the filters are designed, data is send through them to get filtered data which can be used to calculate averaged noise leves, impulse responses and much more. 

How To Get The Code

The code contains 4 functions and an example of how to use the functions:

getFrequencies: calculate the filter specifications.

designFilters: design octave band filters.

filterData: filters data using octave filters.

analyseData: calculates RMS levels using octave filters.

To download the Python code to design and use the octave band filters, insert your contact information below and you will receive an email with the code. 

If you liked this blog post then you might also like: How to calculate room acoustic parameters.

Follow Encida     

Latest Blog Posts

Heat Pump COP

Understand Heat Pump COP By Kasper Kiis Jensen Heat pump COP stands for Coefficient of Performance and is a ratio for the heating or cooling energy a heat pump can…

Ventilation System Testing using Modbus

Ventilation System Testing Using Modbus Modbus is one of the oldest and most popular automation protocols in process automation, especially within the heating ventilation and air conditioning industry (HVAC), where…