Você está na página 1de 38

Processamento Digital de Sinais

Transformada Discreta de
Fourier
Prof. Dr. Carlos Alberto Ynoguti
Jean Baptiste Joseph Fourier

Nascimento: 21 de março de 1768 em Auxerre,


Bourgogne, França

Morte: 16 de maio de 1830 em Paris, França


Introdução

A análise de Fourier é uma família de técnicas


matemáticas, todas elas baseadas na decomposição de
sinais em senóides.

A Transformada Discreta de Fourier (Discrete Fourier


Transform - DFT) é o membro da família utilizado para
sinais digitalizados.

A DFT tem versões real e imaginária. Neste curso iremos


focar apenas a versão real da DFT.
Classificação de sinais

Os sinais podem ser classificados segundo vários


critérios. Por exemplo:
sinais contínuos ou discretos
sinais periódicos ou aperiódicos
Estes dois critérios levam aos quatro elementos da família
de transformadas de Fourier:
Sinais contínuos e aperiódicos: Transformada de Fourier
Sinais contínuos e periódicos: Série de Fourier
Sinais discretos e aperiódicos: Transformada de Fourier de Tempo
Discreto (DTFT)
Sinais discretos e periódicos: Transformada Discreta de Fourier
(DFT)
“Família” Fourier

Transformada de Fourier
(aperiódico, contínuo)

Série de Fourier
(periódico, contínuo)

Transformada de Fourier de Tempo


Discreto (DTFT) (aperiódico, discreto)

Transformada Discreta de Fourier


(DFT) (periódico, discreto)
Observações

Todos os quatro membros da família de transformadas de


Fourier assumem que os sinais sob análise têm duração infinita.
Para analisar os sinais com um computador ou um DSP, os
sinais têm necessariamente que ter duração finita.
Desta forma, temos que fazer com que os sinais “pareçam” ter
duração infinita.
Isto pode ser feito de duas maneiras:
– Considerar que o sinal é nulo fora do intervalo de análise
(aperiódico - DTFT)
– Considerar que o sinal se repete periodicamente (periódico -
DFT)
O que funciona na prática

Para processar os sinais usando um computador ou DSP,


os sinais devem estar na forma digital (discretos).

Para representar sinais aperiódicos são necessárias


infinitas senóides, o que inviabiliza o uso da DTFT.

Em outras palavras, computadores só podem lidar com


sinais discretos e finitos em comprimento.

Conclusão: a única transformada que pode ser utilizada na


prática é a DFT.
Decomposição em senóides
cossenos
Um sinal de N=16 pontos ...

decomposição

senos
síntese

... pode ser decomposto em


N/2+1=9 sinais cossenoidais e
N/2+1=9 sinais senoidais,
cada um com 16 pontos.
Por que usar senóides?

Existem infinitas formas de onda que podem ser usadas


na decomposição: onda quadrada, triangular, etc.
A razão para a escolha das senóides é a propriedade de
fidelidade senoidal: senóides que entram em um sistema
linear saem como senóides com (possíveis) mudanças na
amplitude e fase, mas mantendo a frequência original.
Esta propriedade é bastante útil (como veremos a seguir),
e apenas as senóides a possuem.
Em resumo, outras decomposições são possíveis, mas
não são úteis.
Notação e formato da DFT real

Converte um sinal de N pontos no domínio do tempo em 2


sinais de (N/2+1) pontos no domínio da frequência.
O sinal de entrada (tempo) contém as amostras do sinal a ser
decomposto, e os sinais de saída (frequências) contêm as
amplitudes dos senos e cossenos.

Domínio do tempo Domínio da frequência

DFT direta ReX[f]

x[n] 0 N/2
(amplitudes dos cossenos)
0 N-1
ImX[f]

DFT inversa 0 N/2


(amplitudes dos senos)
Observações

As informações contidas no domínio da frequência são


exatamente as mesmas do domínio do tempo, só que de
forma diferente.
Tempo  Frequência: decomposição, análise, DFT direta.
Frequência  Tempo: síntese, DFT inversa.
O número de amostras no domínio do tempo é geralmente
representado pela letra N, sendo que N é geralmente
potência de 2, por causa do modo de representação digital
(binário), e porque o algoritmo da FFT opera com um
número de amostras que deve ser potência de 2.
A variável independente no domínio da
frequência

N Em termos do número de pontos da


0 N/2 DFT

fs Em termos de fração da frequência de


0 0.5
amostragem

Hz Em termos da frequência real do sinal


0 fs/2

 Em termos da frequência angular do sinal


0 
Cheque sua compreensão

Ocorre um pico na amostra correspondente ao índice 19


quando tomamos a DFT de 256 pontos de um sinal qualquer.

a) Qual é a frequência do pico expressa como uma fração da


frequência de amostragem? É necessário conhecer a
frequência de amostragem para responder a esta questão?
b) Qual é a frequência do pico expressa como frequência
natural?
c) Qual é a taxa de amostragem se o pico corresponde a
21,5kHz no sinal analógico?
d) Qual é a frequência da senóide (em Hz) se a taxa de
amostragem é de 100 kHz?
Funções base da DFT

As ondas senoidais e cossenoidais usadas na DFT


são comumentemente chamadas de funções base da
DFT.
A saída da DFT é um conjunto de números que
representam as amplitudes destes senos e cossenos.
A soma destes vários senos e cossenos ponderados
pelos coeficientes da DFT gera o sinal original no
domínio do tempo.
Pontos importantes

As funções base da DFT são geradas a partir de:


c k [i ]=cos (2 π ki/ N ) s k [i]= sen(2π ki/ N )
onde ck é a onda cossenoidal cuja amplitude é dada por
ReX[k], e sk é a senóide cuja amplitude é dada por ImX[k].
k determina a frequência de cada senóide. Por exemplo,
k=5 corresponde a uma senóide (ou cossenóide) que
completa 5 ciclos em N pontos.
Cada uma destas senóides e cossenóides deve ter N
pontos, de modo que a soma destas resulte no sinal
original de N pontos.
Exemplo

c0 e s0: cossenos e senos com


0 ciclos completos em N=32 pontos

c2 e s2: cossenos e senos com


2 ciclos completos em N=32 pontos

c10 e s10: cossenos e senos com


10 ciclos completos em N=32 pontos

c16 e s16: cossenos e senos com 16


ciclos completos em N=32 pontos
Cheque sua compreensão

Determine as funções base para uma DFT de N=4 pontos.

c k [i ]=cos (2 π ki/ N ) s k [i]= sen(2π ki/ N )


Observações

c0: onda cossenoidal de amplitude 1 e frequência zero. ReX[0]


corresponde então ao nível DC do sinal.

s0: sinal composto só de zeros. Desde que não influi na síntese


do sinal no tempo, ImX[0] assume sempre o valor 0.

c16: cosseno que realiza 16 ciclos em N pontos. Corresponde a


uma onda senoidal amostrada nos picos.

s16: seno que realiza 16 ciclos em N pontos. Corresponde a


uma onda amostrada nos cruzamentos por zero. Portanto
ImX[N/2]=ImX[0]=0.
Questão

Se existem N amostras entrando e N/2+1 + N/2+1 = N+2


amostras saindo, de onde veio a informação extra?

Duas das amostras de saída são nulas e não carregam


informação: ImX[0] e ImX[N/2]
Equações de análise – DFT direta

O método clássico para a determinação dos coeficientes


da DFT é o da correlação.
Resumidamente, para detectar uma forma de onda
conhecida contida em um outro sinal, multiplique os os
sinais e some os pontos do produto resultante.
Este procedimento fornece um número que é uma medida
da similaridade entre os dois sinais.
Desta forma, as equações de análise da DFT fornecem
coeficientes que são uma medida da similaridade entre o
sinal sob análise e cada uma das senóides e cossenóides.
DFT direta

N −1 N −1
ReX [k ]= ∑ x [i]cos 2  k i / N  ImX [k ]=− ∑ x [i ]sen 2  k i / N 
i=0 i=0

Cada amostra no domínio da frequência é encontrada


multiplicando-se o sinal no domínio do tempo pela onda
senoidal ou cossenoidal em questão, e somando os
resultados.
Em outras palavras, os coeficientes ReX[k] e ImX[k] são o
resultado da correlação entre o sinal e cada uma das
funções base, para um deslocamento igual a zero da
máquina de correlação vista anteriormente.
Exemplo

Calcule a DFT de 4 pontos do sinal x={1,2,3,4}.


Equações de Síntese – DFT inversa

Problema: reconstruir o sinal original no domínio do tempo


através da combinação linear de senos e cossenos.
N/2 N/2
x [i]=∑ Re X
 [k ] cos 2  k i/ N  ∑ Im X
 [k ]sen 2  k i/ N 
k =0 k=0

onde:

Re X [ k ] Re X [ 0 ]
 [ k ]=
Re X  [ 0]=
Re X
N /2 N

−Im X [ k ] Re X [ N / 2]
 [ k ]=
Im X  [ N / 2]=
Re X
N /2 N
Exemplo

O domínio da frequência de um sinal é dado por:

parte real: 1, 2, 3, 3, 1, -2, -1, 1, 2


parte imaginária: 0, -1, -2, 0, 0, 0, 2, 1, 0

a) A qual comprimento de DFT este sinal corresponde?


b) Calcule as amplitudes dos senos e cossenos para
reconstruir o sinal no domínio do tempo.
c) Qual é a média do sinal no domínio do tempo (nível DC)?
Notação polar

O domínio da frequência consiste de um grupo de amplitudes


de senos e cossenos.
Esta forma de representação é conhecida como notação
retangular.
Alternativamente, podemos representar o domínio da
frequência em notação polar.
Nesta forma, ReX[ ] e ImX[ ] são substituídas por MagX[ ] e
FaseX[ ], representando a magnitude e a fase de X[ ].
MagX[ ] e FaseX[ ] são substitutos par-a-par de ReX[ ] e ImX[ ],
isto é, para calcular MagX[0] e FaseX[0], precisamos somente
de ReX[0] e ImX[0], e assim por diante.
Conversão Retangular-Polar

Im  2
MagX [ k ]= ReX [ k ]ImX [ k ]
2

MagX
FaseX [ k ]=arctg
 ImX [ k ]
ReX [ k ] 
ImX

FaseX
ReX [ k ]= MagX [ k ] cos  FaseX [ k ] 
ReX Re
ImX [ k ]=MagX [ k ] sen  FaseX [ k ] 
Informação na forma polar
Problemas com a notação polar

Existem alguns problemas numéricos quando lidamos


com a notação polar:
Fase em radianos ou em graus
Divisão por zero no cálculo da fase
Arco-tangente incorreta
Fase de sinais de baixa magnitude
Ambiguidade da fase de 2
Ambiguidade da fase de 
Radianos vs Graus

A fase pode ser expressa em graus (de -1800 a +1800) ou


em radianos (de - a +).
A maioria das linguagens de programação usa a fase em
radianos.
Fonte de muitos erros de implementação.
Divisão por zero no cálculo da fase

Quando a parte real é nula (ReX[k]=0), temos uma fase de –900


ou +900 (- ou +), dependendo do sinal da parte imaginária.
A fórmula da fase leva a uma divisão por zero, o que causa erro
em tempo de execução.
Fácilmente contornável através de estruturas condicionais (if).

Im

ImX
MagX
FaseX [ k ]=arctg
 ImX [ k ]
ReX [ k ] 
FaseX

ReX Re
Erro no arco-tangente

Im Im

0
=45 -1
1 Re Re
0
=−135

-1

FaseX [ k ]=arctg
 
ImX [ k ]
ReX [ k ]
FaseX [ k ]=arctg
 
ImX [ k ]
ReX [ k ]

=arctg
1
1
=arctg
 
−1
−1
=450 =45
0
Erro no arco-tangente (cont.)

Este erro acontece sempre que a parte real é negativa. Para


corrigi-lo, devemos adotar o seguinte procedimento:
– Se tanto a parte real como a parte imaginária forem negativas,
devemos subtrair 1800 (ou  radianos) da fase calculada.
– Se a parte real é negativa e a parte imaginária é positiva,
devemos somar 1800 (ou  radianos) à fase calculada.
Como identificar este erro: se a fase variar no intervalo (-
900,900) ao invés de no intervalo (-1800,+1800), você está
calculando a fase de forma errada.
Fase de sinais de baixa magnitude

Quando um sinal de baixa amplitude, contaminado por


ruído, é visto na forma polar, temos:
– a magnitude é pequena também;
– a fase assume valores aleatórios entre -1800 e +1800 (- a +).
Ambiguidade 2 da fase

A fase geralmente se apresenta no intervalo (- a +), como em a).


É geralmente mais fácil de entender a fase se esta não apresentar
descontinuidades, como em b) (phase unwrapping).

a) b)
Cheque sua compreensão

Converter as seguintes partes reais e imaginárias para a


forma polar. Esboce um diagrama para cada um. Em cada
caso verifique se a equação fase = arctan (IP / RP) fornece a
resposta correta sem etapas adicionais:

a. RP = 1, IP = 1 e. RP = 1, IP = 0
b. RP = 1, IP = -1 f. RP = -1, IP = 0
c. RP = -1, IP = 1 g. RP = 0, IP = 1
d. RP = -1, IP = -1 h. RP = 0, IP = -1
A Transformada Discreta do Cosseno

Transformada direta:

[ ]
N −1
  n1/2 k
C k = k  ∑ x  n cos , para 0nN −1
n=0 N
onde

 k =
{
1 /n , k =0
 2/ n ,1k N −1
Transformada inversa:

[ ]
N −1
  n1/2 k
x  n= ∑  k C  k  cos , para 0nN −1
k=0 N
Propriedade da DCT

Quando aplicada a sinais como voz e vídeo, a maior parte


da energia é concentrada em uns poucos coeficientes.
Com isto pode-se descartar a maioria dos coeficientes na
transmissão, sem perda significativa de qualidade.
A DCT faz parte da maioria dos sistemas de videodifusão
digital em operação em todo o mundo.
Exemplo: JPEG

Você também pode gostar