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] n0 k 1 k 2 k 3 k 4 2 5 4 5 6 5 8 5 4 X(2/5) x[n]e j2n/5 n0 4 X(4/5) x[n]e j4n/5 n0 4 X(6/5) x[n]e j6n/5 n0 4 X(8/5) x[n]e j8n/5 n0 3 Transformada Discreta de Fourier • Módulo e Fase k0 0 4 X(0) xn [] X(0)ej0 n0 k1 k2 k3 k4 2 5 4 5 6 5 8 5 4 X(2/5) xne [ ] j2n/5 X(2/5)ej1 n0 4 X(4/5) xne [ ] j4n/5 X(4/5)ej2 n0 4 X(6/5) xne [ ] j6n/5 X(6/5)ej3 n0 4 X(8/5) xne [ ] j8n/5 X(8/5)ej4 n0 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 j0 X (2 / 5) e j1 X (4 / 5) e j2 X (6 / 5) e j3 X (8 / 5) e j4 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], 0nN-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=NT 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 ( ) k0 ,1 ,2 ,....,N1 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 ReX(k) 1 Pk 2 Re2 X(k)Im2 X(k) N k 0,1,2,...., N1 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 f0s 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 k0 ,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 k0 ,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 fs2fmax fs/2fmax 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