Перейти к содержанию

Lab 9.3 — Multi-format IQ reader

Lab 9.3 — Multi-Format IQ Reader

Goal

Extend the IQ analysis workflow from CI16-only reading to a metadata-driven reader that supports ci16, cu8 and cf32 captures.

Engineering question

How can one analysis script read IQ recordings from different tools without rewriting the processing pipeline?

Supported formats

Format Binary layout Typical source
ci16 signed int16 interleaved I/Q AD9363, custom SDR
cu8 unsigned uint8 interleaved I/Q RTL-SDR raw captures
cf32 float32 interleaved I/Q GNU Radio, MATLAB/Python exports

Executable file

python blocks/block_09_recording_and_analysis_tools/python/lab_9_3_multi_format_iq_reader.py

Generated artifacts:

docs/assets/lab93_multiformat_iq_metrics.json
docs/assets/lab93_multiformat_iq_spectrum_ci16.png
docs/assets/lab93_multiformat_iq_spectrum_cu8.png
docs/assets/lab93_multiformat_iq_spectrum_cf32.png

Processing chain

flowchart LR
    META[Metadata JSON] --> DISPATCH[Format dispatcher]
    DISPATCH --> CI16[CI16 reader]
    DISPATCH --> CU8[CU8 reader]
    DISPATCH --> CF32[CF32 reader]
    CI16 --> FFT[Common FFT analysis]
    CU8 --> FFT
    CF32 --> FFT
    FFT --> REPORT[Metrics + plots]

Why this matters

Real SDR experiments often mix tools. A course capture may start from HDSDR/RTL-SDR, then move to AD9363, then be exported through GNU Radio or MATLAB. The analysis stage should be metadata-driven, not hard-coded for one binary layout.

Report checklist

  • [ ] List all tested IQ formats.
  • [ ] Show metadata for each format.
  • [ ] Confirm sample count and scaling.
  • [ ] Compare measured peak frequencies.
  • [ ] Compare SNR/DC/clipping indicators.
  • [ ] Explain which format is best for the next processing step.

Engineering conclusion template

The same analysis pipeline successfully read formats ____ and produced consistent peak-frequency estimates.
The largest frequency error was ____ Hz. The preferred format for further processing is ____ because ______.