Amplitude demodulation is a widely used tool of signal processing. It involves decomposing a signal, y(t), into a product of a slowly varying positive modulator, m(t), and a quickly varying carrier, c(t). That is, y(t) = m(t)c(t). The representation is useful because the modulator represents the local energy in the signal, whilst the carrier represents the fine-structure. Often the local energy and fine-structure contain very different information, for instance the identity of a particular speaker versus the content of what they are saying. Applications of demodulation include hearing aids, cochlear implants for the deaf, speech recognition, and information retrieval. Unfortunately, standard deterministic algorithms for performing amplitude demodulation are flawed in various ways. We have therefore developed an alternative approach, based on probabilistic methods used in machine learning, which resolves a number of these problems, but these benefits come with a larger computational cost.
This page collects together publications and code for performing probabilistic amplitude demodulation.
Code
Matlab code for Gaussian Processes Probabilistic Amplitude Demodulation (GPPAD). Copyright Richard E. Turner, University of Cambridge, 2010. In order to use the code, please uncompress the zip file and view the README.txt file for instructions. There are a number of demos which run a number of different versions of PAD on a test signal. For further information, see the publications below.
Selected Publications
Demodulation as Probabilistic Inference, 2011. This paper is probably the best place to start for an introduction to the demodulation problem, a description of the problems encountered by previous approaches, and a fairly high level introduction to PAD with lots of examples.
Statistical Models for Natural Sounds, 2009. My PhD? Thesis. Chapter 3 of my thesis contains a lot more technical detail describing what goes on under the hood of PAD. Subsequent chapters describe extensions of the basic framework e.g. to subband demodulation or to cascades of modulators.
Probabilistic Amplitude Demodulation, 2007. This paper in the Proceedings of the International Conference on Independent Component Analysis was where we first introduced probabilistic amplitude demodulation. Here are the slides of the talk given at the conference. The paper and talk describe a simple PAD algorithm before extending the framework to cascades of modulators. See Chapter 4 of my thesis for more detail.
Greg Sell and Malcolm Slaney have developed a related convex optimisation approach to demodulation. For papers and code see their web page. For a formal proof that convex demodulation is a version of PAD see Demodulation as Probabilistic Inference, 2011.