Sto usando una versione di "KISS FFT" di Mark Borgerding. Accetta una matrice di valori di input a punto fisso a 16 bit e produce una matrice di risultati float a 32 bit.
Ho scoperto che se le ampiezze di input sono basse, molti dei valori del risultato float risultano zero, ma se ridimensiono semplicemente gli input (per esempio, il fattore 16), allora un minor numero di valori di output è zero e quindi l'output sembra contenere più dettaglio. (Non che sia molto importante per i miei scopi, ma per coerenza divido quindi i valori float risultanti per lo stesso fattore di ridimensionamento.)
Ad ogni modo, questo sembra funzionare, in termini di produzione di un risultato quando in precedenza avrei appena ottenuto un buffer di praticamente tutti gli zeri, ma mi chiedo se c'è qualche ragione per cui potrebbe non essere un approccio valido.
(Si noti che questo approccio significa che c'è molta più "grossolanità" / granularità nei dati e, in particolare, il rumore di basso livello che sarebbe normalmente presente non lo è. Mi sto quasi chiedendo se sarebbe saggio iniettare del rumore di basso livello per sostituire i valori zero nell'ingresso.)