transformada de fourier: complementos

Post on 14-Jul-2022

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Aula 17

Transformada de Fourier: complementos

2018 Laboratório Numérico 1

Transformada discreta de Fourier

Transformada discreta de Fourier

𝐹𝑘 =

𝑛=0

𝑁−1

𝑓𝑛𝑒−2𝜋𝑖𝑛𝑘/𝑁

transformada discreta inversa de Fourier

𝑓𝑛 =1

𝑁

𝑘=0

𝑁−1

𝐹𝑘𝑒2𝜋𝑖𝑛𝑘/𝑁

𝑓𝑛 e {𝐹𝑘} têm o mesmo número de termos (𝑁), e a mesma informação! (a menos do erro de arredondamento)

Laboratório Numérico 2

A transformada discreta (com N termos)…

Quando a função é discretizada (amostrada a intervalo regular) existe um período mínimo (ou frequência máxima) que pode ser representado. Se ela tem um número finito de termos, também existe um período máximo (frequência mínima, para além de 0). Logo temos uma série discreta e finita (e com erro de arredondamento).

Na prática a análise numérica de dados reais refere-se sempre a esse tipo de série. Nesse caso tanto a representação da função (transformada inversa) como o cálculo dos coeficientes (transformada) envolve somatórios (não integrais) com um número finito de termos.

Laboratório Numérico 3

Propriedades da Transfomada Discreta de Fourier

Linearidade

A transformada de uma combinação linear de funções é a mesma combinação linear de transformadas

𝐺 = ℱ 𝑔 ,𝐻 = ℱ ℎ ⟹ ℱ 𝑎𝑔 + 𝑏ℎ = 𝑎𝐺 + 𝑏𝐻𝑔 = 𝑔 𝑡 , ℎ = ℎ 𝑡 ; 𝐺 = 𝐺 𝑓 ,𝐻 = 𝐻 𝑓

𝑡 ≡ tempo, 𝑓 ≡ frequência

Translação

𝑆 𝑓 = ℱ 𝑠 𝑡 ⟹ ℱ 𝑠 𝑡 − 𝑎 = 𝑒−𝑖𝑓𝑎𝑆(𝑓)

Escalamento

𝑆 = ℱ(𝑠 𝑡 ) ⟹ ℱ 𝑠 𝑎𝑡 =1

𝑎𝑆

𝑓

𝑎

Laboratório Numérico 4

Laboratório Numérico 5

Transformada discreta de Fourier

𝑓𝑛 =1

𝑁

𝑘=0

𝑁−1

𝐹𝑘𝑒2𝜋𝑖𝑛𝑘/𝑁

𝑓𝑛 e {𝐹𝑘} têm o mesmo número de termos (𝑁)

𝐹0 é proporcional à média da série

𝐹𝑘 , 𝐹−𝑘 representam a harmónica 𝑘 (frequência 𝑓𝑁𝑦𝑞𝑘

𝑁

2

)

indicando que existe um número ímpar de termos em 𝐹𝑘. Mas só são calculados 𝑁 termos e 𝑁 pode ser par. Se for esse o caso não é calculado o termo correspondente a −𝑓𝑁𝑦𝑞.

Laboratório Numérico 6

Em geral,

Tanto série 𝑓𝑛 com a sua transformada de Fourier {𝐹𝑘} são séries complexas.

Mesmo que 𝑓𝑛 seja real, {𝐹𝑘} é complexa.

Casos especiais, se 𝑓𝑛 for real e

Par 𝑓𝑛 = 𝑓−𝑛: {𝐹𝑘} é real e simétrica

Ímpar 𝑓𝑛 = −𝑓−𝑛 ∶ {𝐹𝑘} é imaginária e anti-simétrica

Laboratório Numérico 7

Casos especiais

Laboratório Numérico 8

0 10 20 30 40 50 60 70 80 90 100-1

0

1f

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-1

0

1x 10

-12 Real(F)

f (Hz)

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-100

0

100Imag(F)

f (Hz)

0 10 20 30 40 50 60 70 80 90 100-1

0

1f

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-100

0

100Real(F)

f (Hz)

-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5-1

0

1x 10

-12 Imag(F)

f (Hz)

sin 𝑥 = −sin(−𝑥) cos 𝑥 = 𝑐𝑜𝑠(−𝑥)

Transformada imaginária, anti-simétrica(𝑐𝑘 = 𝑖𝑟𝑘 = −𝑖𝑟−𝑘)

Transformada real, simétrica(𝑐𝑘 = 𝑟𝑘 = 𝑟−𝑘)

Transfomada do seno

A=1.;eps=1e-10; dt=1

for T in [10,20]:

for K in[2,2.1,2.5]:

t=np.arange(0,K*T,dt)

n=len(t)

f=A*np.sin(2*np.pi/T*t)

plt.subplot(2,1,1)

plt.plot(t,f); plt.scatter(t,f)

plt.title(r'$T=%3.1f, \Delta t=%3.1f T$’ /

% (T,(np.max(t)+dt)/T))

F=np.fft.fft(f)

plt.subplot(2,1,2)

fNyq=1/(2*dt)

df=fNyq/(n//2)

freq=np.arange(0,fNyq+eps,df)

plt.plot(freq,np.abs(F[0:n//2+1])/(n//2))

plt.scatter(freq,np.abs(F[0:n//2+1])/(n//2))

Laboratório Numérico 9

N=20

Laboratório Numérico 10

𝑓 =1

𝑇

𝑨𝒎𝒑𝒍𝒊𝒕𝒖𝒅𝒆f>0

𝑻

Laboratório Numérico 11

𝑓 =1

𝑇

𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑𝑒

𝑇

Ponto extra

Laboratório Numérico 12

𝑓 =1

𝑇

𝐴𝑚𝑝𝑙𝑖𝑡𝑢𝑑𝑒

𝑇

Conclusão

O resultado só é exato se os períodos presentes na série foremum submúltiplo do comprimento da série: isto é tem que existiruma harmónica fundamental igual ao comprimento da série. Issopode não ser possível para todos os períodos existentes numsérie real.

Laboratório Numérico 13

Felizmente, o problema atenua se a série for longa: 8.5 T

Laboratório Numérico 14

Felizmente, o problema atenua se a série for longa:100.5 T

Laboratório Numérico 15

Mudando período

Laboratório Numérico 16

𝑓 =1

𝑇

Mudando a amplitude (a FFT é linear)

Laboratório Numérico 17

f=1.5*np.sin(2*np.pi/T*t)

Somando uma constante

plt.figure();kf=kf+1

t=np.arange(0,K*T,dt)

n=len(t)

f=np.sin(2*np.pi/T*t)+1

Laboratório Numérico 18

𝑓 =1

𝑇

2 × ҧ𝑓

Mudando Δt

Laboratório Numérico 19

top related