Você está na página 1de 40

Sinais e Sistemas

para Engenharia
MÓDULO 12 - DFT- TRANSFORMADA DISCRETA DE FOURIER
PROFESSOR LUCIANO NEVES DA FONSECA
Transformada Discreta de Fourier (DFT)
Embora o cálculo da Transformada Direta de Fourier do Tempo Discreto (TFTD direta) seja relativamente
simples e de fácil implementação numérica, a TFTD inversa, que é calculada através de uma integral,
apresenta um dificuldade maior.
Transformada Discreta de Fourier (DFT) surge então com uma alternativa que simplifica tanto o cálculo
da transformada direta quanto da inversa.
A DFT tem sua origem na Transformada de Fourier do Tempo discreto (TDFT) 𝐹𝑠 𝑗𝑤 das amostras
discretas 𝑓[𝑛]do sinal contínuo 𝑓(𝑡).
∞ 𝑚
𝑤 = 2𝜋
𝐹𝑠 𝑗𝑤 = ෍ 𝑓[𝑛] 𝑒 −𝑗𝑤𝑛 𝑁
𝑛=−∞ 0≤𝑚<𝑁
Se tivermos N amostras dos sinal 𝑓[𝑛], com 0 ≤ 𝑛 ≤ 𝑁 − 1 , poderemos obter também N amostras do
𝑚
primeiro período de 𝐹𝑠 𝑗𝑤 0 ≤ 𝑤 < 2𝜋, com 𝑤 = 2𝜋 𝑁 para 0 ≤ 𝑚 ≤ 𝑁 − 1 . Ao fazermos esta
substituição, assumirmos que o sinal 𝑓(𝑛) é periódico no tempo com período N,
∞ 𝑁−1
𝑚 −𝑗
𝑚
2𝜋 𝑛 −
𝑗2𝜋𝑛𝑚
𝐹[𝑚] = 𝐹𝑠 𝑗𝑤 = 𝑗2𝜋 = ෍ 𝑓[𝑛] 𝑒 𝑁 = ෍ 𝑓[𝑛] 𝑒 𝑁
𝑁
𝑛=−∞ 𝑛=0
A expressão acima irá produzir o sinal discreto 𝐹[𝑚] que é a DFT do sinal discreto 𝑓 𝑛 .
A DFT 𝐹[𝑚] é também periódica com período N, com N amostras equiespaçadas no domínio da
𝑚
frequência (∆𝑤 = 2𝜋 𝑁 com 0 ≤ 𝑚 < 𝑁) . As N amostras são obtidas de um período da TDFT 𝐹𝑠 𝑗𝑤 .
A DFT é simplesmente obtida a partir de N amostras de 1 período da TFTD
Seja um sinal discreto e não periódico 𝑓 𝑛 , com N amostras ( 0 ≤ 𝑛 < 𝑁) igualmente espaçadas no
tempo de 𝑡𝑜 . A sua TDFT normalizada 𝐹𝑠 𝑗𝑤 será contínua e periódica com período 2𝜋:
∞ 𝑁−1

𝐹𝑠 𝑗𝑤 = ෍ 𝑓 𝑛 𝑒 −𝑗𝑤𝑛 = ෍ 𝑓 𝑛 𝑒 −𝑗𝑤𝑛
𝑛=−∞ 𝑛=0

𝑓[𝑛]

𝐹𝑠 𝑗𝑤

𝑓[𝑛]
𝐹 𝑚

Se estivermos interessados em N amostras de frequência 𝐹 𝑚 do primeiro período de 𝐹𝑠 𝑗𝑤 , isto é,


𝑚
amostras em 𝑤 = 2𝜋 𝑁 , com 0 ≤ 𝑚 < 𝑁, teremos exatamente a DFT:
𝑁−1
𝑚 𝑗2𝜋𝑛𝑚
− 𝑁
𝐹 𝑚 = 𝐹𝑠 𝑗𝑤 = 𝑗2𝜋 = ෍𝑓 𝑛 𝑒
𝑁
𝑛=0
• Uma primeira aproximação para o cálculo da DFT seria então utilizarmos diretamente o algoritmo
da TDFT, porém utilizando um eixo w com com somente N amostras equiespaçadas no intervalo
[0,2𝜋]. Outra alternativa seria utilizarmos o algoritmo fft do scilab. A terceira alternativa seria
desenvolvermos um algoritimo a partir da definição da DFT, o que será feito mais tarde.
• Notar que começamos com 50 amostras no tempo e terminamos com 50 amostras na frequência.
Sinais discretos tanto no tempo quanto na frequência.
𝑁−1
𝑚 𝑗2𝜋𝑛𝑚
𝐹 𝑚 = 𝐹𝑠 𝑗𝑤 = 𝑗2𝜋 = ෍ 𝑓 𝑛 𝑒− 𝑁
𝑁
𝑛=0
𝐹𝑛

1 𝑇
𝐹 𝑛 = න 𝑓 𝑡 𝑒 −𝑗𝑛𝑤𝑜 𝑡 𝑑𝑡
𝑇 0


𝐹 𝑗𝑤 = න 𝑓 𝑡 𝑒 −𝑗𝑤𝑡 𝑑𝑡
−∞
𝑓[𝑛]

𝐹𝑠 𝑗𝑤 = ෍ 𝑓 𝑛 𝑒 −𝑗𝑤𝑛𝑡𝑜
𝑛=−∞
𝑓[𝑛]

𝐹𝑠 𝑗𝑤 = ෍ 𝑓 𝑛 𝑒 −𝑗𝑤𝑛
𝑛=−∞

𝑓[𝑛]
𝐹𝑚 𝑁−1
𝑗2𝜋𝑛𝑚
𝐹 𝑚 = ෍ 𝑓 𝑛 𝑒− 𝑁
𝑛=0
Cálculo da DFT a partir da definição
𝑊8 6 = 𝑗
𝑁−1 𝑁−1
−𝑗2𝜋𝑛𝑚 2 2
𝑛𝑚 𝑊8 5 = − +𝑗
𝐹 𝑚 = ෍𝑓 𝑛 𝑒 𝑁 = ෍ 𝑓 𝑛 𝑊𝑁 2 2
𝑊8 7 =
2
+𝑗
2
2 2
𝑛=0 𝑛=0 −𝑗2𝜋
𝑊𝑁 1 = 𝑒 𝑁
nm
𝑛𝑚
−𝑗2𝜋𝑛𝑚 −𝑗2𝜋 𝑊8 4 = −1 𝑊8 0 = 1
𝑊𝑁 =𝑒 𝑁 = 𝑒 𝑁
Onde:
𝐹 𝑚 - é a m-ésima componente de frequência sinal discreto no
domínio da frequência
2 2
𝑚 - índice de frequência discreta m=0,1,2,...,N-1 𝑊81 = −𝑗
2 2
𝑛 - índice do tempo discreto n=0,1,2,..,N-1
2 2
𝑁 - número de amostras no tempo e número de amostras na 𝑊8 3 = −
2
−𝑗
2 𝑊8 2 = −j
frequência
𝑓 𝑛 - sinal discreto no domínio tempo

𝑊𝑁 𝑛𝑚 =
𝑓 𝑛 = [1 , 3, 5 , 3, 1, −2, −5, −1] N=8
𝑊8 6 = 𝑗
2 2
𝑊8 5 = − +𝑗
2 2 2 2
𝑊8 7 = +𝑗
2 2

𝑊8 4 = −1 𝑊8 0 = 1

2 2
𝑊81 = −𝑗
2 2
2 2
𝑊8 3 = − −𝑗
2 2 𝑊8 2 = −j
Cálculo da DFT a partir da definição

𝑁−1
2𝜋𝑚 ∞
−𝑗 𝑁 𝑛
𝐹 𝑚 = ෍𝑓 𝑛 𝑒
𝐹𝑠 𝑗𝑤 = ෍ 𝑓 𝑛 𝑒 −𝑗(𝑤)𝑛
𝑛=0
𝑛=−∞

𝑁−1

𝐹 𝑚 = ෍ 𝑓 𝑛 𝑊𝑁𝑛𝑚 𝑌𝑠 𝑐𝑜𝑛𝑡í𝑛𝑢𝑎 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑑𝑎 𝑒𝑚 𝑤


𝑛=0
𝑁 𝑎𝑚𝑜𝑠𝑡𝑟𝑎𝑠 𝑑𝑒 𝑌 𝑐𝑜𝑚 𝑤 𝑛𝑜 𝑖𝑛𝑡𝑒𝑟𝑣𝑎𝑙𝑜 [0,2𝜋]
−𝑗2𝜋
1
𝑊𝑁 = 𝑒 𝑁
−𝑗2𝜋𝑛𝑚 −𝑗2𝜋 nm
𝑛𝑚
𝑊𝑁 =𝑒 𝑁 = 𝑒 𝑁

Onde:
𝐹 𝑚 - é a m-ésima componente de frequência sinal discreto no domínio da frequência
𝑚 - índice de frequência discreta m=0,1,2,...,N-1
𝑛 - índice do tempo discreto n=0,1,2,..,N-1
𝑁 - número de amostras no tempo e número de amostras na frequência
𝑓 𝑛 - sinal discreto no domínio tempo
Interpretação da Frequência Digital

𝑊8 6 = 𝑗
2 2
𝑚 = [0: 𝑁 − 1] 𝑊8 5 = − +𝑗
2 2 2 2
𝑊8 7 = +𝑗
2 2
𝑚 = [0, 1, 2, 3, 4, 5, 6, 7]

m 𝑊8 4 = −1
𝑓d = 𝑊8 0 = 1
N
1 2 3 4 5 6 7
𝑓𝑑 = [0, , , , , , , ]
8 8 8 8 8 8 8
2 2
𝑊81 = −𝑗
𝑓 = 𝑓𝑑 ∗ 𝑓𝑠 2 2

1𝑓𝑠 2𝑓𝑠 3𝑓𝑠 4𝑓𝑠 5𝑓𝑠 6𝑓𝑠 7𝑓𝑠 2 2


𝑊8 3 = − −𝑗
𝑓 = [0 , , , , , , , ] 2 2 𝑊8 2 = −j
8 8 8 8 8 8 8
Cálculo da IDFT a partir da definição
𝑊8 6 = 𝑗
𝑁−1 𝑁−1
1 𝑗2𝜋𝑛𝑚 1 𝑊8 5 = −
2
+𝑗
2
𝑓𝑛 = ෍𝐹𝑚 𝑒 𝑁 = ෍ 𝐹 𝑚 𝑊𝑁 −𝑛𝑚 2 2 2 2
𝑁 𝑁 𝑊8 7 =
2
+𝑗
2
𝑚=0 𝑚=0 −𝑗2𝜋
𝑊𝑁 1 = 𝑒 𝑁
nm
𝑛𝑚
−𝑗2𝜋𝑛𝑚 −𝑗2𝜋 𝑊8 4 = −1 𝑊8 0 = 1
𝑊𝑁 =𝑒 𝑁 = 𝑒 𝑁
Onde:
𝐹 𝑚 - é a m-ésima componente de frequência sinal discreto no
domínio da frequência
2 2
𝑚 - índice de frequência discreta m=0,1,2,...,N-1 𝑊81 = −𝑗
2 2
𝑛 - índice do tempo discreto n=0,1,2,..,N-1
2 2
𝑁 - número de amostras no tempo e número de amostras na 𝑊8 3 = −
2
−𝑗
2 𝑊8 2 = −j
frequência
𝑓 𝑛 - sinal discreto no domínio tempo

𝑊𝑁 𝑛𝑚 =

𝑾𝑵 −𝒏𝒎 = 𝒄𝒐𝒏𝒋 𝑾𝑵 𝒏𝒎
F 𝑚 = [5. + 0. 𝑖, 0.707 − 16.36𝑖, 2. + 𝑖, −0.707 + 3.636𝑖, −1 + 0. 𝑖, −0.707 − 3.636𝑖, 2. − 𝑖 , 0.707 + 16.36𝑖] N=8
𝑊8 6 = 𝑗
2 2
𝑊8 5 = − +𝑗
2 2 2 2
𝑊8 7 = +𝑗
2 2

𝑊8 4 = −1 𝑊8 0 = 1

2 2
𝑊81 = −𝑗
2 2
2 2
𝑊8 3 = − −𝑗
2 2 𝑊8 2 = −j
Cálculo da IDFT ( DFT inversa)
A DFT oferece um algoritmo simples para o cálculo da Transformada Inversa.
Utiliza-se basicamente o memos algoritmo da transformada direta.
𝑁−1
1 𝑗2𝜋𝑛𝑚
𝑓𝑛 = ෍𝐹𝑚 𝑒 𝑁
𝑁
𝑚=0

𝑁−1
1
𝑓 𝑛 = ෍ 𝐹 𝑚 𝑊𝑁−𝑛𝑚
𝑁
𝑚=0

Onde:
𝐹 𝑚 - é a m-ésima componente de frequência sinal discreto no domínio da frequência
𝑚 - índice de frequência discreta m=0,1,2,...,N-1
𝑛 - índice do tempo discreto n=0,1,2,..,N-1
𝑁 - número de amostras no tempo e número de amostras na frequência
𝑓 𝑛 - sinal discreto no domínio tempo
Exemplos com Sinais Diversos
1) Temperatura mensal do DF - 𝑓𝑠 = 12 𝑎𝑚𝑜𝑠𝑡𝑟𝑎𝑠/ 𝑎𝑛𝑜
1 amostra por mês – N=686 amostras -Duração 57 anos
2) Som Morcego - 𝑓𝑠 = 230.4 𝑘𝐻𝑧
1 amostra a cada 4.24𝜇𝑠 – N= 2048 amostras Duração 8.9ms
3) Música - 𝑓𝑠 = 8000 𝐻𝑧 - Domínio Frequência
1 amostra a cada 0.125𝑚𝑠 – N= 268237 amostras - Duração 33.5 s
a) Música com filtro passa Baixas no domínio da Frequência
b) Música com filtro passa Altas no domínio da Frequência
c) Música com filtro passa Bandas no domínio da Frequência
d) Música com filtro rejeita Bandas no domínio da Frequência
3) Música - 𝑓𝑠 = 8000 𝐻𝑧 - Domínio Tempo
a) Música com filtro passa Baixas no domínio do Tempo
b) Música com filtro passa Baixas no domínio do Tempo – Filtro Complementar
c) Música com filtro passa Altas no domínio do Tempo – Inversão Espectral
d) Música com filtro passa Bandas no domínio do Tempo
e) Música com filtro rejeita Bandas no domínio do Tempo
1) Temperatura mensal do DF -1 amostra por mês –
N=686 amostras - Duração 57 anos
𝑓𝑠 = 12/𝑎𝑛𝑜 (12 amostras por ano)
2) Som Morcego
𝑓𝑠 = 230.4 kHz, (𝑇𝑠 = 4.24𝜇𝑠) – N= 2048 amostras
Duração 8.9ms
playsnd(bat,230400)
playsnd(bat,4000)
8) Música
𝑓𝑠 = 8000 𝐻𝑧, (𝑇𝑠 = 0.125𝑚𝑠) – N= 268237 amostras
Duração 33.54 s
𝑓 = 50 𝐻𝑧
𝑓 = 100 𝐻𝑧
𝑓 = 200 𝐻𝑧 playsnd(y0,8000)
𝑓 = 400 𝐻𝑧
3a) Passa Baixas no Domínio da Frequência

O filtro passa baixa mais simples que podemos


aplicar no domínio da frequência (“filtro ideal”) é
obtido pela simples supressão das frequência mais
altas da transformada do sinal.

𝑌 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)

𝐻 𝑗2𝜋𝑓
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤) 𝑌 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)

Sistema
3b) Passa Altas no Domínio da Frequência

O filtro passa altas mais simples que podemos aplicar


no domínio da frequência (“filtro ideal”) é obtido
pela simples supressão das frequência mais baixas
da transformada do sinal.

𝑌 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)

𝐻(𝑗2𝜋𝑓)
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤) 𝑌 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)

Sistema
3c) Passa Bandas no Domínio da Frequência

O filtro passa bandas mais simples que podemos


aplicar no domínio da frequência (“filtro ideal”) é
obtido pela simples supressão de todas as
frequências , salvo as que se quer guardar, da
transformada do sinal.

𝐻 𝑗𝑤 = 𝐻ℎ𝑝 𝑗𝑤 𝐻𝑙𝑝 (𝑗𝑤)

𝑯 𝒋𝟐𝝅𝒇
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤) 𝑌𝑓 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)
Sistema
3d) Rejeita Bandas no Domínio da Frequência

O filtro rejeita bandas mais simples que podemos


aplicar no domínio da frequência (“filtro ideal”) é
obtido pela simples supressão das frequências
indesejadas da transformada do sinal.

𝐻 𝑗𝑤 = 𝐻ℎ𝑝 𝑗𝑤 𝐻𝑙𝑝 (𝑗𝑤)

Sinal de Entrada Sinal de Saída


𝑌(𝑗𝑤) 𝑌𝑓 𝑗𝑤 = 𝑌 𝑗𝑤 𝐻(𝑗𝑤)
Sistema
3) Música - Sistema definidos no Domínio da Frequência – Passa Baixas/ Passa Altas
4a) Passa Baixas no Domínio do Tempo
2𝜋𝑛
𝐾 𝐾 sin 𝑀 − 0.5
1 ; − ≤ 𝑚 ≤ 𝐼𝐷𝐹𝑇 1 𝑁
𝐻𝑙𝑝 𝑚 =ቐ 2 2 ℎ𝑙𝑝 𝑛 = 𝜋𝑛
𝑁 sin 𝑁
0; 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
𝑓𝑜
𝑀= 𝑁
𝑓𝑠
Podemos aplicar o filtro passa baixas no domínio do tempo pela convolução do sinal pela
transformada inversa do h[n] “filtro ideal” . Podemos obter h[n] pela transformada inversa do
filtro, ou analiticamente. Notar que h[n] tem o tamanho do sinal de entrada. Podemos truncá-la
em K valores (pois o valores são pequenos para n>K) para termos uma Convolução mais rápida.

2𝜋𝑛
sin
1 𝑁 𝑀 − 0.5
ℎ𝑙𝑝 𝑛 = 𝜋𝑛
𝑁 sin
𝑁
𝑦𝑓 𝑛 = 𝑦 𝑛 ∗ ℎ𝑙𝑝 𝑛
𝑦𝑛 ℎ𝑙𝑝 [𝑛]
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤)

Sistema
A largura 𝐾 que vamos truncar o sinc é determinada pela fração 𝐾 = 4/δ𝑓 , onde δ𝑓 é a
razão entre a largura ∆𝑓 desejada da banda de transição e a frequência de amostragem.
4
Para uma fração de δ𝑓 = ∆𝑓/𝑓𝑠 =1% (∆𝑓=80Hz com 𝑓𝑠 = 8000) 𝐾 = = 400
0.01
4b) Passa Altas no Domínio do Tempo
filtro complementar

𝐼𝐷𝐹𝑇
Hhp = 1 − Hlp ℎℎ𝑝 [𝑛] = 𝛿 𝑛 − ℎ𝑙𝑝 𝑛

𝑦𝑓 𝑛 = 𝑦 𝑛 ∗ ℎℎ𝑝 𝑛
𝑦𝑛 ℎℎ𝑝 [n]
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤)

Sistema

A largura 𝐾 que vamos truncar o sinc é determinada pela fração 𝐾 = 4/δ𝑓 , onde δ𝑓 é a
razão entre a largura ∆𝑓 desejada da banda de transição e a frequência de
4
amostragem. Para uma fração de δ𝑓 = ∆𝑓/𝑓𝑠 =1% (∆𝑓=80Hz com 𝑓𝑠 = 8000) 𝐾 = =
0.01
4c) Passa Altas no Domínio do Tempo
inversão espectral

𝑁 𝐼𝐷𝐹𝑇 𝑗2𝜋𝑛 𝑁
Hhp m = Hlp 𝑚 − ℎℎ𝑝 𝑛 = 𝑒 𝑁 2 ℎ𝑙𝑝 𝑛
2
Hhp m = 𝑒 𝑗𝜋𝑛 ℎ𝑙𝑝 𝑛 = −1 𝑛 ℎ𝑙𝑝 𝑛

𝑦𝑓 𝑛 = 𝑦 𝑛 ∗ ℎℎ𝑝 𝑛
𝑦𝑛 ℎℎ𝑝 [n]
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤)

Sistema
A largura 𝐾 que vamos truncar o sinc é determinada pela fração 𝐾 = 4/δ𝑓 , onde δ𝑓 é a
razão entre a largura ∆𝑓 desejada da banda de transição e a frequência de amostragem.
4
Para uma fração de δ𝑓 = ∆𝑓/𝑓𝑠 =1% (∆𝑓=80Hz com 𝑓𝑠 = 8000) 𝐾 = = 400
0.01
4d) Passa Bandas no Domínio do Tempo

𝐼𝐷𝐹𝑇
Hbp = Hlp1 − Hlp0 ℎ𝑏𝑝 𝑛 = ℎℎ𝑝1 𝑛 − ℎ𝑙𝑝𝑜 𝑛

ℎ𝑏𝑝 [n] 𝑦𝑓 𝑛 = 𝑦 𝑛 ∗ ℎ𝑏𝑝 𝑛


𝑦𝑛
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤)

Sistema
A largura 𝐾 que vamos truncar o sinc é determinada pela fração 𝐾 = 4/δ𝑓 , onde δ𝑓 é a razão
entre a largura ∆𝑓 desejada da banda de transição e a frequência de amostragem. Para uma
4
fração de δ𝑓 = ∆𝑓/𝑓𝑠 =0,5% (∆𝑓=40Hz com 𝑓𝑠 = 8000) 𝐾 = = 800
0.005
4e) Rejeita Bandas no Domínio do Tempo

𝐼𝐷𝐹𝑇
Hbp = Hhp1 + Hlp0 ℎ𝑏𝑟 𝑛 = ℎ𝑙𝑝1 𝑛 + ℎ𝑙𝑝𝑜 𝑛

ℎ𝑏𝑟 [n] 𝑦𝑓 𝑛 = 𝑦 𝑛 ∗ ℎ𝑏𝑟 𝑛


𝑦𝑛
Sinal de Entrada Sinal de Saída
𝑌(𝑗𝑤)

Sistema
A largura 𝐾 que vamos truncar o sinc é determinada pela fração 𝐾 = 4/δ𝑓 , onde δ𝑓 é a razão
entre a largura ∆𝑓 desejada da banda de transição e a frequência de amostragem. Para uma
4
fração de δ𝑓 = ∆𝑓/𝑓𝑠 =0,5% (∆𝑓=40Hz com 𝑓𝑠 = 8000) 𝐾 = = 800
0.005
Conteúdo Opcional
FFT - Transformada Rápida de Fourier
 A FFT não é uma nova transformada, é simplesmente uma maneira eficiente
de se calcular a DFT
 Foi publicado por Cooley e Tukey em 1965; “An Algorithm for the Machine
Calculation of Complex Fourier Series”, Mathematic Computation, Vol 19, 1965
 Há muitas variações na literatura. Vamos discutir 3 implementações:
 Um algoritmo recursivo com decimação no tempo.
 Um algoritmo Radix-2 com decimação tempo DIF, no qual o tamanho do
sinal no tempo de ser uma potência de dois, isto é, 𝑁 = 2𝑘 , onde k é um
inteiro positivo.
 Um algoritmo Radix-2 com decimação na Frequência DIT, no qual o
tamanho do sinal no tempo de ser uma potência de dois, isto é, 𝑁 =
2𝑘 , onde k é um inteiro positivo.
 Supondo que todo os fatores complexos 𝑊𝑁𝑛 estejam pré- 𝑁−1

calculados e tabelados, o cálculo da DFT de um sinal x(n) de 𝑋 𝑚 = ෍ 𝑥 𝑛 𝑊𝑁𝑛𝑚


tamanho N envolve 𝑁 2 multiplicações complexas. 𝑛=0

 Com a FFT, o número de multiplicações


𝑁
complexas será reduzido de 𝑁 2 para 𝑙𝑜𝑔2 (𝑁)
2

 Exemplo: N=223 ≈ 8.4 106 𝑎𝑚𝑜𝑠𝑡𝑟𝑎𝑠


DFT - 𝑁 = 223 → 𝑁 2 ≈ 7.0 1013 𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎çõ𝑒𝑠
223
FFT -𝑁= 2 23
→ 𝑙𝑜𝑔2 223 ≈ 9.6 107 𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎çõ𝑒𝑠
2

𝑥 = 𝑙𝑖𝑛𝑠𝑝𝑎𝑐𝑒(0.0 , 1.0 , 223 )


DFT_FGA(Y) – 8 dias 14h 4m 3.6 s
FFT_REC_FGA(y) – 3 m 19.1 s
FFT_DIF_FGA (y) – 59.6 s
FFT_DIT_FGA (y) – 44.7 s
FFT(y) - 0.09 s
𝑊8 6 = 𝑗
Cálculo de 1 DFT de 8 pontos a partir do 𝑊8 5 = −
2
2
+𝑗
2
2

Cálculo de 2 DFT’s de 4 pontos


2 2
𝑊8 7 = +𝑗
2 2

 Seja um sinal x(n) de 8 amostras: 𝑊8 4 = −1 𝑊8 0 = 1

 𝑥 𝑛 = 𝑎 , 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ
 Podemos calcular a DFT pela definição 𝑊81 =
2
−𝑗
2
2 2
7
2 2
𝑊8 3 = − −𝑗
X m = ෍𝑥 𝑛 𝑊8𝑛𝑚 2 2 𝑊8 2 = −j

𝑛=0

No entanto, podemos calcular facilmente uma DFT 4 amostras.


𝑋 0 = 𝑥 0 +𝑥 2 + 𝑥 1 +𝑥 3
𝑋 1 = 𝑥 0 −𝑥 2 −𝑗 𝑥 1 −𝑥 3
𝑋 2 = 𝑥 0 +𝑥 2 + 𝑥 1 +𝑥 3
𝑋 3 = 𝑥 0 −𝑥 2 +𝑗 𝑥 1 −𝑥 3
Então vamos dividir o sinal x(n) de 8 amostras em dois sinais de 4 amostras. Vamos separar as
amostras pares e a amostras ímpares.
𝐷𝐹𝑇
𝑥𝑒 n = [a, c, e, g] 𝑋𝑒 n = [A, C, E, G]
𝐷𝐹𝑇
𝑥𝑜 n = [b, d, f, h] 𝑋𝑜 n = [B, D, F, H]
𝑊8 6 = 𝑗
 Para reconstituirmos o sinal x(n) no tempo, temos que 2 2 2 2
𝑊8 5 = − +𝑗 𝑊8 7 = +𝑗
interlaçar zeros em 𝑥𝑒 n e 𝑥𝑜 n antes somarmos os dois 2 2 2 2

sinais. No domínio da frequência interlaçar zeros


corresponde a dobrar o espectro. O sinal impar além de 𝑊8 4 = −1 𝑊8 0 = 1
interlaçado, está deslocado no tempo de 1 amostras, o
que corresponde a um multiplicação na frequência por
𝑊𝑁𝑚 2 2
𝑊81 = −𝑗
2 2
𝐷𝐹𝑇
𝑥𝑒𝑖 n = [a, 0, c, 0, e, 0, g, 0] 𝑋𝑒𝑖 m = [A, C, E, G, A, C, E, G] 2 2
𝑊8 3 = − −𝑗

+
2 2 𝑊8 2 = −j

𝐷𝐹𝑇
𝑥𝑜𝑖 n = 0, b, 0, d, 0 f, 0, h 𝑋𝑜𝑖 m = B, D, F, H, B, D, F, H
= 𝐷𝐹𝑇
.∗ [𝑊80 , 𝑊81 , 𝑊82 , 𝑊83 , 𝑊84 , 𝑊85 , 𝑊86 , 𝑊87 ]

x n = a, b, c, d, e, f, g, h 𝑋 m = 𝑋𝑒𝑖 n +𝑋𝑜𝑖 n WNm

𝑋 m = [A + B𝑊80 , 𝐶 + 𝐷𝑊81 , 𝐸 + 𝐹𝑊82 , G + H𝑊83 , A + B𝑊84 , C + D𝑊85 , E + F𝑊86 , 𝐺 + 𝐻𝑊87 ]


𝑁
𝑘+
𝐶𝑜𝑚𝑜 𝑊𝑁𝑘 = −𝑊𝑁 2

𝑋 m = [A + B𝑊80 , 𝐶 + 𝐷𝑊81 , 𝐸 + 𝐹𝑊82 , G + H𝑊83 , A − B𝑊80 , C − D𝑊81 , E − F𝑊82 , 𝐺 − 𝐻𝑊83 ]



Implementação FFT Recursiva
Podemos usar este princípio de divisão do sinal em amostras pares e ímpares para calcular a DFT de um sinal
com tamanho N=2k
 Primeiramente o Algoritmo divide o sinal de entrada em dois novos sinais, um com as amostras pares e outro
com as amostras ímpares.
 O algoritmo é então chamado recursivamente para cada um destes dois novos sinais (o par e o ímpar), que
serão então divididos mais uma vez em sinais pares e ímpares etc.
 Assim sucessivamente, o algoritmo é chamado recursivamente até termos sinais com tamanho 𝑁 = 4 (𝑜𝑢 𝑁 =
1), quando então é calculada a DFT trivial do sinal de entrada de tamanho 𝑁 = 4 (𝑜𝑢 𝑁 = 1),
 Quando todos os sinais tiverem sido convertidos para o domínio da frequência começa a síntese no domínio
do tempo, no retorno das chamadas recursivas, quando o sinais pares e ímpares são somados no domínio da
frequência (após a multiplicação do sinal ímpar por WNm
Princípio da FFT com Decimação no tempo

Seja x(n) um sinal discreto com N amostras, a sua DFT X(m) será dada por:
𝑁−1

𝑋 𝑚 = 𝐷𝐹𝑇𝑁 𝑥 𝑛 = ෍ 𝑥 𝑛 𝑊𝑁𝑛𝑚
𝑛=0
𝑁 𝑁
−1 −1
2 2
(2𝑛)𝑚
𝑋 𝑚 = ෍ 𝑥 2𝑛 𝑊𝑁 + ෍ 𝑥 2𝑛 + 1 𝑊𝑁
2𝑛+1 𝑚
Amostras pares + ímpares
𝑛=0 𝑛=0
𝑁 𝑁
2 −1 2 −1
(2𝑛)𝑚 2𝑛 𝑚
𝑋 𝑚 = ෍ 𝑥 2𝑛 𝑊𝑁 + 𝑊𝑁𝑚 ෍ 𝑥 2𝑛 𝑊𝑁
𝑛=0 𝑛=0

𝑋 𝑚 = 𝐷𝐹𝑇𝑁 𝑥𝑒 𝑛 + 𝑊𝑁𝑚 𝐷𝐹𝑇𝑁 𝑥𝑜 𝑛


2 2

 Concluímos que podemos calcular a DFT de tamanho N a partir de duas


DFT’s de tamanho N/2, uma com as amostras pares outra com as amostras
ímpares. Para isso calculamos a DFT das amostras pares e somamos com DFT
das amostras ímpares multiplicadas por 𝑊𝑁𝑚 .
Algoritmo FFT com DECIMAÇÃO no tempo.
1) Para o cálculo da FFT, deve-se primeiro decompor o sinal no
tempo, que tem N amostras, em N sinais no tempo de 1 amostra.

0 0000 0000 0
1 0001 1000 8
2 0010 0100 4
3 0011 1100 12
4 0100 0010 2
 Na decomposição interlaçada, primeiro decompomos o 5 0101 1010 10
sinal de 16 amostras em 2 sinais de 8 amostras 6 0110 0110 6

 No segundo estágio decompomos em 4 sinais de 4 amostras 7 0111 1110 14


8 1000 0001 1
 No terceiro estágio em 8 sinais de 2 amostras 9 1001 1001 9
 No último estágio em 16 sinais de 1 amostras 10 1010 0101 5
11 1011 1101 13
 No final da decomposição no tempo, obteremos a
12 1100 0011 3
amostras do sinal original reordenadas com base na
13 1101 1011 11
sequencia bit-reversa.
14 1110 0111 7
15 1111 1111 15
2) Transformada do tempo para frequência DFT de 1 ponto (N=1)

 O Segundo passo da FFT é se encontrar a Transformada de Fourier de cada um


dos 16 sinais de 1 amostra.
 A transformada de um sinal de 1 amostra é ele mesmo no domínio da
frequência. 𝑁−1 0

𝑆𝑒𝑗𝑎 𝑢𝑚 𝑠𝑖𝑛𝑎𝑙 𝑥 = 𝑎 , 𝑁=1 𝑋 𝑚 = ෍ 𝑥 𝑛 𝑊𝑁𝑛𝑚 = ෍ 𝑥 0 𝑊𝑁0𝑚 = 𝑥(0) = [𝑎]


𝑛=0 𝑛=0

3) Síntese na Frequência
 No último estágio da FFT, os N sinais no domínio da frequência de comprimento 1 serão
recombinados para formar 1 sinal de comprimento N no domínio da frequência.
 Esta combinação será feita na ordem reversa da decomposição no tempo.
 No primeiro estágio combinamos 16 sinais no domínio da frequência de comprimento 1,
em 8 sinais de comprimento 2.
 No segundo estágio combinamos em 4 sinais de comprimento 4.
 No terceiro estágio em 2 sinais de comprimento 8.
 E por fim no quarto estágio combinamos em 1 sinal de comprimento 16 no domínio da
frequência.
• FFT otimizada de 8 pontos do sinal 𝑥 𝑛 = 𝑎 , 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔, ℎ com decimação no tempo e
entrada bit reversa
• Notar que na FFT temos 8log28=24 multiplicações, ou invés das 82 = 64 multiplicações da DFT
Decimação Bit- Transformada do tempo para
frequência DFT de 1 ponto Síntese no domínio da frequência
Reversa no tempo
Implementação Direta FFT DIT -Decimação no tempo

Borboleta DIT
Princípio da FFT com Decimação na frequência
Seja x(n) um sinal discreto com N amostras, a sua DFT X(m) será dada por:
𝑁−1

𝑋 𝑚 = 𝐷𝐹𝑇𝑁 𝑥 𝑛 = ෍ 𝑥 𝑛 𝑊𝑁𝑛𝑚
𝑛=0

As amostras pares de X(m) serão


𝑁 𝑁 𝑁 𝑁
𝑁−1 −1 −1 −1 −1
2 2 𝑁 2 2
𝑛(2𝑚) 2(𝑛+ )𝑚
𝑋 2𝑚 = ෍ 𝑥 𝑛 𝑊𝑁 = ෍𝑥 𝑛 𝑊𝑁2𝑛𝑚 + ෍ 𝑥 𝑛 + 𝑁ൗ2 𝑊𝑁 2
= ෍ 𝑥 𝑛 𝑊𝑁𝑛𝑚
ൗ2
+ ෍ 𝑥 𝑛 + 𝑁ൗ2 𝑊𝑁𝑛𝑚
ൗ2
𝑛=0 𝑛=0 𝑛=0 𝑛=0 𝑛=0

𝑋 2𝑚 = 𝐷𝐹𝑇𝑁 𝑥 𝑛 + 𝑥 𝑛 + 𝑁ൗ2
2

➢ Concluímos que as amostras pares 𝑋 2𝑚 da DFT de N amostras de x(n) podem ser calculadas a partir
𝑁
da DFT de N/2 amostras da soma entre as primeiras N/2 amostras no tempo de x(n) ( 0 ≤ 𝑛 < ) ; com a
2
N
últimas N/2 amostras no tempo de x(n) ( ≤ 𝑛 < 𝑁) .
2
➢ De maneira similar podemos provar que amostras ímpares de X(m) serão:

𝑋 2𝑚 + 1 = 𝐷𝐹𝑇𝑁 𝑥 𝑛 − 𝑥(𝑛 + 𝑁ൗ2) 𝑊𝑁𝑚


2
➢ Concluímos as amostras ímpares 𝑋 2𝑚 + 1 da DFT de N amostras de x(n) podem ser calculadas a partir da
𝑁
DFT de N/2 amostras da diferença entre as primeiras N/2 amostras no tempo de x(n) ( 0 ≤ 𝑛 < ) ; e a
2
N
últimas N/2 amostras no tempo de x(n) ( ≤ 𝑛 < 𝑁) , esta diferença multiplicada por 𝑊𝑁𝑚 .
2
• FFT otimizada de 8 pontos do sinal 𝑥 𝑛 com decimação na frequência e saída bit reversa
• Notar que na FFT temos 8log28=24 multiplicações, ou invés das 82 = 64 multiplicações da DFT
Ordenaçao Bit-
Transformada do tempo para Reversa para a
Síntese no domínio do tempo frequência DFT de 1 ponto frequência
Implementação Direta FFT DIF – Decimação em frequência

Borboleta DIF

Você também pode gostar