liubenyuan
liubenyuan

Reputation: 733

How to deconvolve a step function from a time-series signal

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

Linked Image

One sample channel dataset is available at: Sample, one Channel of the dataset

Upvotes: 3

Views: 773

Answers (1)

skyking
skyking

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

Related Questions