GNSS codes, signals and spectrum generation for Matlab
All the contents were developed for the passive remote sensing group (RSLab) as a part of the Remote Sensing Laboratory, a research line of the CommmSensLab Group at the Signal Theory and Communications Department (TSC) of the Universitat Politรจcnica de Catalunya (UPC).
The first version of this program was uploaded in the IEEE Remote Sensing Code Library (RSCL) with DOI: 10.21982/M8F59K
New versions of this program may be found at GitHub.
Contents
\documentation
- GNSS_signals_v1.0.pdf: A summary of the GNSS codes, signals, spectrum and auto-correlation functions.
- Official ICD documents can be obtained from here.
\prn_codes
- Matlab data container (.mat) files with next unsampled codes:
- GPS: L1CA, L2CM, L2CL, L5I, L5Q. Galileo: E1B, E1C, E5aI, E5aQ, E5bI, E5bQ. BeiDou-2: B1I
\real_data
Real data captures can be used to test the functions. Get them here.
-
capture_04.mat
- fs = 2.5 MSps
- duration = 1.5 s
- band: L2 (1.2276 GHz)
- Known present PRNs: GPS L2C 26
- data type: Matlab complex int16 (I don't remember the original bit depth, but most probably was 8 bits)
-
test_2_cut.dat
- fs = 20 MSps
- duration = 5 ms
- band: L1 (1.57543 GHz)
- Known present PRNs: GPS L1 C/A 13
- baseband 16 bits complex (16 bit I + 16 bit Q)
- data type: signed int16
-
test_4_cut.dat
- band: L5 (1.17645 GHz)
- Known present PRNs: GPS L5 30
- baseband 16 bits complex (16 bit I + 16 bit Q)
- fs = 20 MSps
- duration = 20 ms
- data type: signed int16
-
test_5_cut.dat
- band: E5A (1.176450000 GHz)
- Known present PRNs: Galielo E5A 30
- baseband 16 bits complex (16 bit I + 16 bit Q)
- fs = 20 MSps
- duration = 5 ms
- data type: signed int8
-
test_6_cut.dat
- band: E5B (1.20714 GHz)
- Known present PRNs: Galielo E5B 7
- baseband 16 bits complex (16 bit I + 16 bit Q)
- fs = 20 MSps
- duration = 5 ms
- data type: signed int8
-
test_11_cut.dat
- band: E5 (1.191795 GHz)
- Known present PRNs: Galielo E5 3
- baseband 8 bits complex (8 bit I + 8 bit Q)
- fs = 50 MSps
- duration = 100 ms
- data type: signed int8
-
test_14_cut.dat
- band: E1 (1.57543 GHz)
- Known present PRNs: Galielo E1OS 3
- baseband 8 bits complex (8 bit I + 8 bit Q)
- fs = 50 MSps
- duration = 100 ms
- data type: signed int8
\source
-
GNSScodegen.m: Generates GNSS unsampled codes.
- GPS: L1CA, L2CM, L2CL, L5I, L5Q.
- Galileo: E1B, E1C, E5aI, E5aQ, E5bI, E5bQ.
- BeiDou-2: B1I.
-
GNSSsecondarygen.m: Generates GNSS unsampled secondary codes
- GPS: L5I, L5Q.
- Galileo: E1C, E5aI, E5aQ, E5bI, E5bQ.
-
GNSSsignalgen.m: Generates sampled GNSS signals.
- L1CA: GPS L1 C/A signal
- L2C: GPS L2C signal
- L2CM: GPS L2C data component
- L2CL: GPS L2C pilot component
- L5: GPS L5 signal without secondary codes
- L5+: GPS L5 signal with secondary codes
- L5I: GPS L5 signal data component without secondary codes
- L5Q: GPS L5 signal pilot component without secondary codes
- L5I+: GPS L5 signal data component with secondary codes
- L5Q+: GPS L5 signal pilot component with secondary codes
- E1OS: Galileo E1OS signal with secondary codes
- E1OS+: Galileo E1OS signal without secondary codes
- E1OS_complex: Galileo E1OS signal without secondary codes with the E1C component in the imaginary part
- E1OS+_complex: Galileo E1OS signal with secondary codes with the E1C component in the imaginary part
- E1OS_B: Galileo E1OS data component
- E1OS_C: Galileo E1OS pilot component
- E1OS+_C: Galileo E1OS pilot component with secondary codes
- E5: Galileo E5 signal without secondary codes
- E5+: Galileo E5 signal with secondary codes
- E5A: Galileo E5A signal without secondary codes
- E5B: Galileo E5A signal without secondary codes
-
BOCgen.m: Generates the sub-carriers needed for the BOC-based modulations
-
GNSSspectrumgen.m: Generate GNSS analytical spectra.
- GPS L1: L1CA, L1P, L1M, L1C, L1Cd, L1Cp, L1Cp1, L1Cp2, L1, L1_new.
- GPS L2: L2C, L2P, L2M, L2, L2_new.
- GPS L5: L5I, L5Q, L5, L5_new
- Galileo E1: E1PRS/EA, E1OS.
- Galileo E6: E6PRS/E6OS.
- Galileo E5: E5, E5A, E5B.
- BeiDou-2 Current:
- B1: B11, B12, B1
- B2: B2I, B2Q, B2
- B3: B3
- BeiDou-2 Future:
- B1: B1Cd, B1Cp, B1C, B1_new
- B2: B2_new
- B3: B3_new, B3A, B3composite
\examples
Example files calling the above functions.
Licence
You may find a specific licence files in each directory.
Contact
Daniel Pascual (daniel.pascual at protonmail.com)