Estoy tratando de comprender la relación entre un filtro FIR diseñado a partir de "primeros principios" que utiliza un núcleo de filtro con convolución, y un filtro diseñado de una de las dos maneras que utiliza FFT (ver más abajo).
Según tengo entendido, la respuesta al impulso de un filtro FIR es lo mismo que el núcleo de convolución del filtro. (Corrígeme si me equivoco.)
Además, según tengo entendido, las frecuencias componentes (es decir, la transformada de Fourier) de la respuesta de impulso de un filtro FIR es lo mismo que la respuesta de frecuencia del filtro. Y, por lo tanto, la transformación inversa de Fourier me devolverá la respuesta al impulso (de nuevo, corríjame si me equivoco).
Esto me lleva a dos conclusiones (ignorar la respuesta de fase o asumir una respuesta de fase lineal):
Debería poder diseñar un filtro FIR de respuesta de frecuencia arbitraria "dibujando" mi respuesta de frecuencia deseada, tomando un IFFT para obtener la respuesta de impulso, y usándolo como mi núcleo de convolución.
Alternativamente, debería poder crear un filtro tomando la FFT de la señal de entrada, multiplicándola por mi respuesta de frecuencia arbitraria deseada en el dominio de la frecuencia, y tomando una IFFT del resultado para producir la señal de salida.
Intuitivamente, parece que 1 y 2 son equivalentes, pero no estoy seguro de poder probarlo.
Parece que las personas (y la literatura de DSP) hacen todo lo posible para diseñar núcleos FIR con respuestas predefinidas, utilizando algoritmos complicados (para mí) como Chebyshev o Remez (estoy tirando algunos nombres que he leído, sin entenderlos realmente) .
- ¿Por qué ir a estas longitudes, cuando existe una transformación FFT / IFFT para cada posible núcleo FIR?
- ¿Por qué no simplemente dibujar la respuesta de frecuencia exacta que desea, tomar un IFFT y ahí está su núcleo FIR (método 1 anterior)?