Skip to content

Deconvolution

Sambit Paul edited this page Dec 14, 2021 · 5 revisions

Deconvolution works when the convolution was performed in either of these 2 modes:

  1. Full: This returns the convolution at each point of overlap between kernel and signal.
  2. Same: This returns the convolution such that it maintains the same size as the original signal.

Deconvolution does not work for Valid mode because there aren't enough data points for recovering the original signal.

The parameters for this filter are as follows:

  • Mode of Operation ⇨ Can be "full", "same", "valid"
  • Kernel ⇨ 1-D Array the signal is convolved with


Convolved Signal: [2.0, 14.0, 26.0, 18.0, 37.0, 16.0, 49.0, 39.0, 36.0, 27.0, 0.0]
Kernel: [1.0, 3.0, 1.0, 3.0]
Code
String mode = "full"; //Can be "full", "same"
Deconvolution d2 = new Deconvolution(convolved, kernel);
double[] signal = d2.deconvolve(mode);
Recovered Signal: [2.0, 8.0, 0.0, 4.0, 1.0, 9.0, 9.0, 0.0]

Convolved Signal: [14, 26, 18, 37, 16, 49, 39, 36]
Kernel: [1.0, 3.0, 1.0, 3.0]
Code
String mode = "same"; //Can be "full", "same"
Deconvolution d2 = new Deconvolution(convolved, kernel);
double[] signal = d2.deconvolve(mode);
Recovered Signal: [2.0, 8.0, 0.0, 4.0, 1.0, 9.0, 9.0, 0.0]
Clone this wiki locally