Skip to content

Add raw IQ replay and live IQ capture support#106

Open
vk5zsn wants to merge 3 commits into
SysSec-KAIST:mainfrom
vk5zsn:LTESniffer-pr-raw-io
Open

Add raw IQ replay and live IQ capture support#106
vk5zsn wants to merge 3 commits into
SysSec-KAIST:mainfrom
vk5zsn:LTESniffer-pr-raw-io

Conversation

@vk5zsn
Copy link
Copy Markdown

@vk5zsn vk5zsn commented Apr 13, 2026

Summary

This PR adds a minimal raw-IQ workflow on top of main:

  • replay generic raw IQ captures through LTESniffer
  • support raw cf32 and raw sc16 offline input
  • add a live raw-IQ sink while decoding
  • preserve compatibility with synchronized replay files from the LTESniffer-record-subframe branch
  • make the offline DL DCI SNR gate configurable

User-visible changes

  • -j
    Treat -i as a generic raw IQ capture and synchronize it before decoding.
  • -J
    Interpret raw -i -j input as interleaved sc16 instead of cf32.
  • -Q /path/to/output.bin
    In live RF mode, write the received IQ stream to a raw cf32 file while decoding.
  • -G <dB>
    Minimum DL DCI search SNR for offline replay.

Implementation

  • Added a file-backed receive callback so a raw file can be processed through ue_sync like a live RF source.
  • Added optional sc16 -> cf_t conversion in the raw replay path.
  • Added live receive-path IQ mirroring plus overflow / timestamp-gap summary reporting.
  • Set offline replay PHICH resources to SRSRAN_PHICH_R_1 for compatibility with synchronized replay files.

Verification

Verified on a Raspberry Pi 5 with a B210.

Record-subframe replay

  • replayed /home/vk2tlq/subframe_iq_sample.bin
  • valid MIB decode
  • nonzero offline decode stats

Direct raw cf32 replay

  • replayed /home/vk2tlq/live_gold_763M_11p52M_cf32.bin with -j
  • locked and decoded successfully
  • nonzero DCI / location stats

Direct raw sc16 replay

  • replayed /dev/shm/iq_763M_11p52M_sc16.bin with -j -J
  • locked and decoded successfully
  • nonzero DCI / location stats

Additional notes and local file manifests are included under docs/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant