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
Cillian O'Driscoll
f268833cd8
Added Carrier_rotate_and_VEPL_Volk
...
This adds Very Early/Early/Prompt/Late/Very Late correlation with the
VOLK rotator implementation of carrier wipe-off
2015-12-03 09:21:27 +00:00
Cillian O'Driscoll
a6b8bbadac
Added Carrier_rotate_and_EPL_volk
...
This is a very efficient VOLK based carrier wipeoff and
Early/Prompt/Late correlation. The carrier wipe off is done using the
VOLK rotator functions, which means there is no need to generate a local
replica sinusoid.
2015-12-03 09:21:27 +00:00
Cillian O'Driscoll
f62b1d9344
Added linear correlation to pcps acquisition.
2015-12-03 09:14:38 +00:00
Carles Fernandez
7b0285ba60
initializing members (defects detected by coverity scan)
2015-12-02 23:44:07 +01:00
Carles Fernandez
45195917c1
fixing some gnuradio-related warnings reported by gcc, so others can be spotted easier
2015-12-02 18:25:06 +01:00
Carles Fernandez
17517625be
fixing includes
2015-12-01 13:30:03 +01:00
Carles Fernandez
4e5abdf4f2
fixing parallel building if glog and gflags were built locally
2015-11-30 19:11:49 +01:00
Carles Fernandez
3c21a1853d
fixing building if glog and gflags were built locally
2015-11-30 19:02:56 +01:00
Carles Fernandez
3a56e09772
fixes from wrong merge
2015-11-30 14:39:29 +01:00
Carles Fernandez
6f87e3fc17
fixing some compilation errors
2015-11-30 14:16:41 +01:00
Carles Fernandez
23ce240483
Merge branch 'carrier_phase_bug_fix' of
...
git+ssh://github.com/gnss-sdr/gnss-sdr into odrisci-contrib
# Conflicts:
# conf/gnss-sdr_Hybrid_byte_sim.conf
# src/algorithms/observables/gnuradio_blocks/gps_l1_ca_observables_cc.cc
# src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.cc
# src/algorithms/tracking/gnuradio_blocks/galileo_e1_dll_pll_veml_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/galileo_e5a_dll_pll_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/galileo_volk_e1_dll_pll_veml_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_c_aid_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_optim_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_cc.cc
# src/algorithms/tracking/gnuradio_blocks/gps_l1_ca_dll_pll_tracking_gpu_cc.cc
# src/algorithms/tracking/gnuradio_blocks/gps_l2_m_dll_pll_tracking_cc.cc
# src/algorithms/tracking/libs/cpu_multicorrelator.cc
# src/algorithms/tracking/libs/cpu_multicorrelator.h
# src/algorithms/tracking/libs/cuda_multicorrelator.h
# src/algorithms/tracking/libs/tracking_discriminators.cc
# src/core/receiver/gnss_block_factory.cc
# src/core/system_parameters/GPS_L1_CA.h
2015-11-30 13:59:31 +01:00
Javier Arribas
8c22e5846d
Carrier phase observable bug fix for GPS L1 CA trackings, new GPS L1 carrier aided tracking using nex multitap correlator library, and some CUDA multitap correlator performance improvements
2015-11-30 11:43:37 +01:00