6.4 KiB
Lab064: подготовка и RX-only preflight
14 сентября 2026 года завершена программная подготовка измерения уровня и
линейности текущего OTA-тракта. Затем выполнена одна аппаратная проверка общей
опоры и RX-фона. Preflight прошёл. Передатчик не запускался: RF TX = 0.
Условия
| Параметр | Значение |
|---|---|
| Центральная частота | 1400000000 Гц |
| Скорость символов | 20000 символов/с |
| Частота дискретизации | 8000000 комплексных отсчётов/с |
| Цифровая несущая | +50000 Гц |
| TX VGA | 10 дБ |
| RX LNA / VGA | 24 / 24 дБ |
| RF amplifier / Bias-Tee | выключены |
| Расстояние TX–RX | примерно 1,2 м |
| Геометрия | прямая видимость, помещение |
| TX | плата и антенна возле окна |
| RX | плата и антенна на столе пользователя |
| Антенны | имеющиеся антенны на 1400 МГц |
| Поляризация | одинаковая |
| Общая опора | 10 МГц TCXO → MASTER → MASTER CLKOUT → SLAVE CLKIN |
Антенны, платы, длинный кабель общей опоры, USB-подключение и остальные кабели не перемещались. Усиления не менялись.
Измерительный TX-файл
Подготовлен один детерминированный PRBS7/BPSK/RRC-сигнал с уровнями −18, −12, −6 и 0 дБ относительно номинального waveform. Он состоит из 100 мс начальных нулей, четырёх участков по 100 мс, трёх промежутков по 50 мс и 100 мс конечных нулей. Полная длительность равна 0,75 с, длина составляет 6000000 комплексных отсчётов и 12000000 байт.
| Уровень | TX RMS, код | max |I| / |Q|, код | Фактический уровень, дБ | Шаг, дБ |
|---|---|---|---|---|
| L0 | 5,556137 | 9 / 9 | −17,973685 | — |
| L1 | 11,056978 | 17 / 17 | −11,996415 | +5,977270 |
| L2 | 22,056892 | 34 / 35 | −5,998257 | +5,998157 |
| L3 | 44,000457 | 69 / 69 | 0 | +5,998257 |
Цифрового clipping нет. SHA-256:
fa260719659b2984fe29588238415622cd75c6daefec6cc9130ba1bf851bd3f9.
Синтетический линейный канал с известным комплексным коэффициентом, DC и
шумом прошёл software gate. После независимой проверки анализатор изменён так,
чтобы промежуточный ненулевой счётчик нельзя было скрыть финальным нулём. При
любой потере сохраняются диагностические метрики, но A/B/C-классификация
запрещается и результат получает статус INVALID_CAPTURE.
Common clock
Свежая инвентаризация подтвердила две HackRF One r9 с firmware/libhackrf 2024.02.1. Роли сохранены:
- MASTER
000000000000000097c063dc323b97d3; - SLAVE
000000000000000097c063dc2e5327d3.
Аппаратная проверка получила:
MASTER reg29 = 0x26
SLAVE reg29 = 0x26
SLAVE CLKIN = DETECTED
CLKIN query = 1
time to detect = 66.793 ms
RX-only фон
SLAVE записал 800000 комплексных отсчётов, 0,1 с, при 1400 МГц и RX LNA/VGA 24/24 дБ.
| Метрика | Значение |
|---|---|
| Полный RMS IQ | 2,193193 кода |
| AC RMS после удаления среднего | 0,832038 кода |
| Средние I / Q | 0,933738 / 1,801650 кода |
| max |I| / |Q| | 4 / 5 кодов |
| Максимальная комплексная амплитуда | 5,385165 кода |
| Clipping | 0 / 800000 отсчётов |
| RX overruns | 0, максимум и финальное значение |
| Неожиданно сильный сигнал | нет |
Порог STOP для неожиданно сильного цифрового фона: AC RMS не менее 20 кодов или max |I|/|Q| не менее 100 кодов. Измеренные значения значительно ниже. Отсутствие rail-кодов не доказывает отсутствие аналоговой компрессии при будущей передаче. Абсолютная RF-мощность без измерительного прибора неизвестна.
SHA-256 RX-only записи:
02d87adcbb621027290a77d5f8fd3190c299d13e89f887cd294d4af352a6ef52.
Процессы до и после preflight имели состояние CLEAR. Оба CLKOUT выключены,
ошибок очистки нет. Preflight сохранил все две строки счётчика RX overruns;
обе равны нулю. Вызовов hackrf_transfer -t не было, rf_tx_count = 0.
Проверки и артефакты
- quick gate: 984 теста ядра, 37 функциональных проверок, 13 пропусков;
- pytest: 984 passed, 0 failed;
- целевые тесты Lab064: 13 passed;
git diff --check: PASS;- независимая read-only проверка: чисто.
Артефакты:
- подготовка;
- software gate;
- preflight;
- CS8 и исходные аппаратные журналы находятся в
data/raw/lab064/и в Git не входят.
READY FOR SINGLE LAB064 TX = YES означает техническую готовность только этой
конфигурации. Передача требует отдельного явного разрешения пользователя.
RF TX = 0. STOP.
Lab064 не коммитируется до аппаратного результата. Push не выполняется. Lab065 автоматически не начинается.