Samples of GNSS Signal Records

On this page a few samples of GNSS signal records will be provided. These records are too short for the regular GNSS positioning algorithms. However they will be useful for someone who wants to verify the GNSS signal acquisition and tracking algorithms.

Signal Record gioveAandB_short.zip

The signal sampling frequency is 16367600 Hz. The intermediate frequency is 4130400 Hz. In this record one signal sample is stored as one signed byte (int8). The record length is approximately 1 minute and it was made in 2008.

Plots of the record file gioveAandB_1_signal.bin
IF signal plots

These GPS L1 signals are present in this record (sorted from the strongest to the weakest):

PRN Approximate Carrier Frequency
(MHz)
C/A Code Phase
(samples)
[1] PRN 32 may not be acquired in the first millisecond of the record. This is most likely due to a bit transition in the navigation data.
[2] These PRNs require acquisition algorithms which are more sensitive than the default one (5 to 9 ms integration time is required).
22 4.128460 15042
3 4.127190 1618
19 4.129280 6184
14 4.133130 14540
18 4.127310 344
11 4.133280 2955
321 4.134060 6857
 6 4.127220 7828
282 4.132022 15203
92 4.132420 9437

 This record also contains  E1 (L1) signals from the two Galileo GIOVE satellites:

Satellite Approximate Carrier Frequency
(MHz)
Data Channel Code Phase
(samples)
GIOVE A 4.129080 5667
GIOVE B 4.131250 34371

Signal Record compactdata_20050407_142600.zip

The signal sampling frequency is 12 Ms/s (MHz). The intermediate frequency is 3.563 MHz. The IF signal is sampled using one bit. Therefore one bit in the file represents one sample (8 samples in one byte). Due to this fact to process this signal the SDR that comes with the book must be modified as described below.

The following GPS PRNs are present in this record: 01, 03, 07, 19, 20, 22, 24, 28, 31.

An example how to read the this record file in Matlab:

[fid, message] = fopen(fileName, 'rb', 'b');
data = fread( fid, numberOfSamplesToBeRead, 'ubit1' )';
data = data * 2 - 1; %To convert values to +/- 1

Please note that the fopen command for this data file differs from the one used in the original SoftGPS code. The difference is the ‘b’ parameter ('rb' is not the same as 'r', 'b'). It is required because of the way this particular data file was written.

The tracking code must be modified in a few places. I will not provide the code, but instead I will tell where to look for the problems. The first place is the fseek command. This command works fine, when one the signal sample is stored as one byte in the record. However in this case one sample is stored as one bit. Therefore some code instead of the fseek command must be developed.
The second place for code change is the computation of the variable absoluteSample. The original code is also based on the byte size samples. This must be fixed.

26 thoughts on “Samples of GNSS Signal Records

  1. Hi
    Can you provide me a signal record which is at least 37s long. I would like to test the GNSS positioning algorithms too.

    Thanks

    1. Hi Rahul,

      Unfortunately at the moment I cannot do that for various reasons.

  2. How do you convert the 2 bit sign mag raw data into 8 bit format. The SDR code that came with the book requires 8 bit data. In Matlab, there is no datatype of 2 bits.

    The RF front end that I have provides 2 bit sign mag data. Can you please help on how to use this data with the SDR code on the Book DVD?

    1. Matlab has special data “types” that can handle one or more bits when fread is used. Check Matlab documentation on the fread function. Look for the “bitn” under the precision section.

    1. Hi,

      No, I cannot.
      If I will have some free time, then I will try to make such records. But at the moment I do not have other types of signal records that are not published on this web page.

  3. Dear Sir,
    I am just a beginner in studying of GNSS soft-receivers. My main concern is in GPS signal processing such as acquisition, tracking, etc. I was very pleased after reading front and back matters of this book in springer. There are many confused things for me in studying and doing researches in such GNSS soft-receivers. I would like to know if the Matlab codes in this book can be installed in the current Matlab package. This means …to install as a new GPS toolbox. Thanks you so much.
    Ms. Win Kay Khaing

    1. Dear Win Kay Khaing,

      Our code is not a Matlab toolbox, it does not need to be installed. Our code is Matlab scripts and functions that you can run and edit. Matlab had many versions since our code was published, so naturally sometimes you will have to fix some things in our code to make it work with the new versions of Matlab. We try to keep on our homepage a list of things that you need to update in our code, but you may also find some useful information on other pages on the Internet.

  4. Hi Darius

    Why is the GNSS signals are usually converted to an intermediate frequency instead of a direct baseband conversion?

    What are the problems with a direct baseband conversion of the signal?

    1. Hi Rahul,

      I am not an RF engineer, but as far as I know this has mostly to do with the flicker noise which has 1/f, or pink power density spectrum. The GNSS signals are very noise sensitive, so whenever it is possible the engineers try to minimize the noise on the receiver side. Also I know that DC-offset may also give some issues (especially with 1-bit ADCs) due to the nature/design of GNSS signals and GNSS measurements.
      In the GNSS receiver noise context here some of the main parameters that engineers must consider: the flicker noise, noise figure in components, noise gain, filter bandwidths, number of bits in the ADC.

  5. Hi Darius,

    I have collected 30 mins of live data from the onetalent sdrnav00 sdr but upon processing, I constantly get errors saying that no valid preambles were found for any of the 8 channels. Do you have any suggestions for how to fix this error?

    Thanks.

    1. Hi Payam,

      Please make sure that you have configured the GNSS SDR correctly to process the files. This is a general answer that is valid for all GNSS front-ends. Different front-ends, different versions of these front-ends or their configuration may create signal records files with different sampling and IF frequencies. Also in some situations a real signal sampling is used and in other cases a quadrature sampling is used. Further more there are differences in a single sample storage in the file (independently from how many bots the ADC is producing): 1 bit, 2bits, 8 bits or more. For details please consult the documentation for your front-end version.

      When testing a new front-end at first try to process just about 0.5 to a few seconds of the signal. If the signal record settings are correct, then the acquisition should find signals and the tracking should be stable. The tracking errors on most of the channels should converge toward zero. You should be able to see a few navigation data bits (the bit transitions).

      If acquisition works but you observe that on all channels the signal tracking errors “drift” in one direction, then you might need to flip the sign of discriminator output (this may be caused by the front-end design) or in some cases it might be that some of frequency related parameters are a bit off.

  6. Dear Sir,
    I am developing a GNSS soft-receivers for education in shanghai.China . My main concern is in GPS signal processing such as acquisition, tracking, etc. I was very pleased after reading your book,it is a great book for me. I have used the data for testing ,the file named “GPSdata-DiscreteComponents-fs38_192-if9_55.bin” from the DVD attached.
    I have a quenstion that i don’t know the accuarcy longitude and latitude where is the data collected.Can you tell me? Thanks!
    Yang

    1. Hi,

      The approximate latitude is 40.00806 (N) and longitude is about -105.26267 (105.26267 W).

    1. Hi Padma,

      At the moment I do not have a posibility to record anything but GPS L1 signals.

      Best regards,
      Darius

  7. Hi Darius,
    For the record data “compactdata_20050407_142600.zip”,acquisition GPS PRNs are present in this record: 01, 03, 07, 14,19, 20, 22, 24, 28, 31. There is more “PRN 14” than you have present. Why ?
    Thank you
    best regards
    C. M

    1. Hi C. M

      I can’t follow you question. Could you explain in more details what is the problem?

  8. Hello sir,
    I am a beginner in navigation field, i am studying software defined GPS receiver.
    My main concern is in GPS signal processing such as acquisition, tracking and navigation.
    Can you please guide me how to get IF data so that i can test the MATLAB code completely.
    I got the data from this link “http://gfix.dk/wp-content/uploads/2014/03/gioveAandB_short.zip” . But this data is insufficient to get navigation output. Acquisition and tracking is obtained but data is not sufficient to get navigation output.
    Please help me in this regard
    Thanks you so much.

    1. Hello Sheher Banu S,

      Right now I do not have a possibility to host on this homepage long signal records. You will have to find another source for GNSS signal records or you if can – buy a GNSS front-end to make your own signal records.

  9. Dear Darius
    Thanks a lot for wonderful code.. I am using USRP 2932 to record GLONASS data.. I think there is not Intermediate frequency involved in this.. so what should I set IF value to? I guess same as the signal frequency? or Zero the difference of LO frequency and Signal frequency.

    1. Dear Vasu,

      The IF will depend on your USRP configuration (the frequency downconversion plan). It is likely that it will be near zero, but it might be something else (and especially if we are talking about the new CDMA GLONASS signals).

  10. Dear Mr Darius Plaušinaitis
    I am working on GNSS interfrence mitigation ,how i can add jammer signal(CW or CHIRP ) to the gps signal

    Thank you
    Regards

    1. Dear Zaki Aissam,

      The best is to use a dedicated GNSS signal simulator as this can create the most controlled interference.

      Transition og interference on GNSS bands in open air is illegal, so you can do such approach only in controlled/closed environments.

      You can add the interference to the already recorded GNSS signal but this approach has a few serious challenges:
      * You have to make sure that the signal to interference power is correct. It might be problematic to achieve that for the GNSS signals which were sampled with a low number of ADC bits/sample.
      * The interference simulations must account for the RF signal processing. The radio interference has a strong effect to the signal conditioning (“processing”) by the RF front-end (and it might cause clipping, ADC saturation etc.). Plus – after passing the antenna, LNA, and the RF front-end the interference properties most likely will change. Don’t forget that some front-ends are designed to mitigate certain types of interference.
      * The recorded signal might contain already some interfering signals (at low level)

Leave a Reply

Your email address will not be published. Required fields are marked *