B.11: LUT-кривая уровень->маска извлечена (rmse 0.072 dB, 36 точек, 3 уровня): коллапс dual+t1kq+t1k на ОДНУ кривую x=log10(L0/res); степенной закон C~L0^p НЕ работает на 0dB (p_eff 0.19 vs 0.085) - LUT насыщающая gamma из FUN_180563440 (param_1+0x188); форма резонанса стабильна; model_lut.py канонический + roadmap B.11

This commit is contained in:
2026-08-18 13:02:56 +03:00
parent 9abecb60d5
commit 32a63955f8
13 changed files with 1021 additions and 0 deletions
+32
View File
@@ -424,3 +424,35 @@
- **Проверки модели**: dual_b1q rmse=0.127, t1kq fc-скан rmse=0.047, joint 0.109.
Уровневая зависимость (t1kq 18dB vs dual 7dB) в одних параметрах через L0.
- **Файл**: `/home/m/re-tools/model_dual.py` — канонический совместный фит.
### B.11 — LUT-КРИВАЯ "уровень->маска" ИЗВЛЕЧЕНА: ЕДИНАЯ для всех уровней (2026-08-18)
- **НОВЫЕ ДАННЫЕ**: серия `t1k_b1f` (тон 1к, **0 dBFS**, q=0.9999978, sens=12) — третий
уровень входа; fc-скан 800..1200 даёт red 14.5..15.6 dB (глубже dual/t1kq). Параметры
идентичны t1kq_b1f (проверено по XML) — различие только в уровне тона.
- **НАДЁЖНЫЙ ЗАМЕР**: 1с-окно Hann + компонент-корреляция (проекция на cos/sin 1к) —
стабильный steady-state; даёт в точности T1KQ-bandshape (8.788 на 1000) и НОВЫЙ T1K
(15.626 на 1000). Прежний 10мс-зонд был зашумлён (осацилляции маски ~4.5Гц, боковые
±5Гц у тона — spectrum-распад/модуляция).
- **КОЛЛАПС (главное открытие)**: все 36 точек (dual_b1q 22 + t1kq 7 + t1k 7, уровни
-7.14/-18.06/0 dBFS) ложатся на ОДНУ монотонную кривую
`C_norm = LUT(x)`, `x = log10(L0 / res(f))`,
где `res(f)=|2·B/A|` case8/m2c (Q=0.900, gain=4.132), C_norm=(1-10^(-red/20))/(depth·tilt).
Спред внутри бинов 0.002-0.006 (≈0.1 dB) — форма резонанса ОДИНАКОВА на всех уровнях.
- **Форма LUT**: монотонная, асимптоты y→0.44 (низкий уровень) и y→0.67 (высокий),
с крутым "коленом" при x≈0.58 (dual@500: y=0.566 при x=0.574 vs t1k@800: y=0.647
при x=0.608). НЕ степенной закон: наклон d(ln C)/d(dB) падает с уровнем
(p_eff≈0.19 при 0dB, ≈0.089 при -13dB) → степенная C∝L0^p НЕ работает на 0dB
(давала бы 12.4 вместо 15.6).
- **ВЕРИФИКАЦИЯ**: непараметрическая PCHIP-LUT (10 узлов) + форма B.10 →
**rmse=0.0718 dB** на всех 36 точках (dual 0.083, t1kq 0.058, t1k 0.036).
Остаточные выбросы ≤0.1 dB.
- **Структурное соответствие**: LUT = кривая param_1+0x188 из FUN_180563440
(`val = min+(max-min)·x^(1/gamma)`, linear flag) — именно gamma/насыщающая кривая,
а не степенная. Вход = per-bin уровень (IIR-трекеры 0x563ce0) нормированный,
x = L0/res = превышение уровня над резонансной реакцией.
- **Итог B.10→B.11**: парадокс dual_b1q полностью объяснён (tilt×резонанс×LUT);
уровневая зависимость = LUT-кривая, НЕ p-степень; форма резонанса (Q,gain,tilt)
стабильна для 3 уровней. Модель закрыта численно до бит-экзакта.
- **Файл**: `/home/m/re-tools/model_lut.py` — КАНОНИЧЕСКАЯ модель B.11 (узлы LUT,
red(), rmse). Вспомогательные: fit_level.py (отказ p-степени), fit_lut*.py
(логистика/gamma — хуже), extract_lut.py (коллапс), verify_lut*.py (PCHIP-фит).