extracting signal from a sum of two signals shifted in time

Viewed 36

I have a signal (Sout(t)) which is a sum of two (almost) identical signals (S) shifted by a known delay dt:

Sout(t) = S(t)+S(t-dt)

How do I reconstruct the original S(t)? I program in python.

2 Answers

You have a effectively a signal that passed through a FIR-filter. The FIR-filter will have a response h[n] of the form [1,0,0,0,0,1] where the number of zeros should be (dt*f_sampling -1).

According to this post you can do inverse filtering on such signals using scipy standard functions: inverse-filtering-using-python

There is many methods you can implement, Fourier transfom may be the best one, since you know the delay we can formulate this probelem as following :

I- Apply the fourier transfrom :

F(Sout(t)) = F(S(t)) + F(S(t-dt))

 Note : 
 1. F(Sout(t)) -> Sfout(f)
 2. F(S(t)) -> Sf(f)

II- Extract Sf(f) :

Sfout(f) = Sf(f) + Sf(f) * exp(-j2*pi*f*dt)
Sfout(f) = Sf(f) * (1 + exp(-j2*pi*f*dt))
Sf(f) = Sfout(f) / (1 + exp(-j2*pi*f*dt))

III- Apply inverse fourier transfrom to get S(t) :

S(t) = InvF(Sfout(f) / (1 + exp(-j2*pi*f*dt)))

In python you can call the fast fourier transfrom using Sfout = np.fft.fft(Sout) For the inverse run this one S = np.fft.ifft(Sfout)

Related