Skip to content

Matlab codes to generate GNSS PRNs, secondary codes, dataless signals and spectra. Includes real data captures and a theory summary. GPS (L1CA, L2C, L5), Gaileo (E1OS, E5), BeiDou-2 (B1I)

License

lastpower65/GNSS-matlab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

Matlab codes to generate GNSS PRNs, secondary codes, dataless signals and spectra. Includes real data captures and a theory summary. GPS (L1CA, L2C, L5), Gaileo (E1OS, E5), BeiDou-2 (B1I)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 100.0%