Post on 02-Apr-2020
Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta de Fourier
Carlos Alexandre Mello
2 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformadas
O uso de transformadas serve para observar características de um sinal que já estavam presentes nele, mas que podem não ser observáveis em um domínio
Assim, as transformadas conseguem levar o sinal para outro domínio e trazê-lo de volta ao domínio original. Transformada de Fourier
Transformada Wavelet
Transformada do Cosseno
...
2
3 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada de Fourier
3
e-jw: kernel da transformada
4 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada de Fourier Propriedades
Linearidade: a.f(t) + b.g(t) a.F(w) + b.G(w)
Deslocamento no tempo f(t - t0) e-j2wt0.F(w)
Deslocamento na frequência: f(t)ej2w0t F(w – w0)
Escalonamento: f(a.t) (1/|a|)F(w/a)
Convolução no tempo: f(t)*g(t) F(w).G(w)
Convolução na frequência: f(t).g(t) (1/2)F(w)*G(w)
4
5 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Considere uma sequência x[n] que é periódica de período N:
x[n] = x[n + k.N], qualquer k inteiro
Da análise de Fourier, sabemos que funções periódicas podem ser sintetizadas como uma combinação linear de exponenciais complexas cujas frequências são múltiplas (ou harmônicas) da frequência fundamental (no caso 2/N)
5
6 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Da periodicidade no domínio da frequência
da transformada de Fourier discreta no
tempo, concluímos que existe um número
finito de harmônicos:
as frequências {(2/N)k, k = 0, 1, 2, ...., N-1}
6
7 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Assim, a sequência periódica x[n] pode ser
expressa como:
onde {X[k], k = 0, 1, ....} são chamados de
coeficientes da série discreta de Fourier:
7
, n = 0, 1, ....
, k = 0, 1, ....
8 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
x[n] é a sequência discreta no domínio do tempo
que descreve os valores amostrados da variável
contínua x(t) e N é o número de amostras da
sequência da entrada
Observe que X[k] também é uma sequência
periódica com período fundamental igual a N
Ou seja, X[k + N] = X[k]
As equações anteriores são a representação
discreta em série de Fourier de sequências
periódicas
8
9 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Por conveniência de notação, podemos
chamar:
Assim, temos:
Equação de Análise:
Equação de Síntese:
9
10 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Exemplo:
Encontre a representação em série de Fourier
da sequência:
x[n] = {...0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ....}
O período fundamental da sequência é N = 4
Assim, W4 = e-j2/4 = e-j/2 = cos(-/2) + j.sen(-
/2) = 0 + j.(-1) = -j
10
11 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Exemplo (cont.):
Agora:
Assim:
11
12 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Uma outra forma de ver a transformada discreta
de Fourier é através de uma representação em
matrizes
12
X e x são vetores
coluna
13 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
WN é chamada de Matriz DFS
No MatLab:
13
function [Xk] = dfs (xn, N)
n = [0:N-1];
k = [0:N-1];
WN = exp(-j*2*pi/N);
nk = n'*k;
WNnk = WN.^nk;
Xk = xn*WNnk; >> xn = [0 1 2 3]; N = 4;
>> Xk = dfs(xn, N)
Xk = 6 -2 + 2i -2 - 0i -2 - 2i
14 Carlos Alexandre Mello – cabm@cin.ufpe.br
A Série Discreta de Fourier
Inversa:
14
function [xn] = idfs(Xk, N)
n = [0:N-1];
k = [0:N-1];
WN = exp(-j*2*pi/N);
nk = n'*k;
WNnk = WN.^(-nk);
xn = (Xk*WNnk)/N; Para o Xk anterior, temos:
>> xn = idfs(Xk, N)
xn = 0 - 0i 1 - 0i 2 - 0i 3 + 0i
15 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta de Fourier
A DFT de uma sequência de N-pontos é dada por:
X[k] também é uma sequência de N-pontos, ou seja, ela
não é definida fora do intervalo de 0 k N – 1
A IDFT é dada por:
15
, 0 k N – 1
, 0 n N – 1
16 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta de Fourier
Como antes:
Assim, temos:
Equação de Análise:
Equação de Síntese:
16
17 Carlos Alexandre Mello – cabm@cin.ufpe.br
1) Linearidade
a.x1[n] + b.x2[n] a.X1[k] + b.X2[k]
Obs:
Se x1[n] e x2[n] são sequências de durações
diferentes (N1-pontos e N2-pontos, por exemplo),
escolha N3 = max(N1, N2)
Se, por exemplo, N1 < N2, então X1[k] é a DFT
de x1[n] aumentada de (N2 – N1) zeros
Zero padding
Transformada Discreta de Fourier Propriedades
17
18 Carlos Alexandre Mello – cabm@cin.ufpe.br
2) Deslocamento de uma sequência
x[n – m] WNkmX[m]
3) Dualidade
Se x[n] X[k], então X[n] N.x[-k]
4) Simetria
Quando a sequência do sinal for real, então X[N
− m]* = X[m]
Ou seja basta que calculemos as componentes de
X[m] para 0 ≤ m ≤ N/2
Transformada Discreta de Fourier Propriedades
18
19 Carlos Alexandre Mello – cabm@cin.ufpe.br
5) Convolução periódica
Transformada Discreta de Fourier Propriedades
19
20 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo:
Transformada Discreta de Fourier
20
>> n = 0:99;
>> fs = 200;
>> Ts=1/fs;
>>x=cos(2*pi*20*n*Ts + pi/4) + 3*cos(2*pi*40*n*Ts - 2*pi/5) + 2*cos(2*pi*60*n*Ts + pi/8);
>> X = fft(x);
>> m = 0:length(X) - 1;
>> subplot(3, 1, 1); stem(x); xlabel('n');ylabel('x(n)');title('Sequencia');
>> subplot(3, 1, 2); stem(m*fs/length(X), abs(X), 'b'); ylabel('magnitude');
>> xlabel('frequencia (Hz)'); title('Magnitude da Resposta em Frequencia');
>> subplot(3,1,3); stem(m*fs/length(X), angle(X), 'b'); ylabel('Angulo');
>> xlabel('frequencia (Hz)'); title('Fase');
x é real
21 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo (cont.):
Transformada Discreta de Fourier
21
22 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo (cont.):
Observe que, como o sinal x[n] é real, a magnitude da
resposta em frequência apresenta uma imagem
refletida
Assim, precisamos apenas da primeira metade dela
Transformada Discreta de Fourier
22
23 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo (cont.):
Podemos fazer:
Transformada Discreta de Fourier
23
>> half_m = 0:ceil(length(X)/2);
>> stem(half_m*fs/length(X), abs(X(half_m + 1)), 'b');
>> ylabel('magnitude');
>> xlabel('frequencia (Hz)'); title('Magnitude da Resposta em Frequencia');
24 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo (cont.):
Transformada Discreta de Fourier
24
25 Carlos Alexandre Mello – cabm@cin.ufpe.br
Exemplo (cont.):
Para a fase, o padrão também aparece mas refletido no
eixo da frequência; novamente, só precisamos de
metade da plotagem
Transformada Discreta de Fourier
25
26 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta Bi-Dimensional de
Fourier
26
DFT
27 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta Bi-Dimensional de
Fourier
27
Transformada Discreta de Fourier
Espectrograma
O espectrograma é uma representação visual
dos harmônicos de um sinal de entrada em
função do tempo
Do ponto de vista de implementação, temos um
janelamento do sinal de entrada tomando a
transformada de Fourier de cada parte e
plotando ela
28 Carlos Alexandre Mello – cabm@cin.ufpe.br 28
Transformada Discreta de Fourier
Espectrograma
A forma mais comum de representarmos um
espectrograma é através de um gráfico bi-
dimensional onde a abscissa corresponde ao
tempo e a ordenada à frequência
Uma terceira dimensão indica a amplitude de
cada frequência e é normalmente associada a
uma cor
Com isso, o espectrograma pode ser visto como uma
imagem
29 Carlos Alexandre Mello – cabm@cin.ufpe.br 29
Transformada Discreta de Fourier
Espectrograma: Exemplo (sinal de voz)
30 Carlos Alexandre Mello – cabm@cin.ufpe.br 30
Transformada Discreta de Fourier
Espectrograma: Exemplo (sinal de voz)
31 Carlos Alexandre Mello – cabm@cin.ufpe.br 31
Transformada Discreta de Fourier
Espectrograma: Exemplo (sinal de voz)
32 Carlos Alexandre Mello – cabm@cin.ufpe.br 32
Transformada Discreta de Fourier
Espectrograma
Normalmente, espectrogramas são gerados
através do cálculo do quadrado da magnitude
da STFT (Short-Time Fourier Transform –
Transformada de Fourier de Tempo Curto) do
sinal
Podemos interpretar esse valor como a
densidade espectral de potência
33 Carlos Alexandre Mello – cabm@cin.ufpe.br 33
Transformada Discreta de Fourier
Espectrograma
Sem informação de fase
Não há clara interpretação
Permite analisar sinais não-estacionários,
considerando-os localmente estacionários
Questões relacionadas às janelas:
Que tipo de janela?
Qual o tamanho? (pode implicar em zero padding)
Sobreposição?
34 Carlos Alexandre Mello – cabm@cin.ufpe.br 34
Transformada Discreta de Fourier
Espectrograma
Variação na Janela (Hamming)
35 Carlos Alexandre Mello – cabm@cin.ufpe.br 35
>> x = abs(fft(hamming(512).*y2, 1024));
>> z = 10*log10(abs(fft(hamming(512).*y2, 1024)));
>> figure, subplot (2, 1, 1); plot (x);
>> subplot (2, 1, 2); plot (z);
dB
Transformada Discreta de Fourier
Espectrograma
Variação na Janela (Hanning)
36 Carlos Alexandre Mello – cabm@cin.ufpe.br 36
>> x = abs(fft(hanning(512).*y2, 1024));
>> z = 10*log10(abs(fft(hanning(512).*y2, 1024)));
>> figure, subplot (2, 1, 1); plot (x);
>> subplot (2, 1, 2); plot (z);
dB
Transformada Discreta de Fourier
Espectrograma
Variação na Janela (Retangular)
37 Carlos Alexandre Mello – cabm@cin.ufpe.br 37
>> x = abs(fft(rectwin(512).*y2, 1024));
>> z = 10*log10(abs(fft(rectwin(512).*y2, 1024)));
>> figure, subplot (2, 1, 1); plot (x);
>> subplot (2, 1, 2); plot (z);
dB
Transformada Discreta de Fourier
Espectrograma
Sobreposição (em geral 25 a 75%)
38 Carlos Alexandre Mello – cabm@cin.ufpe.br 38
Transformada Discreta de Fourier
Espectrograma
Sobreposição
39 Carlos Alexandre Mello – cabm@cin.ufpe.br 39
>> load chirp
>> spectrogram (y, 256, 250, 1e3, 'yaxis');
>> figure, spectrogram (y, 256, 0, 1e3, 'yaxis');
Transformada Discreta de Fourier
Espectrograma
O tipo da janela afeta a forma do espectro em
cada região analisada
O tamanho da janela afeta a suavidade do
espectro
Janela curta → espectrograma de banda larga
Janela longa → espectrograma de banda estreita
40 Carlos Alexandre Mello – cabm@cin.ufpe.br 40
Transformada Discreta de Fourier
Espectrograma
41 Carlos Alexandre Mello – cabm@cin.ufpe.br 41
Janela: 128
Sobreposição: 120
Transformada Discreta de Fourier
Espectrograma
42 Carlos Alexandre Mello – cabm@cin.ufpe.br 42
Janela: 256
Sobreposição: 250
Transformada Discreta de Fourier
Espectrograma
43 Carlos Alexandre Mello – cabm@cin.ufpe.br 43
Janela: 512
Sobreposição: 500
Transformada Discreta de Fourier
Espectrograma
44 Carlos Alexandre Mello – cabm@cin.ufpe.br 44
45 Carlos Alexandre Mello – cabm@cin.ufpe.br 45 Carlos Alexandre Mello – cabm@cin.ufpe.br
Transformada Discreta de Fourier
Referências:
Digital Signal Processing using MatLab, V.Ingle,
J.G.Proakis, Brooks/Cole, 2000
Discrete-Time Signal Processing, A.Oppenheim
e R.W.Schafer, Prentice-Hall, 1989
Digital Signal Processing Using MatLab and
Wavelets, M.Weeks, Ed. Infinity Science, 2007
45