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.
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.
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)