Summary:
The PIC32 Audio Equalizer (EQ) Filter Library is specifically designed to assist with multiple-frequency filtering of digital audio. The library can work from multiple audio sources, and customize the listening experience to compensate for speaker, room / enclosure acoustics or user preferences. The library can support either graphic equalizer or parametric equalizer filtering functions.
An optional element of graphical frequency-band magnitude is also available to enable a real-time display of the audio output.
Applications:
• Bluetooth audio speakers & audio peripherals
• USB-enabled audio
• Speaker phones
• Headsets
• Microphone noise suppression
• ADC sample filtering, data collection
Description:
Audio Equalizer Filtering Library:
In music playback, digital filtering can be performed before digital bits are converted into analog voltages that are played by speakers to maintain high fidelity audio as shown in the figure 1 above. An audio equalizer filtering library performs various tasks including digital filtering to correct deficits in the recorded music, mitigate problems in the speakers being used, or simply correct for the room's acoustics - all focused on improving the user's experience of the music. The library provides filtering primitives for audio equalization using infinite impulse response (IIR) filters. It supports filter architectures for traditional graphical equalization and for parametric equalization.
• Parametric Equalizer Filters
o Serial sequence of IIR filters from 2-20 biquads
o Typically runs peaking and shelving filter designs
o Used for factory tuning of speaker and enclosure / environmental harmonics
• Graphic Equalizer Filters
o Parallel architecture of filters, 2 biquad filters per band, summed for a single output
o 4-16 frequency bands can be supported
o Typically runs band-pass filter designs
o Used for user preference filtering and real-time gain adjustment per frequency band
Graphic Equalizer Display Library:
The Graphic Equalizer Display Library works on any Microchip device that drives an LCD display, providing Graphic Equalizer displays for the host application. Graphic Equalizers are used to adjust the spectral content of music by providing gain or attenuation to parts of the music based on frequency. This library works hand-in-hand with the Audio Equalizer Filtering Library, which does the actual signal processing (filtering).
The Graphic Equalizer Display Library is an adjunct of the Audio Equalizer Filtering Library in that it supports displaying information produced by routines in the filtering library, namely signal strength as measured by the filtering library. It also supports displaying band filter gains so that the user can adjust filter gains as part of a Graphic Equalizer display.
Features:
• 16-bit filtering functions available for higher throughput
• 32-bit filtering functions available for higher accuracy
• Integrated graphic equalizer functions, real-time per-frequency-channel audio level output
o Graphics display of audio data spectrum signal strength
o Mechanism for update of gains / attenuation per frequency band in support of filter tuning by the user
• Serial and parallel filter architectures supported for maximum versatility
o Supports parametric, noise suppression and general audio filtering
• C-callable API functions
o Highly optimized DSP library making use of PIC32 core and multiply pipeline
o Available in an MPLABX project environment, compatible with XC32 complier suite
• Scripts provided within the library enable custom design of filters in Matlab ™ and Octave
o Filter design scripts for both graphic equalizer filters and parametric equalizer filters
o Many example filter designs included
o Filter validation test project to measure spectral response of custom filter designs on target hardware
Resource Requirements*:
|
|
|
|
|
|
|
|
|
|
Filter Type
|
Number of Frequency Bands
|
Notes
|
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
|
Graphic EQ (MIPS)
|
|
|
29.9
|
37.0
|
44.0
|
51.2
|
58.4
|
44.1K samples / second, 2-channel audio 16-bit data. Includes gain calculation for dynamic display
|
Parametric EQ (MIPS)
|
8.15
|
11.2
|
14.3
|
17.4
|
20.5
|
23.6
|
26.7
|
44.1K samples / second, 2-channel audio. 32-bit data.
|
• < 1K Flash memory
• < 500 Bytes of RAM memory
*See section 1.3 of the help file documentation for a comprehensive list of requirements for various filter structures. Graphic EQ filters have 2 IIR biquad filters per band in parallel. Parametric EQ filters have 1 IIR biquad filter per band.
License notes: The library is free to download and there are no associated royalties for this library when the code is used with a Microchip PIC processor.