dsp/: fix FFT inverse, WOLA normalization, detector model, twiddle loader

- Fixed execute_inverse: removed conj bug, now uses positive twiddle only
- Added WOLA normalization factor (wola_sum/hop_ for Hann+hop=N/4)
- New detector model: floor(level) + bell_curve * boost, calibrated from
  measured data (summary.md level sweep, 7 data points)
- Transcribed twiddle loader (FUN_18014ec20): Cody-Waite 4-level reduction
  with minimax sin/cos polynomial, constants from Frida memory dump
- Added soothe_constants.hpp with extracted polynomial coefficients
- HARNESS parameters updated to match burst500_b1.rpp (depth=0.864)

Results: burst500.wav reduction now -5.8 dB vs Ref -6.8 dB (was -14.4 dB)
This commit is contained in:
2026-08-17 18:39:50 +03:00
parent 785aff352b
commit 847725f5fc
6 changed files with 216 additions and 31 deletions
-4
View File
@@ -56,10 +56,6 @@ void execute_forward(const FFTPlan* plan, std::complex<double>* buf) {
void execute_inverse(const FFTPlan* plan, std::complex<double>* buf) {
uint32_t N = plan->N;
for (uint32_t i = 0; i < N; i++) {
buf[i] = std::conj(buf[i]);
}
bit_reverse(buf, N);
for (uint32_t stage = 1; stage <= plan->log2N; stage++) {