-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This suite of libraries implements a (growing) set of classes and algorithms for creating, designing and experimenting with digital filters. In its current form, the library offers the following capabilities:
- Generating Butterworth filter polynomials for low and high pass Butterworth filters of any order
- Implementing the bilinear Z transform so that analogue-equivalent filters such as the Butterworth filters spoken of above can be mapped to the digital filter domain
- Applying frequency pre-warping so that the cut off frequencies for the digital filters are at the same frequency as their analogue counterparts
- Rendering the waveforms output from digital filters either on JPG or SVG files
- Performing forward and inverse fast Fourier transforms
- Creating waveforms or pulses of various shapes to feed through the filters or transforms
The documentation on basic creation of analog filter designs and their transformation into digital (sampled) equivalent filters is given in the Analogue and Digital Filters page.
The description on how to create sample waveforms or pulse shapes is given in the page Waveform Generation Libraries.
The description on how to use the forward and inverse fast Fourier transform libraries is available via the link Fourier Transforms.
To use windowing functions of various types for reducing spectral leakage in filters and Fourier transforms, see the Windowing Functions page.
To discover how to plot graphs of your waveforms or their spectra, see Waveform and Spectrum Plotting.
Please note that this is ongoing work which you are welcome to use, or to make suggestions for improvements. rather than a completed product in support. Once a comprehensive set of library classes and methods has been assembled, documentation on how to use the classes will also be created. It is intended that the library will support both IIR and FIR filters, with and without windowing, discrete/fast fourier transforms and their inverses, together with improved graphical support for rendering frequency spectra, phase/frequency plots and waveforms.
This product is published under the standard MIT License as described at https://opensource.org/licenses/MIT. The specific wording for this license is as follows:
Copyright 2018 Ropley Information Technology Ltd.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.