-
Notifications
You must be signed in to change notification settings - Fork 0
GNSS‐SDR 1
GNSS-SDR requires the 2bit packed symbol to be in 'Sign-Magnitude Adjusted' format, however Peter Monta's original verilog code produces 'Offset-Binary Adjusted' format.
Symbol | Offset-Binary Adjusted | Sign-Mag Adjusted |
---|---|---|
Original Firehose | GNSS-SDR | |
-3 | 00 | 10 |
-1 | 01 | 11 |
+1 | 10 | 00 |
+3 | 11 | 01 |
The steam format definitions are from ION GNSS Metadata Standard
The encoding can be changed by editing two files, quantize.v and histogram.v. The PC software also need to understand the new mapping so packet2wav_3ch.c will also need to be updated.
For the first test we will use the ibyte input format on GNSS SDR. The updated packet2wav_3ch in this repository will turn each 2bit symbol onto a value of -90,-30,+30 and +90 in an 8bit two's complement format, 8bit I followed by 8bit Q. The command need to convert the data is:
This can then be fed into GNSSS-SDR.
GNSS-SDR does some pretty heavy processing. It uses a library called VOLK which provides accelerated maths commands tailored for the particular processor you are using. However VOLK needs to figure out which commands to use. The following command need to be run:
volk_profile
volk_gnsssdr_profile
They only need to be run once per user as it will create the $HOME/.volk_gnsssdr/volk_gnsssdr_config file to allow VOLK to know maths commands are the best to use. This file is read each time GNSS-SDR is run.