Implement Galileo E1B I/NAV navigation decoding
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import numpy as np
|
||||
|
||||
from galileo_rx.tracking.lock_detector import LockDetector
|
||||
from galileo_rx.types import CorrelatorOutputs
|
||||
|
||||
|
||||
def _correlators(phase_rad: float) -> CorrelatorOutputs:
|
||||
prompt = complex(np.exp(1j * phase_rad))
|
||||
return CorrelatorOutputs(0.2 * prompt, 0.5 * prompt, prompt, 0.5 * prompt, 0.2 * prompt)
|
||||
|
||||
|
||||
def test_data_lock_detector_ignores_bpsk_transition_but_detects_quadrature_jump() -> None:
|
||||
detector = LockDetector(data_sign_insensitive=True)
|
||||
detector.update(_correlators(0.0))
|
||||
assert detector.update(_correlators(np.pi)).cycle_slip is False
|
||||
assert detector.update(_correlators(np.pi + 0.49 * np.pi)).cycle_slip is True
|
||||
Reference in New Issue
Block a user