mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-10-19 14:02:37 +00:00
When acquiring a secondary frequency (e.g. Galileo E5a) of a satellite whose primary frequency (e.g. E1) is already tracked, the primary's Doppler can be projected onto the secondary and passed in as an already-known estimate (GNSS-SDR.assist_dual_frequency_acq). Even so, the acquisition still searched the full configured Doppler grid around that estimate rather than trusting it. Adds Acquisition_<Sig>.enable_doppler_narrowing (default false): when the projected Doppler is passed in as exact (doppler_uncertanty == 0), collapses the search to just that bin plus one reference bin (used as the existing noise-power estimate, at the same separation the full grid search already uses for its own "opposite" bin), instead of running the full multi-bin grid. Falls back to the full grid whenever the Doppler isn't known this precisely (single-frequency acquisition, or dual-frequency assist disabled/unavailable). set_doppler_uncertanty() threads through AcquisitionInterface -> PcpsAcquisitionAdapter -> pcps_acquisition, and Channel::assist_acquisition_doppler() gains a doppler_uncertanty parameter (default 1, i.e. "not known precisely") so existing callers are unaffected unless they opt in. Also fixes max_to_input_power_statistic()'s "opposite bin" index to wrap using its own num_doppler_bins parameter instead of the always-full-grid d_num_doppler_bins member, which was already inconsistent with step-two's narrower bin count and would have been wrong for the narrowed 2-bin case introduced here. Signed-off-by: joebre <joel.brenner@saphyrion.ch>