Datasheet
8
Software and Hardware Solutions for the 32-bit Designer
Fixed Point DSP Library
Summary
The Fixed Point DSP Library contains building block
functions for developing digital signal processing
algorithms. The library supports the Q15 and Q31
fractional data formats, which are integer fixed point data
types that represent floating point values. The functions
are implemented in efficient assembly specifically targeted
at the DSP extensions in this core family. The library
makes these functions available in a simple C-callable
structure. Functions included in the Fixed Point DSP
Library include complex math, vector math, matrix math,
digital filters and transforms. In many cases, these
functions require specific data structures to operate,
which are detailed in the header file and examples. Some
functions in the library also take advantage of the floating
point math library.
The Fixed Point DSP Library is a superset of the original
PIC32 Microcontroller DSP library still offered with the
MPLAB XC32 compiler. The library has been improved to
contain more than 90 functions, and will continue to grow.
Key Features
■ C-Callable DSP functions optimized in assembly
■ Digital filtering structures including parallel and series
(cascade) Infinite Impulse Response (IIR) biquad functions
■ Vector manipulation (reverse, shift, inverse),
comparison and statistics functions
■ The PIC32 DSP Library provides functions including
the following:
• 16- and 32-bit vector basic math, trigonometric and
power functions
• Vector RMS, power, max / min, mean, dot product
• Complex math
• Matrix math
• Finite Impulse Response (FIR) filters,
decimation, interpolation
• Infinite Impulse Response (IIR) filters with different
biquad architectures
• Least Mean Squares (LMS) filter
• 16- and 32-bit Fast Fourier Transforms (FFTs),
inverse FFT
• Six different windowing functions, each 16- and 32-bit
• Quick support functions for numerical transforms
Function Details
Clock Cycles (Operating
from Instruction Cache)
Completion Time (μs) @
200 MHz (PIC32MZXXX)
IIR Filter (Biquad Transposed
Direct Form 2)
Serial processing 16-bit daya through
pipeline 8-stage serial filter
198 0.99
FIR Interpolation Filter 32-bit, 8 inputs, 6 taps, 3× interpolation 1048 5.24
FIR Decimation Filter 32-bit, 5 taps, decimation rate 3, 8 outputs 1002 5.01
Complex FFT 64-point, 16-bit data 3546 17.73
Complex FFT 128-point, 16-bit data 8066 40.3
Complex FFT 256-point, 16-bit data 18866 94.3
Complex FFT 512-point, 16-bit data 67354 366
Matrix Add 32-bit, each matrix 4 × 4 elements 246 1.23
Matrix Transpose 32-bit, 4 × 4 matrix 152 0.76
Vector Maximum 16-bit, 8-element vector 64 0.32
Vector RMS 16-bit, 8-element vector 370 1.85
Vector Dot Product 16-bit, 8-element vector 102 0.51
Vector Power (Sum of Squares) 16-bit, 8-element vector 78 0.39
Vector Variance 16-bit, 8-element vector 192 0.96
Vector Standard Deviation 16-bit, 8-element vector 444 2.22
Complex Dot Product 32-bit 24 0.12
The Fixed Point DSP Library is available for the PIC32MZ family of microcontrollers. The library was created from optimized assembly routines written specifically for the microAptiv core.