# Lab055 — энергетический аудит сохранённых Lab047 и Lab054 Дата: 9 сентября 2026 года. Только обработка файлов, RF TX = 0. ## Что установлено простыми словами 1. **Цифровая амплитуда передачи практически не изменилась.** Средняя мощность активной части TX равна 1950,308 и 1950,598 код²: различие всего +0,000645 дБ. RMS обоих полных файлов около 44 кодов, ограничения отсчётов нет. 2. **Согласованная с TX компонента принятого сигнала существенно ослабла.** Её медианная мощность в модели канала уменьшилась с 0,202732 до 0,00582916 код², то есть на 15,413 дБ, примерно в 34,8 раза. Это оценка компоненты в цифровом RX, описываемой моделью, а не измерение ватт на разъёме. 3. **Фон в одинаковой широкой полосе сопоставим.** В полосе 675 кГц медианы 0,117815 и 0,112066 код². Признака роста фона на десятки децибел нет. Фон меняется между окнами и до/после передачи. Остаток после вычитания модели содержит также искажения: особенно в Lab047 он выше отдельного фона. 4. **Подтверждено падение цифровой энергии TX на символ на 13,9788 дБ**, поскольку измеренная средняя цифровая мощность сохранилась, а скорость выросла в 25 раз. Это не доказывает, что 13,98 дБ ухудшения приёма вызваны только скоростью: условие неизменной полезной принятой мощности не выполнено даже в модели. 5. **Без измерительного прибора не установлены** выходная RF-мощность обеих передач, мощность на входе RX, потери конкретного подключения, фактическая аналоговая характеристика и разложение ослабления между этими причинами. Одинаковое TX VGA = 10 дБ не доказывает одинаковую выходную мощность. 6. **Внешний усилитель пока преждевременен.** Для ближайшей диагностики нужен контролируемый кабельный/экранированный стенд, известное ослабление и измерение уровней. По одному SNR назначать мощность усилителя в ваттах нельзя. Исторический Lab054 остаётся **NOT_A, 0/16 пакетов**. TX reference используется после независимого решения только для диагностики. Нового декодирования, изменения порогов, частот, усилений, PHY/FEC/CRC или радиопередачи не было. ## Артефакты и происхождение данных Основной результат: [energy_audit_v2.json](../data/processed/lab055/energy_audit_v2.json). Анализатор: [lab055_energy_audit.py](../experiments/lab055_energy_audit.py). Тесты: [test_lab055_energy_audit.py](../tests/test_lab055_energy_audit.py). Первый `energy_audit.json` сохранён как предварительный и заменён в выводах V2: Welch недовзвешивал защитные края TX, а окно поиска задержки задевало проверочную плитку. В V2 для TX применена полная прямоугольная периодограмма каждого кадра; поиск задержки защищён внутренними отступами. Сценарий утечки воспроизведён verifier, превращён в тест и после исправления повторно пройден. Первичные аппаратные записи и результаты обоих опытов не перезаписывались. Lab047: `C:\Users\user\Documents\SDR_Rover_Lab047_raw\20260903_115747`. Это аппаратная RX-запись единственного сеанса 3 сентября, а не программный loopback JPEG. Первичная обработка была незавершена из-за лимита кандидатов; позднейший независимый анализ именно этой записи принял 36 кадров и восстановил точный JPEG. Основания: `docs/lab047_current_state.md`, `capture_result.json`, `independent_reprocess_result_corrected.json` и `post_verdict_diagnostics.json`. Lab054: `data/raw/lab054`, единственный сеанс 9 сентября. Официальная сводка: `data/processed/lab054/rf_summary.json`; независимо принято 0/16. | Параметр | Lab047 | Lab054 | Основание | |---|---:|---:|---| | Формат | signed int8 I,Q | signed int8 I,Q | Метаданные, чётный размер, декодирование байтов | | TX, байт | 166060800 | 2952192 | Фактические файлы | | RX, байт | 240000000 | 48000000 | Фактические файлы | | TX, с | 10,3788 | 0,184512 | Число IQ/Fs | | RX, с | 15 | 3 | Число IQ/Fs | | Частота дискретизации | 8 Мвыб/с | 8 Мвыб/с | TX/RX stderr и метаданные | | Центральная RF-частота | 1400 МГц | 1400 МГц | TX/RX stderr | | Скорость | 20000 симв/с | 500000 симв/с | Метаданные и формирователи | | Отсчётов/символ | 400 | 16 | Fs/Rs, код и длины кадров | | Цифровая несущая | +50 кГц | +50 кГц | Метаданные и формирователи | | TX VGA | 10 дБ | 10 дБ | Метаданные и команды runner; аппаратного readback нет | | RX LNA/VGA | 24/24 дБ | 24/24 дБ | Метаданные и команды runner; аппаратного readback нет | | RF amplifier/Bias-Tee | OFF/OFF | OFF/OFF | Метаданные, команды, stderr | | RRC | α=0,35, span=10 | α=0,35, span=10 | Восстановлено из кода | | Аналоговый baseband-фильтр | UNKNOWN | UNKNOWN | Явного `-b` и readback полосы в артефактах нет | | Выходная мощность, дБм | UNKNOWN | UNKNOWN | Измеренной калибровки нет | | Кабели/антенны/ослабление/расстояние | Не подтверждены как неизменные | Не подтверждены как неизменные | Разные сеансы | В обоих журналах одна пара HackRF r9: TX serial заканчивается `323b97d3`, RX — `2e5327d3`; firmware/libhackrf 2024.02.1. Идентичность платы и настроек не устанавливает неизменность аналогового тракта. Аппаратуру сейчас не опрашивали. SHA-256 проверены чтением блоками и совпали с историческими метаданными: ```text Lab047 TX 001a0c11128d18b2b8e3e67a3e8416a84174ed0e383887836186a10aa45beded Lab047 RX 8521bf1b574cd1fe4e0a4f980c00c8664f8bb51551a241e46449e1eb2c77e635 Lab054 TX e84bbce227426c0aac13a48ded1286ca4a44fc6e3efce01f6e5a513217c87ff5 Lab054 RX 641886879964250c315dd399d469503808aae43fb319bef05e0bf2a78bf14585 ``` JSON содержит SHA всех входных файлов в обоих аппаратных каталогах и `data/processed/lab054`. После расчёта их хеши проверены повторно: неизменны. ## Метод, окна и единицы Для комплексного цифрового отсчёта x=I+jQ: ```text μ = mean(x) P = mean(|x|²) [код²] P_AC = mean(|x−μ|²) [код²] RMS = sqrt(P) [код] PAPR = 10 log10(max(|x|²)/P) [дБ] Es_digital = P/Rs [код²·с] ``` Код TX и код RX не переводятся в ватты и не считаются одной калиброванной физической шкалой. Пиковое значение цифрового кода не является RF-мощностью. Весь TX анализируется покадрово: 2306400 отсчётов/кадр у Lab047 и 92256 у Lab054. «Активная часть» определена одинаково: центральное окно после удаления 21·SPS отсчётов с каждого края, то есть 5724 символьных интервала. Guard=16 символов плюс половина RRC span=5. Полный файл включает все защитные интервалы и хвосты. Это фиксированное структурное окно, не амплитудный порог. Статистика моментов суммируется по всем отсчётам. TX-полоса интегрируется по прямоугольной периодограмме каждого полного или активного окна; интеграл по всей частотной оси удовлетворяет Парсевалю. Точка спектрального максимума вместо интегральной мощности нигде не используется. Фон: отдельные окна по 0,1 с, из каждого удаляется собственное комплексное среднее. Начала окон в секундах: ```text Lab047: 0.05,0.20,0.35,0.50; 12.05,12.4,12.75,13.1,13.45,13.8 Lab054: 0.02,0.12,0.22,0.32; 1.0,1.25,1.5,1.75,2.0,2.5,2.8 ``` Все эти окна находятся вне диагностически найденной передачи. PSD фона: двусторонний Welch комплексного сигнала, periodic Hann, 65536 отсчётов, перекрытие 32768, без дополнительного detrend; шаг 122,0703125 Гц. Каждое фоновое окно содержит 23 сегмента Welch. Мощность полосы — сумма PSD·Δf; средняя плотность в полосе — эта мощность, делённая на её ширину. Все сравниваемые абсолютные полосы центрированы на +50 кГц: 27, 675 и 1000 кГц. Модель RX: `y[n] = d + g*x[n−τ]*exp(j2πf*n/Fs) + r[n]`. Это плоский комплексный коэффициент, постоянная составляющая, целочисленная задержка и постоянный CFO внутри кадра. Частотно-зависимый канал, дробная задержка, изменение усиления внутри кадра, нелинейность и все помехи остаются в r. Поэтому мощность модели — оценка согласованной компоненты, не гарантированная полная мощность всех полезных RF-компонент. Активный кадр делится на 8 плиток. Чётные 0,2,4,6 обучают CFO/g/DC, нечётные 1,3,5,7 проверяют модель. Длительность плитки: 35,775 мс и 1,431 мс. Задержка обучается только внутри плитки 0: reference `[2m:L−2m]`, поиск RX `[m:L−m]`, m=SPS. При любом выбранном сдвиге ±m поиск остаётся внутри итоговой обучающей плитки. Исходные начала Lab047 берутся из принятого независимого результата; Lab054 — из завершённой диагностики 16 известных следов. Это намеренное использование TX после verdict, не независимый поиск кадров. Проверочная мощность модели — `mean(|g*x_corrected|²)`, остаток — `mean(|y−d−g*x_corrected|²)`. Сохраняется перекрёстный член, поскольку вне обучающей выборки нельзя автоматически записывать P_RX=P_model+P_residual. Медианный перекрёстный член: 0,0000904 и 0,0002491 код². Подгонка по конечному шумному обучающему набору может завышать |g|²; проверка на других плитках уменьшает оптимизм остатка, но не устраняет всю неопределённость модели. PSD остатка считается для каждой проверочной плитки отдельно, затем усредняется; разорванные окна не склеиваются. Welch использует min(65536, длина плитки), поэтому у Lab054 спектральная сетка остатка грубее, чем у фоновых окон. Мощности интегрируются, сравнение отдельных пиков не проводится. Чтение — read-only memmap; в обработке один кадр/одно фоновое окно, а не несколько копий полной 240-МБ записи. Наибольший исходный кадр содержит 2,3064 млн IQ. ## Цифровая передача | Метрика | Lab047 | Lab054 | |---|---:|---:| | Mean I, весь TX, код | −0,00005353 | −0,0852262 | | Mean Q, весь TX, код | −0,00003583 | +0,2849923 | | Mean I/Q, active, код | −0,00005730 / −0,00054603 | −0,0883308 / +0,2855104 | | P весь TX, код² | 1936,234201 | 1936,512534 | | P active, код² | 1950,308025 | 1950,597617 | | RMS весь TX, код | 44,002661 | 44,005824 | | RMS active, код | 44,162292 | 44,165570 | | Максимальный модуль IQ, код | 70,17834 | 70,00000 | | Максимум abs(I)/abs(Q), код | 69 / 70 | 67 / 70 | | Ограниченные компоненты/отсчёты | 0 / 0 | 0 / 0 | | PAPR весь TX, дБ | 4,05448 | 4,03176 | | PAPR active, дБ | 4,02303 | 4,00028 | | P в собственной полосе, весь TX, код², среднее кадров | 1935,91206 | 1936,20139 | | P в собственной полосе, active, код², среднее кадров | 1949,94924 | 1950,24632 | | Es весь TX, код²·с | 0,096811710 | 0,0038730251 | | Es active, код²·с | 0,097515401 | 0,0039011952 | Собственная расчётная полоса `(1+α)Rs`: 27 и 675 кГц. Границы относительно центра HackRF: +36,5…+63,5 и −287,5…+387,5 кГц. Небольшая ненулевая средняя Lab054 относится к конечной широкополосной цифровой форме, пересекающей ноль. Формирователь сначала сворачивает импульсную последовательность с RRC единичной энергии и умножает на 0,70. На этой промежуточной ступени энергия импульса в сумме квадратов почти постоянна, а средняя мощность масштабируется как 1/SPS. Затем и старый `_scale_and_carrier`, и параметрический `build_parameterized_tx_complex` **нормируют всю форму к RMS 44** и квантуют CS8. Следовательно, итоговый инвариант — средняя цифровая мощность всего кадра; пиковая амплитуда зависит от последовательности, энергия на символ не постоянна. Источник: `lab044_hackrf_bpsk_packet.py:189`, `lab049_bpsk_symbol_rate.py:153`. ## RX: сигнал, фон и остаток Тройки означают min / median / max по 36 или 16 кадрам либо по 10/11 фоновым окнам. Полные покадровые и пооконные значения находятся в JSON. | Метрика, единицы | Lab047 | Lab054 | |---|---:|---:| | DC фона I, код | 0,93661 / 0,94647 / 0,95317 | 0,94343 / 0,95945 / 0,96513 | | DC фона Q, код | 1,82984 / 1,83810 / 1,85304 | 1,81475 / 1,82897 / 1,84521 | | DC активного RX I/Q, среднее кадров, код | 0,95030 / 1,82697 | 0,95036 / 1,83411 | | Фон после DC, вся цифровая полоса, код² | 0,80744 / 0,90063 / 2,40830 | 0,76492 / 0,77637 / 1,05093 | | Фон в 27 кГц, код² | 0,004791 / 0,009997 / 0,011033 | 0,006595 / 0,007428 / 0,009188 | | Фон в 675 кГц, код² | 0,076705 / 0,117815 / 0,141878 | 0,101860 / 0,112066 / 0,136654 | | Фон в 1 МГц, код² | 0,101003 / 0,142208 / 0,178637 | 0,133711 / 0,144025 / 0,175794 | | Плотность фона в 27 кГц, код²/Гц | 1,775e−7 / 3,703e−7 / 4,086e−7 | 2,442e−7 / 2,751e−7 / 3,403e−7 | | Плотность фона в 675 кГц, код²/Гц | 1,136e−7 / 1,745e−7 / 2,102e−7 | 1,509e−7 / 1,660e−7 / 2,025e−7 | | Согласованная компонента RX, код² | 0,18848 / 0,20273 / 0,22969 | 0,004902 / 0,005829 / 0,007671 | | Модуль коэффициента g, RX-код/TX-код | 0,009833 / 0,010195 / 0,010854 | 0,001585 / 0,001729 / 0,001984 | | Остаток на обучении, вся полоса, код² | 0,82150 / 0,97775 / 1,50614 | 0,72737 / 0,75433 / 0,95130 | | Остаток на проверке, вся полоса, код² | 0,83542 / 0,96131 / 1,85690 | 0,73922 / 0,82244 / 1,03050 | | Остаток проверки в 27 кГц, код² | 0,017821 / 0,019407 / 0,024829 | 0,006205 / 0,008370 / 0,009905 | | Остаток проверки в 675 кГц, код² | 0,122124 / 0,132075 / 0,171027 | 0,111024 / 0,121966 / 0,149865 | В собственной полосе фон вырос с 0,009997 до 0,112066 код² главным образом из-за изменения ширины и положения полосы. Эта строка не означает рост спектральной плотности шума приёмника. В одинаковых абсолютных полосах увеличения такой величины нет. Фон нестационарен. Медианный эквивалентный N0 Lab047 до передачи равен 2,1901e−7, после — 4,0330e−7 код²/Гц. У Lab054 — 1,9005e−7 и 1,8744e−7. Единственный максимум 2,4083 код² широкополосного фона Lab047 не используется как типичный уровень. Нельзя переносить фон до/после TX на время передачи без дополнительного предположения о стационарности. ## Согласованный фильтр и условная энергетическая модель Конвенция комплексного белого шума: `E|w|²=σ²`, дисперсия каждой из I и Q равна σ²/2, двусторонняя комплексная PSD `N0=σ²/Fs`. Дополнительного множителя 2 в интеграле нет. Реальный фон окрашен и включает помехи/квантование; его плотность не объявляется измеренным тепловым N0. ```text Pn_out = ∫ Sbackground(f) |H(f−fc)|² df ENBW = Fs·Σ|h[n]|² / |Σh[n]|² N0_equivalent = Pn_out / (Fs·Σ|h[n]|²) Es/N0_equivalent = Pmodel / (Rs·N0_equivalent) [условная оценка] ``` N0_equivalent — плотность белого комплексного шума, который дал бы ту же выходную мощность данного RRC. Она зависит от выбранного фильтра и положения в окрашенном спектре. Поэтому различие N0_equivalent между режимами включает изменение спектрального взвешивания, а не только физическое изменение шума. | Параметр | Lab047 | Lab054 | |---|---:|---:| | RRC taps | 4001 | 161 | | Σh² | ≈1 | ≈1 | | Задержка одного RRC, отсчёты | 2000 | 80 | | Усиление мощности на центре полосы | 396,55892 | 15,87720 | | ENBW, Гц | 20173,547 | 503867,304 | | Фон после RRC, код², min/median/max | 1,48735 / 3,11017 / 3,37378 | 1,34855 / 1,49956 / 1,82704 | | N0_equivalent, код²/Гц, min/median/max | 1,859e−7 / 3,888e−7 / 4,217e−7 | 1,686e−7 / 1,874e−7 / 2,284e−7 | | Остаток проверки после RRC, код², min/median/max | 5,87405 / 6,41205 / 8,13390 | 1,48590 / 1,67147 / 2,01445 | | Условное Es/N0_equivalent по медианам, дБ | +14,1620 | −12,0624 | Формальное разложение для выбранных сопоставимых определений: ```text ΔPmodel = −15,41316 дБ 10log10(Rs054/Rs047) = +13,97940 дБ ΔN0_equivalent = −3,16822 дБ Δ(Es/N0_equivalent) = −15,41316 − 13,97940 − (−3,16822) = −26,22434 дБ ``` Это арифметика модели по медианам, **не установленное распределение физических причин потерь**. Полезная модельная мощность не постоянна; фон нестационарен; изменилось спектральное взвешивание. Полная полезная RF-мощность вне модели не измерена. Условие «полезная принятая мощность и N0 неизменны» не подтверждено. Фраза «14 дБ уже объяснены скоростью, осталось 9 дБ» для этих данных некорректна. Если в том же выражении вместо фонового Pn_out поставить фильтрованный остаток проверки, получаются +11,0199 и −12,5337 дБ, изменение −23,5536 дБ. Это **отношение к эквивалентному остатку**, не Es/N0. Остаток/фон после RRC равен примерно 2,06 у Lab047 и 1,11 у Lab054. Так видна причина различия между условной моделью и прежними измерениями SNR преамбулы (+10,85/−12,32 дБ). Метрики измеряют разные величины на разных окнах; прежние результаты не исправлялись. ## Уход от нулевой частоты — только расчёт Полоса Lab054 пересекает ноль; смещение +500 кГц поместило бы её в +162,5…+837,5 кГц. Взвешивание сохранённого фона перенесённым RRC даёт медианные выигрыши 3,06/3,21/3,21 дБ для +500/+750/+1000 кГц относительно +50 кГц. Предполагается одинаковая передача полезной компоненты через аналоговый тракт, что не измерено. Цифровая перестройка старой записи не является испытанием другого аналогового режима. Реальная несущая не менялась. ## Только план следующего измерения Никакие действия из этого раздела не выполнены и не разрешаются этим отчётом. Наличие измерителя мощности, анализатора спектра, калиброванных ослабителей, нагрузки 50 Ом и экранированного корпуса пока не установлено. 1. Зафиксировать отдельно допустимую частоту, схему и имеющиеся приборы. Использовать соединение TX → измеряемый отвод/измеритель → известный ослабитель → RX, с согласованными 50-омными портами; измерение TX сначала выполнить на эквиваленте нагрузки. Исключить антенны и неконтролируемое излучение. 2. Измерить реальную выходную мощность обеих цифровых форм на одной частоте, при одинаковом TX VGA и неизменных кабелях/нагрузке. Зафиксировать среднюю мощность, полосу, погрешность прибора и соответствующие цифровые RMS/PAPR. 3. Проверить ослабление и потери кабелей в рабочей полосе. Вычислять входной уровень RX по измеренной мощности TX и измеренным потерям; не соединять порты напрямую. Предусмотреть запас ниже аппаратного предела и отдельно проверить отсутствие насыщения АЦП при выбранных RX-усилениях. 4. Измерить фон RX с согласованной нагрузкой и при выключенном TX на той же схеме. Получить калиброванную плотность входного шума и проверить аналоговую полосу. Требуемый уровень для выбранного критерия приёма затем рассчитывать как `P_required = N0_input + 10log10(Rs) + (Es/N0)_required` в согласованных единицах. Сам порог требуется определить программными тестами/контрольным измерением, а не назначить по неудачному кадру. 5. После отдельного согласования проверить обе скорости с одинаковой **измеренной** входной мощностью RX и неизменной схемой. Только такой контроль проверит условную потерю энергии на символ при постоянной мощности. Документация HackRF указывает максимальную входную мощность −5 дБм; это предел защиты, не целевой рабочий уровень и не чувствительность. Чувствительность конкретного режима требует измерения. [Официальная документация HackRF](https://hackrf.readthedocs.io/en/latest/hackrf_one.html). На 1400–1427 МГц запрещены все излучения по п. 5.340 Регламента радиосвязи ITU. Разрешения на новый эфир в этой полосе нет; план требует допустимой частоты и отдельно согласованной измерительной схемы. Проверен официальный документ, п. 5.340, PDF стр. 115: [ITU Radio Regulations, Volume 1, 2024](https://www.itu.int/en/ITU-R/seminars/rrs/rrs-25-africa/Plenaries/0.%20ITU-R%20Regulatory%20Documents/1.%20Radio%20Regulations%20%202024%20and%20Rules%20of%20Procedure/Radio%20Regulations%20Ed%202024/RR_Ed-2024_Vol%201-E.pdf). Архитектура сохранена: RadioMaster/ExpressLRS/CRSF — отдельное управление; SDR — видео с целью не менее 5 свежих изображений/с; будущий видеодиапазон около 180 МГц. Этот аудит не подтверждает работоспособность будущего диапазона и не назначает мощность внешнего усилителя. ## Проверки и воспроизведение ```powershell python -m pytest tests/test_lab055_energy_audit.py -q python experiments/lab055_energy_audit.py --output data/processed/lab055/recheck_01.json python tools/quick_gate.py python -m pytest tests/ -q git diff --check ``` Анализатор отказывается перезаписывать существующий выход и сохраняет новый JSON только внутри `data/processed/lab055`. `recheck_01.json` должен быть новым. Для воспроизведения нужны локальные исходные IQ по указанным путям; тесты этого требования не имеют. Проверка не запускает оборудование. Целевые тесты: **9 passed**. Verifier независимо проверил целочисленные суммы TX, PSD через отдельные FFT, Парсеваль, взвешенную регрессию CFO, комплексный МНК и проверочные мощности. Найденная утечка устранена; остаточных находок нет. Полные шлюзы: `quick_gate` PASS — 823 теста, 28 функциональных проверок, 13 штатных пропусков; отдельный `pytest tests/ -q` — **823 passed**, 89,15 с. Единственное предупреждение pytest относится к недоступной записи его кеша; проверки завершились с кодом 0. `git diff --check` — PASS. HEAD: `0368c6d3e930f4d245e056223fd4e5c4f70e6b49`, ветка `main`. Существующие изменения Lab054 сохранены. Изменения Lab055: отдельные анализатор, тесты, JSON, этот отчёт; добавляются только новая запись журнала и ссылка индекса. ```text RF TX = 0 HACKRF = NOT STARTED LAB054 HISTORICAL RESULT = NOT_A, 0/16 GIT ADD / COMMIT / PUSH / PULL / FETCH = NOT PERFORMED STOP. Следующий этап — согласование измерительной схемы и приборов; никакого автоматического аппаратного продолжения. ```