I had two sets of data, the output function of the system (time series with a length of 1292 entries) and the transfer function (similar to a gaussian with a length of 681 entries). I would like to calculate the input function(unknown) using deconvolution.
I tried calculating the FFT for each function and then the inverse of the division of the two ffts: Cin = F^-1 [F(Cout)]/[F(E)] however FFT of the transfer function seems to be zero everywhere and the resulting recovered signal have a lot of noise. I also tried Wiener deconvolution, but once again, if I calculate the convolution of the recovered signal with the transfer function I don't obtain the output function.
For the signals I'm using which is the most appropriate method? (FFT, SciPy convolve, Wiener)
Do I need to "zero-pad" the transfer function to match the length of the output function?
Since the deconvolution process is susceptible to noise, Do I need to filter the signals (before/after)?
there is similar code in matlab or python that I could refer to?
Here the output of my code with the wiener method (output in blue, transfer in red, recovered input in green and convolution of recovered input and transfer (purple):