-
-
Notifications
You must be signed in to change notification settings - Fork 43
Deconvolution
Sambit Paul edited this page Dec 24, 2021
·
5 revisions
Deconvolution works when the convolution was performed in either of these 2 modes:
- Full: This returns the convolution at each point of overlap between kernel and signal.
- 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
String mode = "full"; //Can be "full", "same"
Deconvolution d2 = new Deconvolution(convolved, kernel);
double[] signal = d2.deconvolve(mode);
String mode = "same"; //Can be "full", "same"
Deconvolution d2 = new Deconvolution(convolved, kernel);
double[] signal = d2.deconvolve(mode);
Works similar to real deconvolution. However, for complex deconvolution, the input "convolved signal" has to be complex. The output maybe a complex or a real signal. Hence, two getOutput functions are available; depending on the datatype, the relevant function will work, the other one will throw an error if called.
mode = "same";
Complex[] sg = UtilMethods.matToComplex(complexSignal);
Complex[] krn = UtilMethods.matToComplex(complexKernel);
ComplexDeconvolution dc1 = new ComplexDeconvolution(sg, krn);
dc1.convolve(mode)
double[][] out = UtilMethods.complexTo2D(dc1.getComplexOutput());
Wiki
-
Filters
- IIR Filters
- FIR Filters
- Kernel-Based Filter
- Adaptive Filters
-
Signals
-
Peak Detection
-
Transformations
-
Speech
-
Windowing