The ASN Filter Designer is a powerful DSP learning platform suitable for many international Bachelors and Masters programmes in Electrical Engineering and Applied Sciences. The supporting user guide and application notes provide many practical examples, which can easily be integrated into tutorial exercises or classroom examples.
A low cost educational version of the designer is available, allowing academics to experiment with the examples and tailor make study material suitable for student tutorial sessions. The tool is also an invaluable research experimentation platform and provides researchers and post docs with a hassle-free way of quickly converging to an optimal solution and presenting the results in professional form suitable for journal publications.
Signals and Systems syllabus (modules)
A breakdown of study modules where the ASN Filter Designer can be used in a typical syllabus for Signals and Systems or short course on DSP (digital signal processing) at University level is given below.
Module 1: Discrete time signals and systems
ASNFD’s signal analyser is an ideal starting place for experimenting with various stimuli and math functions and demonstrating their effects to students. The signal generator implements a comprehensive set of stimuli, including:
Sine/cosine, square, triangle and sawtooth.
Step and Kronecker delta impulse – used for getting the step and impulse response.
White noise generator
AM (amplitude modulation)
3rd party external datafile (load your own CSV or TXT file)
wav audio datafiles (mono and stereo)
Stimuli such as: sine/cosine, square, triangle, sawtooth may be fully customised to the extent of modifying phase, frequency and amplitude and even generating a complex waveform. The latter provides an easy way of demonstrating the properties of a sinusoid, such as a phase vs. time plot of a complex sinusoid, which can be setup with just a few clicks.
The supporting signal analyser allows for detailed time and frequency domain analysis and real-time streaming (very similar to an oscilloscope). Various math methods are supported including:
Windowing and trend removal
The Advanced time domain analysis methods tool, allows you to implement zero-crossing detection and the peak and trough finding algorithm on all methods and signals within the analyser.
Module 2: The z-transform and poles-zeros
The interactive Pole-Zero chart editor allows you to move the poles and zeros around with a mouse, zoom, pan the chart etc and graphically fine-tune designs to your exact requirements and see the effects on the frequency response in real-time. As seen on the right, this is especially useful for the classroom, whereby a lecturer can explain to students the effect of the poles-zeros on the net frequency response without diving into the mathematics first, which is where many students become confused.
ASN FilterScript is a symbolic math scripting language, used for implementing specialised transfer functions in real-time (Live Math Scripting).
The ‘live IDE’ offers designers the unique and powerful ability to modify parameters on-the-fly with the so-called interface variables, allowing for real-time updates of the resulting frequency response. This has the advantage of allowing the designer to see how the coefficients of the symbolic transfer function expression affect the frequency response and the filter’s time domain dynamic performance. Definitions may be taken from textbooks, technical standards or even reference designs and implemented within minutes.
The scripting language supports over 65 scientific commands (trigonometrical, vector, general math and filter design methods – see the section on Digital filter design for the details) and provides designers with a familiar and powerful programming language, while at the same time allowing them to implement complex symbolic mathematical expressions for their filtering applications.
Several detailed practical examples are also provided with the software bundle, allowing experimenters to get quickly up to speed with scripting language and writing their own application scripts.
Module 3: Digital filters (FIR, IIR and s-z transformations)
The ASN Filter Designer implements a state-of-art graphical filter designer user interface for both IIR and FIR digital filter design.
IIR filter design
The classical IIR filter designer supports: Lowpass, Highpass, Bandpass and Bandstop design with the following prototypes:
Chebyshev Type I
Chebyshev Type II
Where, filter orders of up to 20 may be constructed using a Single Section or multiple Biquad structures.
ASN FilterScript extends the offering of the classical IIR filter designer with the following methods:
bessel – designs an IIR Bessel filter (transformed with the Bilinear transform). Although this warps the phase of the resulting filter, it can be easily corrected with the designer’s all-pass phase equalisation tool.
bilinear – Analog (Laplace transform)-to-digital transformation using the Bilinear transform.
butter – designs an IIR filter using the Butterworth prototype.
cheby1 – designs an IIR filter using the Chebyshev Type I prototype.
cheby2 – designs an IIR filter using the Chebyshev Type II prototype.
dcremover – designs a 1st order high pass filter.
ellip – designs an IIR filter using the Elliptic prototype.
mztrans – Analog (Laplace transform)-to-digital transform using the matched-z transform.
notch – designs an IIR notch filter (used for 50/60Hz powerline interference cancellation).
All-pass phase equalisation cascade tool
Interactively equalise the phase response of even the most challenging IIR filters with the all-pass filter cascade tool, by adding up to 4 all-phase Biquad equalisation filters using the mouse!
FIR filter design
FIR (finite impulse response) filter design is implemented via the Parks-McClellan algorithm, and allows for the design of the following filter types:
Lowpass, Highpass, Bandpass and Bandstop
Multiband (up to 5 bands)
Where, filter orders of up to 200 may be constructed.
ASN FilterScript extends the offering of the FIR filter designer with the following methods:
firarb – designs an FIR with an arbitrary magnitude response using the Window method.
firgauss – designs an FIR Lowpass using the Gaussian window method.
firkaiser – designs an FIR Lowpass, Highpass, Bandpass, Bandstop, Hilbert type 3, Hilbert type 4, Differentiator type 3 and Differentiator type 4 using the Kaiser window method.
firwin – designs an FIR filter using the Window method. Window functions supported: Rectangular, Blackman, Blackman-Harris, Hamming, Hanning, Flattop and Chebyshev.
movaver – designs an FIR moving average filter.
savgolay – designs an FIR Savikzky-Golay lowpass smoothing filter.
Module 4: Frequency domain analysis
The supporting signal analyser allows for detailed frequency domain analysis by virtue of the CZT (Chirp z-transform, a generalisation of the Discrete Fourier Transform) that allows you to zoom into a region of interest with very high resolution. Options for data detrending and windowing provide great flexibility for analysing a variety of signals, such as biomedical, temperature and strain sensor test data.
The tool’s supporting math libraries provide lightning speed performance even for the most demanding analysis settings, allowing you to demonstrate and experiment on the most important points of your lecture.
Transfer function estimation
The frequency domain chart also allows for filter design verification via transfer function estimation using the cross and power spectral density functions respectively. As with all other charts, the signal analyser chart fully supports advanced zooming and panning, as well as comprehensive chart data file export options.
Module 5: Deploy to Arm CMSIS-DSP, C/C++, Python, Matlab and more
Easily integrate your designed filter blocks with your other algorithms in other domains. Export designed filters to industry standard software frameworks, such as: Arm CMSIS-DSP (Keil uVision), Python, Matlab, Octave, Scilab, Xilinx Vivado and C/C++ using provided royalty free software development frameworks. The C/C++ development framework supports both real and complex coefficient filters and speeds up deployment to a DSP, FPGA or micro-controller, and is supported by in-built analytics that provide designers working on resource critical applications with a full implementation cost report.
Automatic code generation
One click export to Arm CMSIS-DSP (easy integration to Keil uVision), Python, Matlab, Octave, Scilab, Xilinx Vivado or C/C++
Microsoft Excel support
Export coefficients to Microsoft Excel for quick integration into 3rd party tools, such as SigmaStudio and Code Composer Studio.
Royalty free deployment
Deploy your designs to your applications with our tried and tested royalty free 3rd party deployment frameworks.