We developed two hardware architectures implementing approximate message passing (AMP), a fast converging and hardware-friendly recovery algorithm for compressive sensing problems. To demonstrate the practical use of such hardware implementations, ASIC and FPGA designs that restore corrupted audio signals were designed. The resulting designs are capable of removing clicks from audio signals in real-time using sparsity properties in different bases (examples below).
Authors: Patrick Maechler, Christoph Studer, David Bellasi, Arian Maleki, Andreas Burg, Norbert Felber, Hubert Kaeslin, and Richard G. Baraniuk
Abstract: Sparse signal recovery finds use in a variety of practical applications, such as signal and image restoration and the recovery of signals acquired by compressive sensing. In this paper, we present two generic VLSI architectures that implement the approximate message passing (AMP) algorithm for sparse signal recovery. The first architecture, referred to as AMP-M, employs parallel multiply-accumulate units and is suitable for recovery problems based on unstructured (e.g., random) matrices. The second architecture, referred to as AMP-T, takes advantage of fast linear transforms, which arise in many real-world applications. To demonstrate the effectiveness of both architectures, we present corresponding VLSI and FPGA implementation results for an audio restoration application. We show that AMP-T is superior to AMP-M with respect to silicon area, throughput, and power consumption, whereas AMP-M offers more flexibility.
The full paper is:
P. Maechler, C. Studer, D. Bellasi, N. Felber, H. Kaeslin, A. Burg, A. Maleki, and R. G. Baraniuk, "VLSI Design of Approximate Message Passing for Signal Restoration and Compressive Sensing" IEEE Journal on Emerging and Selected Topics in Circuits and Systems, Vol. 2, No. 3, October 2012
Some audio files are provided below as examples for the restoration capabilities of the described approach:
We also provide a Matlab script performing de-clicking of corrupted audio files using AMP to all interested readers:
Download (zip file, 2.7 MB)
Our VLSI design of AMP easily fits on low-cost FPGAs, such as the Xilinx Spartan-6 LX9. Using a Digilent Atlys prototype board, our implementation is able to remove clicks and pops from stereo audio signals with 44.1 kHz sampling rate in real-time! The picture below shows the setup, where corrupted music is fed into the line-in port, sampled by ADCs on an AC'97 chip, restored by AMP, converted to an analog signal by DACs, and finally played back on stereo headphones.