Flexibility really matters when it comes to innovative speaker design. As DIYers and speaker designers ourselves, we came to realize that miniDSP platforms could be used for both basic and advanced digital signal processing applications. While textbook filter implementations such as Butterworth, Linkwitz-Riley and Bessel work in 90% of configurations, some speaker designers may want to investigate novel IIR filter implementations like:
- Filters currently not implemented in the basic mode
- Cascaded filters
- Custom filters developed on third-party software
This app note will demonstrate our advanced biquad programming feature.
DISCLAIMER: The following assumes that you have a basic understanding of filtering and Digital Signal Processing. The accuracy of a filter must be tested before loading it to the miniDSP processor. Once loaded inside the miniDSP, you should first confirm the overall transfer function to confirm that your biquad computations are correct. miniDSP cannot be liable for incorrect/unstable biquad settings being loaded into the platform. Turn off all amplification while loading and initially testing biquad filters.
Introducing miniDSP Advanced Biquad Filter Programming
miniDSP filtering is based on 2nd order linear recursive filtering, also called a Biquad digital filter. A biquad contains two poles and two zeroes with a transfer function expressed as follows in the Z domain.
All of miniDSP's standard filters (PEQ/Shelf/Low Pass/High Pass) are implemented using the 5 coefficients of a 2nd order filter (a1/a2/b0/b1/b2). Note that a1 and a2 need to have their sign inverted (times -1) due to the DSP implementation.
Biquad programming on miniDSP processors is allowed on all biquad objects of the DSP structures:
-
PEQ filters on input and output: most processors have 10 biquads on each output channel. Most processors that don't have Dirac Live also have 10 biquads on each input channel.
-
Crossovers: With 8 biquads on each output, cascaded filters can be created by stacking 2nd order filters in series.
Adding them up together will give you all the flexibility you need to create your custom processing.
Note: the sample rate in the tool that you use must be set to the correct value, or your filters will not be at the correct frequency. The sample rate will be 48, 96, or 192 kHz. Check the advanced biquads section of your user manual for the sample rate to use. (Note that some hardware may run at different sample rates; for example, the miniDSP Flex runs at 48 kHz if Dirac Live is enabled, and 96 kHz otherwise.)
Filter ideas...
Advanced Biquad programming truly opens the door to a new range of filtering applications such as:
- Linkwitz transform
- All pass filters
- Cascaded filters (e.g. two low pass filters in series)
- Filters of up to 16th order (96dB/oct) when cascading 8 biquads. Still not enough? How about adding the remaining 6 biquad filters from the PEQ outputs and building a ( 8 + 6) * 2nd order = 28th order filter with 168dB/oct attenuation as highlighted in this community tutorial.
Where to start?
- Download the Biquad filter spreadsheet.
- Read about biquad filters and how to ensure they are stable.
- Load a simple biquad and test it with a sound card first to make sure it is correct.
- Start simple, get more creative over time!
Ready to build your own biquad filters?
Check out the miniDSP series (IIR) on miniDSP's webstore.