For many IoT sensor measurement applications, an IIR or FIR filter is just one of the many components needed for an algorithm. This could be a powerline interference canceller for a biomedical application or even a simpler DC loadcell filter. In many cases, it is necessary to integrate a filter into a complete algorithm in another domain.
Python is a very popular general-purpose programming language with support for numerical computing, allowing for the design of algorithms and performing data analysis. The language’s
signal add-on modules attempt to bridge the gap between numerical algorithmic languages, such as Matlab and more traditional programming languages, such as C/C++. As such, it is much more appealing to experienced programmers, who are used to C/C++ data types, syntax and functionality, rather than Matlab’s scripting language that is more aimed at mathematicans developing algorithmic concepts.
ASN Filter Designer automatic code generator for Python
The ASN Filter Designer greatly simplifies exporting a designed filter to Python via its automatic code generator. The code generator supports all aspects of the ASN Filter Designer, allowing for a complete design comprised of H1, H2 and H3 filters and math operators to be fully integrated with an algorithm in Python.
The Python code generator can be accessed via the filter summary options (as shown on the right). Selecting this option will automatically generate a Python
.py file based on the current design settings.
In order to use the generated code in a Python project, the following two framework files are provided in the
ASN Filter Designer’s installation directory in the
A convenient shortcut to the relevant Framework files and examples is available in the Filter summary toolbar via the folder symbol (see left).
Using the two framework files, you may build a demo of your choice based on the exported filter(s) specifications. The framework supports both Real and Complex filters in floating point only, and is built on ASN IP blocks, rather than Python’s
signal module, which was seen to struggle with managing complex data. Thus, in order to expedite algorithm development with the framework, the following three demos are provided:
ASNFDPythonDemo: main demo file with various examples
RMSmeterDemo: An RMS amplitude powerline meter demo
EMGDataDemo: An EMG biomedical demo with a HPF, 50Hz notch filter and averaging
These framework files require the following Python dependency modules:
An example of the generated code for use with the ASNFD-Python framework is shown below.
As seen, it is as simple as copying and pasting the filter coefficients from the ASN Filter Designer’s filter summary into a Python project script.