Estoy usando una versión de "KISS FFT" de Mark Borgerding. Acepta una matriz de valores de entrada de punto fijo de 16 bits y produce una matriz de resultado flotante de 32 bits.
He descubierto que si las amplitudes de entrada son bajas, muchos de los valores de resultado flotantes salen a cero, pero si simplemente escalo las entradas (por, digamos, el factor 16), menos valores de salida son cero y, por lo tanto, la salida parece contener mas detalle. (No es que importe mucho para mis propósitos, pero por coherencia, luego divido los valores flotantes resultantes por el mismo factor de escala).
De todos modos, esto parece funcionar, en términos de producir un resultado cuando anteriormente acababa de obtener un búfer de prácticamente todos los ceros, pero me pregunto si hay alguna razón por la que podría no ser un enfoque válido.
(Tenga en cuenta que este enfoque significa que hay mucha más "grosor" / granularidad en los datos y, en particular, el ruido de bajo nivel que normalmente estaría presente no lo está. Casi me pregunto si sería prudente inyectar algo de ruido de bajo nivel para reemplazar los valores cero en la entrada).