Prof. José Mauricio Neto Universidade Federal da Paraíba Departamento de Engenharia Elétrica Centro de Energias Alternativas e Renováveis Algoritmo da Transformada Rápida de Fourier (FFT) Prof. José Mauricio Neto mauricio@cear.ufpb.br 1 1 1
Transformada Rápida de Fourier A FFT (Fast Fourier Transform) é um algoritmo eficiente para o cálculo dos coeficientes da DFT reduzindo a complexidade computacional (somas e multiplicações). Considera-se uma sequência x[n] consistindo de 2 amostras, em que “” é um número inteiro positivo, ou seja o número de amostras da sequência discreta é uma potência de 2 (N=2,4,8,16, etc) 2 2
Transformada Rápida de Fourier Se x[n] não é uma sequência contendo 2 amostras, então x[n] é preenchidos com zeros até que o tamanho seja um número potência de 2. Existem dois métodos para a implementação do algoritmo da FFT: Método de Decimação na Frequência Método de Decimação no Tempo 3 3
Transformada Rápida de Fourier Método da Decimação na Frequência 4 4
Método de Decimação na Frequência A partir da DFT 5 5
Método de Decimação na Frequência A partir da DFT 6 6
Método de Decimação na Frequência Reescrevendo a formula da DFT 7 7
Método de Decimação na Frequência Modificando o limite da somatória do termo da direita 8 8
Método de Decimação na Frequência Modificando a variável de para n: 9 9
Método de Decimação na Frequência Avaliando-se o coeficiente 10 10
Método de Decimação na Frequência Finalmente temos a representação da DFT: 11 11
Método de Decimação na Frequência Realizando-se a mudança de variável de k=0,...,(N-1) para m=0,...,(N/2-1) Se k=2m (um número par) Se k=2m+1 (um número impar) 12 12 12
Se k=2m (um número par) 13 13
Se k=2m+1 (um número impar) 14 14
Notação das operações 15 15
Núcleo básico da FFT (operação borboleta - butterfly) Para uma FFT de tamanho N=2 O número de fatores de giro ( ) na i-ésima etapa é P=2M-i Para cada etapa, o número “t ” nos fatores de giro é 16 16
Se x[n] é uma sequência de N=4 amostras m=0,...,(N/2-1) Desenvolvendo a somatória m=0,1 17 17
Núcleo básico da FFT (operação borboleta - butterfly) Para uma FFT de tamanho N=4=22, M=2 Na etapa 1, P=2M-1=22-1=2 fatores de giro Na etapa 2, P=2M-2=22-2=1 fator de giro 18 18
Se x[n] é uma sequência de N=4 amostra Para m=0 Para m=1 19 19 19
Se x[n] é uma sequência de N=4 amostra Primeira Iteração 20 20 20
Se x[n] é uma sequência de N=4 amostra Segunda Iteração 21 21 21
Se x[n] é uma sequência de N=8 amostra m=0,...,(N/2-1) Desenvolvendo a somatória m=0,1,2,3 22 22
Núcleo básico da FFT (operação borboleta - butterfly) Para uma FFT de tamanho N=8=23, M=3 Na etapa 1, P=2M-1=23-1=4 fatores de giro Na etapa 2, P=2M-2=23-2=2 fatores de giro Na etapa 3, P=2M-3=23-3=1 fator de giro 23 23
Para m=0 (etapa 1) 24 24 24
Para m=1 (etapa 2) 25 25 25
Para m=2 (etapa 3) 26 26 26
A FFT de uma sequência de 8 pontos 27 27 27
28 28
Transformada Rápida de Fourier Método da Decimação no Tempo 29 29
Método de Decimação no Tempo Neste algoritmo se divide a sequência x[n] em índices pares x[2m] e impares x[2m=1] 30 30
Método de Decimação no Tempo Usando a relação Definem-se novas funções: 31 31
Método de Decimação no Tempo Substituindo-se as novas funções temos que a primeira metade da DFT pode ser calculada por: Sendo que: A segunda metade é calculada por: 32 32
Núcleo básico da FFT (operação borboleta - butterfly) Para uma FFT de tamanho N=2 O número de fatores de giro ( ) na i-ésima etapa é P=2i-1 Para cada etapa, o número “t ” nos fatores de giro é 33 33
Núcleo básico da FFT (operação borboleta - butterfly) Para uma FFT de tamanho N=8=23, M=3 Na etapa 1, P=21-1=20=1 fator de giro Na etapa 2, P=22-1=2 fatores de giro Na etapa 3, P=23-1=4 fatores de giro 34 34
Para uma sequência x[n] de 8 pontos 35 35
Comparação do Custo Computacional entre a DFT e a FFT Características DFT de N pontos FFT de N pontos Algoritmo Solução de N equações com N variáveis 0,5N borboletas/etapa P etapas Total de borboletas = 0,5P.N Multiplicações N por equação 1 por borboleta Somas N-1 por equação 2 por borboleta Total de multiplicações N2 0,5*N*Log2(N) Total de somas N(N-1) N.log2(N) 36 36