TMBOC / SoftGNSS

Current working ver. of SoftGNSS v3.0 for GN3sV2, GN3sV3, NT1065EVK, and NUT4NT samplers. All known updates included. Navigation module updated.
GNU General Public License v2.0
57 stars 30 forks source link

I/Q Signal Signal Structure is Different than the General Format #5

Open kucar17 opened 9 months ago

kucar17 commented 9 months ago

In the tracking and postPorcessing functions, it seems like the rawSignal is decompressed into In-phase and Quadrature components in the inverse way of the general format. As far as I know In-Phase component corresponds to the real part and the Quadrature component corresponds to the Imaginary part.

In lines 291, and 292 of the "tracking.m" file the following is written:

qBaseBandSignal = real(carrsig .* rawSignal);
iBaseBandSignal = imag(carrsig .* rawSignal);

What is the reason for that, am I missing something?

unalfaruk commented 9 months ago

Hi @kucar17,

That's a nice question 👍

It made me confused at first, then I remembered the signal plan of L1 C/A.

image

Note that the choice of using a sine carrier (imaginary) or a cosine carrier (real) for "in-phase" extraction is often driven by the specific requirements and constraints of the system being designed.

image

As you can see here in the graph above, y-axis represents C/A signal (quadrature coomponent), therefore, when you multiply this signal by the sine component (imaginary), you are extracting the in-phase (I).

Since I've been away from GNSS-related work for quite some time, I might be mistaken now. But you can have a look at the details here:

https://www.mathworks.com/help/nav/ug/end-to-end-gps-legacy-navigation-receiver-using-ca-code.html (Introduction part, signal definition)

Understanding GPS Principles and Applications, Elliott D. Kaplan (4.3.1, 5.3)

I hope it helps.