Extracting independent sources from available signals.

67 Views Asked by At

I have four signals in time domain, in the format of 4 vectors (a,b,c,d). I know there are 3 sources contributing these signals.

One is a source that is shared between all four signals.

One is a source that is shared between only two of them, for instance between a and b.

The last one is a source that is shared between the other two, for instance between c and d.

I want to know whether it is mathematically possible to extract these three sources from my signals and how.

In addition, if each signal is contaminated by independent noise source (most likely gaussian noise), how does it affect my solution?

Thanks.

1

There are 1 best solutions below

2
On

Without knowing anything about the sources of the signals, they're linearly independent when each has a noise source, since the last source is not shared by two signals, one of which shares a source none of the other signals share - if the last source was shared between b and c, it would be different. You can codify this by making a matrix where rows represent each vector, and columns represent sources in the signals...

$\pmatrix{ 1 & 0 & 0 & 0 & 1 & 1 & 0 \\ 0 & 1 & 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 1 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 1 & 1 & 0 & 1 }$

Where the first four columns represent the independent noise sources, the fifth represents the shared noise source, and the final two represent the paired noise sources. 1 represents the signal at reference amplitude.

...And performing Gaussian elimination.

However, if you knew something about the amplitudes of the signals, you could contribute some lower-amplitude noise to a certain signal to eliminate the rest, then take that clearer source and feed it back in as the starting signal, by replacing the original row of the matrix with the new row one.

Maybe you could take the convolution of a with b, and get a signal with the independent noise sources filtered out where they differ in frequency, pretend that's like a linear combination of a and b without their unique noise sources, and use that to isolate the unique noise sources. I don't think that would necessarily help, but on the same principal, considering the convolution of all four will definitely contain the shared noise source's frequencies to the fourth power, and subtracting that signal out or something based off it is the best thing I really know to do.

This is why signal processing is engineering. Too many situations like this, where you can often get way further on experimental, situational information than you're given beforehand.