feat: ×1.805 confirmed — OLA normalization factor (24i)
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)
This commit is contained in:
@@ -2714,3 +2714,35 @@ Our application: mask × audio via complex multiply (WITH 1/N from IFFT)
|
|||||||
|
|
||||||
### Следующий шаг
|
### Следующий шаг
|
||||||
Проверить: если использовать raw_level (без LUT/exp2) как mask, какой cut получится?
|
Проверить: если использовать 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
|
||||||
|
|||||||
Reference in New Issue
Block a user