1 a transformada de fourier discreta a dtft transforma um sinal discreto num sinal continuo. no...
TRANSCRIPT
1
A Transformada de Fourier Discreta
A DTFT transforma um sinal discreto num sinal continuo. No entanto o sinal continuo não pode ser processado numa maquina digital, PC, DSP…
Solução: DFT
Corresponde a amostragem da DTFT, ou seja a calcular a DTFT num conjunto finito de pontos:
H[k]=H(ej) para = 2 k/N A amostragem no domínio da frequência é equivalente á formação de
réplicas no domínio do tempo, o que conduz á série de fourier discreta.
2
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)
3
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
4
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
5
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
6
Relações com a Série de Fourier
0 5 10 15 20 25 30-1
-0.5
0
0.5
1
DTFTDFT
0 2 4 6 8 10 12 140
2
4
6
8
20 40 60 80 100 120 140-1
0
1
20 40 60 80 100 120 140
0
20
40
7
Frequências negativas
0 2 4 6 8 10 12 140
2
4
6
8
0 2 4 60
2
4
6
8
-2-4
Valores de k maiores que
N/2 são equivalentes a
k negativos
X[k] = X[N-k]
0 5 10 15 20 25 30
-1
-0.5
0
0.5
1
8
Propriedades da SérieSérie de Fourier Discreta
9
Propriedades da SérieSérie de Fourier Discreta
10
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 A matriz é Otonormal á parte do factor 1/N, sendo a inversa dada
pelo matriz transposta, W-kn
N
11
A Transformada de Fourier Discreta (DFT)
][1
][
11
][
1][
][1
1
0
1
0,
)(2
1
0
1
0
nxNN
nx
Nnx
eN
nx
WWnxN
N
k
N
lk
nlkNj
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.
12
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
13
Aproximando a DTFT através da DFT
Extensão com zeros
DFT DFT
0 1 2 3 4 5 60
2
4
6
8
0 1 2 3 4 5 60
2
4
6
8
0 5 10 15 20 25 30
-1
-0.5
0
0.5
1
0 50 100 150 200 250-1
-0.5
0
0.5
1
14
Aproximando a Transformada de Fourier através da DFT
0 1 2 3 4 5 60
2
4
6
8
0 5 10 15 20 25 30
-1
-0.5
0
0.5
1
Período de amostragemT=1/Fa
Comprimento da DFT NT
Resolução na frequência = 1/(NT)
Banda de frequências0 a Fa/2
15
DFT de uma sinusóide
0 5 10 15 200
5
10
15
0 5 10 15 20-1
0
1
0 5 10 15 20-1
0
1
A sinusóide tem de ser sempre truncada por uma janela mesmo que seja a janela rectangular.
O espectro não é exactamente uma dirac… Com uma janela que não a rectangular o espectro melhora….
0 5 10 15 200
2
4
6
16
Convolução Periódica (circular)
NnnxnxmnxmxnxnxN
m
N
0 para ][~*][][~][~][][1
0212121
])[*][(*][ ][~*][-k
2121
Nknnxnxnxnx
DCT = DTFT Amostrada
aliasing no tempo
][*][ com ][*])[*][( 21-k-k
21 nxnxnzNknzNknnxnx
17
-10 -5 0 5 10 15 200
0.5
1
-10 -5 0 5 10 15 200
0.5
1
-10 -5 0 5 10 15 200
0.5
1
-10 -5 0 5 10 15 200
1
2
Convolução Periódica (aliasing no tempo)
][*][ com
][][
21
-k21
nxnxnz
Nknznxnx N
O produto do domínio da
DFT é equivalente á convolução no domínio do tempo
com aliasing
z[n]
z[n-N]
z[n+N]
resultado
N=10N=10
18
Convolução Periódica
][O]1[ 2N nxn
1
02121 ]))[((][][O][ N
N
mNmnxmxnxnx
Um atraso corresponde a rodarrodar a sequência!
19
Goertzel Algorithm
Nnkr
rNkNk
N
r
rNkN
N
r
rkN
nykXrnuWrxny
WrxWrxkX
][][ com ][][][
][][][
0
)(
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
20
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/2 logN/2 log22NN
multiplicações
21
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
22
Grapho de uma FFT
Butterfly
çõesmultiplica
243*8log2 NN
x[n] X[k]
FFT
DFT
çõesmultiplica
642 N
23
Butterfly
rNW
rN
NrN WW )2/(
-1
Estágiom-1
Estágiom
Redução do peso computacional para
N/2 log(N)
Permite que os cálculos sejamEfectuados no local (in place),
Necessita apenas de uma variavel auxiliar:aux = WN
r yy=x-auxx=x+aux
x
y
x
y
24
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 reais22 4 aB
25
Efeito do Ruído de Quantificação
Para prevenir a saturação no pior caso do resultado devemos ter 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
N – Dimensão da FFT
B – Numero de bits de para representação dos números
26
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”
27
Twiddle factors
Necessários para o cálculo das butterflys
Calculo Off-line e armazenados numa tabela Iterativo: (pode ser efectuado com maior precisão)
WNr+1 = WN
WNr
Imediato:
rNW
iNrNreW Nrjr
N)/2sin()/2cos()/2(
28
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 permite computação no local
29
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
30
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
31
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
32
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
33
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
34
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