# How to efficiently apply spectrum sensing algorithm

Lets assume 1 signal (lets call it PPG) that is composed "mostly" of 3 different main frequencies components ($$f_1, f_2, f_3$$) and their harmonics. Now let's assume we have 16 copies of this signal (let's call them $$S_1,...S_n...S_{16}$$), which are essentially the same (PPG) signal, but affected by some random delays (a fraction of smallest period present in ), and "A LOT" of noise. These 16 signals, might themselves be also an aggregation of noisy-delayed copies of the original signal (PPG) itself.

Now, the version that we have now does the following:

1. It get's the addition/aggregation of this 16 noisy signal copies ($$S_1,...S_n...S_{16} = S_{agg}$$ )

2. We apply MUSIC (to $$S_{agg}$$) to generate the pseudospectrum, by creating an autocorrelation matrix made by artificially delayed signals.

3. Factorizing/diagonalizing it and assuming that only "main" 3 frequencies components are in the signal, while all the other frequencies are noise, we can extract and reconstruct the original signal (PPG).

4. From the Pseudospectrum, we get the main frequencies and recompose the signal based on them.

Now, this is very much similar to a typical communication scenario where the receiver can detect a "signal" which is essentially composed of and aggreagation of noisy randomly delayed copies of the original signal (PPG) due to e.g. multipath propagation.

However, in our problem, we DO have access to the 16 noisy delayed signals without the aggregation, so it does not make sense for us to solve this problem starting from the mixed signal.

We could apply MUSIC to each one of this 16 signals ($$S_n$$) and then find a way of aggregating the pseudospectrums (adding them or multiplying them, e.g.). This approach kind of works ok with the FFT (get FFT of each one of the signals, discard phase information, multiply or add the freq information and get a frequency representation of the real-signal).

I don't see why this would not work also with MUSIC. This makes our algorithm n times slower (n=16) However, I am assuming that this is not the optimal approach, since I am only calculating the correlation of the individual versions of the signal with themselves, ignoring that I KNOW that they are essentially the same signal and they should correlate with each other. To acknowledge for this, in practice, we could apply the same as single-signal-based MUSIC, but keeping Sn fixed and delaying Sn+1.

But....this would make the computation n-factorial (n!, with n=16, this is 2.1xE13) times slower, and we would also need to find something to do with the multiple versions of the frequencies extracted, since they might not be "exactly" the same (addition or multiplication of the pseudospectrum might work here too)

I believe there should be some type of MUSIC-type algorithm that actually accounts for multiple received signals and it is able to extract the fundamental frequencies by computing e.g. a matrix of cross correlations instead of autocorrelations. How should this matrix be composed? What would I need to delay? How to factorize/diagonalize the resulting matrix? and specially.... how to implement this in a simple manner starting from a simple MUSIC implementation.