»libdsp-x15« – DSP (C66x) library for BeagleBoard-X15 (AM5728)

Introduction

The libdsp-x15 library was created to offload typical audio processing operations to the C66x DSPs (integrated in AM5728 SoC of TI). Currently the library offers the following signal operations:

  • Fast Fourier Transform (FFT)
  • Inverse Fast Fourier Transform (IFFT)
  • Biquad Filter (2nd order IIR filter (often used in audio applications due to stability))

The CTAG face2|4 Multichannel Audio Card driver has been succesfully ported to AM5728 SoC. The driver (compatible with BeagleBone Black/green and BeagleBoard.org - x15) has been merged in the offical BeagleBoard kernel and is ready to use by default in the BeagleBone images since end of 2016.

Please check out the wiki for more information. Article with examples and demos is available here.

Details

The BeagleBoard-X15 is a single board computer (SBC) based on AM5728 SoC by Texas Instruments.
AM5728 offers two integrated C66x DSPs, which can be used for real-time signal processing in asymmetric multiprocessor configurations.

Moreover the digital audio interface (DAI) of AM5728 is compatible with BeagleBone Black/Green.
An audio system consisting of our multi-channel audio card CTAG face2|4 and an easy to use DSP library would offer a powerful platform for real-time, low-latency audio processing and synthesis.

The whole project was part of the Google Summer of Code 2016 participation by Henrik Langer for the BeagleBoard.org organization and is separated in the following project parts.

  1. Create library to make use of C66x DSPs
  2. Porting the CTAG face2|4 Audio Card drivers to AM5728 SoC (see project page or hackaday project)

Features

The DSP library libdsp-x15 focuses on audio processing and offers the following signal operations.

Operation Description
Fast Fourier transform (FFT) Operation which transforms signal from time domain to frequency domain (spectrum). Often used for signal analysis and further processing in frequency domain (e.g. audio coding).
Inverse fast Fourier transform (IFFT) Inverse operation of FFT which transforms signal from frequency domain back to time domain. Often used for additive synthesis.
Biquad filter Two pole and two zero infinite impulse response (IIR) filter. Biquad filters are often used in audio applications due to its stability. To achieve a higher filter slope, biquad filters can be serially cascaded instead of using higher order IIR filters (can be highly sensitive to quantization errors of their coefficients => unstable).

Links