Upload
internet
View
117
Download
5
Embed Size (px)
Citation preview
1
A Transformada de Fourier Discreta
Existe uma correspondência entre sequências finitas e sequências periódicas A Transformada de Fourier Discreta de uma sequência finita,
corresponde à Transformada de Fourier da Sequência periódica obtida por repetição da sequência finita
][~][~ Nnxnx
Série de Fourier
(DFS)
cc
Nnnxnx
,0
10],[~][
Transformada de Fourier (DTFT)
Transformada de Fourier Discreta (DFT)
2
A SérieSérie de Fourier Discreta (DFS)
N
kkX
NeX
k
j 2][
~2)(
~
nkN
N
n
WnxkX
1
0
][~][~
N periodo de periódico ][~ nx
Com: )/2( NjN eW
3
A SérieSérie de Fourier Discreta (DFS)
nkN
N
k
WkXN
nx
1
0
][~1
][~
nkN
N
n
WnxkX
1
0
][~][~
Série de Fourier Discreta Inversa
Série de Fourier Discreta
)/2( NjN eW
][~
][~ kXnx DFS
][~][~ Nnxnx
DFS – Discrete Fourier Series
4
Relações da Série de Fourier
N
kkX
NeX
k
j 2][
~2)(
~
Relações entre a Série de Fourier
Discreta e a Transformada
de FourierTemos ainda
][)( nxeX TFj
cc
Nnnxnx
,0
10],[~][
Transformada de Fourier do sinal periódico
Transformada de Fourier do sinal finito
kN
jkNj eXeXkX)/2(
)/2(][~
Amostras do espectro do sinal
5
Propriedades da SérieSérie de Fourier Discreta
6
Propriedades da SérieSérie de Fourier Discreta
7
A Transformada de Fourier Discreta (DFT)
nkN
N
k
WkXN
nx
1
0
][1
][
nkN
N
n
WnxkX
1
0
][][
)/2( NjN eW
][][ kXnx DFT
cc
Nnnxnx
,0
10],[~][
cc
NkkXkX
,0
10],[~
][
DFT- Discrete Fourier Transform
Matriz(dois índices)
vector
8
A Transformada de Fourier Discreta (DFT)
][][1
][1
][1
][1
1
0
1
0
)(21
0
)(21
0,
1
0
1
0
nxlnlxN
elxN
elxN
WWlxN
N
l
N
k
knljN
l
knljN
lk
nkN
N
k
nlN
N
l
][][ nxDFTIDFTnx
A DFT corresponde a representação de x[n] numa base diferente, sendo sempre possível
recuperar o sinal original.
9
Convolução Periódica (circular)
Convolução periódica][
~][
~][~*][ 2121 kXkXnxnx DFS
][][][*][ 212)(1 kXkXnxnx DFTNcircular
A convolução no tempo só corresponde a
multiplicação na frequência para a DFS. Para a DFT
temos de utilizar a convolução circular.
1
021212)(1 ]))[((][][O][][*][ N
N
mNNcircular mnxmxnxnxnxnx
Mpor n de divisão da restoM modulo ))(( nn N
A convolução circular é comutativa.
Convolução circular
10
Convolução Periódica (circular)
NnnxnxmnxmxnxnxN
m
N
0 para ][~*][][~][~][][1
0212121
-k
2121 ][*][*][ ][~*][ Nknnxnxnxnx
DCT = DTFT Amostrada
aliasing no tempo
11
Convolução Periódica
][O]1[ 2N nxn
1
02121 ]))[((][][O][ N
N
mNmnxmxnxnx
Um atraso corresponde a rodarrodar a sequência!
12
Goertzel Algorithm
Nnkr
rNkNk
N
r
rNkN
N
r
rkN
nykXrnuWrxny
WrxWrxkX
][][ com ][][][
][][][
)(
1
0
)(1
0
11
1][
zWzH
kN
k
21
1
)/2cos(21
1][
zzNk
zWzH
kN
k
Notar que:
x[n]=0 para
n<0
13
A Transformada Rápida de Fourier (FFT)
nkN
N
n
WnxkX
1
0
)(][Requer N^2N^2 multiplicações
Fast Fourier Transform (FFT)É uma algoritmo computacionalmente
eficiente para o cálculo da DFT
DFT:DFT:
FFTFFT N logN log22NN
multiplicações
14
Principio Básico da FFT
A DFT de um vector de dimensão N pode ser calculada à custa de duas DFT de dimensão N/2
]]12[[DFT]]2[[DFT][
]12[]2[][
]12[]2[][
][][][
][][
2/
2/
02/
2/
0
22/
0
22/
0
impar
1
0
rxWrxkX
WrxWWrxkX
WrxWWrxkX
WnxWnxkX
WnxkX
kN
rkN
N
r
kN
rkN
N
r
rkN
N
r
kN
rkN
N
r
nkN
n
nkN
parn
nkN
N
n
15
Grapho de uma FFT
Butterfly
çõesmultiplica
243*8log2 NN
x[n] X[k]
FFT
DFT
çõesmultiplica
642 N
16
Efeito do Ruído de Quantificação
(virgula fixa) Cada valor é calculado através de N-1
Butterflys Em cada Butterfly há um
arredondamento (o erro é ~ b)
Ruído no resultado (pior caso):
(N-1)b
Ruído no resultado assumindo sinais de ruído independentes:
12
22 a
22 4 aB B 2
22 )1( BR N 1 Multiplicação Complexa =
4 Multiplicações reais
17
Efeito do Ruído de Quantificação
Para prevenir a saturação no pior caso do resultado devemos a componente real e complexa de x[n] menor que 1/N ou seja:
22
2
3
1][
2
1][
2
1xN
nxEN
nxN
NNkXE x 3
1]][[ 22 22 ]][[ BNkFE
BB NN
kXE
kFE 22222
2
23]][[
]][[ Ou seja duplicar N implica perder um bit de relação sinal ruído
Adicionando um escalamento de ½ às butterflys da FFT reduz a relação ruído sinal (N/S) para:
BNkXE
kFE 22
2
24]][[
]][[
Para processadores de virgula flutuante:
Sinais de banda larga: 4N2-2B Sinais sinusoidais: 4 log2N 2-2B
18
Ordenação de bits Invertidos
1ª divisão Xx0 (pares) Xx1 (impares)
2ª divisão X00 X10 X01 X11
3ª divisão 000 100 010 110 001 101 011 111
Corresponde à ordenação
tradicional mas com bits
invertidos!!
A reordenação pode ser efectuada “in place”
19
Outras Implementações
Decimação na frequência Os coeficientes estão ordenados no tempo, e em ordem de bits invertidos
na frequência! Não necessita de Bit_reversed_addressing para implementar a convolução
com a FFT. Outras bases que não a dois!
Permite FFT de dimensão que não são potência de dois (sem extensão com zeros)
Pode conduzir a um menor ruído de quantificação Implementações com ordem directa na entrada e na saída
Não permitem computação no local
20
Implementação
Blocos: corresponde ao cálculo de uma DFT de dimensão inferior
Um loop externo para os diferentes estágios Tamanho do bloco começa por ser dois e duplica para
cada novo estádio. Loop interno para diferentes blocos
Cálculo de half_block_size Butterflys Os coeficientes das butterflys estão espaçados de
half_block_size
21
Implementação da Convolução Linear com a FFT
Série de Fourier Discreta
convolução
A convolução de uma sequência de dimensão L por
uma de dimensão N resulta numa
sequência de dimensão L+N-1
22
Implementação da Convolução Linear com a FFT
Pretendemos obter a convolução dex[n] com y[n], 0 n < N
Estende-se x[n] e y[n] com N zeros xe[n] = [x[n], 0 ... 0], ye[n] = [y[n], 0 ... 0]
Efectua-se a convolução circular de xe[n] com ye [n]
Adicionar zeros
Adicionar zeros
x[n]
y[n]
FFT
FFT
X IFFT x[n]*y[n]
#N
#M
#(N+M-1)
Aplicações: Overlap and Add e Overlap and Save
23
Overlap and SAVE / Overlap and ADD
Implementação de filtros FIR, por blocos usando a FFT.
Implementação de convolução de dois vectores de sinais (x[n] e h[n]) com um dos vectores (x[n]) muito maior que outro (h[n]).
Solução: dividir x[n] em blocos:
Overlap and SAVE Implementar a convolução
circular de dois blocos do sinal de dados com a resposta ao impulso….
Overlap and ADD Implementar a convolução de
um bloco do sinal de dados com a resposta ao impulso. Somar resultados de outros blocos.
i
i iNnxnx ][][
X(i) X(i-1) X(i-2) X(i-3) X(i-4) X(i-5)
Desvantagem: atraso na saída
24
Overlap and Add
x0[n] x1[n] x2[n] x3[n] x4[n]
h[n]convolução
x0[n]*h[n]
x1[n]*h[n]
x2[n]*h[n]
y0[n] y1[n] y2[n] y3[n] y4[n]
Add
Convolução linear implementada com a
FFT
25
Overlap and Save
x0[n] x1[n] x2[n] x3[n] x4[n]
h[n]convolução
(x0[n]|x1[n])*h[n]
y0[n] y1[n] y2[n] y3[n] y4[n]
Save
(x1[n]|x2[n])*h[n]
(x2[n]|x3[n])*h[n]
aliasing
Bloco errado
Bloco correcto
Convolução circular implementada com a
FFT