This is not a duplicate of Filter secondary bounces of a pulse signal because in that question, a convolution model is finally not appropriate, whereas here, the question is about convolution.
Given the signal y below, is there a way to recover the original signal x (before convolution), without knowing the impulse response h?
Of course, additional hypotheses are required to avoid having an infinity of solutions. In the example below, we could reasonably assume that:
a)
xis just one Gaussianb) or, weaker assumption:
xhas only one local maximum (for the casexis a bell curve, but not Gaussian)c) or another possibility:
h[i] != 0only ifi = 20, 40, 60, 80, 100, ...(reasonable here by looking at theyplot and the period of the bounces)
Can we conclude with an algorithmic solution, in one of these 3 cases?
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
x = np.zeros(200)
x[:50] = norm.pdf(np.linspace(-5, 5, 50))
h = np.zeros(120)
h[0] = 1
h[20] = 0.2
h[40] = 0.1
h[60] = 0.05
h[80] = 0.02
h[100] = 0.01
y = np.convolve(x, h)
plt.subplot(211)
plt.plot(x)
plt.subplot(212)
plt.plot(y)
plt.show()
