Skip to content

Realtime IIR filter (sample in, sample out)

License

Notifications You must be signed in to change notification settings

berndporr/py-iir-filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Efficient realtime IIR filter in Python

This is an IIR filter class which performs sample by sample realtime processing of data. It's very efficient because it's not using any indexing operations internally. The class instance acts as the memory of the filter so that it remembers its past.

Installation

Install form the python package index with:

pip install py-iir-filter

You can also install it locally from the cloned github repo with:

python setup.py install

Import

Use the standard python command to import it:

import iir_filter

Calculate the coefficients

Use your favourite scipy IIR design command and export the coefficients as an SOS:

sos = signal.butter(order, [cutoff(s)], '[filter type]', output='sos')

Create an instance

The constructor takes the sos chain as an argument:

f = iir_filter.IIR_filter(sos)

Perform filtering sample by sample

Filtering is sample by sample by processing the samples as they arrive, for example from an ADC:

sample = f.filter(sample)

About

Realtime IIR filter (sample in, sample out)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages