3

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

jtlz2
  • 7,700
  • 9
  • 64
  • 114
liubenyuan
  • 733
  • 1
  • 5
  • 10

1 Answers1

0

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.

skyking
  • 13,817
  • 1
  • 35
  • 57
  • but the time shift, as well as the number of Heaviside function is unknown, i.e., u_i(t-tau). – liubenyuan Aug 19 '15 at 06:11
  • You didn't mention that in the question, but of course then the result is not unique. You will end up with a unknown timeshift. Without further information it will remain unknown. – skyking Aug 19 '15 at 06:14
  • I am sorry for the missing information. I updated the post and add one time series of sample signals. Thanks anyway! – liubenyuan Aug 19 '15 at 06:18