Estou usando uma versão do "KISS FFT" de Mark Borgerding. Ele aceita uma matriz de valores de entrada de ponto fixo de 16 bits e produz uma matriz de resultados flutuantes de 32 bits.
Descobri que, se as amplitudes de entrada são baixas, muitos dos valores do resultado flutuante saem de zero, mas se eu simplesmente escalar as entradas (por, digamos, o fator 16), menos valores de saída serão zero e, portanto, a saída parece conter Mais detalhes. (Não que isso importe muito para meus propósitos, mas por consistência, divido os valores flutuantes resultantes pelo mesmo fator de escala.)
De qualquer forma, isso parece funcionar, em termos de produção de um resultado, quando anteriormente eu teria conseguido um buffer de praticamente todos os zeros, mas estou me perguntando se há algum motivo para não ser uma abordagem válida.
(Observe que essa abordagem significa que há muito mais "grossura" / granularidade nos dados e, em particular, o ruído de baixo nível que normalmente estaria presente não existe. Estou quase imaginando se seria prudente injetar algum ruído de baixo nível para substituir os valores zero na entrada.)