Thursday, July 28, 2011

Real Signal Complex Noise (RSCN) - SNR estimation algorithm

I found one very cool article about SNR estimation in the GPS (BPSK DS-SS signals).

I implemented the RSCN algo (code in octave it may changes bcoz it's link to the my work vcs and this realisation is test, I'll stabilize the code later). The description of this algo you can find in [1, 2, 3]. The [1] is the simplest article from all others ([2, 3]). And in the [3] authors tell that this algo is very sensitive to phase. And it's pretty simple to look. For example we have GPS fronend MAX2769, 16.368Mhz is sampling freq.




The main idea of this algo is that noise distribute similar in the I and Q channel. If the local signal and incoming signal align right. we will have. In the I channel energy of the signal and noise and in the Q channel only noise. We can calculate noise power in the Q channel and then find the SNR.

Q_noise = 1/N * sum(Q_samples .^ 2);
All_noise = 2 * Q_noise;
I_energy = 1/N * sum(Q_samples .^ 2);
Signal_energy = I_energy - Q_noise;
SNR = Signal_energy / All_noise

remember that noise distribute similar in the I and the Q (all noise will be twice than Q noise)

C/A freq is 1.023Mhz and we have 16 samples in 1 chip. oK. We try to acquire then signal via fft algorithm strip the code and move to baseband. Now we want to estimate the SNR (sigma of the noise), BUT if you miss for 1 sample all signal energy will be in the another channel.

Look at the picture above. We have pretty cool estiomation in some points but in another it's not working at all. If we investiagte this issue we found that in this points we have shift on 1 sample - all energy of the signal+noise was in the Q channel and in the I was only noise. But we know that a phase of the carrier align to a phase of the C/A code and we can use it to correct estimation of the SNR.

On this we can see error probability of the C/A phase estimation depends on SNR. Simple to determine that average probability of C/A phase error is 50% (0.5 on this picture it's the 50%) ie it's independent on SNR!!! We have almost similar results for every SNR on picture. It needs some investigation around this and may be I can made some improvements in it. Write some later.

Later I will write about some other algos and ideas how to improve this algos


[1] Carrier to-Noise Density and AI for INS/GPS Integration by B. Badke (pdf)
[2] Carrier-to-Noise Algorithms by E. Falletti, M. Pini, L. Lo Presti (pdf)
[3] Low complexity carrier to noise ratio estimators for GNSS digital receivers by E. Falletti, M. Pini, L. Lo Presti (very similar to the article in the InsideGNSS)


No comments:

Post a Comment