Transformada Rápida de Fourier (FFT)
A FFT é um algoritmo eficiente para calcular a DFT
A DFT de uma sequência 𝑥 𝑛 de comprimento finito 𝑁 é
definida como:
𝑋 𝑘 = 𝑥 𝑛 𝑒−𝑗2𝜋𝑁 𝑘𝑛 = 𝑥 𝑛 𝑊𝑁
𝑘𝑛
𝑁−1
𝑛=0
,
𝑁−1
𝑛=0
0 ≤ 𝑘 ≤ 𝑁 − 1
A FFT mais eficiente é para 𝑁 = 2𝑚, onde 𝑚 é 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 𝑁 = 8 = 23.
Decompondo a sequência 𝑥 𝑛 em duas partes, uma com as
amostras de 𝑛 par (𝑥0 𝑛 = 𝑥(2𝑛)) e outra com as amostras
de 𝑛 ímpar (𝑥1 𝑛 = 𝑥(2𝑛 + 1)) :
𝑋 𝑘 = 𝑥 𝑛 𝑊8𝑘𝑛
7
𝑛=0
= 𝑥 0 𝑊80𝑘 + 𝑥 2 𝑊8
2𝑘 + 𝑥 4 𝑊84𝑘 + 𝑥 6 𝑊8
6𝑘 +𝑥 1 𝑊8
1𝑘 + 𝑥 3 𝑊83𝑘 + 𝑥 5 𝑊8
5𝑘 + 𝑥 7 𝑊87𝑘
onde 𝑊8 = 𝑒−𝑗2𝜋/8.
FFT com Decimação no Tempo
Como 𝑊82 = 𝑒−𝑗4𝜋/8 = 𝑒−𝑗2𝜋/4 = 𝑊4, temos:
𝑋 𝑘 = 𝑥0 0 𝑊40𝑘 + 𝑥0 1 𝑊4
𝑘 + 𝑥0 2 𝑊42𝑘 + 𝑥0 3 𝑊4
3𝑘 +𝑊8
𝑘 𝑥1 0 𝑊40𝑘 + 𝑥1 1 𝑊4
𝑘 + 𝑥1 2 𝑊42𝑘 + 𝑥1 3 𝑊4
3𝑘
ou seja,
𝑋 𝑘 = 𝑋0 𝑘 4 + 𝑊8𝑘𝑋1 𝑘 4
onde
𝑋0 𝑘 : DFT de 4 pontos de 𝑥0 𝑛
𝑋1 𝑘 : DFT de 4 pontos de 𝑥1 𝑛
FFT com Decimação no Tempo
Generalizando para 𝑁 = 2𝑚:
𝑋 𝑘 = 𝑥 2𝑙 𝑊𝑁2𝑘𝑙 + 𝑥 2𝑙 + 1 𝑊𝑁
𝑘(2𝑙+1)
𝑁/2−1
𝑙=0
𝑁/2−1
𝑙=0
= 𝑋0 𝑘 𝑁/2 + 𝑊𝑁𝑘𝑋1 𝑘 𝑁/2 , 0 ≤ 𝑘 ≤ 𝑁 − 1
Complexidade computacional: enquanto que o cálculo da DFT
pela definição requer 𝑁2 multiplicações complexas e
𝑁(𝑁 − 1) somas complexas, pela equação acima temos:
2 𝑁/2 2 + 𝑁 = 𝑁2/2 + 𝑁 multiplicações complexas
2 𝑁/2 𝑁/2 − 1 + 𝑁 = 𝑁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 𝑚 = log2 𝑁
estágios, ou seja:
𝑋0 𝑘 = 𝑥0 2𝑙 𝑊𝑁/22𝑘𝑙 + 𝑥0 2𝑙 + 1 𝑊𝑁/2
𝑘(2𝑙+1)
𝑁/4−1
𝑙=0
𝑁/4−1
𝑙=0
= 𝑋00 𝑘 𝑁/4 + 𝑊𝑁/2𝑘𝑋01 𝑘 𝑁/4 , 0 ≤ 𝑘 ≤ 𝑁/2 − 1
𝑋1 𝑘 = 𝑥1 2𝑙 𝑊𝑁/22𝑘𝑙 + 𝑥1 2𝑙 + 1 𝑊𝑁/2
𝑘(2𝑙+1)𝑁/4−1𝑙=0
𝑁/4−1𝑙=0
= 𝑋10 𝑘 𝑁/4 + 𝑊𝑁/2𝑘𝑋11 𝑘 𝑁/4 , 0 ≤ 𝑘 ≤ 𝑁/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
(𝑚 = log2 𝑁 = 3 estágios):
FFT com Decimação no Tempo
Complexidade computacional do algoritmo completo para
𝑁 = 2𝑚 :
𝑁 log2 𝑁 multiplicações complexas
𝑁 log2 𝑁 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 𝑁 = 2𝑚 fica:
(𝑁/2) log2 𝑁 multiplicações complexas
𝑁 log2 𝑁 somas complexas
FFT com Decimação no Tempo
• Exemplo: A complexidade computacional para obter a DFT de
𝑁 = 1024 pontos de uma sequência é:
Pelo somatório da DFT: 𝑁2 ≅ 106 multiplicações e somas
complexas
Pelo algoritmo FFT: 𝑁
2log2 𝑁 ≅ 5.103 multiplicações
complexas e 𝑁 log2 𝑁 ≅ 104 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:
𝑋 𝑘 = 𝑥 𝑛 𝑊𝑁𝑘𝑛 + 𝑥 𝑛 𝑊𝑁
𝑘𝑛
𝑁−1
𝑛=𝑁/2
𝑁/2−1
𝑛=0
= 𝑥 𝑛 𝑊𝑁𝑘𝑛 + 𝑊𝑁
𝑘𝑁/2 𝑥 𝑛 + 𝑁/2 𝑊𝑁𝑘𝑛
𝑁/2−1
𝑛=0
𝑁/2−1
𝑛=0
= 𝑥 𝑛 + 𝑊𝑁𝑘𝑁/2𝑥 𝑛 + 𝑁/2 𝑊𝑁
𝑘𝑛
𝑁/2−1
𝑛=0
𝑘 = 0,1, ⋯ , 𝑁 − 1
FFT com Decimação na Frequência
Observando que 𝑊𝑁𝑁/2 = 𝑒𝑗(
2𝜋
𝑁)(
𝑁
2) = 𝑒𝑗𝜋 = −1:
𝑋 𝑘 = 𝑥 𝑛 + (−1)𝑘𝑥 𝑛 + 𝑁/2 𝑊𝑁𝑘𝑛
𝑁/2−1
𝑛=0
Para 𝑘 = 2𝑟 par:
𝑋 2𝑟 = 𝑥 𝑛 + 𝑥 𝑛 + 𝑁/2 𝑊𝑁2𝑟𝑛
𝑁/2−1
𝑛=0
, 𝑟 = 0, ⋯ ,𝑁
2− 1
Definindo 𝑥0 𝑛 = 𝑥 𝑛 + 𝑥 𝑛 + 𝑁/2 , 𝑛 = 0, ⋯ ,𝑁
2− 1, temos ∶
𝑋 2𝑟 = 𝑥0 𝑛 𝑊𝑁/2𝑟𝑛
𝑁/2−1
𝑛=0
= 𝑋0 𝑟
FFT com Decimação na Frequência
Para 𝑘 = 2𝑟 + 1 ímpar:
𝑋 2𝑟 + 1 = 𝑥 𝑛 − 𝑥 𝑛 + 𝑁/2 𝑊𝑁(2𝑟+1)𝑛
𝑁/2−1
𝑛=0
, 𝑟 = 0, ⋯ ,𝑁
2− 1
Definindo 𝑥1 𝑛 = 𝑥 𝑛 − 𝑥 𝑛 + 𝑁/2 𝑊𝑁𝑛, 𝑛 = 0, ⋯ ,
𝑁
2− 1, temos ∶
𝑋 2𝑟 + 1 = 𝑥1 𝑛 𝑊𝑁/2𝑟𝑛
𝑁/2−1
𝑛=0
= 𝑋1 𝑟
O procedimento da decimação na frequência pode ser repetido para
as sucessivas DFTs menores, num total de 𝑚 = log2 𝑁 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
(𝑚 = log2 𝑁 = 3 estágios):
FFT com Decimação na Frequência
A complexidade computacional do algoritmo FFT com
decimação na frequëncia para 𝑁 = 2𝑚 é igual à do algoritmo
FFT com decimação no tempo:
(𝑁/2) log2 𝑁 multiplicações complexas
𝑁 log2 𝑁 somas complexas
DFT Inversa utilizando o Algoritmo FFT
A IDFT de tamanho 𝑁 é definida como:
𝑥 𝑛 =1
𝑁 𝑋 𝑘 𝑊𝑁
−𝑘𝑛,
𝑁−1
𝑘=0
0 ≤ 𝑛 ≤ 𝑁 − 1
O complexo conjugado da expressão acima é:
𝑥 𝑛 ∗ =1
𝑁 𝑋 𝑘 ∗𝑊𝑁
𝑘𝑛
𝑁−1
𝑘=0
Portanto:
𝑥 𝑛 =1
𝑁 𝑋 𝑘 ∗𝑊𝑁
𝑘𝑛
𝑁−1
𝑘=0
∗
=1
𝑁𝐹𝐹𝑇 𝑋 𝑘 ∗ ∗
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 𝑁 = 2𝑚 são os mais utilizados e conhecidos como algoritmos FFT Radix- 2
Quando 𝑁 = 4𝑚, 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 𝑘 = 4𝑟, 𝑟 = 0, ⋯ ,𝑁
4− 1:
𝑋 4𝑟 = 𝑥 𝑛 + 𝑥 𝑛 + 𝑁/4 + 𝑥 𝑛 + 𝑁/2 + 𝑥 𝑛 + 3𝑁/4 𝑊𝑁/4𝑟𝑛
𝑁/4−1
𝑛=0
Para 𝑘 = 4𝑟 + 1, 𝑟 = 0, ⋯ ,𝑁
4− 1:
𝑋 4𝑟 + 1 = 𝑥 𝑛 − 𝑗𝑥 𝑛 + 𝑁/4 − 𝑥 𝑛 + 𝑁/2 + 𝑗𝑥 𝑛 + 3𝑁/4 𝑊𝑁𝑛𝑊𝑁/4
𝑟𝑛𝑁/4−1
𝑛=0
Para 𝑘 = 4𝑟 + 2, 𝑟 = 0, ⋯ ,𝑁
4− 1:
𝑋 4𝑟 + 2 = 𝑥 𝑛 − 𝑥 𝑛 + 𝑁/4 + 𝑥 𝑛 + 𝑁/2 − 𝑥 𝑛 + 3𝑁/4 𝑊𝑁2𝑛𝑊𝑁/4
𝑟𝑛𝑁/4−1
𝑛=0
Para 𝑘 = 4𝑟 + 3, 𝑟 = 0, ⋯ ,𝑁
4− 1:
𝑋 4𝑟 + 3 = 𝑥 𝑛 + 𝑗𝑥 𝑛 + 𝑁/4 − 𝑥 𝑛 + 𝑁/2 + 𝑗𝑥 𝑛 + 3𝑁/4 𝑊𝑁3𝑛𝑊𝑁/4
𝑟𝑛𝑁/4−1
𝑛=0
Algoritmo FFT Mixed-Radix ou Cooley-Tukey
Quando 𝑁 ≠ 2𝑚, mas 𝑁 = 𝑁1𝑁2, é possível obter a DFT de
tamanho 𝑁 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:
𝑋 𝑘 = 𝑋 𝑁2𝑘1 + 𝑘2 = 𝑥[𝑛1 + 𝑁1𝑛2]
𝑁2−1
𝑛2=0
𝑁1−1
𝑛1=0
𝑊𝑁[𝑛1+𝑁1𝑛2] 𝑁2𝑘1+𝑘2
onde 0 ≤ 𝑘1 ≤ 𝑁1 − 1 e 0 ≤ 𝑘2 ≤ 𝑁2 − 1
Podemos observar que: 𝑊𝑁𝑛1𝑁2𝑘1 = 𝑊𝑁1
𝑛1𝑘1, 𝑊𝑁𝑁1𝑘2𝑁2𝑘1 =
1, 𝑊𝑁𝑁1𝑛2𝑘2 = 𝑊𝑁2
𝑛2𝑘2
Algoritmo FFT Mixed-Radix ou Cooley-Tukey
Portanto, podemos reescrever a DFT como:
𝑋 𝑁2𝑘1 + 𝑘2 = 𝑥[𝑛1 + 𝑁1𝑛2]
𝑁2−1
𝑛2=0
𝑁1−1
𝑛1=0
𝑊𝑁1
𝑛1𝑘1 𝑊𝑁𝑛1𝑘2𝑊𝑁2
𝑛2𝑘2
ou como:
𝑋 𝑁2𝑘1 + 𝑘2 = 𝑥[𝑛1 + 𝑁1𝑛2]
𝑁2−1
𝑛2=0
𝑊𝑁2
𝑛2𝑘2 𝑊𝑁𝑛1𝑘2
𝑁1−1
𝑛1=0
𝑊𝑁1
𝑛1𝑘1
A expressão acima pode ser interpretada como:
I. Cálculo de 𝑁1 DFTs de 𝑁2 pontos
II. Cálculo de 𝑁2 DFTs de 𝑁1 pontos
III. Multiplicação pelos 𝑁 fatores 𝑊𝑁𝑛1𝑘2
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:
𝑋 𝑘 = 𝑊𝑁−𝑘𝑁 𝑥 𝑙 𝑊𝑁
𝑘𝑙
𝑁−1
𝑙=0
= 𝑥 𝑙 𝑊𝑁−𝑘(𝑁−𝑙)
𝑁−1
𝑙=0
Definindo a sequência:
𝑦𝑘 𝑛 = 𝑥𝑒 𝑙 𝑊𝑁−𝑘(𝑛−𝑙) = 𝑥𝑒 𝑛 ∗ ℎ𝑘 𝑛
𝑛−1
𝑙=0
onde
𝑥𝑒 𝑛 = 𝑥 𝑛 , 0 ≤ 𝑛 ≤ 𝑁 − 10, 0 < 𝑛 𝑒 𝑛 > 𝑁
Algoritmo de Goertzel
e
ℎ𝑘 𝑛 = 𝑊𝑁−𝑘𝑛, 𝑛 ≥ 0
0, 0 < 𝑛
Podemos observar que:
𝑋 𝑘 = 𝑦𝑘[𝑛] 𝑛=𝑁
No domínio da transformada z, temos:
𝑌𝑘 𝑧 =𝑋𝑒 𝑧
1 − 𝑊𝑁−𝑘𝑧−1
= 𝐻𝑘(𝑧)𝑋𝑒(𝑧)
onde
𝐻𝑘(𝑧) =1
1 − 𝑊𝑁−𝑘𝑧−1
Algoritmo de Goertzel
e
ℎ𝑘 𝑛 = 𝑊𝑁−𝑘𝑛, 𝑛 ≥ 0
0, 0 < 𝑛
Podemos observar que:
𝑋 𝑘 = 𝑦𝑘[𝑛] 𝑛=𝑁
No domínio da transformada z, temos:
𝑌𝑘(𝑧) =𝑋𝑒(𝑧)
1 − 𝑊𝑁−𝑘𝑧−1
As amostras da DFT podem ser obtidas pela recursão:
Algoritmo de Goertzel
As amostras da DFT podem ser obtidas pela recursão:
𝑦𝑘 𝑛 = 𝑥𝑒 𝑛 + 𝑊𝑁−𝑘𝑦𝑘 𝑛 − 1 , 0 ≤ 𝑛 ≤ 𝑁
com 𝑦𝑘 −1 = 0 e 𝑥𝑒 𝑁 =0.
Quando 𝑛 = 𝑁, a saída do filtro 𝑦𝑘 𝑁 é igual a 𝑋 𝑘
Para obter cada amostra de 𝑋[𝑘], são necessárias 𝑁
multiplicações e 𝑁 somas complexas
Para calcular todas as 𝑁 amostras de 𝑋[𝑘], é necessário o
mesmo número de operações que o cálculo direto
Observando que:
𝐻𝑘 𝑧 =1
1 − 𝑊𝑁−𝑘𝑧−1
=1 + 𝑊𝑁
𝑘𝑧−1
1 − 2 cos2𝜋𝑁 𝑛𝑘 𝑧−1 + 𝑧−2
Algoritmo de Goertzel
As amostras da DFT podem ser obtidas pelas equações:
𝑣𝑘 𝑛 = 𝑥𝑒 𝑛 + 2 cos2𝜋
𝑁𝑘 𝑣𝑘 𝑛 − 1 − 𝑣𝑘 𝑛 − 2 , 0 ≤ 𝑛 ≤ 𝑁
𝑋 𝑘 = 𝑦𝑘 𝑁 = 𝑣𝑘 𝑁 − 𝑊𝑁𝑘𝑣𝑘 𝑁 − 1
Apenas a parte recursiva deve ser calculada para 0 ≤ 𝑛 ≤ 𝑁
A parte não recursiva somente necessita ser calculada para
𝑛 = 𝑁
Para 𝑥[𝑛] real, são necessárias 𝑁 + 1 multiplicações e 2𝑁 + 1 somas reais para cada 𝑋[𝑘]
Portanto, há uma redução pela metade no número de
multiplicações em relação ao cálculo direto
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 ℎ(𝑛) uma sequência de comprimento finito 𝑀 e 𝑥(𝑛) uma
sequência de comprimento infinito. A convolução linear das duas
sequências é:
y 𝑛 = ℎ 𝑙 𝑥(𝑛 − 𝑙)
𝑀−1
𝑙=0
Dois métodos eficientes para obter y 𝑛 serão apresentados:
overlap-add e overlap-save
Método Overlap-Add
No método overlap-add, a sequência 𝑥 𝑛 é segmentada em
subsequências 𝑥𝑚(𝑛) contíguas de comprimento finito 𝑁, ou seja:
𝑥(𝑛) = 𝑥𝑚(𝑛 − 𝑚𝑁)
∞
𝑚=0
onde
𝑥𝑚 𝑛 = 𝑥 𝑛 + 𝑚𝑁 , 0 ≤ 𝑛 ≤ 𝑁 − 10, 0 < 𝑛 𝑒 𝑛 > 𝑁
Substituindo 𝑥(𝑛) acima na expressão da convolução:
y 𝑛 = ℎ 𝑙 𝑥𝑚(𝑛 − 𝑙 − 𝑚𝑁)
∞
𝑚=0
𝑀−1
𝑙=0
= ℎ(𝑙)𝑥𝑚(𝑛 − 𝑙 − 𝑚𝑁)
𝑀−1
𝑙=0
∞
𝑚=0
= 𝑦𝑚(𝑛 − 𝑚𝑁)
∞
𝑚=0
Método Overlap-Add
Cada subsequência de saída 𝑦𝑚 𝑛 é a convolução de 𝑥𝑚 𝑛 e ℎ 𝑛
e tem comprimento 𝑀 + 𝑁 − 1
𝑦𝑚 𝑛 pode ser calculada estendendo as sequências 𝑥𝑚 𝑛 e ℎ 𝑛 ,
com 𝑀 − 1 e 𝑁 − 1 zeros, respectivamente, e usando FFTs de
tamanho 𝑀 + 𝑁 − 1:
𝑦𝑚 𝑛 = 𝐼𝐹𝐹𝑇{𝐹𝐹𝑇 𝑥𝑚,𝑒 𝑛 ⨂𝐹𝐹𝑇 ℎ𝑒 𝑛 }
As subsequências são somadas após compensar os atrasos
𝑦(𝑛) = 𝑦𝑚(𝑛 − 𝑚𝑁)
∞
𝑚=0
Haverá sobreposição de 𝑀 − 1 amostras de subsequências
consecutivas , que serão somadas (daí o nome overlap-add)
Método Overlap-Save
No método overlap-save, a sequência 𝑥 𝑛 é segmentada em
subsequências 𝑥𝑚(𝑛) de comprimento finito 𝑁 + 𝑀 − 1 com
sobreposição de 𝑀 − 1 amostras, ou seja:
𝑥(𝑛) = 𝑥𝑚(𝑛 − 𝑚𝑁)
∞
𝑚=0
onde
𝑥𝑚 𝑛 = 𝑥 𝑛 + 𝑚𝑁 , 0 ≤ 𝑛 ≤ 𝑁 + 𝑀 − 20, 0 < 𝑛 𝑒 𝑛 > 𝑁 + 𝑀 − 2
Calcula-se a convolução circular de cada subsequência 𝑥𝑚 𝑛 e de
ℎ𝑒 𝑛 , obtendo-se sequências 𝑤𝑚 𝑛 de comprimento 𝑁 + 𝑀 − 1
As primeiras 𝑀 − 1 amostras de 𝑤𝑚 𝑛 são incorretas e são
descartadas, enquanto que as 𝑁 seguintes correspondem a
amostras corretas da convolução linear de 𝑥 𝑛 e ℎ 𝑛
Método Overlap-Save
As subsequências de saída 𝑦𝑚 𝑛 formadas pelas amostras “salvas”
de 𝑤𝑚 𝑛 (daí o nome overlap-save) são dadas por
𝑦𝑚 𝑛 = 0, 𝑛 < 𝑀 − 1 𝑒 𝑛 > 𝑁 + 𝑀 − 2𝑤𝑚 𝑛 + 𝑀 − 1 , 0 ≤ 𝑛 ≤ 𝑁 − 1
A sequência de saída é pela concatenação das subsequências
𝑦𝑚 𝑛 , ou seja,
𝑦(𝑛) = 𝑦𝑚(𝑛 − 𝑚𝑁)
∞
𝑚=0
Métodos Overlap-Add and Overlap-Save
Complexidade computacional:
Para 𝑥 𝑛 de comprimento 𝐾, é necessário calcular 𝐾
𝑁 DFTs de
tamanho 𝐿 = 𝑁 + 𝑀 − 1 (uma para cada 𝑥𝑚(𝑛)) e 𝐾
𝑁 IDFTs de tamanho
𝐿 (uma para cada 𝑦𝑚 𝑛 ). A DFT de ℎ𝑒(𝑛) pode ser calculada apenas
uma vez (igual para todo 𝑚).
O número total de multiplicações complexas necessárias para obter as
𝐾 amostras de 𝑦 𝑛 pelo método overlap-add ou overlap-save (usando o
algoritmo FFT com 𝐿 = 2𝑚) é
𝑁𝑚𝑢𝑙𝑡 = 2𝐾
𝑁+ 1
L
2log2 𝐿 +
𝐾
𝑁L
Por exemplo, para 𝐾 = 106 e 𝑀 = 100, teríamos:
Para 𝐿 = 128 (𝑁 = 29): 𝑁𝑚𝑢𝑙𝑡 =3,5.107
Para 𝐿 = 256 (𝑁 = 157): 𝑁𝑚𝑢𝑙𝑡 =1,5. 107
Para 𝐿 = 512 (𝑁 = 413): 𝑁𝑚𝑢𝑙𝑡 =1,2. 107
Para 𝐿 = 1024 (𝑁 = 925): 𝑁𝑚𝑢𝑙𝑡 =1,2. 107
Pelo cálculo de 𝑦 𝑛 pelo somatório da convolução: 𝑁𝑚𝑢𝑙𝑡 = 𝐾𝑀 = 108
Métodos Overlap-Add and Overlap-Save
Para 𝐾 = 106 e 𝑀 = 256, teríamos:
Para 𝐿 = 512 (𝑁 = 413): 𝑁𝑚𝑢𝑙𝑡 =2. 107
Para 𝐿 = 1024 (𝑁 = 769): 𝑁𝑚𝑢𝑙𝑡 =1,5. 107
Pelo cálculo de 𝑦 𝑛 pelo somatório da convolução: 𝑁𝑚𝑢𝑙𝑡 = 𝐾𝑀 =
2,56.108
Para 𝐾 = 109 e 𝑀 = 500, teríamos:
Para 𝐿 = 1024 (𝑁 = 525): 𝑁𝑚𝑢𝑙𝑡 =2,2. 1010
Para 𝐿 = 2048 (𝑁 = 1549): 𝑁𝑚𝑢𝑙𝑡 =1,6. 1010
Pelo cálculo de 𝑦 𝑛 pelo somatório da convolução: 𝑁𝑚𝑢𝑙𝑡 = 𝐾𝑀 = 5.1011