Wednesday, April 4, 2012

Double correlation question

On the last week I think about GPS algorithms. And one idea came into my mind.

[UPD] fix in math part
As we know C/A * C/A = 1 [1,2], so

x = (cos(jw1 + phi1) * C/A1 + cos(jw2 + phi2)*C/A2) * (cos(jw1 + phi1) * C/A1 + cos(jw2 + phi2)*C/A2) = cos(jw1 + phi1)^2 + 2*cos(jw1 + phi1)*cos(jw2 + phi2)*C/A1*C/A2 + cos(jw2 + phi2)^2.

Look's pretty

Ok, we have incoming signal x and if will correlate first millisecond with second and satellites signal presence in the incoming signal we can get correlation peak, if satellites signal absence in the incoming signal we won't look any peak (if you remember AWGN is not correlate with another AWGN).

 corr = x_first_ms * x_second_ms

if we have satellite signal corr function will has peak.

And I wrote simple POC code. BUT results are not so good as I thought =))



Look, on the first picture we have peak (several peaks around 1 and 16368, I have MAX2769 with freq 16.368e6 Hz, so a have 16 points per one point in the chip - triangular peak).  On the first peak we have 1 satellites with SNR = -10dB. But on the second we have just one satellite with SNR = - 25dB and it suppress other and signal can't correlate with another millisecond.

where is the problem??? Lets look again on a more real example (take just 1 satellite signal, but now with noise)

x = (cos(jw1 + phi1) * C/A1 + n)(cos(jw1 + phi1) * C/A1 + n) =  cos(jw1 + phi1)^2 + 2*cos(jw1 + phi1)*C/A1*n + n^2

Dispersion of the signal we have square of the noise for the two satellite!!! Statistically we have 8 satellite in several and resulting noise will be n^8. So we increase noise very much and in the new SNR we can't detect the signal.

[1] Gold, R. Optimal binary sequences for spread spectrum multiplexing. IEEE Trans. on Information Theory, October 1967, vol. 13, pp. 619–621

[2] Tsui, J. B. Y. Fundamentals of global positioning system receivers: a software approach John Wiley and Sons, 2005

No comments:

Post a Comment