Lab065: validate OTA gain improvement at TX VGA 20 dB

This commit is contained in:
LittleSam129
2026-09-15 13:42:08 +03:00
parent cff226e0bf
commit dacf04f2d0
12 changed files with 2305 additions and 0 deletions

View File

@@ -663,3 +663,40 @@
- **Независимая проверка:** прямой пересчёт из TX/RX CS8 подтвердил все SHA,
счётчики, фоны, matched/residual/`h`, ступени и спектральные полосы;
расхождений нет. Quick gate и pytest после RF:986 passed,0 failed.
## Lab065: измерение уровня при TX VGA 20 дБ
- **База:** Lab064 зафиксирована коммитом
`cff226e0bf9e36a627829ea11a4ca3292ae20953`; push не выполнялся.
- **Единственное изменение параметра:** TX VGA 10 → 20 дБ. Частота 1400 МГц,
RX LNA/VGA 24/24 дБ, усилители, геометрия, антенны и кабели сохранены.
- **Waveform:** точная копия Lab064, 6000000 отсчётов, 0,75 с; SHA-256
`fa260719659b2984fe29588238415622cd75c6daefec6cc9130ba1bf851bd3f9`.
- **Подготовлено:** RX-first runner, максимальные счётчики потерь, сравнение
линейности внутри Lab065 и по одинаковым уровням Lab064/Lab065, численные
правила классификации. Software gate PASS.
- **RX-only preflight:** обе HackRF и роли подтверждены, reg29=0x26 у MASTER и
SLAVE, CLKIN обнаружен на третьем опросе через201,986мс. Фон:800000 отсчётов,
AC RMS1,056565 кода, max|I|/|Q|=6/8, clipping0, overruns0. Cleanup PASS.
- **Граница:** `RF TX=0`. Lab065 не коммитировалась. Нужны рассмотрение
подготовки и отдельное прямое разрешение на один TX; Lab066 не начинать.
- [Текущее состояние](lab065_current_state.md),
[RX-only отчёт](lab065_rx_preflight.md),
[подготовка](../data/processed/lab065/preparation.json),
[software gate](../data/processed/lab065/software_gate.json),
[preflight](../data/processed/lab065/preflight_result.json).
- **Единственный RF-сеанс:** TX1, автоматических повторов0; underrun/overrun/
clipping0, cleanup PASS, процессы CLEAR. RX16000000 отсчётов, SHA-256
`845d7b7dcaef70e179ab69e6ba0041601859630786d2f4d51c16a8c1c7869d7e`.
- **Линейность:** ошибки ступеней −0,077363/+0,034934/−0,013858дБ, компрессии
L2/L3 нет. Медианный прирост matched power+11,233489дБ, изменение остатка
+0,517004дБ, улучшение matched/residual+10,734495дБ.
- **Результат:** `LINEAR_GAIN_IMPROVEMENT`. Фон стабилен; диагностические полосы
остатка растут слабее matched power. [RF-отчёт](lab065_rf_result.md),
[RF JSON](../data/processed/lab065/rf_result.json),
[capture JSON](../data/processed/lab065/capture_result.json).
- **STOP:** `RF TX=0`; повторов и изменения усилений не было. Lab065 не
коммитировалась, push отсутствует, Lab066 не создана.
- **Независимая проверка:** прямой пересчёт CS8 подтвердил SHA, счётчики,
локализацию, фон, matched/residual, `h`, CFO и спектральные полосы. Расхождений
нет. Quick gate1000/38/13 PASS, pytest1000 passed, diff check PASS.

View File

@@ -0,0 +1,70 @@
# Lab065: подготовка измерения при TX VGA 20 дБ
Lab065 повторяет измерение Lab064 с одним изменением аппаратного параметра:
TX VGA повышен с 10 до 20 дБ. Частота 1400000000 Гц, RX LNA/VGA 24/24 дБ,
геометрия, антенны, кабели, общая опора и цифровой waveform сохранены.
TX-файл Lab065 является побайтовой копией Lab064. Его SHA-256 должен быть равен
`fa260719659b2984fe29588238415622cd75c6daefec6cc9130ba1bf851bd3f9`.
Длина остаётся равной 6000000 комплексных отсчётов и 0,75 с. Ступени
−18/−12/−6/0 дБ, PRBS7, BPSK, RRC, 20000 символов/с, Fs 8000000 отсчётов/с и
цифровая несущая +50000 Гц не меняются.
## Сравнение с Lab064
Для L0, L1, L2 и L3 анализатор выдаёт изменение согласованной мощности,
`|h|²`, остаточной мощности и matched/residual. Номинальное изменение TX VGA
равно +10 дБ и приводится как справочная величина, а не как условие PASS.
До RF зафиксированы численные правила:
- линейность внутри Lab065: максимальная абсолютная ошибка шага не более 1 дБ;
- компрессия: ошибка верхнего шага не более −1,5 дБ;
- заметный прирост: медиана прироста matched power не менее 3 дБ;
- заметное улучшение matched/residual: медиана не менее 3 дБ;
- согласованность прироста четырёх уровней: разброс не более 3 дБ;
- остаток считается растущим почти как сигнал, если его медианный прирост
отстаёт от медианного прироста matched power не более чем на 3 дБ.
Эти пороги нужны для воспроизводимой классификации конкретного опыта. Они не
заменяют измерение абсолютной RF-мощности.
## Аппаратная граница
Подготовка допускает программные проверки, common-clock preflight и RX-only
запись фона. Любая команда с `-t` внутри preflight запрещена. Передача Lab065
требует нового прямого разрешения пользователя и в текущий этап не входит.
Автоматических повторов и изменения усилений после ошибки нет.
`RF TX = 0`.
## Результат подготовки
Подготовка выполнена от HEAD
`cff226e0bf9e36a627829ea11a4ca3292ae20953`. Software gate прошёл. Побайтовая
копия waveform имеет требуемый SHA-256, подготовленная TX-команда содержит
TX VGA 20 дБ, а RX-команда сохраняет LNA/VGA 24/24 дБ.
Common-clock и RX-only preflight прошёл. Обе HackRF One r9 обнаружены с
прежними ролями. MASTER и SLAVE имеют reg29 `0x26`; SLAVE CLKIN обнаружен на
третьем опросе через 201,986 мс. В RX-фоне из 800000 отсчётов AC RMS равен
1,056565 кода, max |I|/|Q| равны 6/8, clipping и overruns отсутствуют.
Процессы до и после проверки имеют состояние CLEAR, ошибок очистки нет.
Lab065 готова к рассмотрению перед одним RF-сеансом. Текущая подготовка такого
разрешения не содержит. `RF TX = 0`.
## Единственный RF-сеанс
После отдельного прямого разрешения выполнен один TX. Общая опора прошла:
MASTER/SLAVE reg29 `0x26`, SLAVE CLKIN обнаружен на втором опросе через
136,897 мс. TX underrun, RX overrun, clipping и ошибки очистки отсутствуют.
Повторов не было. RX содержит 16000000 отсчётов, SHA-256
`845d7b7dcaef70e179ab69e6ba0041601859630786d2f4d51c16a8c1c7869d7e`.
Медианный прирост matched power относительно Lab064 равен +11,233489 дБ,
медианное изменение остатка +0,517004 дБ, улучшение matched/residual
+10,734495 дБ. Ошибки ступеней равны −0,077363/+0,034934/−0,013858 дБ.
Признаков компрессии нет. Классификация: `LINEAR_GAIN_IMPROVEMENT`.
[Полный RF-отчёт](lab065_rf_result.md). `RF TX = 0`.

114
docs/lab065_rf_result.md Normal file
View File

@@ -0,0 +1,114 @@
# Lab065: один OTA-сеанс при TX VGA 20 дБ
15 сентября 2026 года выполнен один разрешённый OTA-сеанс Lab065 на частоте
1400000000 Гц. Передача использовала точную копию waveform Lab064 с SHA-256
`fa260719659b2984fe29588238415622cd75c6daefec6cc9130ba1bf851bd3f9`.
Автоматических и ручных повторов не было.
## Аппаратная валидность
Перед TX обе HackRF One r9 и их роли подтверждены. MASTER и SLAVE имели reg29
`0x26`; SLAVE CLKIN обнаружен на втором опросе через 136,897 мс. RX стартовал
раньше TX. Результат сеанса:
```text
COMPLETED TX SESSIONS = 1
AUTOMATIC TX REPEATS = 0
TX UNDERRUN MAXIMUM = 0
RX OVERRUN MAXIMUM = 0
RX CLIPPING = NO
CLEANUP ERRORS = []
SDR PROCESSES = CLEAR
```
RX содержит 16000000 комплексных отсчётов, 32000000 байт и 2,0 с. SHA-256:
`845d7b7dcaef70e179ab69e6ba0041601859630786d2f4d51c16a8c1c7869d7e`.
Максимумы всей записи равны `|I|=10` и `|Q|=10`; rail-кодов нет.
## Линейность внутри Lab065
| Переход | TX, дБ | RX matched, дБ | Ошибка, дБ |
|---|---:|---:|---:|
| L0 → L1 | +5,977270 | +5,899908 | −0,077363 |
| L1 → L2 | +5,998157 | +6,033091 | +0,034934 |
| L2 → L3 | +5,998257 | +5,984400 | −0,013858 |
Максимальная абсолютная ошибка равна 0,077363 дБ при границе 1 дБ. Ошибка
верхней ступени равна −0,013858 дБ при пороге компрессии −1,5 дБ. Согласованная
мощность L3 выросла относительно L2 на 5,984400 дБ. Признаков компрессии на
L2/L3 нет.
## Сравнение Lab064 и Lab065
| Уровень | Matched, дБ | Остаток, дБ | Улучшение matched/residual, дБ | Изменение \|h\|², дБ |
|---|---:|---:|---:|---:|
| L0 | +11,179328 | −0,243276 | +11,422604 | +11,179328 |
| L1 | +11,119466 | −2,366286 | +13,485752 | +11,119466 |
| L2 | +11,323670 | +1,277284 | +10,046386 | +11,323670 |
| L3 | +11,287650 | +3,907581 | +7,380069 | +11,287650 |
Медианный прирост согласованной мощности равен +11,233489 дБ. Его разброс по
четырём уровням составляет 0,204204 дБ. Медианное изменение остатка равно
+0,517004 дБ, а медианное улучшение matched/residual равно +10,734495 дБ.
При TX VGA 20 дБ matched/residual для L0/L1/L2/L3 равен
−20,663889/−12,091711/−6,645283/−4,753267 дБ. Отношение улучшилось на каждом
уровне, хотя даже на L3 согласованная составляющая остаётся слабее остатка.
## Комплексный коэффициент передачи
| Уровень | h Lab064 | h Lab065 | \|h\| Lab064 | \|h\| Lab065 | Изменение фазы, градусы |
|---|---|---|---:|---:|---:|
| L0 | 0,001876 − j0,004508 | −0,006915 + j0,016279 | 0,004883 | 0,017686 | −179,581 |
| L1 | 0,004471 − j0,001938 | −0,010180 + j0,014271 | 0,004873 | 0,017529 | +148,932 |
| L2 | 0,003277 − j0,003478 | −0,009134 + j0,015045 | 0,004779 | 0,017600 | +167,966 |
| L3 | 0,003384 − j0,003391 | −0,009107 + j0,015028 | 0,004791 | 0,017572 | +166,276 |
Модуль `h` внутри Lab065 почти постоянен: 0,017529…0,017686. Его мощность
относительно Lab064 выросла на 11,119…11,324 дБ, что согласуется с matched
power. Фаза между отдельными сеансами не имеет непрерывной временной привязки,
поэтому приведённый поворот является диагностикой конкретных записей, а не
калиброванной фазовой характеристикой тракта.
## Фон и остаточные полосы
Пять нулевых окон Lab065 имеют AC RMS 0,763722…0,857191 кода. Разброс фоновой
AC-мощности равен 1,002840 дБ при границе 3 дБ, поэтому фон классифицирован как
стабильный. В Lab064 разброс составлял 0,119530 дБ; фон Lab065 стабильный, но
межоконный разброс стал больше.
Изменение диагностических полос остатка относительно Lab064:
| Уровень | 50 кГц, дБ | 100 кГц, дБ | 150 кГц, дБ |
|---|---:|---:|---:|
| L0 | +2,869745 | +2,654569 | +2,258651 |
| L1 | +3,032680 | +2,378561 | +1,300716 |
| L2 | +5,594944 | +4,091263 | +2,888397 |
| L3 | +7,304593 | +6,432281 | +4,996232 |
На верхних уровнях остаточные полосы выросли, особенно около 50 кГц. На L3 их
рост остаётся ниже прироста matched power +11,287650 дБ, а matched/residual
улучшился на 7,380069 дБ. Эти цифровые полосы не являются калиброванным
измерением RF-гармоник.
## Итог
```text
CLASSIFICATION = LINEAR_GAIN_IMPROVEMENT
```
Повышение TX VGA с 10 до 20 дБ дало устойчивый прирост согласованной принятой
мощности примерно на 11,2 дБ без потери линейности. Остаток вырос существенно
меньше, поэтому отношение полезной составляющей к остатку улучшилось на всех
четырёх уровнях. Верхняя ступень не показывает компрессии.
Результат остаётся относительным измерением всего OTA-тракта. Он не определяет
абсолютную RF-мощность и не доказывает прохождение полного PHY-пакета, FEC, CRC,
T2 или JPEG.
Независимая проверка пересчитала сохранённый CS8, локализацию, фон, matched,
residual, `h`, CFO, внутреннюю линейность и сравнение с Lab064. Расхождений нет.
Рекомендуемый следующий одиночный шаг: рассмотреть scope Lab065 и отдельно
разрешить локальный коммит. Новую RF-передачу для этого выполнять не требуется.
`RF TX = 0`. Lab065 не коммитировалась, push не выполнялся, Lab066 не создана.

View File

@@ -0,0 +1,83 @@
# Lab065: подготовка и RX-only preflight
15 сентября 2026 года подготовлена Lab065 с TX VGA 20 дБ. Пользователь
подтвердил неизменность расстояния около 1,2 м, прямой видимости, положения TX
возле окна и RX на столе, антенн, поляризации, USB, общей опоры и RF-кабелей.
## Неизменность сигнала
TX-файл Lab065 является побайтовой копией файла Lab064:
```text
TX samples = 6000000
TX bytes = 12000000
TX duration = 0.750000 s
TX SHA-256 = fa260719659b2984fe29588238415622cd75c6daefec6cc9130ba1bf851bd3f9
WAVEFORM UNCHANGED FROM LAB064 = YES
```
Сохранены PRBS7, BPSK, RRC, ступени −18/−12/−6/0 дБ, интервалы и нулевые
защитные участки, 20000 символов/с, Fs 8000000 комплексных отсчётов/с и
цифровая несущая +50000 Гц. Из аппаратных параметров изменён только TX VGA:
10 → 20 дБ. RX LNA/VGA остаются равными 24/24 дБ; RF amplifier и Bias-Tee
выключены.
Software gate прошёл. Он подтвердил SHA, пригодность результата Lab064 как
базы сравнения, синтетическую проверку линейности и наличие численных правил
классификации, зафиксированных до RF.
## Common clock
Перед аппаратными командами проверка процессов через psutil осмотрела 289
процессов и получила CLEAR. Обнаружены обе HackRF One r9 с firmware и
libhackrf 2024.02.1. Роли совпали с Lab064:
- MASTER `000000000000000097c063dc323b97d3`;
- SLAVE `000000000000000097c063dc2e5327d3`.
Результат общей опоры:
```text
MASTER reg29 = 0x26
SLAVE reg29 = 0x26
SLAVE CLKIN = DETECTED
CLKIN query = 3
time to detect = 201.986 ms
```
Первые два опроса не обнаружили CLKIN, третий опрос прошёл в пределах штатного
окна ожидания. Итоговый common-clock gate имеет статус PASS.
## RX-only фон
SLAVE записал 800000 комплексных отсчётов при 1400000000 Гц и RX LNA/VGA
24/24 дБ.
| Метрика | Значение |
|---|---:|
| Полный RMS IQ | 2,333068 кода |
| AC RMS после удаления среднего | 1,056565 кода |
| Средние I / Q | 0,948896 / 1,851074 кода |
| max \|I\| / \|Q\| | 6 / 8 кодов |
| Максимальная комплексная амплитуда | 8,062258 кода |
| Clipping | 0 / 800000 отсчётов |
| RX overruns, максимум / финал | 0 / 0 |
| Неожиданно сильный сигнал | нет |
SHA-256 RX-фона:
`be3c61dfa1bc40d1a9f6777689026804a1ccfc340b82680d3ec5304ddd68f78c`.
Оба CLKOUT выключены без ошибок. Повторная проверка процессов получила CLEAR.
Команд передачи не было.
```text
LAB065 PREPARATION = PASS
COMMON CLOCK = PASS
RX PREFLIGHT = PASS
RF TX = 0
READY FOR SINGLE LAB065 TX = YES
WAITING FOR EXPLICIT RF AUTHORIZATION = YES
```
Готовность означает, что программные и аппаратные входные проверки пройдены.
Она не разрешает передачу и не предсказывает результат измерения.