@@ -48,12 +48,12 @@ def resolve_ms_integers(obs_pr, pred_pr, prn_ref, disp = True):
4848 print "Resolving millisecond integers:"
4949
5050 for prn , pr in obs_pr .iteritems ():
51- pr_int_est = (pred_pr [prn ] - pr ) / gps .code_wavelength
51+ pr_int_est = (pred_pr [prn ] - pr ) / gps .l1ca_code_wavelength
5252 pr_int = round (pr_int_est )
5353 if abs (pr_int - pr_int_est ) > 0.15 :
5454 logger .warn ("Pseudorange integer for PRN %2d is %.4f" % (
5555 prn + 1 , pr_int_est ) + ", which isn't very close to an integer." )
56- pr += pr_int * gps .code_wavelength
56+ pr += pr_int * gps .l1ca_code_wavelength
5757 obs_pr [prn ] = pr
5858 if disp :
5959 print ("PRN %2d: pred pseudorange = %9.3f km, obs = %9.3f, " + \
@@ -78,9 +78,9 @@ def fill_remainder(n_ms):
7878 return [k for k ,v in itertools .groupby (sorted (hs ))]
7979
8080def long_correlation (signal , ca_code , code_phase , doppler , settings , plot = False , coherent = 0 , nav_bit_hypoth = None ):
81- from swiftnav .correlate import track_correlate_
81+ from swiftnav .correlate import track_correlate
8282 code_freq_shift = (doppler / gps .l1 ) * gps .chip_rate
83- samples_per_chip = settings .samplingFreq / (gps .chip_rate + code_freq_shift )
83+ samples_per_chip = settings .freq_profile [ 'sampling_freq' ] / (gps .chip_rate + code_freq_shift )
8484 samples_per_code = samples_per_chip * gps .chips_per_code
8585 numSamplesToSkip = round (code_phase * samples_per_chip )
8686 remCodePhase = (1.0 * numSamplesToSkip / samples_per_chip ) - code_phase
@@ -94,12 +94,14 @@ def long_correlation(signal, ca_code, code_phase, doppler, settings, plot=False,
9494 costas_q = 0.0
9595 for loopCnt in range (n_ms ):
9696 rawSignal = signal [numSamplesToSkip :]#[:blksize_]
97- E , P , L , blksize , remCodePhase , remCarrPhase = track_correlate_ (
97+ E , P , L , blksize , remCodePhase , remCarrPhase = track_correlate (
9898 rawSignal ,
99+ 1023 , # Chips to correlate
99100 code_freq_shift + gps .chip_rate ,
100101 remCodePhase ,
101- doppler + settings .IF ,
102- remCarrPhase , ca_code , settings .samplingFreq )
102+ doppler + settings .freq_profile ['GPS_L1_IF' ],
103+ remCarrPhase , ca_code , settings .freq_profile ['sampling_freq' ],
104+ gps .L1CA )
103105
104106 I_E = E .real
105107 Q_E = E .imag
@@ -149,12 +151,10 @@ def refine_ob(signal, acq_result, settings, print_results = True, return_sweeps
149151 # TODO: Fit code phase results for better resolution
150152 from peregrine .include .generateCAcode import caCodes
151153 from scipy import optimize as opt
152- samples_per_chip = settings .samplingFreq / gps .chip_rate
154+ samples_per_chip = settings .freq_profile [ 'sampling_freq' ] / gps .chip_rate
153155 samples_per_code = samples_per_chip * gps .chips_per_code
154156 # Get a vector with the C/A code sampled 1x/chip
155157 ca_code = caCodes [acq_result .prn ]
156- # Add wrapping to either end to be able to do early/late
157- ca_code = np .concatenate (([ca_code [1022 ]],ca_code ,[ca_code [0 ]]))
158158
159159 dopp_offset_search = 100 # Hz away from acquisition
160160 code_offsets = np .arange (- 1 ,1 , 1.0 / 16 / 2 )
@@ -296,14 +296,14 @@ def refine_obs(signal, acq_results, settings,
296296
297297 return obs_cp , obs_dopp
298298
299- def predict_observables (prior_traj , prior_datetime , prns , ephem , window ):
299+ def predict_observables (prior_traj , prior_datetime , prns , ephem , window , settings ):
300300 from datetime import timedelta
301301 from numpy .linalg import norm
302302 from numpy import dot
303303 """Given a list of PRNs, a set of ephemerides, a nominal capture time (datetime) and a
304304 and a time window (seconds), compute the ranges and dopplers for
305305 each satellite at 1ms shifts."""
306- timeres = 50 * gps .code_period # Might be important to keep this an integer number of code periods
306+ timeres = 50 * settings .code_period # Might be important to keep this an integer number of code periods
307307 t0 = prior_datetime - timedelta (seconds = window / 2.0 )
308308 ranges = {}
309309 dopplers = {}
@@ -360,11 +360,11 @@ def minimize_doppler_error(obs_dopp, times, pred_dopp, plot = False):
360360def plot_expected_vs_measured (acqed_prns , prn_ref ,
361361 obs_pr , obs_dopp ,
362362 prior_traj , t_better ,
363- ephem ):
363+ ephem , settings ):
364364 import matplotlib .pyplot as plt
365365
366366 # Compute predicted observables around this new estimate of capture time
367- pred_ranges , pred_dopplers , times = predict_observables (prior_traj , t_better , acqed_prns , ephem , 20 )
367+ pred_ranges , pred_dopplers , times = predict_observables (prior_traj , t_better , acqed_prns , ephem , 20 , settings )
368368 pred_pr = pseudoranges_from_ranges (pred_ranges , prn_ref )
369369
370370 ax = plt .figure (figsize = (12 ,6 )).gca ()
@@ -660,7 +660,7 @@ def postprocess_short_samples(signal, prior_trajectory, t_prior, settings,
660660 # Improve the time part of the prior estimate by minimizing doppler residuals
661661 pred_ranges , pred_dopplers , times = predict_observables (prior_traj , t_prior ,
662662 acqed_prns , ephem ,
663- 30 )
663+ 30 , settings )
664664 i , t_better = minimize_doppler_error (obs_dopp , times , pred_dopplers ,
665665 plot = plot )
666666
@@ -671,7 +671,7 @@ def postprocess_short_samples(signal, prior_trajectory, t_prior, settings,
671671 print "By minimizing doppler residuals, adjusted the prior time and position by %.6s seconds, %.3f km" % (
672672 delta_t , delta_r / 1e3 )
673673 pred_ranges , pred_dopplers , times = predict_observables (
674- prior_traj , t_better , acqed_prns , ephem , 1e-9 )
674+ prior_traj , t_better , acqed_prns , ephem , 1e-9 , settings )
675675
676676 pred_pr_t_better = {prn : pred_ranges [prn ][0 ] for prn in acqed_prns }
677677
@@ -681,7 +681,7 @@ def postprocess_short_samples(signal, prior_trajectory, t_prior, settings,
681681
682682 if plot :
683683 plot_expected_vs_measured (acqed_prns , prn_ref , obs_pr , obs_dopp ,
684- prior_traj , t_better , ephem )
684+ prior_traj , t_better , ephem , settings )
685685
686686 # Perform PVT navigation solution
687687 r_sol , t_sol , los , tot , residuals = pt_solve (r_better , t_better , obs_pr ,
0 commit comments