Universidade Federal da Paraíba
Departamento de Engenharia Elétrica
Centro de Energias Alternativas e Renováveis
Transformada Discreta de Fourier
Prof. José Mauricio Neto
[email protected]
1
Transformada Discreta de Fourier
• Para um sinal discreto não periódico x[n], de tamanho L:
L

1

j

n
X
(

)

x
[
n
]
e
,
k

0
,
1
,
2
,
.
.
.
.
,
L

1
n

0
2

k

 , k
0
,...,L

1
L
F
xn
[ ]


X(
)
2
Transformada Discreta de Fourier
• L=5
k 0
2

k

 , k
0
,...,L

1
L
k = 0,1,2,3,4
 0
4
X(0)  x[n]
n0
k 1
k 2
k 3
k 4
2

5
4

5
6

5
8

5
4
X(2/5)  x[n]e j2n/5
n0
4
X(4/5)  x[n]e j4n/5
n0
4
X(6/5)  x[n]e j6n/5
n0
4
X(8/5)  x[n]e j8n/5
n0
3
Transformada Discreta de Fourier
• Módulo e Fase
k0 0
4
X(0)
xn
[]
X(0)ej0
n0
k1
k2
k3
k4
2

5
4

5
6

5
8

5
4
X(2/5)
xne
[ ] j2n/5
X(2/5)ej1
n0
4
X(4/5)
xne
[ ] j4n/5
X(4/5)ej2
n0
4
X(6/5)
xne
[ ] j6n/5
X(6/5)ej3
n0
4
X(8/5)
xne
[ ] j8n/5
X(8/5)ej4
n0
4
Transformada Discreta de Fourier
• Resolução da TDF:
k 0
0
k 1

k 2
k 3
k 4
2
5
4

5
6

5
8

5
0 
2
L
X (0) e j0
X (2 / 5) e j1
X (4 / 5) e j2
X (6 / 5) e j3
X (8 / 5) e j4
5
Transformada Discreta de Fourier
• A Transformada de Fourier para o sinal x[n], de
tamanho N, é definido por:
N

1

j

n
X
(

)

x
[
n
]
e
,
k

0
,
1
,
2
,
.
.
.
.
,
N

1
n

0
N

1
1
j

n
x
[
n
]

X
(

)
e
,n

0
,
1
,
2
,
.
.
.
,
N

1

N
k

0
2

k

 , k
0
,...,N

1
N
Notação:
F
xn
[ ]


X(
)
7
Resumo das Formulas da Transformada Discreta de Fourier
13
Transformada Discreta de Fourier
2

 fs
 f (Hz)

fs
f(H
z)
2
fs
2



;
f

0
0
N
N
14
Desenvolvimento da Formula da DFT
• Para uma sequência x[n], 0nN-1, a DFT é dada por:
N

1

j
2
k
n
/N
X
(
k
)

x
[
n
]
e
,

k

0
,
1
,2
,
.
.
.
.
,N

1
n

0
N

1
k
n
X
(
k
)

x
[
n
]
W
N
n

0
k
0
k
1
k
2
k
(
N

1
)
X
(
k
)

x
[
0
]
W

x
[
1
]
W

x
[
2
]
W

.
.
.

x
[
N

1
]
W
N
N
N
N
2

2






c
o
s

j
s
i
n


N
N





j
2

/
N
W

e
N
15
Inversa da DFT
N

1
1
j
2

k
n
/
N
x
[
n
]

X
(
k
)
e
,
N
k

0
n

0
,
1
,2
,
.
.
.
.
,N

1
N

1

k
n
x
[
n
]

X
(
k
)
W
N
k

0
1 
0
n

1
n

2
n

(
N

1
)
n
x
[
nX
]

(
0
)
W

X
(
1
)
W

X
(
2
)
W

.
.
.

X
(
N

1
)
W

N
N
N
N
N
16
Análise do Espectro
• Para uma sequência discreta x[n] obtida através da
amostragem de um sinal analógico x(t) e truncada
utilizando uma janela com comprimento T0=NT, em
que T é o Tempo de amostragem e N é o numero de
pontos dos dados amostrados.
• O tempo para a janela de dados é
T0=NT
17
Análise do Espectro
18
Análise do Espectro
• Para uma sequência x[n], n=0,1,...,(N-1), com DFT:
N

1
n
k
X
(
k
)

x
[
n
]
W
,
k

0
,
1
,
2
,
.
.
.
.
,
N

1

N
n

0
• A partir do calculo dos coeficientes da DFT (número
complexo) pode ser determinada:
– Amplitude do espectro
– Fase do espectro
– Potência do espectro
19
Análise do Espectro
• Amplitude do espectro:
1
12
2
A

|
X
(
k
)
|

R
e
X
(
k
)I

m
X
(
k
)




k
N
N
k

0
,
1
,
2
,
.
.
.
.
,
N

1
• Pode-se modificar a amplitude do espectro para um
lado da representação espectral dobrando a
amplitude, mantendo o termo DC em k=0.
1
X
(0
), k
0


N
A

k
2X
(),
k k
1
,...,N
/2

N

20
Análise do Espectro
• Fase do espectro:
Im
( )
Xk

tan 

k
R

e
Xk
(
)




k0
,1
,2
,....,N1

1
N

1
n
k
X
(
k
)

x
[
n
]
W
,
k

0
,
1
,
2
,
.
.
.
.
,
N

1

N
n

0
21
Análise do Espectro
• Potência do espectro:
1
2 12
2
P

|
X
(
k
)
|

R
e(
X
k
)I

m
X
(
k
)






k
2
2
N
N
k

0
,
1
,
2
,
.
.
.
.
,
N

1
• Trasladando-se para o espectro de interesse:
1
2
|
X
(
0
)
|
k
0
2


N
P

k 
2
2|X
()
k
|
k
1
,...,N
/2
2

N

22
Exemplo 2
• Para a sequência discreta, com frequência de
amostragem fs = 100 amostras/s, determine a
amplitude, fase e potência do espectro.
1
Ak 
Re2 X(k)Im2 X(k)
N


1 Im X(k)
k  tan 
 ReX(k) 



1
Pk  2 Re2 X(k)Im2 X(k)
N
k 0,1,2,...., N1
23
Exemplo 2
• Para a sequencia discreta x[n] ={1, 2, 3, 4}, com N=4, os
coeficientes da DFT são:
Amplitude do espectro
Fase do espectro
Potência do espectro
24
25
Amplitude
Fase
Potência
26
• Trasladando-se a amplitude para o espectro de
interesse:
1
X
(0
), k
0


N
A

k
2X
(),
k k
1
,...,N
/2

N

27
Estimação de Espectros usando Funções
de Janelas (Window Functions)
• Considere um sinal senoidal com f0=1Hz, com 32
amostras
N=32 amostras
28
Estimação de Espectros usando Funções
de Janelas (Window Functions)
• Se for usado uma janela de N=16 amostras que é um
múltiplo de dois ciclos de onda. A janela seguinte
repetirá a onda com continuidade e a DFT é:
29
Estimação de Espectros usando Funções
de Janelas (Window Functions)
• Se for usado uma janela de N=18 amostras, que não é
um múltiplo de um ciclo de onda (2,25 ciclos), a
segunda janela repetirá a primeira janela com
descontinuidade, e a DFT é:
30
Uma única componente de
frequência (o esperado)
Componente da frequência principal e
harmônicos (que não existem no sinal
original), denominado de Vazamento
Espectral (Espectral Leakage), devido
a que a amplitude é descontínua no
domínio do tempo.
31
Estimação de Espectros usando Funções
de Janelas (Window Functions)
• Para reduzir o efeito do vazamento espectral, uma
função de janela pode ser usado cuja amplitude se
reduz de forma suave e gradual (próximo a zero) nos
extremos da janela.
• Aplicando a função de janela w[n] para a sequência
discreta x[n], se obtém uma nova sequência xw[n]:
x
[
n
]

x
[
n
]
w
[
nn
]
, 
0
,
1
,
.
.
.
,
(
N

1
)
w
32
Redução da
descontinuidade
33
Transformada de Fourier
Redução do
Vazamento
Espectral
34
Funções de Janelas (Window Functions)
• Janela Retangular
• Janela Triangular
• Janela de Hamming
• Janela de Hanning
35
Funções de Janelas (Window Functions)
36
Exemplo 3
• Para a sequência discreta x[0]=1, x[1]=2, x[2]=3 e
x[3]=4, e dada uma frequência de amostragem
fs=100amostras/s, Ts=0,01s, determinar a amplitude,
fase e potência do espectro, usando a janela triangular
37
Exemplo 3
• Para N=4
38
Exemplo 3
• A nova sequência é
• A DFT de xw[n] para k=0,1,2,3:
0
k
1
k
2
k
3
k
X
(
k
)

x
[
0
]
W

x
[
1
]
W

x
[
2
]
W

x
[
3
]
W
w 4 w4 w 4 w 4
39
Exemplo 3
• A resolução do espectro é
f 1
0
0
f0s 
2
5
H
z
N 4
• Determinação da Amplitude, Fase e Potência
40
Propriedades da DFT
•
Simetria e Periodicidade
41
Propriedades da DFT
42
Propiedades de la TDF
43
Propriedades da DFT
44
Propriedades da DFT
45
Propriedades da DFT
c f s
fc 
2
46
Propriedades da DFT
•
O espectro de interesse para o filtro passa-baixos é
ilustrado entre as frequências de 0 a fs/2
47
Considerações de Sistemas de Aquisição
do Sinal
X[n]
X[n]
x(t)
A/D
t
0 1
n
fs = Frequência de amostragem
(sampling)
0 1
N-1
n
N = número
de amostras
Ts = 1/fs = Tempo entre
amostras discretas
48
fs = 10 kHz
Ts = 1/fs = 0.1 ms (Tempo de amostragem)
N = 100 amostras
twindow = N*Ts=100*0.1ms = 10 ms
X[n]
X[n]
x(t)
A/D
t
twindow
0 1
n
fs = Frequência de amostragem
(sampling)
0 1
N-1
n
N = número
de amostras
Ts = 1/fs = Tempo entre
amostras discretas
49
fs = 10 kHz
Ts = 1/fs = 0.1 ms (Tempo de amostragem)
N = 100 amostras
twindow = N*Ts=100*0.1ms = 10 ms
X[n]
X[n]
x(t)
A/D
t
twindow
0 1
n
N-1
0 1
n
DFT
N

1
j n
X
(
)
x
[n
]e
,
n

0
2

k
k0
,1
,2
,....,N

1
, 

50
N
Código em Matlab
clc, close all, clear
fs = 10000; %Frequencia de Amostragem
Ts = 1/fs;
%Periodo de amostragem (sampling)
N = 100;
%Numero de amostras em twindow
%Vetor de Tempo
n = 0:1:(N-1); %Tempo discreto n
t = n*Ts;
%Tempo discreto t (s)
fo = 1000;
%Frequencia do sinal (Hz)
x = sin(2*pi*fo*t);
%Aplicando a FFT
X = fft(x);
k = 0:1:(N-1);
omega = 2*pi*k/N;
plot(omega,abs(X))
xlabel('omega (rad)')
ylabel('|FFT|')
title('Espectro de x(n)')
51
Propriedades da DFT
N

1
j n
X
(
)
x
[n
]e
,
• Simetria
• Período igual a 2*
n

0
2

k
k0
,1
,2
,....,N

1
, 

N
Espectro de x(n)
50
45
1
0.8
40
0.6
35
0.4
30
DFT
0
-0.2
-0.4
|FFT|
x(n)
0.2
25
20
-0.6
-1
0
10
20
30
40
N=100
fs=10 kHz
fo = 1 kHz
50
n
60
70
80
90
100
2

15
-0.8
10
5
0
0
1
2
3
4
omega (rad)
5
6
7
52
Transformação de escalas de  (rad) para
frequência em Hertz
Espectro de x(n)
50
2
 fs
Omega  f(Hz)
45
40

fs
f(H
z)
2
35
|FFT|
30
25
20
15
f (Hz)
fs/2
fs


2
10
5
0
0
1
2
3
4
omega (rad)
5
6
7
53
Código em Matlab
fs = 10000; %Frequencia de Amostragem
Ts = 1/fs;
%Tempo de amostragem (sampling)
N = 100;
%Numero de amostras em twindow
%Vetor de Tempo
n = 0:1:(N-1); %Tempo discreto n
t = n*Ts;
%Tempo discreto t (s)
fo = 1000;
%Frequencia do señal (Hz)
x = sin(2*pi*fo*t);
%Aplicando a DFT
X = fft(x);
k = 0:1:(N-1);
omega = 2*pi*k/N;
Hertz = omega*fs/(2*pi);
figure
plot(Hertz,abs(X))
xlabel('f(Hz)')
ylabel('|FFT|')
title('Espectro de x(n)')
figure
plot(n,x)
xlabel('n')
ylabel('x(n)')
54
Realizando a Transformação
Espectro de x(n)
50
• Simetria com respeito a fs/2
• Período igual a fs
• Largura de Banda de
interesse é igual ao intervalo
[0, fs/2]
45
40
35
|FFT|
30
25
20
15
fs/2
fo
10
fs
5
0
0
1000
2000
3000
4000
5000
f(Hz)
6000
7000
8000
9000 10000
BW = [0, fs/2]=[0, 5kHz]
55
DFT de um sinal com ruído branco Gaussiano
• Valor médio = 0
• Desvio padrão = 0.1
40
%Codigo em MATLAB
r = 0 +
0.1*randn(1,1000);
figure,
hist(r,100)
35
30
25
20
15
10
5
0
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
56
Código em MATLAB
fs = 10000; %Frequencia de Amostragem
Ts = 1/fs;
%Tempo de amostragem(sampling)
N = 100;
%Numero de amostras en twindow
%Vetor de Tempo
n = 0:1:(N-1); %Tempo discreto n
t = n*Ts;
%Tempo discreto t (s)
fo = 1000;
%Frequencia do señal (Hz)
r = 0 + 0.1*randn(1,N); %ruido branco Gaussiano
x = sin(2*pi*fo*t)+r;
%Aplicando a DFT
X = fft(x);
k = 0:1:(N-1);
omega = 2*pi*k/N;
Hertz = omega*fs/(2*pi);
figure
plot(Hertz,abs(X))
xlabel('f(Hz)')
ylabel('|FFT|')
title('Espectro de x(n)')
figure
plot(n,x)
xlabel('n')
ylabel('x(n)')
57
DFT do ruído branco Gaussiano
Espectro de x(n)
60
50
|FFT|
40
30
DFT do
ruído
20
10
0
0
1000
2000
3000
4000
5000
f(Hz)
6000
7000
8000
9000 10000
58
Código em MATLAB
fs = 10000; %Frequencia de Amostragem
Ts = 1/fs;
%Tempo de amostragem(sampling)
N = 100;
%Numero de amostras en twindow
%Vetor de Tempo
n = 0:1:(N-1); %Tempo discreto n
t = n*Ts;
%Tempo discreto t (s)
fo = 1000;
%Frequencia do señal (Hz)
r = 0 + 0.1*randn(1,N); %ruido branco Gaussiano
x = sin(2*pi*3*fo*t)+sin(2*pi*fo*t)+r;
%Aplicando a DFT
X = fft(x);
k = 0:1:(N-1);
omega = 2*pi*k/N;
Hertz = omega*fs/(2*pi);
figure
plot(Hertz,abs(X))
xlabel('f(Hz)')
ylabel('|FFT|')
title('Espectro de x(n)')
figure
plot(n,x)
xlabel('n')
ylabel('x(n)')
59
DFT de 2 sinais senoidais
• fo = 1 kHz
• f1 = 3 KHz 60
Espectro de x(n)
50
|FFT|
40
30
20
10
0
0
1000
2000
3000
4000
5000
f(Hz)
6000
7000
8000
9000 10000
60
Que contecerá se a frequência do sinal de
entrada f1 é superior a fs/2 = 5000 Hz ??
Para fo = 1000 Hz
Se f1 = 6000 Hz
Teorema de Amostragem fs2fmax  fs/2fmax
5000 fo e f1 SE OBSERVA QUE NÃO SE SATISFAZ O TEOREMA DE AMOSTRAGEM
Espectro de x(n)
60
Simetria
de f1
fo
50
Simetria de fo
f1
40
|FFT|
•
•
•
•
30
20
10
0
0
1000
2000
3000
4000
5000
f(Hz)
6000
7000
8000
9000 10000
61
Análise de Espectro
• Projeto de Filtros Digitais. Por exemplo, passa-faixa centrado em
4000 Hz
Espectro de x(n)
60
Filtro Passa-Faixa
50
Espectro em
Frequência
|FFT|
40
30
20
10
0
0
1000
2000
3000
4000
5000
f(Hz)
6000
7000
8000
9000 10000
65
Download

Aula 3 Transformada Discreta de Fourier TDF