Signal Processing Asked by rotano on November 8, 2021
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:
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.
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.
Answered by rotano on November 8, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP