Лабораторная 11.25 — Внешняя развёртка видимости DDS-тона на RTL-SDR: stock и runtime¶
Цель¶
Количественно сравнить видимость тона DDS на внешнем мониторе RTL-SDR при нескольких частотах смещения тона, значениях ослабления TX и режимах работы (стоковый shell, runtime-overlay, runtime с bridge_txrx_mux).
Эта работа сводит однопозиционные наблюдения DDS из Lab 11.24 в воспроизводимую развёртку, которую можно закоммитить как эталонный артефакт доказательств.
Конструкция развёртки¶
Для каждой комбинации:
- смещение тона в Гц (по умолчанию: 50 000, 200 000, 700 000);
- ослабление TX в дБ (по умолчанию: -40 дБ);
- режим (по умолчанию: stock, runtime, runtime_bridge);
скрипт:
- настраивает соответствующий режим TX (DDS стокового shell или DDS runtime-overlay);
- задаёт смещение и масштаб тона DDS;
- захватывает короткий WAV RTL-SDR;
- выполняет офлайн-анализ FFT (через читатель Блока 9);
- записывает частоту пика, амплитуду пика и шумовую полку.
Результаты собираются в одну сравнительную таблицу JSON.
Файлы¶
| Путь | Назначение |
|---|---|
blocks/block_11_integrated_sdr_project/python/lab_11_25_stock_vs_runtime_dds_tone_sweep.py |
многорежимная развёртка тона DDS, сравнительная таблица JSON |
Запуск¶
python blocks/block_11_integrated_sdr_project/python/\
lab_11_25_stock_vs_runtime_dds_tone_sweep.py \
--center-frequency-hz 915000000 \
--sample-rate-hz 3840000 \
--tone-offsets-hz "50000,200000,700000" \
--tx-attenuation-db -40 \
--modes stock,runtime,runtime_bridge \
--bit-bin tmp/bridge_txrx_mux.wordswap.bit.bin \
--json-out docs/assets/lab1125_stock_vs_runtime_dds_tone_sweep.json
Ожидаемая структура JSON¶
{
"sweep_id": "...",
"timestamp_utc": "...",
"points": [
{
"mode": "stock",
"tone_offset_hz": 50000,
"tx_attenuation_db": -40.0,
"measured_peak_hz": 49980,
"peak_amplitude_db": -32.1,
"noise_floor_db": -71.3,
"snr_db": 39.2
},
...
]
}
Критерии успеха¶
| Критерий | Цель |
|---|---|
| Тон обнаружен во всех режимах | да |
| Ошибка смещения пика | < 5 кГц |
| SNR | > 20 дБ при ослаблении TX -40 дБ |
| Разница амплитуд stock и runtime | < 3 дБ |
Живой результат 2026-06-24¶
Все три смещения тона (50 кГц, 200 кГц, 700 кГц) были обнаружены во всех трёх режимах. Разница амплитуд stock и runtime составила < 1 дБ для всех тонов. Ошибка смещения пика была < 1 кГц во всех точках (ограничена точностью частоты RTL-SDR, а не точностью DDS).
Эта развёртка это итоговое внешнее RF-доказательство того, что:
- цепь ZynqSDR DDS → AD9361 → антенна TX исправна и в стоковом, и в runtime режиме;
- перезагрузка runtime
fpga_managerне нарушает выход тона DDS; - оставшаяся проблема запуска изолирована во входном тракте PL RX.
Последующее исправление (Лабораторная 11.26). Измерения тона выше верны, но вывод о том, что сломанным остался только тракт PL RX: нет. DDS-тон идёт по пути DDS → ЦАП; поток PL BPSK нужно отдельно переключить на ЦАП, а после перезагрузки оверлея этого не происходило (режим DDS-only). Именно исправный DDS-тон и создавал впечатление, что тракт PL TX исправен. См. Лабораторную 11.26.
Артефакт развёртки: эталонное доказательство для работы с контролируемым тоном DDS, закоммиченное в git как e355c14.
Чек-лист отчёта¶
- Приложен JSON-файл развёртки.
- Подтверждено, что все смещения тона обнаружены во всех режимах.
- Записаны ошибка смещения пика и SNR для каждой точки.
- Записана разница амплитуд между стоковым и runtime режимами.
- Указан итоговый вывод об изоляции (тракт TX или тракт RX).
Шаблон инженерного вывода¶
Развёртка тона DDS охватила смещения ____ Гц, ослабление TX ____ дБ, режимы ____.
Обнаружение тона: успешно ____ из ____ точек. Диапазон ошибки смещения пика: от ____ Гц
до ____ Гц. Диапазон SNR: от ____ дБ до ____ дБ. Разница амплитуд stock и runtime: максимум
____ дБ. Путь DDS-тона исправен / неисправен в обоих режимах.
Этот тест покрывает / не покрывает путь данных PL к ЦАП, потому что ______.