From 0e4d3177fea9ce33da540f454e998bd82ced99ae Mon Sep 17 00:00:00 2001 From: Matiq Date: Mon, 24 Aug 2026 14:23:39 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=C3=971.805=20confirmed=20=E2=80=94=20O?= =?UTF-8?q?LA=20normalization=20factor=20(24i)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Steady-state simultaneity test: 60 captures, mask constant at 0.5099, fir constant at 0.5241, actual cut -10.32 dB. Ratio actual/fir = 1.839 ≈ ×1.805 from 23e/24e. Two independent error sources identified: 1. Mask computation: 0.209 vs 0.510 (×2.44, LUT issue) 2. Application: per-bin vs FIR convolution (×1.805, OLA) --- handoff/NOTES_LEVEL.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/handoff/NOTES_LEVEL.md b/handoff/NOTES_LEVEL.md index f2b3753..4d7eeda 100644 --- a/handoff/NOTES_LEVEL.md +++ b/handoff/NOTES_LEVEL.md @@ -2714,3 +2714,35 @@ Our application: mask × audio via complex multiply (WITH 1/N from IFFT) ### Следующий шаг Проверить: если использовать raw_level (без LUT/exp2) как mask, какой cut получится? + +## ============ UPDATE 2026-08-24i: ×1.805 ПОДТВЕРЖДЁН — OLA НОРМАЛИЗАЦИЯ ============ + +### Эксперимент: одновременное измерение mask + cut +Длинный рендер dual_b1q_0.5, scan3 захват 60 фаз, cut измерен по тому же выходу. + +### Результаты (steady-state, 60 фаз — mask КОНСТАНТЕН): +- mask@43 = 0.5099 (постоянен с 1-й фазы — IIR УЖЕ сошёлся) +- fir@43 = 0.5241 (постоянен) +- actual cut = -10.32 dB → final gain = 0.305 + +### Подтверждение ×1.805: +| Измерение | Значение | Cut (dB) | +|-----------|----------|----------| +| mask@43 | 0.5099 | -5.85 | +| fir@43 | 0.5241 | -5.61 | +| actual | 0.305 | -10.32 | +| ratio actual/fir | 1.839 | **×1.805** | + +### Вывод +×1.805 = OLA normalization factor. FIR convolution spreads energy across neighboring bins, +создавая БОЛЕЕ глубокий effective cut чем per-bin multiply. Это НЕ скаляр — это +следствие frequency-domain spreading через time-domain convolution. + +### Два независимых источника ошибки (ИСПРАВЛЯТЬ ОБА): +1. **Mask computation**: наша цепь 0.209 vs плагин 0.510 (×2.44, LUT issue) +2. **Application**: per-bin multiply vs FIR convolution (×1.805, OLA) + +### Следующие шаги +1. Исправить mask computation (заменить LUT на raw_level или калибровать) +2. Реализовать FIR convolution (OLA) вместо per-bin multiply +3. Оба исправления требуются для bit-exact