Reputation: 733
I want to remove a step (jump, Heaviside) function from a time series data, as shown in the picture. Could anyone give some hints (or references) on how to do this?
The link to the image is : Multichannel signal convolved with heaviside functions
One sample channel dataset is available at: Sample, one Channel of the dataset
Upvotes: 3
Views: 773
Reputation: 14400
Since convolution is the multiplication in frequency domain deconvolution should be division. The fourier transform of the heaviside is 1/jw, so you would want to divide with this (ie multiply with jw). Now the inverse fourier transform of jw is the derivative of the dirac distribution. So you should convolute with the derivative of the dirac distribution.
In the discrete case the derivative of it is 1
for k=0
and -1
for k=1
and zero elsewhere
def deconv(seq):
prev = 0
for cur in seq:
yield cur - prev
prev = cur
I see no reason why the result shouldn't be unique.
Upvotes: 0