103: PCPS acquisition engine #43

Merged
ykp merged 1 commit from feat/103-pcps-engine into main 2026-10-06 18:01:01 +02:00
Owner

103 — PCPS acquisition engine (FFT-based correlation)

Implements the Parallel Code Phase Search (PCPS) acquisition engine — a theoretical FFT-based GNSS receiver that correlates an IQ buffer against a local code replica and produces a correlation surface over code phase and Doppler shift.

Files changed

  • src/testgnss/engine/pcps.py — new PCPS engine module
  • src/testgnss/engine/__init__.py — expose PCPS public API
  • tests/test_testgnss_pcps.py — new test suite (29 tests)

Functions

  • generate_local_replica() — bipolar code replica for GPS/Galileo/BeiDou/GLONASS
  • pcps_acquisition() — FFT-based PCPS correlator
  • detect_peak() — peak detection with noise-floor exclusion
  • doppler_grid_*() — Doppler search grids (centre-symmetric)

Verification

  • 29 tests pass (known signal, noise floor, determinism, replica, Nyquist guard, Doppler grid shape, all services)
  • ruff check passes clean
  • Fully deterministic (no RNG)
## 103 — PCPS acquisition engine (FFT-based correlation) Implements the Parallel Code Phase Search (PCPS) acquisition engine — a theoretical FFT-based GNSS receiver that correlates an IQ buffer against a local code replica and produces a correlation surface over code phase and Doppler shift. ### Files changed - `src/testgnss/engine/pcps.py` — new PCPS engine module - `src/testgnss/engine/__init__.py` — expose PCPS public API - `tests/test_testgnss_pcps.py` — new test suite (29 tests) ### Functions - `generate_local_replica()` — bipolar code replica for GPS/Galileo/BeiDou/GLONASS - `pcps_acquisition()` — FFT-based PCPS correlator - `detect_peak()` — peak detection with noise-floor exclusion - `doppler_grid_*()` — Doppler search grids (centre-symmetric) ### Verification - 29 tests pass (known signal, noise floor, determinism, replica, Nyquist guard, Doppler grid shape, all services) - `ruff check` passes clean - Fully deterministic (no RNG)
103: PCPS acquisition engine
Some checks failed
ci / test (3.12) (pull_request) Has been cancelled
ci / test (3.14) (pull_request) Has been cancelled
ci / test (3.9) (pull_request) Has been cancelled
ci / testgnss (3.12) (pull_request) Has been cancelled
ci / testgnss (3.14) (pull_request) Has been cancelled
ci / testgnss (3.9) (pull_request) Has been cancelled
ci / test (3.12) (push) Failing after 2m46s
ci / test (3.14) (push) Failing after 2m42s
ci / testgnss (3.12) (push) Failing after 1m58s
ci / test (3.9) (push) Failing after 2m25s
ci / testgnss (3.14) (push) Failing after 1m28s
ci / testgnss (3.9) (push) Failing after 2m4s
b60337e9cc
Implement Parallel Code Phase Search (PCPS) acquisition engine:

- generate_local_replica() — bipolar code replica at receiver sample rate
  for GPS C/A, Galileo E1, BeiDou B1I, GLONASS L1OF
- pcps_acquisition() — FFT-based PCPS correlator producing 2-D correlation
  surface over code phase and Doppler
- detect_peak() — peak detection with 7×7 noise-floor exclusion
- doppler_grid_*() — centre-symmetric Doppler search grids
- Deterministic (no RNG), pure numpy

29 tests pass; ruff check clean.
ykp merged commit b22c617b92 into main 2026-10-06 18:01:01 +02:00
ykp deleted branch feat/103-pcps-engine 2026-10-06 18:01:01 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ykp/gengnss!43
No description provided.