Devido à existência de algoritmos eficientes para computar a Transformada Discreta de Fourier de uma sequência finita, é computacionalmente eficiente implementar a convolução de duas sequências implementando-se suas DFT’s, multiplicando-se ambas e calculando-se a transformada inversa.
Em muitas aplicações, é interessante implementar a convolução linear de duas sequências. Isto é verdade, por exemplo, quando deseja-se filtrar um sinal de radar.
Como foi visto anteriormente, a multiplicação
das DFT’s de duas sequências corresponde à convolução
circular das mesmas. Como é interessante ter uma convolução
linear, deve-se mostrar que a convolução circular tem o efeito
de uma convolução linear.
Para isso, considere duas sequências de N
pontos cada, x1(n) e x2(n), e seja x3(n) a convolução linear
de x1(n) e x2(n). Assim, tem-se
É imediato verificar que x3(n) tem tamanho
2N-1, ou seja, pode ter no máximo 2N-1 elementos não nulos.
Se x3(n) for obtida multiplicando-se as transformadas de Fourier discretas
de x1(n) e x2(n), então cada uma dessas transformadas, X1(k)
e X2(k), também deve ter sido escrita em uma base de 2N-1 pontos.
Definindo-se
então x3(n) será a convolução linear de x1(n) e x2(n). Claramente, uma convolução linear também poderia ser obtida se as DFT’s forem computadas em uma base com mais de 2N-1 pontos, mas não poderia em geral ser atingida se as DFT’s fossem computadas em uma base com menos de 2N-1 pontos.
Em geral deseja-se convoluir duas sequências de tamanhos diferentes. Se x1(n) tem tamanho N1 e x2(n) tem tamanho N2, então a convolução de x1(n) e x2(n) terá tamanho
N1+N2-1. Deve-se então, nesse caso, multiplicar as transformadas de Fourier discretas computadas em uma base de, no mínimo, N1+N2-1 pontos.
O procedimento acima permite o cálculo da convolução linear de duas sequências finitas utilizando-se a Transformada Discreta de Fourier. Em algumas aplicações, deseja-se convoluir uma sequência finita com uma sequência de duração indefinida, como por exemplo, quando filtra-se um sinal de voz.. Teoricamente, pode-se armazenar todo o sinal e então implementar o processo descrito acima. No entanto, a DFT a ser computada será muito grande. Assim, quando deseja-se filtrar um sinal x(n) de grande duração, deve-se dividir tal sinal em seções de tamanho L, convoluir cada seção com a resposta impulsional finita, e então pôr juntas as seções filtradas da maneira apropriada.
Tal técnica de filtragem em blocos pode então ser implementada utilizando-se a Transformada Discreta de Fourier.