Você está na página 1de 26

A Transformada de Fourier para Sinais Discretos

Seja o sinal x[n] no-peridico


~ e x[n] seu sinal peridico associado com perodo N
4 3 2 1 0 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12

x[n]

-N1
4 3 2 1 0 -8 -7 -6 -5 -4 -3 -2 -1 0

N1

xp[n]

10

11

12

-N

Podemos representar ~ x[n] atravs da Srie de Fourier:

~[n] = x

k= N

a .e
k

jk

2 n N

1 ak = N

n= N

jk n x ~[n].e N

~ Como: x[ n] = x [n] x[n] = 0


Podemos escrever:

p / N1 n N1 p / | n | N1

1 ak = N
N .ak =

n = N1

x[n].e

N1

jk

2 n N

ou ento:

n =

x[n].e

jk

2 n N

Encontrando a envoltria de N.ak :

2 = k . 0 N

Quando N

Discreto Contnuo
jn

Obtemos:

X (e ) =

n =

x[n].e
0 =

Transformada de Fourier do Sinal Discreto x[n]

Logo:

ak =

1 . X (k 0 ) N

2 N

Os coeficientes da Srie de Fourier do sinal ~ x[n] podem ser vistos como amostragem da Transformada de Fourier em k.0 do sinal x[n].

Voltando nossa anlise: Chamando os termos:

~ N .ak = X [k ]

Definimos a Equao de Anlise da DFS de N pontos como:


N 1 ~ X [k ] = ~[n].e jk0 n x n=0

0 =

2 N

e a Equao de Sntese da DFS de N pontos:

~[n] = 1 x N

X [k ].e
k =0

N 1

jk 0 n

0 =

2 N

Denotando a quantidade complexa:

WN = e

2 N

Podemos reescrever as equaes de anlise e Sntese como:


N 1 ~ kn X [k ] = ~[n].WN x n =0

1 x[n] = N

X [n].W
n=0

N 1

kn N

Representao vetorial da DFS

r r ~ ~ X = WN x r r 1 * ~ ~= W X x N N

N 1 ~ kn X [k ] = ~[n].WN x n =0

x[n] =

1 N

X [n].W
n =0

N 1

kn N

1 1 L 1 1 W 1 L W N 1 kn N N WN = WN ;0 k , n N 1 = M M M M N 1 ( N 1)2 n L WN 1 WN

8.2. Propriedades da DFS


8.2.1. Linearidade:
~ DFS ~ [n] X [k ] x1 1 ~ DFS ~ [n] X [k ] x
2 2

~ ~ DFS a.~1[n] + b.~2 [n] a. X 1[k ] + b. X 2 [k ] x x

8.2.2. Deslocamento:

~ DFS ~[n] X [k ] x ~ ~ DFS ~[n m] X [k ].e jk 2N m = X [k ].W km x N

8.2.3. Dualidade:

~ DFS ~[n] X [k ] x ~ DFS X [n] N~[ k ] x

8.2.5. Convoluo Peridica


DFS ~ [n] x1 DFS ~ [n] x 2

~ X 1[ k ] ~ X 2 [k ]

~ ~ DFS ~ [ n] ~ [ n] X [ k ]. X [ k ] x1 1 2 * x2

~ [n] ~ [n] = ~ [m].~ [n m] x1 x1 x2 * x2


m =0

N 1

8.2.6. Resumo das propriedades da DFS

8.5. A Transformada Discreta de Fourier - DFT


x Considere sequncia finita x[n] e a peridica associada ~[n]

~[n] = x

r =

x[n rN ]

ou

~[n] = x[((n)) ] x N

Se comprimento x[n]
x ~[n], 0 n N 1 x[n] = 0, outros

Pela propriedade da Dualidade da DFS

Temos que:

~ X [k ], 0 k N 1 X [k ] = 0, outros
ou

~ X [k ] = X [((k )) N ]

Podemos definir a Eq. de anlise:

DFT de N pontos:
X [k ] = x[n].e
n =0 N 1
jk 2N n

Eq. de sntese:

x[n] =

1 N

X [k ].e
k =0

N 1

jk 2N n

x[n] =

1 N

X [k ].e
k =0

N 1

jk 2N n

X [k ] = x[n].e
n =0

N 1

jk 2N n

DFT ( N x[n] ) X [k ]

Interpretaes: ~ -X [k ] , DFS de x[n], uma amostragem do espectro X(ej) -X[k] uma amostragem de 1 perodo de X(ej) espectro do sinal no peridico. ~ -X[k] um perodo do espectro X [k ] do sinal x peridico associado ~[n]

Exemplo
|X(k)|

1, 0 n 3 x[n] = 0 , c.c.

Magnitude of the DFT: N=4 5 4 3 2 1

X e

( )
j

Degrees

sin (2 ) j = e sin 2
3 nk 4

3 2

0 -1 0 0.5 1 1.5 2 2.5 k Angle of the DFT: N=4 3 3.5 4

200 100 0 -100 -200

X 4 [k ] = x[n]W
n=0

0.5

1.5

2 k

2.5

3.5

X 4 [k ] = {4,0,0,0}

Magnitude of the DFT: N=8 5 4 3

Magnitude of the DFT: N=16 5 4 3 |X(k)| 2 1 0

|X(k)|

2 1 0 -1 0 1 2 4 5 k Angle of the DFT: N=8 3 6 7 8

-1

200 100 Degrees 0 -100 -200

6 8 10 k Angle of the DFT: N=16

12

14

16

200 100 Degrees


0 1 2 3 4 k 5 6 7 8

0 -100 -200

8 k

10

12

14

16

x[n] = cos(0.48 n ) + cos(0.52 n )


signal x(n), 0 <= n <= 9 2 1 0 -1 -2 0 10 8 6 4 2 0 0 0.1 0.2 0.3 0.4 0.5 0.6 frequency in pi units 0.7 0.8 0.9 1 1 2 3 5 6 7 n Samples of DTFT Magnitude 4 8 9 10

signal x(n), 0 <= n <= 9 + 40 zeros 2 1 0 -1 -2 0 10 8 6 4 2 0 0 0.1 0.2 0.3 0.4 0.5 0.6 frequency in pi units 0.7 0.8 0.9 1 5 10 15 20 25 30 n DTFT Magnitude 35 40 45 50

signal x(n), 0 <= n <= 9 + 90 zeros 2 1 0 -1 -2 0 10 8 6 4 2 0 0 0.1 0.2 0.3 0.4 0.5 0.6 frequency in pi units 0.7 0.8 0.9 1 10 20 30 40 50 60 n DTFT Magnitude 70 80 90 100

signal x(n), 0 <= n <= 99 2 1 0 -1 -2 0 60 10 20 30 40 50 60 n DTFT Magnitude 70 80 90 100

40

20

0.1

0.2

0.3

0.4 0.5 0.6 frequency in pi units

0.7

0.8

0.9

x(n), 0 <= n <= 9 2 1 0 -1 -2 0

x(n), 0 <= n <= 9 + 90 zeros 2 1 0 -1 -2 2 1 0 -1 -2

x(n), 0 <= n <= 99

5 10 0 50 100 0 50 100 n n n Samples of DTFT Magnitude DTFT Magnitude DTFT Magnitude 10 10 60 8 6 4 2 0 0 0.5 1 frequency in pi units 8 6 4 2 0 0 0.5 1 frequency in pi units 0 0 0.5 1 frequency in pi units 40

20

DFT de sinais sinusoidais


1 40

0.5

20

0 1

10

20

30

40

0 20

10

20

30

40

10

-1 1

10

20

30

40

0 20

10

20

30

40

10

-1 1

10

20

30

40

0 40

10

20

30

40

20

-1

10

20

30

40

10

20

30

40

10

Porm:
1

0.5

-0.5

-1

10

15

20

25

30

35

15

10

10

15

20

25

30

35

8.6. Propriedades da DFT


8.6.1. Linearidade:
DFT ( N x1[ n] 3 ) X 1[k ]

DFT ( N x2 [n] 3 ) X 2 [k ] DFT ( N 3 ) a.x1[n] + b.x2 [ n] a. X 1[ k ] + b. X 2 [ k ]

N 3 max{N1 , N 2 }
DFT ( N 8.6.2. Deslocamento Circular: x[n] ) X [k ]
DFT ( N x[((n m)) N ] ) X [k ].e
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

11

Deslocamento Circular

8.6.5. Convoluo Circular: Nada mais do que a convoluo peridica considerando sinais de durao finitos x1[n] e x2[n] Linear:
Sinais ilimitados

x1[n] * x2 [n] =

m =

x [m].x [n m]
1 2 M =0 N 1

Peridica: ~2 [n] * ~2 [n] = x x


Sinais peridicos

x x ~ [m].~ [n m]
1 2

N 1

Circular:
Sinais limitados

x1[n]

x2 [n] = x1[((m)) N ].x2 [((n m)) N ]


m =0

DFT ( N x1[n] ) X 1[k ] DFT ( N x2 [n] ) X 2 [k ]

x1[n]

DFT ( N x2 [n] ) X 1[k ]. X 2 [k ]

12

8.6.6. Resumo das Propriedades da DFT

13

8.7. Convoluo Linear usando DFT


-Existem algoritmos muito eficientes p/ clculo da DFT algoritmos de FFT (Fast Fourier Transform) Logo eficiente implementar a convoluo de 2 sinais atravs 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]


Porm muitas vezes desejamos: x3 [n] = x1[n] x2 [n]

Sendo:

x1[n] de comprimento L x2 [n] de comprimento P

O resultado da convoluo circular de N amostras ser igual convoluo linear se:

N L + P 1

Porm: se um dos sinais tiver comprimento indeterminado (processamento em tempo real). Dois mtodos implementam uma forma eficiente de clculo da convoluo linear atravs da DFT. Overlap-add e Overlap-save

14

15

Convoluo Circular
3 2.5 2 x1[n] 1.5 1 0.5 0

2 3 0 0 1 0 0 x1[n] 3 2

3 0 0 1 2 x2[-n]

4 n

3 2.5 2 x2[n] 1.5 1 0.5 0

1 0 0 3 2 1

3 2 1 0 0 0 3 2 1 0

4 n

12 10 8 y[n] 6 4 2 0

1.5

2.5

3 n

3.5

4.5

Cmputo da DFT
kn X [k ] = x[n].WN n =0 N 1

x[n] =

1 1 L 1 1 W 1 L W N 1 kn N N WN = WN ;0 k , n N 1 = M M M M 2 N 1 ( L WNN 1) n 1 WN

X [n].W r r X = WN x r r 1 * x = WN X N
n =0

1 N

N 1

kn N

-como x[n] pode ser um sinal complexo, para se computar N amostras do sinal X[k] so necessrias N2 multiplicaes complexas e N(N-1) adies complexas ou 4N2 multiplicaes reais e N(4N-2) somas reais E mais memrias p/ armazenamento de N amostras complexas de x[n] e coeficientes WN

Diz-se que a complexidade da ordem de O(N2)

16

A maioria dos algoritmos de FFT exploram as seguintes caractersticas: 1) Simetria complexa conjugada: WNk [ N n ] = WN kn = (WNkn )
kn k ( n+ N ) ( = WN k + N ) n 2) Periodicidade em k e n : WN = WN

Exploram ainda a decomposio de uma DFT de N pontos em DFTs de comprimentos menores Algoritmos: -Goertzel(1958): O(N2) -Cooley-Tukey(1965): Deu origem decimao no tempo -Sande-Tukey(1966): Deu origem decimao em freq.

Algoritmos de Decimao no Tempo


-decomposio sucessiva de x[n] em parcelas menores Diversos tipos: mais clssico: p/ N potncia de 2 x[n] de N pontos dividido em 2 sequncias de N/2 pontos Compostas dos n mpares e n pares
kn X [k ] = x[n].WN n =0 N 1

X [k ] =

n par

x[n].W

nk N

n mpar

x[n].W

nk N

17

X [k ] =

n par

x[n].W

nk N

n mpar

x[n].W

nk N

Mudando as variveis: n=2r para n par n=2r+1 para n mpar

X [k ] = X [k ] =

( N / 2 1) r =0

x[2r ].WN2rk +
r =0 2 x[2r ]. WN

( N / 2 1) r =0

x[2r + 1].W
( N / 2 1)

( 2 r +1) k N

( N / 2 1)

( )

rk

+ WNk

r =0

2 x[2r + 1]. WN

( )

rk

2 Como: WN = WN / 2

2 Como: WN = WN / 2

Podemos reescrever:

X [k ] = X [k ] =

( N / 2 1)

r =0 r =0

2 x[2r ]. WN

( )
rk N /2

rk

+ WNk

( N / 2 1)

r =0

2 x[2r + 1]. WN

( )

rk

( N / 2 1)

x[2r ].W
k N

k + WN

( N / 2 1) r =0

x[2r + 1].W

rk N /2

X [k ] = G[ k ] + W H [k ]

k = 0,1,2,..., N 1

18

Aplicando o mesmo princpio para o clculo de G[k] e H[k] DFT(N/2)

G[k ] =

( N / 4 1)
l =0

g[2l ].WNlk/ 4 + WNk / 2 h[2l ].W


l =0 lk N /4

( N / 4 1)
l =0

g[2l + 1].W
l =0

lk N /4

H [k ] =

( N / 4 1)

k + WN / 2

( N / 4 1)

h[2l + 1].W

lk N /4

Temos:

E assim sucessivamente at chegar ao clculo da DFT(2)

19

DFT de 2 pontos:
kn X [k ] = x[n].WN n =0 1

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]

Diagrama completo p/ DFT 8-pontos decimao no tempo:

Notar que a complexidade computacional : N.log(N)

20

Reduzindo ainda mais a complexidade computacional: Clula bsica de computao: butterfly

Como:

( r r WNr + N / 2) = WN .WNN / 2 = WN .(1)

Assim: Algoritmo completo

Obs: -Complexidade computacional O(N.log(N)) -Computao In-Place, uso da mesma memria p/ entrada e sada -Ordem do sinal de entrada x[n]

21

Ordenao 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]

Algoritmos de Decimao na Frequncia


-decomposio sucessiva de X[k] em parcelas menores Diversos tipos: mais clssico: p/ N potncia de 2 X[k] de N pontos dividido em 2 seqncias de N/2 pontos Compostas dos k mpares e k pares
nk X [k ] = x[n].WN n =0 n X [ 2r ] = x[ n].WN ( 2 r ) n =0 N 1 N 1

P/ X[pares]

Que podemos escrever como:

22

n X [ 2r ] = x[ n].WN ( 2 r ) n =0

N 1

P/ X[pares]

Que podemos escrever como:

X [ 2r ] =

N / 2 1 n =0

x[n].WN2nr +
N / 2 1 n =0

n= N / 2

x[n].W
N / 2 1 n =0

N 1

2 nr N

Substituindo variveis no 2 somatrio

X [ 2r ] =

x[n].W

2 nr N

x[n +

2 ].WN ( n +

2)r

2 2 rN 2 Notando que: WN r ( n + N / 2 ) = WN rn .WN = WN rn .1


N / 2 1 n =0

Logo:

X [ 2r ] =

x[n].WN2rn +

N / 2 1 n =0

x[n +

2 ].WN rn

Lembrando que:

2 rn WN rn = WN / 2
N / 2 1 n =0 N / 2 1 n =0

Temos que: X [2r ] =

x[n].W
N / 2 1 n =0

2 rn N

x[n +
N 2

2 ].WN rn

Pode ser escrito como:

X [ 2r ] =

(x[n] + x[n + ]).W

rn N /2

De modo anlogo p/ k mpares podemos escrever:


n X [ 2r + 1] = x[n].WN ( 2 r +1) n =0 N 1

P/ X[mpares]

Que podemos escrever como:

23

n X [ 2r + 1] = x[n].WN ( 2 r +1) n =0

N 1

P/ X[mpares]

Que podemos escrever como:

X [ 2r + 1] =

N / 2 1 n =0

x[n].WNn( 2r +1) +

n= N / 2

x[n].W

N 1

n ( 2 r +1) N

Substituindo variveis no 2 somatrio

X [ 2r + 1] =

N / 2 1 n =0

x[n].WNn( 2r +1) +

N / 2 1 n =0

x[n +

( ].WNn +

2 )( 2 r +1)

( ( n Notando que: WN n + N / 2 )( 2 r +1) = WN ( 2 r +1) .WN2 r +1)

n = WN ( 2 r +1) .(1)
n ].WN ( 2 r +1)

Logo: X [ 2r + 1] =

N / 2 1 n =0

x[n].WNn( 2r +1)

N / 2 1 n =0

x[n +

Logo: X [ 2r + 1] =

N / 2 1 n =0

x[n].WNn( 2r +1)
N / 2 1 n =0 N / 2 1

N / 2 1 n =0

x[n +
2

n ].WN ( 2 r +1)

X [2r + 1] = X [2r + 1] =

(x[n] x[n + ]).W


N N 2 n =0 N / 2 1 n =0 N

n ( 2 r +1) N 2 nr N n .WN n N nr .WN / 2

(x[n] x[n + ]).W


2

P/ k mpares: X [2r + 1] =

(x[n] x[n + ]).W


P/ k pares:

X [ 2r ] =

N / 2 1 n =0

(x[n] + x[n + ]).W


N 2

rn N /2

24

Aplicando o mesmo procedimento p/ clculo da DFT N/2 pontos

E assim sucessivamente at a DFT de 2 pontos, Calculada por:

Algoritmo completo p/ DFT(8) decimao em Frequncia:

Obs: -O(N.log(N)) -Computao In-Place -Sada bit-reverso

25

Algoritmos vistos so Radix-2 Outros algoritmos: -Radix-4, Radix-8, etc... -Split-Radix -Produto de inteiros -...

Convoluo:

Mtodo Direto: y[n] = x[k ].h[n k ] Complexidade: O(2N2)


k =0

N 1

N N1 + N 2 1 = 2 N 1
N ( 2 Por FFT: x[n] FFT ) X [k ] N h[n] FFT ) H [k ] ( 2

Y [k ] = X [k ].H [k ]
Y [k ] IFFTN ) y[n] ( 2

Complexidade: O(3.2N.log(2N)+2N)

26

Você também pode gostar