Skip to content
Consistent dictionary learning algorithm for signal declipping
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Experiment
Figures
Solvers
Utils
.gitignore
README.md
README.txt
consistent_DL_LVA18_preprint.pdf
glockenspiel.wav
gpl-3.0.txt

README.md

Consistent dictionary learning for signal declipping

This is an implementation of the algorithm proposed in:

Consistent dictionary learning for signal declipping, L. Rencker, F. Bach, W. Wang, M. D. Plumbley, Latent Variable Analysis and Signal Separation (LVA/ICA), Guildford, UK, 2018

The paper can be found at http://epubs.surrey.ac.uk/846156/1/Consistent_DL_for_signal_declipping.pdf.

Author:

Lucas Rencker,
Centre for Vision, Speech and Signal Processing (CVSSP), University of Surrey, UK
Contact: lucas [dot] rencker [at] surrey.ac.uk

Quick demo:

Clipping, or saturation, is a common nonlinear distortion in signal processing. Clipping occurs when the signal reaches a maximum threshold and the waveform is truncated:

Clipped signal

Declipping aims at recovering the clipped samples using the surrounding unclipped samples.

This code performs declipping using 4 different approaches:

  • Iterative Hard Thresholding (IHT) for inpainting: discards the clipped sample and performs sparse coding on the unclipped samples using IHT and a fixed DCT dictionary
  • Dictionary learning for inpainting: discards the clipped samples and performs dictionary learning on the unclipped samples
  • Consistent IHT: performs consistent IHT using a fixed DCT dictionary [1]
  • Consistent dictionary learning: performs consistent dictionary learning using the algorithm proposed in [2]

"Consistent" formulations enforce the signal to be consistent with the clipped measurements, i.e. enforcing the reconstructed clipped samples to be above the clipping level. This can be done by minimizing the distance to a convex feasibility set, see [2] for more details.

You can see an example of declipping a glockspiel signal by running:

run Experiment/Declip_1_signal.m

You can see how the different algorithms perform in reconstructing a heavily clipped signal (here 73% of the samples are clipped):

IHT DL consIHT consDL

References:

[1]: Consistent iterative hard thresholding for signal declipping, S. Kitic, L. Jacques, N. Madhu, M. P. Hopwood, A. Spriet, C. De Vleeschouwer, ICASSP, 2013

[2]: Consistent dictionary learning for signal declipping, L. Rencker, F. Bach, W. Wang, M. D. Plumbley, Latent Variable Analysis and Signal Separation (LVA/ICA), Guildford, UK, 2018

You can’t perform that action at this time.