Files
galileo/tests/integration/test_long_integration.py

58 lines
2.2 KiB
Python

import numpy as np
from galileo_rx.acquisition.acquisition_manager import AcquisitionManager
from galileo_rx.config import AcquisitionConfig
from galileo_rx.signal_profiles import galileo_e1_profile
from galileo_rx.signals.code_provider import SyntheticCodeProvider
from galileo_rx.signals.signal_generator import ChannelModelConfig, SatelliteSignalConfig, SyntheticSignalGenerator
def test_e1c_secondary_wipeoff_for_eight_ms() -> None:
fs = 4.092e6
profile = galileo_e1_profile()
provider = SyntheticCodeProvider()
generator = SyntheticSignalGenerator(
profile, provider, fs,
satellites=[SatelliteSignalConfig(8, "E1C", code_delay_chips=12.0, doppler_hz=500.0)],
channel=ChannelModelConfig(add_awgn=False),
)
samples, _ = generator.generate(int(0.008 * fs))
config = AcquisitionConfig(
doppler_min_hz=500,
doppler_max_hz=500,
doppler_step_hz=250,
coherent_integration_ms=8,
noncoherent_accumulations=1,
detection_threshold=1.5,
zero_padding_mode="none",
secondary_code_mode="wipeoff",
parabolic_interpolation=False,
)
result, _ = AcquisitionManager(profile, provider, fs, config).acquire_one(samples, "E1C", 8)
assert result.detected and abs(result.code_phase_chips - 12.0) < 0.3
def test_e1b_bit_transition_hypothesis() -> None:
fs = 4.092e6
profile = galileo_e1_profile()
provider = SyntheticCodeProvider()
generator = SyntheticSignalGenerator(
profile, provider, fs,
satellites=[SatelliteSignalConfig(9, "E1B", code_delay_chips=20.0, navigation_bits=[1, -1])],
channel=ChannelModelConfig(add_awgn=False),
)
samples, _ = generator.generate(int(0.008 * fs))
config = AcquisitionConfig(
doppler_min_hz=0,
doppler_max_hz=0,
doppler_step_hz=250,
coherent_integration_ms=8,
noncoherent_accumulations=1,
detection_threshold=1.5,
zero_padding_mode="none",
bit_transition_mode="hypothesis",
parabolic_interpolation=False,
)
result, _ = AcquisitionManager(profile, provider, fs, config).acquire_one(samples, "E1B", 9)
assert result.detected and abs(result.code_phase_chips - 20.0) < 0.3