1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-12-06 08:38:06 +00:00
Commit Graph

1499 Commits

Author SHA1 Message Date
Cillian O'Driscoll
727b8b2558 First cut off subcarrier aided PRS tracking
Failing horribly for now, committing here to not lose the effort.
2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
57549a090a Added Bump Jumping to PRS VEML tracking 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
21f4de8ea3 Experiment to resolve prs code doppler bias
Not fully resolved yet. Thinking it may be due to a numerical precision
issue.
2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
4460a440e0 Added PRS VEML tracking
For now this ignores the very early and very late correlators. Plan on
implementing:
1) Bump jumping
2) sliding subcarrier

approaches.
2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
926029de54 Fixed a bug in code doppler computation PRS DE 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
3d4f3704f6 Added fxpt64_to_double 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
0efbff494e Deleted artefact from experimental branch 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
36a4129b1a Added handling of PREAMBLE and RXTIME_SET messages
In the PRS Double Estimator tracking strategy.
2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
ef5c79b074 Assorted improvements to PRS tracking 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
fe33f9e0e2 Use PRS to determine code rollover boundary 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
e8248d449d Improved error checking in gnss_message 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
74f89361f0 This is required to build the last commit 2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
06af9c8663 Added message port observables->channel
This allows the observables to send messages back to the tracking
channels, for example when system time has been received by at least one
channel, it can then be broadcast back to all other channels.

This is useful in long code tracking, so that we don't have to receive a
TOW on every single channel before we start tracking.
2015-12-03 09:35:34 +00:00
Cillian O'Driscoll
b466cb9454 Fixed bug in checking channel index 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
748de8ae22 Logging rather than throwing errors 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
dedee14381 Logging rather than throwing errors in gnss_message 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
4cf9fc0fa2 Bugfix in gps dll/fll/pll: added set_relative_rate 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
8e52e54386 Added extra settings for DE/PRS
Including initial/final bandwidths and setting loop orders from config.
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
d3511a0091 Closed the loop of PRS Double Estimator tracking 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
b2838cb688 Remove some debug output from e1 prs de tracking 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
d9ab90d5a0 Added a Galileo E1 PRS DE tracking strategy
Note that in this version the PRS is not tracked, we simply generate all
the required correlator outputs based on the E1 OS tracking parameters.

The next stage will be to close the loop for the E1A signal.
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
9f40189f39 Bugfix for Spirent PRS code generator
Not sure about this one. From my understanding of the Spirent knowledge
base description of the way in which the PRS code is generated, the
first PRS code chip for PRN 1 should be the same as the second p-code
chip for PRN 1, but it appears that in fact what is generated is the
last chip of the week. In other words the offset is -1 not +1.

With this modification I can successfully process E1 PRS data for both
even and odd numbered PRNs
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
1abd31d764 Fixed a bug in p code generation
Added test to catch it in future.
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
bb4e01907c Added get_code_length to LongCodeInterface 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
3f71c68756 Added long_code_interface and spirent prs utils
The idea behind the long code interface is to allow us to configure a
PRS receiver to use different codes depending on how the data is
generated. Different simulators may generate the PRS code in different
ways and we want to be able to plug and play without having separate
tracking strategies for each.
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
3edad8812e Working version of p-code plus tests
Note that there is an error in IS GPS 200 H, which is where we get the
testvectors from. This commit passes against test vectors from the
proposed modification: IS GPS 200 H PIRN 001
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
2b57a7501e Fixed bug in number of X2 epochs. Added tests 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
40fffd5837 Added missing include cstdint in gps_pcode.h 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
3715f3e5aa Added GPS_P_Code_Generator - not fully tested yet 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
bd29885b3f Initial commit of P code capability
For now we can only compute the x1a, x1b, x2a and x2b codes. Need to put
these together into a pcode generator class.
2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
ab0753e27a Added gnss_message to galileo e1 double estimator 2015-12-03 09:34:45 +00:00
Cillian O'Driscoll
158d0b8767 Added gnss_message class
This is to be used to pass messages between blocks using the GnuRadio
message passing API. The primary use case is for passing information
from the telemetry_decoder to the tracking block. This can help inform
the tracking block of parity failure, time synch and other messages
which may be useful in determining the tracking state.
2015-12-03 09:34:08 +00:00
Cillian O'Driscoll
ba61900ea9 Updates to gps_l1_ca_dll_pll_tracking
1) Changed loop filters to use Tracking_loop_filter
2) Added initial bandwidths and correlator spacing
2015-12-03 09:34:08 +00:00
Cillian O'Driscoll
b087c638b8 Added test for NaN in de after correlation
This matches what is done in the GPS L1 C/A DLL/PLL tracking strategy.
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
ed809fabd0 Updated DE tracking strategy
Now we use propagation of code and subcarrier phase estimates. This
approach is more logical to me.
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
e33c2edb01 Added IF freq to update_local_carrier in DE
Note that this is not used at present, but important to treat non-zero
IF properly in case we need to revert to using the local carrier instead
of the gnuradio rotator (for example if we use 16 bit ints as input)
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
e1537ed4cd Fixed bug in normalisation of subcarrier discrim.
The slope of the subcarrier correlation function is 2, not 3 as for the
standard BOC correlation function.
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
8d771a0d9c Added galileo_e1_prn_gen_complex_sampled
This is needed for double estimator as we want to generate the code and
subcarrier separately
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
029044ed88 Added volk rotator for double estimator
Also fixed a small bug in update_local_code - was using the code spacing
for the subcarrier
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
532591627d Added fixed point update_local_code to de 2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
46c79487c4 First version of Double Estimator
Only works for Galileo E1B tracking for now. Needs some clean up.
2015-12-03 09:31:33 +00:00
Cillian O'Driscoll
223530c602 Rejigged update_local_code
Moved the one chip offset out of the loop
2015-12-03 09:29:26 +00:00
Cillian O'Driscoll
2d0c991a25 Modified gps l1 ca tracking
New form is more logical to me. Should probably branch this out into a
new class.
2015-12-03 09:29:26 +00:00
Cillian O'Driscoll
7e7bbace19 Added initializer to PLL/DLL 2015-12-03 09:24:29 +00:00
Cillian O'Driscoll
4e40359e7c Fixed normalisation of noncoherent code discrim 2015-12-03 09:24:29 +00:00
Cillian O'Driscoll
cdca3bfaec Added IF handling to acq and tracking
Only GPS L1 CA DLL PLL tracking for now. Still experimental.
2015-12-03 09:24:29 +00:00
Cillian O'Driscoll
625e86c1bc VEML now working with optimizations 2015-12-03 09:24:29 +00:00
Cillian O'Driscoll
a3ad3e7f20 Added optimizations to Galileo E1 VEML
Not finished yet...debugging
2015-12-03 09:24:29 +00:00
Cillian O'Driscoll
719642aa79 Added use of volk rotator in correlator.h
This is considerably faster than generating a local carrier replica and
then doing a carrier wipeoff.
2015-12-03 09:22:23 +00:00
Cillian O'Driscoll
6ae11c58b0 Added fixed point update_local_code
This is more efficient than using floating point rounding and more
accurate than relying on the sampling rate.

Note there was a bug in the original code wherein the early and late
local replicas are actually the late and early respectively. I've
continued this for now, but it should be fixed.
2015-12-03 09:22:23 +00:00