I have collected two signals, $B_1(x)$ and $B_2(x)$. The signals start and end at the same $x$-values. Each signal $B_i(x)$ contains:

  • a base signal $b(x)$, which is the same for both, and
  • a signal, either $w(x)$ or $w(x+\phi)$, which are identical except for the shift $\phi$ along $x$.

Signals $b(x)$, $w(x)$, and $w(x+\phi)$ are non-periodic.

Essentially, I have:

$B_1(x) = b(x) + w(x) \\ B_2(x) = b(x) + w(x + \phi)$,

with only access to $B_1(x)$, $B_2(x)$, and $\phi$.

My question: Is is possible to use the phase-shift knowledge from my two signals to recover the base signal $b(x)$? And if so, can you point me in the direction of a method that would work?

I've read about or tried to implement methods such as blind source separation, independent component analysis, and stationary subspace analysis, but none seem to take advantage of the phase information, or work at all for my data.

Note: If it helps, I am able to collect more data with different $\phi$-values, to obtain more $B_i(x)$ signals.

I've attached a figure with toy data (my real data is messier and longer). The top plot shows $b(x)$ (what I'd like to recover), the middle plot shows $w(x)$ and $w(x+\phi)$, and the bottom plot shows the measured signals $B_1(x)$ and $B_2(x)$, representing the combination.


1 Answer 1


Here's the best method I've found so far:

First, I shifted $B_2(x)$ by $\phi$; this shift aligns the underlying (but unknown) signals $w(x)$ and $w(x + \phi)$. Note that once $B_2(x)$ is shifted, the signals will not begin and end at the same $x$-values. I chopped off the values of each signal that didn't overlap. Parts (a) and (b) of the figure below show the original measured signals $B_1(x)$ and $B_2(x)$, and then the aligned signals, which I'll call $s_1(x)$ and $s_2(x)$.

The aligned signals $s_1(x)$ and $s_2(x)$ are not identical, because the base signal $b(x)$ has been added to them at a known phase shift. Therefore, finding the difference between $s_1(x)$ and $s_2(x)$ at each point, and then dividing by the phase shift $\phi$, will give us the numerical derivative of the base signal, $\frac{\triangle b}{\triangle x}$. In summary, the numerical derivative of the base signal is given by \begin{equation} \frac{\triangle b}{\triangle x} = \frac{s_2(x)-s_1(x)}{\phi}. \end{equation}

Then, to find the estimated base signal $b_{est}(x)$, we numerically integrate $\frac{s_2(x)-s_1(x)}{\phi}$. I corrected for integration drift by numerically integrating forwards and backwards, then averaging the two results.

Lastly, I shifted $b_{est}(x)$ forward by $\frac{\phi}{2}$. I think the reason for a shift of this value is because I computed the numerical derivative between points separated by a full phase, so the derivative approximate should be centered at half of that.

The results (base signal $b(x)$, estimated base signal $b_{est}(x)$, and error between the two) are shown in part (c) of the figure below.

Figure: aligning signals and results

  • $\begingroup$ Is your b(x) a sinusoid? In the question you say "Signals b(x), w(x), and w(x+ϕ) are non-periodic." $\endgroup$ Jul 21, 2020 at 16:46
  • $\begingroup$ In my real data, b(x) is not a sinusoid. Sorry for the confusion--I used a sinusoid to generate the toy data pictured here, but I do not want to assume b(x) is sinusoidal when finding a solution to the problem. $\endgroup$
    – rotano
    Jul 22, 2020 at 18:28
  • $\begingroup$ If it were a sinusoid, that means it has properties that could be exploited. Are you satisfied with the solution you found? $\endgroup$ Jul 22, 2020 at 18:55
  • $\begingroup$ True. I tested this method on different toy data that had a non-sinusoidal b(x) and it also worked. I chose this base signal for the figures here only to make the "combined signals" easy to visualize. Unfortunately, the method I developed does seem to be quite sensitive to noise. So I'm open to trying other solutions! $\endgroup$
    – rotano
    Jul 23, 2020 at 3:04
  • $\begingroup$ My initial thought was I could do something with a sinusoidal carrier, not sure what. I'll take a stab at this when I get a chance, it looks interesting, but please be patient. I am now thinking that partitioning your signal into rising and falling segments, then dealing with their inverses (i.e. flip them on a diagonal, and then your analysis goes horizontal on each segment an d your phase shift becomes a DC shift which might lead somewhere... But you want to do a $B_n - B_m$ first. $\endgroup$ Jul 23, 2020 at 3:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.