TE-810 Processamento Digital de Sinais
-
UFPR
8. Transformada Discreta de
Fourier - DFT
8.1 Representação de seqüências periódicas:
Série Discreta de Fourier - DFS
Vamos relembrar o desenvolvimento da
TDFT – Transformada de Fourier p/ Sinais Discretos
1
TE-810 Processamento Digital de Sinais
-
UFPR
2.7. A Transformada de Fourier
para Sinais Discretos
Seja o sinal x[n] não-periódico
~
e x[n]
seu sinal periódico associado com período N
4
x[n]
3
2
1
0
-8
-7
-6
-5
-4
-3
-2
-1
0
-N1
1
2
3
4
2
3
4
5
6
7
8
9
10
11
12
5
6
7
8
9
10
11
12
N1
4
xp[n]
3
2
1
0
-8
-7
-6
-5
-N
-4
-3
-2
-1
0
1
N
2
TE-810 Processamento Digital de Sinais
-
UFPR
Podemos representar ~x[n] através da Série de Fourier:
~
x [n]
a .e
k N
k
2
jk n
N
1
ak
N
~
x[n].e
jk
n N
~
x
[
n
]
x [n] p / N1 n N1
Como:
x[n] 0
p / | n | N1
Podemos escrever:
ou então:
1
ak
N
N .ak
2
n
N
N1
x[n].e
jk
2
n
N
n N1
x[n].e
jk
2
n
N
n
3
TE-810 Processamento Digital de Sinais
-
UFPR
Encontrando a envoltória de N.ak :
2
k
k . 0
N
Obtemos:
Discreto Contínuo
X ()
x[n].e
jn
n
Transformada de Fourier do Sinal Discreto x[n]
1
Logo: ak . X ( k 0 )
N
2
0
N
Os coeficientes da Série de Fourier do sinal ~x[n]
podem ser vistos como amostragem da Transformada
de Fourier em k.0 do sinal x[n].
4
TE-810 Processamento Digital de Sinais
-
UFPR
Voltando à nossa análise:
Chamando os termos:
~
N.ak X [k ]
Definimos a Equação de Análise da DFS de N pontos como:
N 1
~
X [k ] ~
x [n].e jk0n
n 0
2
0
N
e a Equação de Síntese da DFS de N pontos:
N 1
1
~
~
x [n] X [k ].e jk0n
N k 0
2
0
N
5
TE-810 Processamento Digital de Sinais
-
UFPR
Denotando a quantidade complexa:
WN e
j
2
N
Podemos reescrever as equações de análise e
Síntese como:
N 1
X [k ] x[n].W
n 0
1
x[n]
N
N 1
kn
N
X [k ].W
k 0
kn
N
6
TE-810 Processamento Digital de Sinais
-
UFPR
8.2. Propriedades da DFS
~
DFS
~
x1[n]
X1[k ]
8.2.1. Linearidade:
~
DFS
~
x2[n]
X 2[k ]
~
~
DFS
~
~
a.x1[n] b.x2[n]
a.X1[k ] b.X 2[k ]
~
DFS
~
x[n]
X [k ]
~
~
jk 2N m
DFS
~
x [n m]
X [k ].e
X [k ].WNkm
8.2.2. Deslocamento:
8.2.3. Dualidade:
~
DFS
~
x[n]
X [k ]
~
DFS
X [n]
N~
x[k ]
7
TE-810 Processamento Digital de Sinais
-
UFPR
8.2.5. Convolução Periódica
~
DFS
~
x1[n]
X1[k ]
~
DFS
~
x [n]
X [k ]
2
2
~
~
DFS
~
~
x1[n] * x2[n]
X1[k ].X 2[k ]
N 1
~x [n] ~x [n] ~x [m].~x [n m]
* 2
1 2
1
m 0
8
TE-810 Processamento Digital de Sinais
-
UFPR
8.2.6. Resumo das propriedades da DFS
9
TE-810 Processamento Digital de Sinais
-
UFPR
8.5. A Transformada Discreta de Fourier - DFT
x [ n]
Considere sequência finita x[n] e a periódica associada ~
~
x [ n]
x[n rN ]
r
ou
~
x[n] x[((n))N ]
Se comprimento x[n] N
x[n], 0 n N 1
~
x[n]
0, outros
Pela propriedade da Dualidade da DFS
10
TE-810 Processamento Digital de Sinais
-
UFPR
Temos que:
~
X [k ], 0 k N 1
X [k ]
0, outros
ou
~
X [k ] X [((k ))N ]
Podemos definir a
DFT de N pontos:
N 1
Eq. de análise:
X [k ] x[n].e
Eq. de síntese:
1 N 1
jk 2N n
x[n] X [k ].e
N k 0
jk 2N n
n 0
11
TE-810 Processamento Digital de Sinais
1 N 1
jk 2N n
x[n] X [k ].e
N k 0
N 1
X [k ] x[n].e
-
UFPR
jk 2N n
n 0
x[n]
X [k ]
DFT ( N )
Interpretações:
-X~[k ], DFS de x[n], é uma amostragem do espectro X()
-X[k] uma amostragem de 1 período de X()
espectro do sinal não periódico.
~
-X[k] é um período do espectro X [k ] do sinal
periódico associado ~x [n]
12
TE-810 Processamento Digital de Sinais
-
UFPR
DFT de um sinal contínuo
não limitado no tempo:
13
Exemplo:
aliasing
TE-810 Processamento Digital de Sinais
-
5
UFPR
4.5
4
3.5
3
N=5
2.5
2
1.5
1
0.5
0
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
5
4.5
4
3.5
N=6
3
2.5
2
1.5
1
0.5
0
5
4.5
4
3.5
3
N=8
2.5
2
1.5
1
0.5
0
14
TE-810 Processamento Digital de Sinais
5
5
4.5
4.5
4
4
3.5
3.5
3
3
2.5
2.5
2
2
1.5
1.5
1
1
0.5
0.5
0
0
1
2
3
4
5
6
0
7
0
1
2
3
N=10
4
5
6
-
UFPR
7
N=25
N=50
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
1
2
3
4
5
6
7
15
TE-810 Processamento Digital de Sinais
-
UFPR
DFT de sinais sinusoidais
1
40
0.5
20
0
0
10
20
30
40
0
1
20
0
10
-1
0
10
20
30
40
0
1
20
0
10
-1
0
10
20
30
40
0
1
40
0
20
-1
0
10
20
30
40
0
0
10
20
30
40
0
10
20
30
40
0
10
20
30
40
0
10
20
30
40
16
TE-810 Processamento Digital de Sinais
-
UFPR
Porém:
1
0.5
0
-0.5
-1
0
5
10
15
20
25
30
35
0
5
10
15
20
25
30
35
15
10
5
0
17
TE-810 Processamento Digital de Sinais
-
UFPR
DFT Sinal limitado em freq.
com truncamento igual ao
período.
18
TE-810 Processamento Digital de Sinais
-
UFPR
DFT Sinal limitado em freq.
com truncamento não igual ao
período.
19
TE-810 Processamento Digital de Sinais
-
UFPR
8.6. Propriedades da DFT
8.6.1. Linearidade:
DFT ( N3 )
x1[n]
X1[k ]
DFT ( N3 )
x2[n]
X 2[k ]
DFT ( N3 )
a.x1[n] b.x2[n]
a.X1[k ] b.X 2[k ]
N3 max{N1, N2}
DFT ( N )
8.6.2. Deslocamento Circular: x[n]
X [k ]
x[((n m))N ]
X [k ].e
DFT ( N )
jk 2N m
0 n N 1
DFT ( N )
8.6.3. Dualidade: x[n]
X [k ]
DFT ( N )
X [n]
N.x[((k ))N ]
0 k N 1
20
TE-810 Processamento Digital de Sinais
-
UFPR
8.6.5. Convolução Circular:
Nada mais é do que a convolução periódica considerando
sinais de duração finitos x1[n] e x2[n]
x1[n] * x2 [n]
Linear:
Sinais ilimitados
x [m].x [n m]
m
Periódica: ~x2 [n] * ~x2 [n]
Sinais periódicos
1
2
N 1
~x [m].~x [n m]
M 0
1
2
N 1
Circular:
x1[n]
Sinais limitados
N
x2 [n] x1[((m))N ].x2 [((n m))N ]
m 0
DFT ( N )
x1[n]
X1[k ]
DFT ( N )
x2 [n]
X 2 [k ]
x1[n]
N
DFT ( N )
x2[n]
X1[k ].X 2[k ]
21
TE-810 Processamento Digital de Sinais
-
UFPR
8.6.6. Resumo das Propriedades da DFT
22
TE-810 Processamento Digital de Sinais
-
UFPR
8.7. Convolução Linear usando DFT
-Existem algoritmos muito eficientes p/ cálculo da DFT
algoritmos de FFT (Fast Fourier Transform)
Logo é eficiente implementar a convolução de 2 sinais
através dos seguintes passos:
a) Calcular as DFTs de x1[n] e x2[n], X1[k] e X2[k]
b) Calcular X3[k]=X1[k].X2[k]
c) Calcular IDFT de X3[k], x3[n], obtendo:
x3[n] x1[n] N x2[n]
Porém muitas vezes desejamos: x3[n] x1[n] x2 [n]
23
TE-810 Processamento Digital de Sinais
Sendo:
-
UFPR
x1[n] de compriment
oL
x2 [n] de compriment
o P
O resultado da convolução circular de N amostras será
igual à convolução linear se:
N L P 1
Porém: se um dos sinais tiver comprimento indeterminado
(processamento em tempo real).
Dois métodos implementam uma forma eficiente
de cálculo da convolução linear através da DFT.
Overlap-add e Overlap-save
Implementação de Sistemas LTI
24
TE-810 Processamento Digital de Sinais
-
UFPR
8.8 Transformada Discreta do Cosseno (DCT)
DFT é o exemplo mais comum da classe de
Transformadas Discretas de tamanho finito
N 1
A[k ] x[n] k*[n]
n 0
1
x[n]
N
N 1
A[k ] [n]
k 0
k
Onde as sequências base k [n]
São ortogonais:
N 1
1, m k
1
*
k [n] m [n]
N n 0
0, m k
25
TE-810 Processamento Digital de Sinais
No caso da DFT:
k [n] e
-
UFPR
jk 2N n
A[k] nesse caso é geralmente uma sequência complexa.
São exemplos de Transformadas que fazem :
-Haar
-Hadamard
-Hartley (DHT)
-DCT
-DST
- ...
26
TE-810 Processamento Digital de Sinais
-
UFPR
A DCT considera o sinal x[n] periódico e com simetria par:
Período:
2N-2
4N
Período:
2N
4N
Logo: temos 4 tipos de DCT: DCT-1, DCT-2, DCT-3 e DCT-4
E existem outras 4 formas de se criar um sinal periódico e com simetria par.
27
TE-810 Processamento Digital de Sinais
-
UFPR
A DST (Discrete Sine Transform) considera sinal periódico
E com simetria ímpar. 8 formas de se fazer.
Sendo as funções de base baseadas no seno.
Logo temos uma família de 16 transformadas ortogonais
A DCT-2 é a mais utilizada em aplicações de compressão
de sinais (JPEG e MPEG-1,2,4):
X C 2 [k ]
x[n]
Onde:
N 1
k 2n 1
2
[k ] x[n]cos
N
2N
n 0
k 2n 1
2 N 1
C2
[k ] X [k ]cos
N k 0
2
N
1
2, k 0
[k ]
1, k 1, 2,..., N 1
28
TE-810 Processamento Digital de Sinais
-
UFPR
Exemplo: Compactação de Energia na DCT-2
29
TE-810 Processamento Digital de Sinais
-
UFPR
30
TE-810 Processamento Digital de Sinais
-
UFPR
Transformada ótima para compactação
de energia : Karhunen-Loève (Hotelling, PCA)
Base formada pelos auto-vetores da matriz de covariância
do sinal a ser compactado
A DCT é assintoticamente ótima.
31
TE-810 Processamento Digital de Sinais
-
UFPR
9. Computação da DFT
Complexidade Computacional:
Medida através do número de , + , é proporcional ao
tempo gasto p/ executar um algoritmo.
Porém: outros fatores: quantidade de memória requerida
operações transcendentais, raiz, log, etc.
Em VLSI: consumo, área de chip são fatores importantes
P/ escolha de um algoritmo.
Algoritmos de FFT: revolucionaram a área de
processamento de sinais
32
TE-810 Processamento Digital de Sinais
-
UFPR
9.1. Computação eficiente da DFT
N 1
X [k ] x[n].WNkn
k 1,2,..., N 1
n 0
N 1
1
x[n] X [k ].WNkn
N k 0
n 1,2,..., N 1
WN e
j 2N
Como as equações diferem apenas do fator de escala N
e do sinal do expoente de WN, a teoria vista p/ cálculo
da DFT aplica-se também à IDFT
Cálculo direto:
-como x[n] pode ser sinal complexo,
Para computar N amostras do sinal X[k] requer
N2 multiplicações complexas e N(N-1) adições complexas
ou
4N2 multiplicações reais e N(4N-2) somas reais
E mais memórias p/ armazenamento de N amostras complexas
de x[n] e coeficientes WN
Proporcional O(N2)
33
TE-810 Processamento Digital de Sinais
-
UFPR
A maioria dos algoritmos de FFT exploram as
seguintes características:
1) Simetria complexa conjugada: W
k [ N n]
N
W
kn
N
W
kn
N
kn
k ( n N )
WN( k N ) n
2) Periodicidade em k e n : WN WN
Exploram ainda a decomposição de uma DFT
de N pontos em DFTs de comprimentos menores
Algoritmos:
-Goertzel(1958): O(N2)
-Cooley-Tukey(1965): Deu origem à decimação no tempo
-Sande-Tukey(1966): Deu origem à decimação em frequência
34
TE-810 Processamento Digital de Sinais
-
UFPR
9.3. Algoritmos de Decimação no Tempo
-decomposição sucessiva de x[n] em parcelas menores
Diversos tipos: mais clássico: p/ N potência de 2
x[n] de N pontos é dividido em 2 sequências de N/2 pontos
Compostas dos n ímpares e n pares
N 1
X [k ] x[n].WNkn
n 0
X [k ]
nk
x
[
n
].
W
N
n par
nk
x
[
n
].
W
N
n ímpar
35
TE-810 Processamento Digital de Sinais
X [k ]
nk
x
[
n
].
W
N
n par
-
UFPR
nk
x
[
n
].
W
N
n ímpar
Mudando as variáveis: n=2r
para n par
n=2r+1 para n ímpar
X [k ]
X [k ]
( N / 2 1)
( N / 2 1)
r 0
r 0
2 rk
x
[
2
r
].
W
N
( N / 2 1)
2 rk
N
x[2r ]. W
r 0
( 2 r 1) k
x
[
2
r
1
].
W
N
W
k
N
( N / 2 1)
r 0
2 rk
N
x[2r 1]. W
Como: WN2 WN / 2
36
TE-810 Processamento Digital de Sinais
Como: W WN / 2
2
N
-
UFPR
Podemos reescrever:
X [k ]
( N / 21)
r 0
X [k ]
2 rk
N
x[2r ]. W
W
( N / 21)
k
N
( N / 21)
r 0
r 0
X [k ] G[k ] WNk H[k ]
x[2r 1]. W
r 0
( N / 21)
rk
k
x
[
2
r
].
W
W
N /2
N
2 rk
N
rk
x
[
2
r
1
].
W
N /2
k 0,1,2,...,N 1
37
TE-810 Processamento Digital de Sinais
-
UFPR
Aplicando o mesmo princípio para o cálculo de G[k] e H[k]
DFT(N/2)
G[k ]
( N / 41)
( N / 41)
l 0
l 0
H [k ]
lk
k
g
[
2
l
].
W
W
N /4
N /2
lk
g
[
2
l
1
].
W
N /4
( N / 41)
( N / 41)
l 0
l 0
lk
k
h
[
2
l
].
W
W
N /4
N /2
lk
h
[
2
l
1
].
W
N /4
38
TE-810 Processamento Digital de Sinais
-
UFPR
Temos:
E assim sucessivamente até chegar ao cálculo da DFT(2)
39
TE-810 Processamento Digital de Sinais
-
UFPR
DFT de 2 pontos:
1
X [k ] x[n].WNkn
n 0
X [0] x[0].W20.0 x[1].W20.1 x[0] x[1]
X [1] x[0].W21.0 x[1].W21.1 x[0] x[1]
40
TE-810 Processamento Digital de Sinais
-
UFPR
Diagrama completo p/ DFT 8-pontos decimação no tempo:
Notar que a complexidade computacional é: N.log(N)
41
TE-810 Processamento Digital de Sinais
-
UFPR
Reduzindo ainda mais a complexidade computacional:
Célula básica de computação: butterfly
Como:
WN( r N / 2) WNr .WNN / 2 WNr .(1)
42
TE-810 Processamento Digital de Sinais
-
UFPR
Assim: Algoritmo completo
Obs:
-Complexidade computacional O(N.log(N))
-Computação In-Place, uso da mesma memória p/ entrada e saída
-Ordem do sinal de entrada x[n]
43
TE-810 Processamento Digital de Sinais
-
UFPR
Ordenação Bit-Reversa
X[0] = x[0]
X[1] = x[4]
X[2] = x[2]
X[3] = x[6]
X[4] = x[1]
X[5] = x[5]
X[6] = x[3]
X[7] = x[7]
X[000] = x[000]
X[001] = x[100]
X[010] = x[010]
X[011] = x[110]
X[100] = x[001]
X[101] = x[101]
X[110] = x[011]
X[111] = x[111]
44
TE-810 Processamento Digital de Sinais
-
UFPR
9.4. Algoritmos de Decimação na Frequência
-decomposição sucessiva de X[k] em parcelas menores
Diversos tipos: mais clássico: p/ N potência de 2
X[k] de N pontos é dividido em 2 seqüências de N/2 pontos
Compostas dos k ímpares e k pares
N 1
X [k ] x[n].WNnk
n 0
N 1
X [2r ] x[n].WNn ( 2 r )
P/ X[pares]
n 0
Que podemos escrever como:
45
TE-810 Processamento Digital de Sinais
-
UFPR
N 1
X [2r ] x[n].WNn ( 2 r )
P/ X[pares]
n 0
Que podemos escrever como:
X [ 2r ]
N / 21
2 nr
x
[
n
].
W
N
n 0
N 1
2 nr
x
[
n
].
W
N
n N / 2
Substituindo variáveis no 2° somatório
X [ 2r ]
N / 2 1
x[n].W
n 0
2 nr
N
N / 2 1
x[n
N
2
2( n N 2 ) r
N
].W
n 0
Notando que: WN2r ( n N / 2) WN2rn .WNrN WN2rn .1
Logo:
X [ 2r ]
N / 2 1
N / 2 1
n 0
n 0
2 rn
x
[
n
].
W
N
N ].W 2 rn
x
[
n
2
N
46
TE-810 Processamento Digital de Sinais
Lembrando que:
-
UFPR
WN2rn WNrn/ 2
Temos que: X [2r ]
N / 2 1
N / 2 1
n 0
n 0
2 rn
x
[
n
].
W
N
N ].W 2 rn
x
[
n
2
N
Pode ser escrito como:
X [ 2r ]
N / 21
N ].W rn
x
[
n
]
x
[
n
2
N /2
n 0
De modo análogo p/ k ímpares podemos escrever:
N 1
X [2r 1] x[n].WNn ( 2 r 1)
P/ X[ímpares]
n 0
Que podemos escrever como:
47
TE-810 Processamento Digital de Sinais
N 1
X [2r 1] x[n].WNn ( 2 r 1)
-
UFPR
P/ X[ímpares]
n 0
Que podemos escrever como:
X [2r 1]
N / 2 1
n ( 2 r 1)
x
[
n
].
W
N
n 0
N 1
n ( 2 r 1)
x
[
n
].
W
N
n N / 2
Substituindo variáveis no 2° somatório
X [2r 1]
N / 21
x[n].W
n 0
n ( 2 r 1)
N
N / 21
x[n
N
2
( n N 2 )( 2 r 1)
N
].W
n 0
Notando que: WN( n N / 2)( 2r 1) WNn( 2r 1) .WN( 2r 1)
Logo: X [2r 1]
N / 21
x[n].W
n 0
n ( 2 r 1)
N
N
2
WNn(2r 1) .(1)
N / 21
N ].W n ( 2 r 1)
x
[
n
2
N
n 0
48
Logo: X [2r 1]
N / 21
n ( 2 r 1)
x
[
n
].
W
N
n 0
N / 21
X [2r 1]
X [2r 1]
TE-810 Processamento Digital de Sinais
N / 21
n ( 2 r 1)
N
2
N
n 0
x[n
-
UFPR
].W
N ].W n ( 2 r 1)
x
[
n
]
x
[
n
2
N
n 0
N / 2 1
N ].W 2 nr .W n
x
[
n
]
x
[
n
2
N
N
n 0
N / 2 1
P/ k ímpares: X [2r 1]
N ].W n .W nr
x
[
n
]
x
[
n
2
N
N /2
n 0
P/ k pares:
X [ 2r ]
N / 21
N ].W rn
x
[
n
]
x
[
n
2
N /2
n 0
49
TE-810 Processamento Digital de Sinais
-
UFPR
Aplicando o mesmo procedimento p/ cálculo
da DFT N/2 pontos
50
TE-810 Processamento Digital de Sinais
-
UFPR
E assim sucessivamente até a DFT de 2 pontos,
Calculada por:
Algoritmo completo p/ DFT(8) decimação em Frequência:
Obs:
-O(N.log(N))
-Computação In-Place
-Saída bit-reverso
51
TE-810 Processamento Digital de Sinais
-
UFPR
Algoritmos vistos são Radix-2
Outros algoritmos:
-Radix-4, Radix-8, etc...
-Split-Radix
-Produto de inteiros
-...
52
TE-810 Processamento Digital de Sinais
Convolução:
-
UFPR
N 1
Método Direto: y[n] x[k ].h[n k ]
k 0
Complexidade: O(2N2)
N N1 N 2 1 2 N 1
(2 N )
X [k ]
Por FFT: x[n] FFT
(2 N )
h[n] FFT
H [k ]
Y [k ] X [k ].H [k ]
(2 N )
Y [k ] IFFT
y[n]
Complexidade: O(3.2N.log(2N)+2N)
53