dft

Upload: fabio-leite

Post on 19-Jul-2015

22 views

Category:

Documents


0 download

TRANSCRIPT

Processamento Digital de Sinais Transformada Discreta de Fourier Prof. Dr. Carlos Alberto YnogutiJean Baptiste Joseph FourierNascimento: 21 de maro de 1768 em Auxerre, Bourgogne, FranaMorte: 16 de maio de 1830 em Paris, FranaIntroduoA anlise de Fourier uma famlia de tcnicas matemticas, todas elas baseadas na decomposio de sinais em senides.A Transformada Discreta de Fourier (Discrete Fourier Transform - DFT) o membro da famlia utilizado para sinais digitalizados.A DFT tem verses real e imaginria. Neste curso iremos focar principalmente a verso real da DFT.Classificao de sinaisOs sinais podem ser classificados segundo vrios critrios. Por exemplo: sinais contnuos ou discretossinais peridicos ou aperidicos Estes dois critrios levam aos quatro elementos da famlia de transformadas de Fourier:Sinais contnuos e aperidicos: Transformada de FourierSinais contnuos e peridicos: Srie de FourierSinais discretos e aperidicos: Transformada de Fourier de Tempo Discreto (DTFT)Sinais discretos e peridicos: Transformada Discreta de Fourier (DFT)Famlia FourierTransformada de Fourier (aperidico, contnuo)Srie de Fourier (peridico, contnuo)Transformada de Fourier de Tempo Discreto (DTFT) (aperidico, discreto)Transformada Discreta de Fourier (DFT) (peridico, discreto)ObservaesTodos os quatro membros da famlia de transformadas de Fourier assumem que os sinais sob anlise tm durao infinita.Para analisar os sinais com um computador ou um DSP, os sinais tm necessariamente que ter durao finita.Desta forma, temos que fazer com que os sinais paream ter durao infinita.Isto pode ser feito de duas maneiras: Considerar que o sinal nulo fora do intervalo de anlise (aperidico - DTFT) Considerar que o sinal se repete periodicamente (peridico - DFT)O que funciona na prticaPara processar os sinais usando um computador ou DSP, os sinais devem estar na forma digital (discretos).Para representar sinais aperidicos so necessrias infinitas senides, o que inviabiliza o uso da DTFT.Em outras palavras, computadores s podem lidar com sinais discretos e finitos em comprimento.Concluso: a nica transformada que pode ser utilizada na prtica a DFT.Decomposio em senidescossenossenosdecomposiosnteseUm sinal de N=16 pontos ...... 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 senides?Existem infinitas formas de onda que podem ser usadas na decomposio: onda quadrada, triangular, etc.A razo para a escolha das senides a propriedade de fidelidade senoidal: senides que entram em um sistema linear saem como senides com (possveis) mudanas na amplitude e fase, mas mantendo a frequncia original.Esta propriedade bastante til (como veremos a seguir), e apenas as senides a possuem.Em resumo, outras decomposies so possveis, mas no so teis.Notao e formato da DFT realConverte um sinal de N pontos no domnio do tempo em 2 sinais de (N/2+1) pontos no domnio da frequncia.O sinal de entrada (tempo) contm as amostras do sinal a ser decomposto, e os sinais de sada (frequncias) contm as amplitudes dos senos e cossenos.0 N-1x[n]00 N/2N/2DFT diretaDFT inversaReX[f]ImX[f](amplitudes dos cossenos)(amplitudes dos senos)Domnio do tempo Domnio da frequnciaObservaesAs informaes contidas no domnio da frequncia so exatamente as mesmas do domnio do tempo, s que de forma diferente.Tempo - Frequncia: decomposio, anlise, DFT direta.Frequncia - Tempo: sntese, DFT inversa.O nmero de amostras no domnio do tempo geralmente representado pela letra N, sendo que N geralmente potncia de 2, por causa do modo de representao digital (binrio), e porque o algoritmo da FFT opera com um nmero de amostras que deve ser potncia de 2.A varivel independente no domnio da frequncia0 N/20 0.50 fs/20nNfsHzoEm termos de frao da frequncia de amostragemEm termos da frequncia real do sinalEm termos da frequncia angular do sinalEmtermos do nmero de pontos da DFTExemploOcorre um pico na amostra correspondente ao ndice 19 quando tomamos a DFT de 256 de um sinal qualquer.a) Qual e a frequncia do pico expressa como uma frao da frequncia de amostragem? necessrio conhecer a frequncia de amostragem para responder a esta questo?b) Qual e a frequncia do pico expressa como frequncia natural?c) Qual a taxa de amostragem se o pico corresponde a 21,5kHz no sinal analgico?d) Qual a frequncia da senide (em Hz) se a taxa de amostragem de 100 kHz?Funes base da DFTAs ondas senoidais e cossenoidais usadas na DFT so comumentemente chamadas de funes base da DFT.A sada da DFT um conjunto de nmeros que representam as amplitudes destes senos e cossenos.A soma destes vrios senos e cossenos ponderados pelos coeficientes da DFT gera o sinal original no domnio do tempo.Pontos importantesAs funes base da DFT so geradas a partir de:onde ck a onda cossenoidal cuja amplitude dada por ReX[k], e sk a senide cuja amplitude dada por ImX[k].k determina a frequncia de cada senide. Por exemplo, k=5 corresponde a uma senide (ou cossenide) que completa 5 ciclos em N pontos.Cada uma destas senides e cossenides deve ter N pontos, de modo que a soma destas resulte no sinal original de N pontos. ck|i =cos( 2nki / N) sk| i =sen(2nki / N)Exemploc0 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 Observaesc0: onda cossenoidal de amplitude 1 e frequncia zero. ReX[0]corresponde ento ao nvel DC do sinal.s0: sinal composto s de zeros. Desde que no influi na sntese 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.QuestoSe existem N amostras entrando e N/2+1 + N/2+1 =N+2 amostras saindo, de onde veio a informao extra?Duas das amostras de sada so nulas e no carregam informao:ImX[0] e ImX[N/2]Problema: reconstruir o sinal original no domnio do tempo atravs da combinao linear de senos e cossenos.onde:Equaes de Sntese DFT inversax| i =k =0N/ 2Re X | k cos( 2nk i / N)+k=0N/ 2Im X| k sen(2nk i / N)Re X| k=Re X | kN/ 2Im X| k=Im X | kN / 2Re X| 0=Re X| 0NRe X| N / 2=Re X| N / 2NExemploO domnio da frequncia de um sinal dado por:parte real:1, 2, 3, 3, 1, -2, -1, 1, 2parte imaginria: 0, -1, -2, 0, 0, 0, 2, 1, 0a) A qual comprimento de DFT este sinal corresponde?b) Calcule as amplitudes dos senos e cossenos para reconstruir o sinal no domnio do tempo.c) Qual a mdia do sinal no domnio do tempo (nvel DC)?Equaes de anlise DFT diretaO mtodo clssico para a determinao dos coeficientes da DFT o da correlao.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 nmero que uma medida da similaridade entre os dois sinais.Desta forma, as equaes de anlise da DFT fornecem coeficientes que so uma medida da similaridade entre o sinal sob anlise e cada uma das senides e cossenides.DFT diretaCada amostra no domnio da frequncia encontrada multiplicando-se o sinal no domnio do tempo pela onda senoidal ou cossenoidal em questo, e somando os resultados.Em outras palavras, os coeficientes ReX[k] e ImX[k] so o resultado da correlao entre o sinal e cada uma das funes base, para um deslocamento igual a zero da mquina de correlao vista anteriormente.ReX| k =i=0N1x| i cos(2nk i / N ) ImX| k =i=0N1x| i sen(2nk i / N )ExemploCalcule a DFT de 4 pontos do sinal x={1,2,3,4}.Notao polarO domnio da frequncia consiste de um grupo de amplitudes de senos e cossenos.Esta forma de representao conhecida como notao retangular.Alternativamente, podemos representar o domnio da frequncia em notao polar.Nesta forma, ReX[ ] e ImX[ ] so substitudas por MagX[ ] e FaseX[ ], representando a magnitude e a fase de X[ ].MagX[ ] e FaseX[ ] so 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.Converso Retangular-PolarFaseX| k=arctg(ImX| kReX| k)MagX| k=.ReX2| k+ImX2| kReX| k =MagX| k cos( FaseX| k )ImX| k =MagX | k sen( FaseX| k )ReXImXMagXFaseXReImInformao na forma polarProblemas com a notao polarExistem alguns problemas numricos quando lidamos com a notao polar:Fase em radianos ou em grausDiviso por zero no clculo da faseArco-tangente incorretaFase de sinais de baixa magnitudeAmbiguidade da fase de 2nAmbiguidade da fase de nRadianos vs GrausA fase pode ser expressa em graus (de -1800 a +1800)ou em radianos (de -n a +n). A maioria das linguagens de programao usa a fase em radianos.Fonte de muitos erros de implementao.Diviso por zero no clculo da faseQuando a parte real nula (ReX[k]=0), temos uma fase de 900 ou +900 (-n ou +n), dependendo do sinal da parte imaginria.A frmula da fase leva a uma diviso por zero, o que causa erro em tempo de execuo.Fcilmente contornvel atravs de estruturas condicionais (if).FaseX| k=arctg(ImX| kReX| k)ReXImXMagXFaseXReImErro no arco-tangente11Re ReIm Im-1-10=4500=1350FaseX | k=arctg(ImX| kReX| k)=arctg(11)=450FaseX| k=arctg(ImX| kReX| k)=arctg(11)=450Erro 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 imaginria forem negativas, devemos subtrair 1800 (ou n radianos) da fase calculada. Se a parte real negativa e a parte imaginria positiva, devemos somar 1800 (ou n radianos) fase calculada.Como identificar este erro: se a fase variar no intervalo (-900,900) ao invs de no intervalo (-1800,+1800), voc est calculando a fase de forma errada. Fase de sinais de baixa magnitudeQuando um sinal de baixa amplitude, contaminado por rudo, visto na forma polar, temos: a magnitude pequena tambm; a fase assume valores aleatrios entre -1800 e +1800 (-n a +n).Ambiguidade 2n da faseA fase geralmente se apresenta no intervalo (-n a +n), como em a). geralmente mais fcil de entender a fase se esta no apresentar descontinuidades, como em b) (phase unwrapping).a) b)A Transformada Discreta do CossenoTransformada direta:ondeTransformada inversa:C(k )=o( k)n=0N1x( n) cos|n( n+1/ 2) kN, para 0