Modelação Numérica 2017 Aula 7, 8/Mar

Documentos relacionados
Modelação Numérica 2017 Aula 6, 7/Mar

Modelação Numérica 2017 Aula 9, 15/Mar

Modelação Numérica 2017 Aula 4, 22/Fev

Modelação Numérica 2017 Aula 2, 15/Fev

Aula 13. Séries undimensionais. Laboratório Numérico 1. Várias amostras da temperatura

Modelação Numérica 2017 Aula 5, 1/Mar

Aula 15. Equações diferenciais com condições fronteira num ponto: O pêndulo gravítico. Laboratório Numérico 1

I-6 Sistemas e Resposta em Frequência. Comunicações (6 de Dezembro de 2012)

I-6 Sistemas e Resposta em Frequência

Teoria das Comunicações Prof. André Noll Barreto Prova 1 Gabarito

Análise de Fourier. Imagens no Domínio da Freqüência

i) Filtragem ii) Amostragem e reconstituição cuja Transformada de Fourier (TF) é dada na Figura seguinte e que constitui a entrada de um SLIT S.

Aula 18. Equações diferenciais com condições fronteira num ponto: O pêndulo gravítico Laboratório Numérico 1

Filtros Digitais FIR (Finite Impulse Response) Prof. Juan Mauricio Villanueva

EEE 335 Eletromagnetismo II

Aula 15. Equações diferenciais com condições fronteira num ponto Laboratório Numérico 1

Princípios de Comunicações Profs. André Noll Barreto / A. Judson Braga

Teoria das Comunicações

Respostas do Estudo Dirigido Cap Image Transform

Processamento de Imagem. Convolução Filtragem no Domínio da Frequência (Fourier) Professora Sheila Cáceres

Sinais e Sistemas. Luis Henrique Assumpção Lolis. 21 de fevereiro de Luis Henrique Assumpção Lolis Sinais e Sistemas 1

Processamento de dados sísmicos, reflexão multi canal Prospecção Sísmica Aula06/1 NN

Aula 12. Aritmétrica complexa. Laboratório Numérico 1

Analisador de espectros por FFT

TRANSFORMADA DE FOURIER EM TEMPO DISCRETO (DTFT) E TRANSFORMADA DISCRETA DE FOURIER (DFT) Larissa Driemeier

SEL Processamento Digital de Imagens Médicas. Aula 4 Transformada de Fourier. Prof. Dr. Marcelo Andrade da Costa Vieira

Análise e Processamento de Bio-Sinais Mestrado Integrado em Engenharia Biomédica. Sinais e Sistemas Licenciatura em Engenharia Física

Aula de Processamento de Sinais I.B De Paula. Tipos de sinal:

Processamento Imagens. Transformada de Fourier 1D e 2D

Análise de Sinais Dep. Armas e Electronica, Escola Naval V1.1 - Victor Lobo Capítulo 3. Transformadas de Fourier e Fourier Discreta

Teoria das Comunicações Prof. André Noll Barreto Prova /02

Um filtro digital é uma implementação de um filtro através de operações matemáticas aplicadas em um sinal amostrado (e quantizado);

Introdução a aquisição e processamento de sinais

Aula 1, Experiência 1 Circuitos CA e Caos

SUMÁRIO BACKGROUND. Referências 62 MATLAB Seção B: Operações Elementares 62 Problemas 71

Parâmetros importantes de um Analisador de Espectros: Faixa de frequência. Exatidão (frequência e amplitude) Sensibilidade. Resolução.

TRANSFORMADA DE FOURIER. Larissa Driemeier

Comunicações Digitais Prof. André Noll Barreto. Prova /2 (17/08/2017)

Processamento de Imagens COS756 / COC603

Transformada de Fourier Discreta (DFT)

Interpolação. Série 1D. Interpolação polynomial, Interpolação por troços: linear, splines. Sensibilidade à amostra. Geração de amostras aleatórias.

Introdução a filtros digitais. Theo Pavan e Adilton Carneiro TAPS

Introdução à análise de sinais

Física Experimental IV FAP214

Processamento de Sinais 2013/14

Total. UFRGS INSTITUTO DE MATEMÁTICA Departamento de Matemática Pura e Aplicada MAT Turma C /2 Prova da área IB

SEL Processamento Digital de Imagens Médicas. Aula 6 Processamento no Domínio da Frequência

Processamento de Sinal e Imagem Engenharia Electrotécnica e de Computadores

Processamento (Digital) de Sinal. Caderno de exercícios para as horas não presenciais

3º Trabalho de Laboratório Objectivo Geral: Largura de banda de impulsos; Espectros de sinais básicos; Propriedades da transformada de Fourier.

Filtragem de Imagens no Domínio da Freqüência. 35M34 Sala 3D5 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Teoria das Comunicações Profs. André Noll Barreto / Judson Braga. Prova /2 (16/10/2014)

Transformada de Fourier. Theo Pavan e Adilton Carneiro TAPS

Transformada de Fourier Discreta no Tempo (DTFT)

Licenciatura em Engenharia Biomédica. Faculdade de Ciências e Tecnologia. Universidade de Coimbra. Análise e Processamento de Bio-Sinais - MIEBM

Total. UFRGS INSTITUTO DE MATEMÁTICA Departamento de Matemática Pura e Aplicada MAT Turma C /2 Prova da área IB

Sílvia Mara da Costa Campos Victer Concurso: Matemática da Computação UERJ - Friburgo

Comunicações Digitais Prof. André Noll Barreto. Prova /1 (16/03/2017)

ANÁLISE DE SINAIS ANÁLISE ESPECTRAL

A Transformada de Fourier

Teoria das Comunicações Prof. André Noll Barreto Prova /2 (01/11/2011)

Análise e Transmissão de Sinais

Aplicação da Transformada S na Decomposição Espectral de Dados Sísmicos

Técnicas de Processamento Imagens. Fourier 1D e 2D

Introdução FILTRAGEM NO DOMÍNIO DA FREQUÊNCIA

Processamento digital de imagens

Espaço de Fourier. Processamento de Imagens Médicas. Prof. Luiz Otavio Murta Jr. Depto. de Física e Matemática (FFCLRP/USP)

Resumo. Sinais e Sistemas Amostragem. Introdução. Amostragem Periódica

Sumário. 1 Sinais e sistemas no tempo discreto 1. 2 As transformadas z e de Fourier 79

Introdução ao Processamento Digital de Imagens. Aula 9 Restauração de Imagens. Prof. Dr. Marcelo Andrade da Costa Vieira

SEL Introdução ao Processamento Digital de Imagens. Aula 9 Restauração de Imagens Parte 2

Séries de Fourier. Aplicada em circuitos RC Física Experimental III 2018

Sistemas de Controle

TRANSFORMADAS INTEGRAIS LAPLACE E FOURIER

Amostragem de Sinais

Sistemas e Sinais (LEIC) Capítulo 10 Transformadas de Fourier

Sistemas lineares. Realce no domínio de freqüências. Propriedades. Sistema: definição. Sistemas harmônicos e análise de sinais complexos

Teoria das Comunicações Prof. André Noll Barreto Prova /2 (15/05/2014)

Introdução ao Processamento Digital de Sinais Soluções dos Exercícios Propostos Capítulo 5

Definição (6.1): Definimos equação diferencial como uma qualquer relação entre uma função e as suas derivadas.

VI SBQEE. 21 a 24 de agosto de 2005 Belém Pará Brasil FILTROS COM RESPOSTA MAXIMAMENTE PLANA PARA CÁLCULO DE HARMÔNICOS

Total. UFRGS INSTITUTO DE MATEMÁTICA Departamento de Matemática Pura e Aplicada MAT Turma A /2 Prova da área IIB

Prof. Responsáveis Wagner Santos C. de Jesus

I-5 Espetro de sinais não periódicos A Transformada de Fourier

FILTROS COM RESPOSTA MAXIMAMENTE PLANA PARA CÁLCULO DE HARMÔNICOS

Aula 6 PS Prof. César Janeczko. Filtros Digitais

Representação de sinais

Introdução à Programação / Programação I

exercícios de análise numérica II

Série de Fourier. Prof. Dr. Walter Ponge-Ferreira

Transformada de Fourier: fundamentos matemáticos, implementação e aplicações musicais

Filtros Digitais 1 FILTROS DIGITAIS (5.1) y = A. x B. y. onde A = C / D e B = D / D

I-5 Espetro de sinais não periódicos A Transformada de Fourier

Trabalho de 2 DSP data limite de entrega: 27/09/2009

Aula 14. Integração numérica: método de Monte Carlo Laboratório Numérico 1

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015

2.1. Introdução Números complexos.

Transformada Discreta de Fourier

Controle de Processos

Transcrição:

Modelação Numérica 2017 Aula 7, 8/Mar Filtros de média móvel Filtros de Fourier h2p://modnum.ucs.ciencias.ulisboa.pt

Espectro de amplitude e de fase Aula passada sin(x) cos(x) Fase = -π/2 Fase = 0

Propriedades da TDF Aula passada Linearidade: G = F(g); H = F(h) F(ag+bh) = ag + bh

Propriedades da TDF Aula passada Translação: G(f) = F(g(t)) F(g(t-a)) = e -ifa G(f)

Propriedades da TDF Aula passada Escalamento: G(f) = F(g(t)) F(g(at)) = 1/a G(f/a)

FFT (ifft): Fast Fourier Transform Aula passada import matplotlib.pyplot as plt import numpy as np from numpy import pi as pi import numpy.fft as fft plt.rcparams['figure.figsize'] = 5, 6 #%% N=100.; T=10.; dt=1. t=np.arange(0.,n,dt) f=3*np.cos(2*pi * t/t) tf=fft.fft(f) fout=tf[:n/2] fnyq=1/(2*dt); df=1/(n*dt); freq=np.arange(0, fnyq,df) plt.close(); plt.subplot(2,1,1); plt.plot(t, f) plt.title('coseno (T=10)'); plt.grid(); plt.subplot(2,1,2); plt.plot(freq,np.abs(fout)/(n/2)) plt.title('amplitude da FFT (np.abs(fout))'); plt.grid(); plt.xlabel('freq (Hz)') plt.tight_layout() A FFT será eficiente se N=2 k.

Convolução e Correlação Aula passada Convolução: Correlação: y(k) =x h = conv(x, h) = y(k) =corr(x, h) = X +1X n= 1 +1X X n= 1 1 x(n)h(k n) x(n)h(n + k)

Convolução e Correlação Aula passada Cmglee

Teorema da convolução Aula passada F(xy) = F(x) * F(y) F(x*y) = F(x) F(y) Teorema da correlação F(corr(x,x)) = F(x) F(x)*

Filtros Input

import matplotlib.pyplot as plt import numpy as np from numpy import pi as pi import numpy.fft as fft plt.rcparams['figure.figsize'] = 10, 6 #%% ## Cos 50 N=300; T=50.; dt=1. t=np.arange(0.,n,dt) f1=np.cos(2*pi * t/t) tf1=fft.fft(f1) fout1=tf1[:n/2] fnyq=1/(2*dt); df=1/(n*dt); freq=np.arange(0, fnyq, df) N1=N #%% ## Cos 100 T=100.; f2=np.cos(2*pi * t/t) tf2=fft.fft(f2) fout2=tf2[:n/2] #%% ## Cos 50 + cos 100 fs=f1+f2 tfs=fft.fft(fs) fouts=tfs[:n/2] #%% Plots plt.close(); plt.subplot(3,2,1); plt.plot(t, f1) plt.title('in1, f=0.02 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2) plt.title('in2, f=0.01 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(fout1)/(n/2)) plt.title('abs(fft(in1))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(fout2)/(n/2)) plt.title('abs(fft(in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.semilogx(freq,np.abs(fouts)/(n/2)) plt.title('abs(fft(in1+in2))'); plt.grid(); plt.xlabel(u'frequência') plt.tight_layout()

Filtro de média móvel (domínio do tempo) h(t) #%% Média móvel passa-baixo NF=51; # nr de pontos da janela h=np.ones(nf)/nf; c1=np.convolve(f1, h, mode='same') c2=np.convolve(f2, h, mode='same') cs=np.convolve(fs, h, mode='same')

#%% Plots plt.close(); plt.subplot(3,2,1); plt.plot(t, f1) plt.title('in1, f=0.02 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2) plt.title('in2, f=0.01 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.plot(t,c1) plt.title('conv(in1, h))'); plt.grid(); plt.ylim([-1,1]) plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.plot(t,c2) plt.title('conv(in2, h))'); plt.grid(); plt.ylim([-1,1]) plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.plot(t,cs) plt.title('conv(in1+in2, h))'); plt.grid(); plt.ylim([-1,1]) plt.xlabel(u'frequência') plt.tight_layout()

Filtro de média móvel (domínio do tempo) h(t) Alta frequência: Eliminada Frequência mais baixa: Atenuada

Filtro de média móvel (domínio do tempo) h(t) Fase conservada (filtro simétrico) Fase conservada (filtro simétrico)

Filtro de média móvel (domínio do tempo) h(t) Efeito de fronteira Size: h/2

Filtro de média móvel (domínio do tempo) #%% Espectros dos sinais filtrados tfc1=fft.fft(c1) foutc1=tfc1[:n/2] Fc1=np.abs(foutc1)/(N/2) tfc2=fft.fft(c2) foutc2=tfc2[:n/2] Fc2=np.abs(foutc2)/(N/2) tfcs=fft.fft(cs) foutcs=tfcs[:n/2] Fcs=np.abs(foutcs)/(N/2)

#%% Plots plt.close(); plt.subplot(3,2,1); plt.plot(t, f1, t, c1) plt.title('in1, f=0.02 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2, t, c2) plt.title('in2, f=0.01 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs, t, cs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(fout1)/(n/2), freq, Fc1) plt.title('abs(fft(in1))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(fout2)/(n/2), freq, Fc2) plt.title('abs(fft(in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.semilogx(freq,np.abs(fouts)/(n/2), freq, Fcs) plt.title('abs(fft(in1+in2))'); plt.grid(); plt.xlabel(u'frequência') plt.tight_layout()

Filtro de média móvel (domínio do tempo) Input Convolução

Filtro de média móvel (domínio espectral) Domínio do tempo Domínio espectral hh = np.append(h, np.zeros(len(fs)-len(h))) tfh=fft.fft(hh) fouth=tfh[:n/2] Fh=np.abs(fouth)/(N/2)

Filtro de média móvel (domínio espectral) #%% Plots plt.close(); plt.subplot(3,2,1); plt.plot(t, fs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, hh) plt.title('h'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(fouts)/(n/2)) plt.title('abs(fft(in1+in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(fouth)/(n/2)) plt.title('abs(fft(h))'); plt.grid(); plt.xlabel(u'frequência')

Filtro de média móvel (domínio espectral) Domínio do tempo Domínio espectral Função de transferência Altas frequências quase eliminadas. Função de transferência com oscilações. Atenuação em todo o espectro.

Filtro de média móvel (domínio espectral) Domínio do tempo: convolução Domínio espectral: mul_plicação Convol. Tempo Mul_pl. Espectro

Filtro de média móvel (domínio espectral) plt.subplot(3,2,5); plt.plot(t, cs) plt.title('conv(in1 + In2, h)'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,6); plt.semilogx(freq, Fcs, freq, np.abs(fouts*fouth)/(n/2)) plt.title('abs(conv(in1 + In2, h))'); plt.grid(); plt.xlabel(u'frequência') Domínio do tempo: convolução Domínio espectral: mul_plicação Convol. Tempo Mul_pl. Espectro

Filtro de média móvel (função de transferência) Domínio espectral: mul_plicação O filtro até funcionou bem, mas foi sorte... A frequência a eliminar estava num dos mínimos... T=100 T=50 Convol. Tempo Mul_pl. Espectro

E com uma frequência mais alta? (T=30 s)

import matplotlib.pyplot as plt import numpy as np from numpy import pi as pi import numpy.fft as fft #%% ## Cos 50 N=300; T=30.; dt=1. t=np.arange(0.,n,dt) f1=np.cos(2*pi * t/t) tf1=fft.fft(f1) fout1=tf1[:n/2] fnyq=1/(2*dt); df=1/(n*dt); freq=np.arange(0, fnyq, df) N1=N #%% ## Cos 100 T=100.; f2=np.cos(2*pi * t/t) tf2=fft.fft(f2) fout2=tf2[:n/2] #%% ## Cos 50 + cos 100 fs=f1+f2 tfs=fft.fft(fs) fouts=tfs[:n/2] #%% Plots #%% Plots plt.rcparams['figure.figsize'] = 10, 6 plt.close(); plt.subplot(3,2,1); plt.plot(t, f1) plt.title('in1, f=0.02 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2) plt.title('in2, f=0.01 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(fout1)/(n/2)) plt.title('abs(fft(in1))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(fout2)/(n/2)) plt.title('abs(fft(in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.semilogx(freq,np.abs(fouts)/(n/2)) plt.title('abs(fft(in1+in2))'); plt.grid(); plt.xlabel(u'frequência') plt.tight_layout()

E com uma frequência mais alta? (T=30 s) T=100 T=30

E com uma frequência mais alta? (T=30 s) #%% Média móvel passa-baixo NF=51; # nr de pontos da janela h=np.ones(nf)/nf; c1=np.convolve(f1, h, mode='same') c2=np.convolve(f2, h, mode='same') cs=np.convolve(fs, h, mode='same') #%% Espectros dos sinais filtrados tfc1=fft.fft(c1) foutc1=tfc1[:n/2] Fc1=np.abs(foutc1)/(N/2) tfc2=fft.fft(c2) foutc2=tfc2[:n/2] Fc2=np.abs(foutc2)/(N/2) tfcs=fft.fft(cs) foutcs=tfcs[:n/2] Fcs=np.abs(foutcs)/(N/2)

#%% Plots plt.close(); plt.subplot(3,2,1); plt.plot(t, f1, t, c1) plt.title('in1, f=0.02 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2, t, c2) plt.title('in2, f=0.01 Hz'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs, t, cs) plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(fout1)/(n/2), freq, Fc1) plt.title('abs(fft(in1))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(fout2)/(n/2), freq, Fc2) plt.title('abs(fft(in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.semilogx(freq,np.abs(fouts)/(n/2), freq, Fcs) plt.title('abs(fft(in1+in2))'); plt.grid(); plt.xlabel(u'frequência') plt.tight_layout()

E com uma frequência mais alta? (T=30 s) Convolução no domínio do tempo Input Convolução

E com uma frequência mais alta? (T=30 s) Convolução no domínio do tempo Convol. Tempo Mul_pl. Espectro

E com uma frequência mais alta? (T=30 s) Convolução no domínio do tempo A função de transferência: Oscila Decai lentamente É um mau filtro... O comportamento do filtro de media móvel depende não só da frequência como também da sua localização exacta em relação às oscilações da função de transferência! Convol. Tempo Mul_pl. Espectro

É melhor definir os filtros no domínio espectral No caso discreto: Input X 2 senos 1 frequência 0 H (função de transferência do filtro) Banda passante Banda de corte Output=HX

É melhor definir os filtros no domínio espectral # Filtro no domínio do tempo for ifr in range(0,n/2): if freq[ifr]<=1/100.: ifreq=ifr+1 FFTfilt=np.zeros(N) FFTfilt[:ifreq]=1; FFTfilt[-ifreq:]=1; # Transformadas de Fourier inversas ff1=fft.ifft(fftfilt*tf1) ff2=fft.ifft(fftfilt*tf2) ffs=fft.ifft(fftfilt*tfs) No caso discreto: Atenção! A função de transferência tem de estar definida em todo o domínio espectral (entre f=0 e f=2f Nyq ).

E com uma frequência mais alta? (T=30 s) MulUplicação no domínio do espectro Input Convol. Tempo Mul_pl. Espectro

#%% plt.close(); plt.subplot(3,2,1); plt.plot(t, f1, t, c1, t, ff1, '--') plt.title('in1'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,3); plt.plot(t, f2, t, c2, t, ff2, '--') plt.title('in2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,5); plt.plot(t, fs, t, cs, t, ffs, '--') plt.title('in1 + In2'); plt.grid(); plt.xlabel(u'tempo (s)') plt.subplot(3,2,2); plt.semilogx(freq,np.abs(tf1[:n/2])/(n/2), freq,np.abs(tfc1[:n/2])/(n/2), freq,np.abs((fftfilt*tf1)[:n/2])/(n/2), '--') plt.title('abs(fft(in1))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,4); plt.semilogx(freq,np.abs(tf2[:n/2])/(n/2), freq,np.abs(tfc2[:n/2])/(n/2), freq,np.abs((fftfilt*tf2)[:n/2])/(n/2), '--') plt.title('abs(fft(in2))'); plt.grid(); plt.xlabel(u'frequência') plt.subplot(3,2,6); plt.semilogx(freq, np.abs(tfs[:n/2])/(n/2), freq,np.abs(tfcs[:n/2])/(n/2), freq,np.abs((fftfilt*tfs)[:n/2])/(n/2), '--') plt.title('abs(h x FFT(In1+In2))'); plt.grid(); plt.xlabel(u'frequência') plt.tight_layout()

Transformadas de Fourier de séries importantes #%% Delta de Dirac 0 N=1000; s=np.zeros(n) t=np.arange(n) dt=1.; fnyq=1/(2*dt); df=1/(dt*n); freq=np.arange(-fnyq,fnyq,df); F(δ 0 de Dirac) = constante #%% s=np.zeros(n); s[0]=10; S=fft.fft(s); SS=np.concatenate([S[N/2:], S[:N/2]]) plt.rcparams['figure.figsize'] = 5, 6 plt.close() plt.subplot(4,1,1); plt.plot(t,s); plt.grid() plt.title(u's = Delta de Dirac'); plt.xlim([-100,1000]) plt.subplot(4,1,2); plt.plot(freq,np.real(ss)); plt.title('real(s)'); plt.grid() plt.xlim([-.5,.5]); plt.ylim([-1,11]) plt.subplot(4,1,3); plt.plot(freq,np.imag(ss)); plt.title('imag(s)'); plt.grid() plt.xlim([-.5,.5]); plt.ylim([-1,11]) plt.subplot(4,1,4); plt.plot(freq,np.abs(ss)); plt.title('abs(s)'); plt.grid()

Transformadas de Fourier de séries importantes #%% Delta de Dirac 50 N=1000; s=np.zeros(n) t=np.arange(n) dt=1.; fnyq=1/(2*dt); df=1/(dt*n); freq=np.arange(-fnyq,fnyq,df); F(δ 50 de Dirac) = constante #%% s[50]=10; S=fft.fft(s); SS=np.concatenate([S[N/2:], S[:N/2]]) plt.subplot(4,1,1); plt.plot(t,s); plt.grid() plt.title(u's = Delta de Dirac (50)'); plt.subplot(4,1,2); plt.plot(freq,np.real(ss)); plt.title('real(s)'); plt.grid() plt.subplot(4,1,3); plt.plot(freq,np.imag(ss)); plt.title('imag(s)'); plt.grid() plt.subplot(4,1,4); plt.plot(freq,np.abs(ss)); plt.title('abs(s)'); plt.grid() plt.tight_layout()

Transformadas de Fourier de séries importantes #%% Pente N=1000; s=np.zeros(n) t=np.arange(n) dt=1.; fnyq=1/(2*dt); df=1/(dt*n); freq=np.arange(-fnyq,fnyq,df); Pente de Dirac: F(δ k de Dirac) = δ n Amostrar regularmente = mul_plicar por pente #%% s[range(0,n,20)]=10; S=fft.fft(s); SS=np.concatenate([S[N/2:], S[:N/2]]) plt.subplot(4,1,1); plt.plot(t,s); plt.grid() plt.title(u's = Delta de Dirac (k)'); plt.subplot(4,1,2); plt.plot(freq,np.real(ss)); plt.title('real(s)'); plt.grid() plt.subplot(4,1,3); plt.plot(freq,np.imag(ss)); plt.title('imag(s)'); plt.grid() plt.subplot(4,1,4); plt.plot(freq,np.abs(ss)); plt.title('abs(s)'); plt.grid() plt.tight_layout()

Transformadas de Fourier de séries importantes #%% Janela rectangular s=np.zeros(n); NJ=100 s[:nj]=1; s[-nj:]=1; S=fft.fft(s); SS=np.concatenate([S[N/2:], S[:N/2]]) plt.rcparams['figure.figsize'] = 5, 6 plt.close() plt.subplot(3,1,1); plt.plot(t,s); plt.grid() plt.title(u's = janela rectangular'); plt.subplot(3,1,2); plt.plot(freq,np.real(ss)); plt.title('real(s)'); plt.grid() plt.subplot(3,1,3); plt.plot(freq,np.imag(ss)); plt.title('imag(s)'); plt.grid() plt.ylim([-1,1]) plt.tight_layout() Janela rectangular

Transformadas de Fourier de séries importantes #%% Janela de Hann Janela de Hann s=np.zeros(n); alpha=0.5;beta=1-alpha; NH=300;NH2=NH/2; th=np.arange(nh); hann=alpha-beta*np.cos(2*pi*th/(nh)) hann=hann/np.sum(hann) for i in range(nh2): s[i]=hann[nh2+i]; s[-i]=hann[nh2-i]; S=fft.fft(s); SS=np.concatenate([S[N/2:], S[:N/2]]) plt.subplot(3,1,1); plt.plot(t,s); plt.grid() plt.title(u's = janela Hann'); plt.subplot(3,1,2); plt.plot(freq,np.real(ss)); plt.title('real(s)'); plt.grid() plt.subplot(3,1,3); plt.plot(freq,np.imag(ss)); plt.title('imag(s)'); plt.grid() plt.ylim([-1,1]) plt.tight_layout()