Carlos Alexandre Mello
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
Transformada de Fourier e -jwπ : kernel da transformada 3
Transformada de Fourier Propriedades Linearidade: a.f(t) + b.g(t) a.f(w) + b.g(w) Deslocamento no tempo f(t - t 0 ) e -j2πwt 0.F(w) Deslocamento na frequência: f(t)e j2πw 0t F(w w 0 ) 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
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
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
A Série Discreta de Fourier Assim, a sequência periódica x[n] pode ser expressa como:, n = 0, ±1,... onde {X[k], k = 0, ±1,...} são chamados de coeficientes da série discreta de Fourier:, k = 0, ±1,... 7
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
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
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, W 4 = e -j2π/4 = e -jπ/2 = cos(-π/2) + j.sen(- π/2) = 0 + j.(-1) = -j 10
A Série Discreta de Fourier Exemplo (cont.): Agora: Assim: 11
A Série Discreta de Fourier Uma outra forma de ver a transformada discreta de Fourier é através de uma representação em matrizes X e x são vetores coluna 12
A Série Discreta de Fourier W N é chamada de Matriz DFS No MatLab: 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 13
A Série Discreta de Fourier Inversa: 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 14
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:, 0 k N 1, 0 n N 1 15
Como antes: Assim, temos: Equação de Análise: Equação de Síntese: 16
Propriedades 1) Linearidade a.x 1 [n] + b.x 2 [n] a.x 1 [k] + b.x 2 [k] Obs: Se x 1 [n] e x 2 [n] são sequências de durações diferentes (N 1 -pontos e N 2 -pontos, por exemplo), escolha N 3 = max(n 1, N 2 ) Se, por exemplo, N 1 < N 2, então X 1 [k] é a DFT de x 1 [n] aumentada de (N 2 N 1 ) zeros Zero padding 17
Propriedades 2) Deslocamento de uma sequência x[n m] W N km X[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 18
Propriedades 5) Convolução periódica 19
Exemplo: >> n = 0:99; >> fs = 200; >> Ts=1/fs; x é real >>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'); 20
Exemplo (cont.): 21
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 22
Exemplo (cont.): Podemos fazer: >> 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'); 23
Exemplo (cont.): 24
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 25
Transformada Discreta Bi-Dimensional de Fourier DFT 26
Transformada Discreta Bi-Dimensional de Fourier 27
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
Espectrograma A forma mais comum de representarmos um espectrograma é através de um gráfico bidimensional 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
Espectrograma: Exemplo (sinal de voz) 30
Espectrograma: Exemplo (sinal de voz) 31
Espectrograma: Exemplo (sinal de voz) 32
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
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
Espectrograma Variação na Janela (Hamming) >> 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); Carlos Alexandre Mello db cabm@cin.ufpe.br 35
Espectrograma Variação na Janela (Hanning) >> 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); Carlos Alexandre Mello db cabm@cin.ufpe.br 36
Espectrograma Variação na Janela (Retangular) >> 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); Carlos Alexandre Mello db cabm@cin.ufpe.br 37
Espectrograma Sobreposição (em geral 25 a 75%) 38
Espectrograma Sobreposição >> load chirp >> spectrogram (y, 256, 250, 1e3, 'yaxis'); >> figure, spectrogram (y, 256, 0, 1e3, 'yaxis'); 39
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
Espectrograma Janela: 128 Sobreposição: 120 41
Espectrograma Janela: 256 Sobreposição: 250 42
Espectrograma Janela: 512 Sobreposição: 500 43
Espectrograma 44
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