Si tomo una transformada discreta de Fourier de $\{ c_1, c_2, \ldots, c_n\}$ donde $n$ es primordial, estoy bastante limitado en cuanto a los algoritmos FFT disponibles y su rendimiento. Además, tener algoritmos FFT de radios mixtos et Los algoritmos de FFT de longitud primaria, más el código necesario para determinar cuál utilizar, aumentan el tamaño de mi código, que es un factor limitante.
Supongamos que $n$ es primo y decido, en cambio, tomar la transformada discreta de Fourier de $\{ c_1, c_2, \ldots, c_n, 0\}$ por lo que, ahora, la longitud de los datos ya no es primordial. Sé que la "imagen" que obtengo será más suave en comparación con la verdadera DFT de los datos originales.
¿Hay alguna manera de poner a cero los datos originales, realizar una FFT y luego invertir los efectos de la puesta a cero? Con esto quiero decir que la longitud de la lista de salida debería ser $n$ no $n + 1$ . No espero obtener precisamente el mismo resultado del $n + 1$ FFT rellenada como en el caso del original $O(n^2)$ DFT. Tengo entendido que es prácticamente imposible revertir el efecto de alisado del relleno.
Resumen: Puedo poner a cero mis datos para que tengan una longitud no-prima, pero entonces el resultado de mi FFT tiene la longitud incorrecta, y los valores de los índices no coinciden con la verdadera DFT. No puedo simplemente dejar caer el último elemento del resultado de mi FFT, necesito algo más "complicado". ¿Qué post-procesamiento puedo hacer a mis datos rellenados con cero para que se parezcan más a la DFT original, y tengan la misma longitud?