19 lines
1.2 KiB
Python
19 lines
1.2 KiB
Python
import numpy as np
|
|
|
|
from galileo_rx.config import AcquisitionConfig
|
|
from galileo_rx.acquisition.fft_pcps import PcpsAcquisition
|
|
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_doppler_batched_matches_sequential() -> None:
|
|
fs = 4.092e6
|
|
profile, provider = galileo_e1_profile(), SyntheticCodeProvider()
|
|
generator = SyntheticSignalGenerator(profile, provider, fs, satellites=[SatelliteSignalConfig(1, doppler_hz=500)], channel=ChannelModelConfig(add_awgn=False))
|
|
samples, _ = generator.generate(int(0.004 * fs))
|
|
common = dict(doppler_min_hz=0, doppler_max_hz=1000, doppler_step_hz=250, noncoherent_accumulations=1, zero_padding_mode="none")
|
|
sequential = PcpsAcquisition(profile, provider, fs, AcquisitionConfig(**common, parallelism="sequential")).search(samples, "E1C", 1)
|
|
batched = PcpsAcquisition(profile, provider, fs, AcquisitionConfig(**common, parallelism="batched", doppler_batch_size=3)).search(samples, "E1C", 1)
|
|
np.testing.assert_allclose(batched.power, sequential.power, rtol=1e-12, atol=1e-6)
|