Transformada Rápida de Fourier (FFT)

Documentos relacionados
Transformada Discreta de Fourier (DFT)

Transformada Rápida de Fourier FFT Conceitos da FFT - Gauss (1805)

FFT Fast Fourier Transform

Transformada Discreta de Fourier (DFT)

FFT Realização Eficiente da DFT

FFT Realização Eficiente da DFT

Processamento (Digital) de Sinal. Caderno de exercícios para as horas não presenciais

Aula 15 Propriedades da TFD

DFT Transformada Discreta de Fourier Representação de sinais de duração limitada

Processamento de Sinais 2013/14

Sistemas Lineares e Invariantes de Tempo Discreto

Transformada de Fourier: fundamentos matemáticos, implementação e aplicações musicais

Representação de sinais

Plano Básico. (Análise de Fourier) Métodos Numéricos. Pedro André Martins Bezerra Décio Haramura Junior

Processamento (Digital) de Sinal. Caderno de exercícios para as aulas

Introdução ao Processamento Digital de Sinais Soluções dos Exercícios Propostos Capítulo 1

Exercícios para Processamento Digital de Sinal. 1 Transformada e Série de Fourier

O processo de filtragem de sinais pode ser realizado digitalmente, na forma esquematizada pelo diagrama apresentado a seguir:

Processamento Digital de Sinais. Notas de Aula. Transformada Z. Transformada Z - TZ

Processamento de sinais digitais Aula 3: Transformada de Fourier (Parte 1)

Introdução FILTRAGEM NO DOMÍNIO DA FREQUÊNCIA

Processamento Digital de Sinal Aulas 5,6 4.º Ano 2.º Semestre

Série de Fourier. Prof. Dr. Walter Ponge-Ferreira

REPRESENTAÇÃO DE SISTEMAS NO DOMÍNIO Z. n +

Revisão Análise em frequência e amostragem de sinais. Hilton de Oliveira Mota

SEL Processamento Digital de Imagens Médicas. Aula 4 Transformada de Fourier. Prof. Dr. Marcelo Andrade da Costa Vieira

Analisador de espectros por FFT

Processamento de sinais digitais

Capítulo 6 Filtragem, Amostragem e Reconstrução

Introdução aos Circuitos Elétricos

Sumário. 1 Sinais e sistemas no tempo discreto 1. 2 As transformadas z e de Fourier 79

Representação de Fourier para Sinais 1

Uma aplicação importante dos métodos de processamento digital de sinais é na determinação do conteúdo em frequência de um sinal contínuo

Resolução de Sistemas Lineares. Ana Paula

Processamento Digital de Sinais. Convolução. Prof. Dr. Carlos Alberto Ynoguti

Processamento Digital de Sinal Aulas 5,6 4.º Ano 2.º Semestre

Filtros Digitais. Filtros básicos, parâmetros no domínio do tempo e frequência, classificação de filtros

Processamento de Sinais DEL/Poli/UFRJ. Estruturas de Filtros Digitais

3 Conceitos básicos de filtragem digital multitaxa

Introdução ao Processamento Digital de Imagens. Aula 6 Propriedades da Transformada de Fourier

Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos

2/47. da matemática é ainda de grande importância nas várias áreas da engenharia. Além disso, lado de Napoleão Bonaparte. 1/47

Sistemas Lineares e Invariantes: Tempo Contínuo e Tempo Discreto

Sinais e Sistemas. Tempo para Sistemas Lineares Invariantes no Tempo. Representações em Domínio do. Profª Sandra Mara Torres Müller.

INSTITUTO FEDERAL DO ESPIRITO SANTO - ENGENHARIA ELÉTRICA -

Processamento Digital de Sinais. Notas de Aula. Transformada Z. Transformada Z - TZ

Tranformada de Fourier. Guillermo Cámara-Chávez

Transformada Discreta de Fourier

Análise de Sistemas LTI através das transformadas

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

Parâmetros importantes de um Analisador de Espectros: Faixa de frequência. Exatidão (frequência e amplitude) Sensibilidade. Resolução.

Resumo. Sinais e Sistemas Transformada de Fourier de Sinais Discretos. Sequência de Duração Finita. Série de Fourier

Aula de Processamento de Sinais I.B De Paula. Tipos de sinal:

Processamento Digital de Sinais. Notas de Aula. Análise Espectral Usando a DFT

Transformada de Discreta de Co senos DCT

Controle de Sistemas I

Transformada de Fourier Discreta (DFT)

Resumo. Filtragem Adaptativa. Filtros adaptativos. Tarefas desempenhadas pelos filtros

Sistemas Lineares e Invariantes

Sinais e Sistemas - Lista 3 Gabarito

Eletromagnetismo I. Prof. Daniel Orquiza. Eletromagnetismo I. Prof. Daniel Orquiza de Carvalho

ANÁLISE DE ALGORITMOS: PARTE 4

Amostras não Uniformes e Reconstrução em Espaços

E II Filtros Digitais

Sinais e Sistemas - Lista 1. Gabarito

Espaço de Fourier. Processamento de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. de Física e Matemática (FFCLRP/USP)

Transformada Discreta de Fourier

Prova 1 PMR2300 / PMR3201 1o. semestre 2015 Prof. Thiago Martins

Sinais e Sistemas. A Transformada de Fourier de Tempo Contínuo. Renato Dourado Maia. Universidade Estadual de Montes Claros. Engenharia de Sistemas

Introdução ao Processamento Digital de Sinais Soluções dos Exercícios Propostos Capítulo 2

Transformada Z. A transformada Z de uma sequência x n é definida como:

Capítulo 6 Filtragem, Amostragem e Reconstrução

Transformada z. Carlos Alberto Ynoguti. September 14, / 53

Processamento de sinais digitais

Divisão e conquista. Eficiência de divisão e conquista

Sinais e Sistemas. Sistemas Lineares Invariantes no Tempo. Renato Dourado Maia. Faculdade de Ciência e Tecnologia de Montes Claros

Filtragem de Imagens no Domínio da Freqüência. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Capítulo 3. Séries Numéricas

Resposta em Frequência de Sistemas LTI

exercícios de análise numérica II

2 - Modelos em Controlo por Computador

Transformada de Fourier. Theo Pavan e Adilton Carneiro TAPS

TRANSFORMADA DE FOURIER EM TEMPO DISCRETO (DTFT) E TRANSFORMADA DISCRETA DE FOURIER (DFT) Larissa Driemeier

Divisão e conquista. Há divisão quando o algoritmo tem pelo menos 2 chamadas recursivas no corpo

Respostas do Estudo Dirigido Cap Image Transform

2 Modelo de Sinais. 2.2 Modelo de Comunicação

3 o Teste (1 a data) Sistemas e Sinais (LEIC-TP) 2008/ de Junho de Respostas

Filtragem no domínio de frequência

Introdução ao Processamento Digital de Sinais Soluções dos Exercícios Propostos Capítulo 5

MAS 160/510 Conjunto de Problema Nove

Parte 1 - Matrizes e Sistemas Lineares

Processamento digital de imagens

Transformada Z. Transformada Z

Sistemas de tempo discreto

Estruturas de Sistemas Discretos

Mudança de taxa de amostragem. 2 Redução da taxa de amostragem por um fator inteiro

Filtros Digitais. Carlos Alexandre Mello. Carlos Alexandre Mello

Sumário Introdução Revisão de Números Complexos Programação em Delphi... 94

Processamento Digital de Sinais

Filtro FIR. Processamento Digital de Sinais - ENG de julho de 2016 IFBA. Fabrício Simões (IFBA) Filtro FIR 22 de julho de / 30

Transcrição:

Transformada Rápida de Fourier (FFT) A FFT é um algoritmo eficiente para calcular a DFT A DFT de uma sequência x n de comprimento finito N é definida como: N 1 N 1 X k = x n e j2π N kn = x n W N kn, 0 k N 1 n=0 n=0 A FFT mais eficiente é para N = 2 m, onde m é um inteiro Algoritmos mais utilizados: decimação no tempo e decimação na frequência

FFT com Decimação no Tempo Para ilustrar o método da FFT com decimação no tempo, consideramos N = 8 = 2 3. Decompondo a sequência x n em duas partes, uma com as amostras de n par (x 0 n = x(2n)) e outra com as amostras de n ímpar (x 1 n = x(2n + 1)) : X k = 7 x n W 8 kn n=0 = x 0 W 8 0k + x 2 W 8 2k + x 4 W 8 4k + x 6 W 8 6k +x 1 W 8 1k + x 3 W 8 3k + x 5 W 8 5k + x 7 W 8 7k onde W 8 = e j2π/8.

FFT com Decimação no Tempo Como W 8 2 = e j4π/8 = e j2π/4 = W 4, temos: X k = x 0 0 W 0k 4 + x 0 1 W k 4 + x 0 2 W 2k 3k 4 + x 0 3 W 4 +W k 8 x 1 0 W 0k 4 + x 1 1 W k 4 + x 1 2 W 2k 3k 4 + x 1 3 W 4 ou seja, onde X k = X 0 k 4 + W 8 k X 1 k 4 X 0 k : DFT de 4 pontos de x 0 n X 1 k : DFT de 4 pontos de x 1 n

FFT com Decimação no Tempo Generalizando para N = 2 m : N/2 1 N/2 1 X k = x 2l W N 2kl + x 2l + 1 W N k(2l+1) l=0 l=0 = X 0 k N/2 + W N k X 1 k N/2, 0 k N 1 Complexidade computacional: enquanto que o cálculo da DFT pela definição requer N 2 multiplicações complexas e N(N 1) somas complexas, pela equação acima temos: 2 N/2 2 + N = N 2 /2 + N multiplicações complexas 2 N/2 N/2 1 + N = N 2 /2 somas complexas

FFT com Decimação no Tempo Algoritmo FFT com decimação no tempo após primeiro estágio de decomposição:

FFT com Decimação no Tempo O procedimento da decimação no tempo pode ser repetido para as sucessivas DFTs menores, num total de m = log 2 N estágios, ou seja: N/4 1 N/4 1 X 0 k = x 0 2l W N/2 2kl + x 0 2l + 1 W N/2 k(2l+1) l=0 l=0 = X 00 k N/4 + W N/2 k X 01 k N/4, 0 k N/2 1 N/4 1 l=0 N/4 1 l=0 X 1 k = x 1 2l W N/2 2kl + x 1 2l + 1 W N/2 k(2l+1) = X 10 k N/4 + W N/2 k X 11 k N/4, 0 k N/2 1

FFT com Decimação no Tempo Algoritmo FFT com decimação no tempo após segundo estágio de decomposição:

FFT com Decimação no Tempo Diagrama completo do algoritmo FFT com decimação no tempo (m = log 2 N = 3 estágios):

FFT com Decimação no Tempo Complexidade computacional do algoritmo completo para N = 2 m : N log 2 N multiplicações complexas N log 2 N somas complexas A complexidade pode ser reduzida pela metade se explorarmos a seguinte propriedade do diagrama do algoritmo de decimação no tempo: Cada estágio é fomado por treliças (butterfly)

FFT com Decimação no Tempo Cada treliça pode ser simplificada para reduzir pela metade o número de multiplicações A complexidade computacional do algoritmo FFT com decimação no tempo para N = 2 m fica: (N/2) log 2 N multiplicações complexas N log 2 N somas complexas

FFT com Decimação no Tempo Algoritmo FFT com decimação no tempo com treliças simplificadas:

FFT com Decimação no Tempo Exemplo: A complexidade computacional para obter a DFT de N = 1024 pontos de uma sequência é: Pelo somatório da DFT: N 2 10 6 multiplicações e somas complexas Pelo algoritmo FFT: N log 2 2 N 5.10 3 multiplicações complexas e N log 2 N 10 4 somas complexas redução por um fator de 200 no número de multiplicações e 100 no número de somas

FFT com Decimação na Frequência No algoritmo da decimação na frequência, o somatório da DFT é separado em dois somatórios menores, da seguinte forma: N/2 1 N 1 X k = x n W N kn + x n W N kn n=0 n=n/2 N/2 1 = x n W N kn + W N kn/2 N/2 1 x n + N/2 W N kn n=0 n=0 N/2 1 = x n + W N kn/2 x n + N/2 W N kn n=0 k = 0,1,, N 1

FFT com Decimação na Frequência Observando que W N N/2 = e j(2π N )(N 2 ) = e jπ = 1: N/2 1 X k = x n + ( 1) k x n + N/2 W N kn n=0 Para k = 2r par: N/2 1 2rn X 2r = x n + x n + N/2 W N, r = 0,, N 2 1 n=0 Definindo x 0 n = x n + x n + N/2, n = 0,, N 2 1, temos N/2 1 rn X 2r = x 0 n W N/2 = X 0 r n=0

FFT com Decimação na Frequência Para k = 2r + 1 ímpar: N/2 1 X 2r + 1 = x n x n + N/2 W N (2r+1)n, r = 0,, N 2 1 n=0 Definindo x 1 n = x n x n + N/2 W N n, n = 0,, N 2 1, temos N/2 1 X 2r + 1 = x 1 n W N/2 rn = X 1 r n=0 O procedimento da decimação na frequência pode ser repetido para as sucessivas DFTs menores, num total de m = log 2 N estágios.

FFT com Decimação na Frequência Algoritmo FFT com decimação na frequência após primeiro estágio de decomposição:

FFT com Decimação na Frequência Diagrama completo do algoritmo FFT com decimação na frequência (m = log 2 N = 3 estágios):

FFT com Decimação na Frequência A complexidade computacional do algoritmo FFT com decimação na frequëncia para N = 2 m é igual à do algoritmo FFT com decimação no tempo: (N/2) log 2 N multiplicações complexas N log 2 N somas complexas

DFT Inversa utilizando o Algoritmo FFT A IDFT de tamanho N é definida como: x n = 1 N N 1 k=0 X k W N kn, 0 n N 1 O complexo conjugado da expressão acima é: x n = 1 N Portanto: x n = 1 N N 1 k=0 X k N 1 X k k=0 W N kn W N kn = 1 FFT X k N

DFT Inversa utilizando o Algoritmo FFT A IDFT pode ser calculada de forma eficiente usando um algoritmo FFT

Algoritmos FFT Radix-4 Os algoritmos FFT com decimação no tempo e na frequência para N = 2 m são os mais utilizados e conhecidos como algoritmos FFT Radix- 2 Quando N = 4 m, podemos utilizar algoritmos FFT Radix- 4 Para ilustrar o procedimento, derivamos o algoritmo FFT Radix- 4 com decimação na frequência

Algoritmos FFT Radix-4 Para k = 4r, r = 0,, N 4 1: N/4 1 X 4r = x n + x n + N/4 + x n + N/2 + x n + 3N/4 W N/4 rn n=0 Para k = 4r + 1, r = 0,, N 4 1: N/4 1 X 4r + 1 = x n jx n + N/4 x n + N/2 + jx n + 3N/4 W N n W N/4 rn n=0 Para k = 4r + 2, r = 0,, N 4 1: N/4 1 X 4r + 2 = x n x n + N/4 + x n + N/2 x n + 3N/4 W N 2n W N/4 rn n=0 Para k = 4r + 3, r = 0,, N 4 1: N/4 1 X 4r + 3 = x n + jx n + N/4 x n + N/2 + jx n + 3N/4 W N 3n W N/4 rn n=0

Algoritmos FFT Radix-4

Algoritmo FFT Mixed-Radix ou Cooley-Tukey Quando N 2 m, mas N = N 1 N 2, é possível obter a DFT de tamanho N por um algoritmo mais rápido do que pelo somatório da DFT. Usando o método da decimação na frequência, podemos escrever as amostras da DFT como: N 1 1 N 2 1 X k = X N 2 k 1 + k 2 = x[n 1 + N 1 n 2 ] n 1 =0 n 2 =0 onde 0 k 1 N 1 1 e 0 k 2 N 2 1 W N [n 1 +N 1 n 2 ] N 2 k 1 +k 2 Podemos observar que: W N n 1 N 2 k 1 = W N1 n 1 k 1, W N N 1 k 2 N 2 k 1 = 1, W N N 1 n 2 k 2 = W N2 n 2 k 2

Algoritmo FFT Mixed-Radix ou Cooley-Tukey Portanto, podemos reescrever a DFT como: N 1 1 N 2 1 X N 2 k 1 + k 2 = x[n 1 + N 1 n 2 ] n 1 =0 n 2 =0 W N1 n 1 k 1 W N n 1 k 2 W N2 n 2 k 2 ou como: N 1 1 N 2 1 n X N 2 k 1 + k 2 = x[n 1 + N 1 n 2 ] W 2 k 2 n N2 W 1 k 2 N n 1 =0 n 2 =0 W N1 n 1 k 1 A expressão acima pode ser interpretada como: I. Cálculo de N 1 DFTs de N 2 pontos II. Cálculo de N 2 DFTs de N 1 pontos III. n Multiplicação pelos N fatores W 1 k 2 N

Algoritmo FFT Mixed-Radix ou Cooley-Tukey Diagrama do algoritmo Cooley-Tukey para N = 3 5 = 15:

Algoritmo de Goertzel Cálculo recursivo da DFT, usado quando se quer calcular apenas algumas amostras da DFT ou uma nova DFT para cada nova amostra do sinal (running DFT) Podemos reescrever a expressão da DFT como: X k = W N kn N 1 l=0 Definindo a sequência: onde y k n = n 1 l=0 x e n = x l W N kl N 1 = x l W N k(n l) l=0 x e l W N k(n l) = x e n h k n x n, 0 n N 1 0, 0 < n e n > N

Algoritmo de Goertzel e Podemos observar que: h k n = W N kn, n 0 0, 0 < n X k = y k [n] n=n No domínio da transformada z, temos: onde Y k z = X e z 1 W N k z 1 = H k(z)x e (z) 1 H k (z) = 1 W k N z 1

Algoritmo de Goertzel e h k n = W N kn, n 0 0, 0 < n Podemos observar que: X k = y k [n] n=n No domínio da transformada z, temos: X e (z) Y k (z) = 1 W k N z 1 As amostras da DFT podem ser obtidas pela recursão:

Algoritmo de Goertzel Cálculo da k-ésima amostra da DFT pelo algoritmo de Goertzel:

Algoritmo de Goertzel As amostras da DFT podem ser obtidas pela recursão: y k n = x e n + W N k y k n 1, 0 n N com y k 1 = 0 e x e N =0. Quando n = N, a saída do filtro y k N é igual a X k Para obter cada amostra de X[k], são necessárias N multiplicações e N somas complexas Para calcular todas as N amostras de X[k], é necessário o mesmo número de operações que o cálculo direto Observando que: H k z = k z 1 1 1 W k N z = 1 + W N 1 1 2 cos 2π N nk z 1 + z 2

Algoritmo de Goertzel As amostras da DFT podem ser obtidas pelas equações: v k n = x e n + 2 cos 2π N k v k n 1 v k n 2, 0 n N X k = y k N = v k N W N k v k N 1 Apenas a parte recursiva deve ser calculada para 0 n N A parte não recursiva somente necessita ser calculada para n = N Para x[n] real, são necessárias N + 1 multiplicações e 2N + 1 somas reais para cada X[k] Portanto, há uma redução pela metade no número de multiplicações em relação ao cálculo direto

Algoritmo de Goertzel Cálculo da k-ésima amostra da DFT pelo algoritmo de Goertzel:

Cálculo Eficiente da Convolução Linear A convolução linear de uma sequência de comprimento finito com uma de comprimento infinito pode ser calculada de forma eficiente através de FFTs A principal aplicação desta técnica é no cálculo em tempo real da saída de filtros FIR de ordens elevadas para entradas muito longas Seja h(n) uma sequência de comprimento finito M e x(n) uma sequência de comprimento infinito. A convolução linear das duas sequências é: M 1 y n = h l x(n l) Dois métodos eficientes para obter y n serão apresentados: overlap-add e overlap-save l=0

Método Overlap-Add No método overlap-add, a sequência x n é segmentada em subsequências x m (n) contíguas de comprimento finito N, ou seja: onde x(n) = x m n = m=0 x m (n mn) x n + mn, 0 n N 1 0, 0 < n e n > N Substituindo x(n) acima na expressão da convolução: M 1 y n = h l x m (n l mn) l=0 M 1 m=0 = h(l)x m (n l mn) m=0 l=0 = y m (n mn) m=0

Método Overlap-Add Cada subsequência de saída y m n é a convolução de x m n e h n e tem comprimento M + N 1 y m n pode ser calculada estendendo as sequências x m n e h n, com M 1 e N 1 zeros, respectivamente, e usando FFTs de tamanho M + N 1: y m n = IFFT{FFT x m,e n FFT h e n } As subsequências são somadas após compensar os atrasos y(n) = m=0 y m (n mn) Haverá sobreposição de M 1 amostras de subsequências consecutivas, que serão somadas (daí o nome overlap-add)

Método Overlap-Add

Método Overlap-Save No método overlap-save, a sequência x n é segmentada em subsequências x m (n) de comprimento finito N + M 1 com sobreposição de M 1 amostras, ou seja: onde x m n = x(n) = m=0 x m (n mn) x n + mn, 0 n N + M 2 0, 0 < n e n > N + M 2 Calcula-se a convolução circular de cada subsequência x m n e de h e n, obtendo-se sequências w m n de comprimento N + M 1 As primeiras M 1 amostras de w m n são incorretas e são descartadas, enquanto que as N seguintes correspondem a amostras corretas da convolução linear de x n e h n

Método Overlap-Save As subsequências de saída y m n formadas pelas amostras salvas de w m n (daí o nome overlap-save) são dadas por y m n = 0, n < M 1 e n > N + M 2 w m n + M 1, 0 n N 1 A sequência de saída é pela concatenação das subsequências y m n, ou seja, y(n) = y m (n mn) m=0

Método Overlap-Save

Métodos Overlap-Add and Overlap-Save Complexidade computacional: Para x n de comprimento K, é necessário calcular K N DFTs de tamanho L = N + M 1 (uma para cada x m (n)) e K IDFTs de tamanho N L (uma para cada y m n ). A DFT de h e (n) pode ser calculada apenas uma vez (igual para todo m). O número total de multiplicações complexas necessárias para obter as K amostras de y n pelo método overlap-add ou overlap-save (usando o algoritmo FFT com L = 2 m ) é N mult = 2 K N + 1 L 2 log 2 L + K N L Por exemplo, para K = 10 6 e M = 100, teríamos: Para L = 128 (N = 29): N mult =3,5.10 7 Para L = 256 (N = 157): N mult =1,5. 10 7 Para L = 512 (N = 413): N mult =1,2. 10 7 Para L = 1024 (N = 925): N mult =1,2. 10 7 Pelo cálculo de y n pelo somatório da convolução: N mult = KM = 10 8

Métodos Overlap-Add and Overlap-Save Para K = 10 6 e M = 256, teríamos: Para L = 512 (N = 413): N mult =2. 10 7 Para L = 1024 (N = 769): N mult =1,5. 10 7 Pelo cálculo de y n pelo somatório da convolução: N mult = KM = 2,56.10 8 Para K = 10 9 e M = 500, teríamos: Para L = 1024 (N = 525): N mult =2,2. 10 10 Para L = 2048 (N = 1549): N mult =1,6. 10 10 Pelo cálculo de y n pelo somatório da convolução: N mult = KM = 5.10 11