Estou tentando entender o relacionamento entre um filtro FIR projetado a partir dos "primeiros princípios" usando um núcleo de filtro com convolução e um filtro projetado de uma das duas maneiras usando a FFT (veja abaixo).
Pelo que entendi, a resposta de impulso de um filtro FIR é a mesma coisa que o kernel de convolução do filtro. (Corrija-me se eu estiver errado.)
Além disso, no meu entendimento, as frequências de componentes (ou seja, transformada de Fourier) da resposta de impulso de um filtro FIR são a mesma coisa que a resposta de frequência do filtro. E, portanto, a transformação inversa de Fourier me devolverá a resposta ao impulso (novamente, corrija-me se estiver errado).
Isso me leva a duas conclusões (ignorando a resposta da fase ou assumindo a resposta linear da fase):
Eu deveria ser capaz de projetar um filtro FIR de resposta de frequência arbitrária "desenhando" minha resposta de frequência desejada, usando um IFFT para obter a resposta de impulso e usando isso como meu núcleo de convolução.
Como alternativa, eu deveria ser capaz de criar um filtro pegando a FFT do sinal de entrada, multiplicando pela minha resposta de frequência arbitrária desejada no domínio da frequência e pegando um IFFT do resultado para produzir o sinal de saída.
Intuitivamente, parece que 1 e 2 são equivalentes, mas não tenho certeza se posso provar isso.
Parece que as pessoas (e a literatura DSP) se esforçam ao máximo para projetar kernels FIR com respostas predefinidas, usando algoritmos complicados (para mim) como Chebyshev ou Remez (estou jogando alguns nomes que li, sem realmente entendê-los) .
- Por que ir para esses comprimentos, quando existe uma transformação FFT / IFFT para cada kernel FIR possível?
- Por que não simplesmente desenhar a resposta de frequência exata que você deseja, fazer um IFFT e o seu kernel FIR (método 1 acima)?