Sí, es posible representar los resultados del dominio de frecuencia de FFT de una entrada estrictamente real utilizando solo números reales.
Esos números complejos en el resultado de FFT son simplemente 2 números reales, que son necesarios para darle las coordenadas 2D de un vector de resultado que tiene una longitud y un ángulo de dirección (o magnitud y fase). Y cada componente de frecuencia en el resultado de FFT puede tener una amplitud y una fase únicas (en relación con algún punto de la apertura de FFT).
Un número real por sí solo no puede representar tanto la magnitud como la fase. Si tira la información de fase, eso fácilmente podría distorsionar masivamente la señal si intenta recrearla usando un iFFT (y la señal no es simétrica). Entonces, un resultado FFT completo requiere 2 números reales por contenedor FFT. Estos 2 números reales están agrupados en algunas FFT en un tipo de datos complejo por convención común, pero el resultado de FFT podría fácilmente (y algunas FFT lo hacen) simplemente producir 2 vectores reales (uno para coordenadas coseno y otro para coordenadas seno).
También hay rutinas de FFT que producen magnitud y fase directamente, pero se ejecutan más lentamente que las FFT que producen un resultado vectorial complejo (o dos reales). También existen rutinas de FFT que calculan solo la magnitud y simplemente descartan la información de fase, pero generalmente no se ejecutan más rápido que permitiéndote hacerlo tú mismo después de una FFT más general. Tal vez le ahorren a un codificador algunas líneas de código a costa de no ser invertibles. Pero muchas bibliotecas no se molestan en incluir estas formas más lentas y menos generales de FFT, y simplemente dejan que el codificador convierta o ignore lo que necesitan o no necesitan.
Además, muchos consideran que las matemáticas involucradas son mucho más elegantes usando aritmética compleja (donde, para una entrada estrictamente real, la correlación del coseno o el componente par de un resultado de FFT se coloca en el componente real, y la correlación sinusoidal o componente impar del El resultado de FFT se coloca en el componente imaginario de un número complejo).
(Agregado :) Y, como otra opción más, puede considerar los dos componentes de cada contenedor de resultados FFT, en lugar de componentes reales e imaginarios, como componentes pares e impares, ambos reales.