Exercício 8

Autor: Rodrigo Mologni Gonçalves dos Santos
Data: 13/05/2009

Enunciado

Exercício 8.

Índice

  • 1. Estudo das funções iacos, iadft e iadftview

    • 1.1 Função iacos
    • 1.2 Função iadft
    • 1.3 Função iadftview
  • 2. Estudo da demonstração iadftdecompose

  • 3. Estudo da função iadft

1. Estudo das funções iacos, iadft e iadftview

Neste tópicos seram abordados exemplos do uso das funções iacos, iadft e iadftview da toolbox ia636.

1.1 Função iacos

A função iacos pode ser utilizada para gerar imagens cossenoidais, tal como ilustrado na Figura 1, na qual a imagem pode ser gerada de maneira interativa. Maiores detalhes sobre geração de imagens cossenoidais podem ser vistas no Exercício 2 do próprio autor.

1 f = iacos([nx,ny], t, theta*pi, phi*pi)
2 adshow(ianormalize(f, [0,255]))

Figura 1 - Imagem gerada pela função iacos.

1.2 Funções iadft

A função iadft calcula a Transformada de Fourier Discreta. O Gráfico 1 ilustra o uso da função para obtenção de F(u) a partir de N amostras da uma função cosseno f(x).

 1 f  = cos(arange(0, 2 * pi, pi / N))
 2 F  = iadft(f)
 3 
 4 print 'Número de amostras da função f(x):'
 5 print 'N =', N
 6 print
 7 print 'Função:'
 8 print 'f(x) =', f.round(2)
 9 print
10 print 'Transformada de Fourier da função f(x):'
11 print 'F(u) =', F.round(2)
12 print
13 
14 mmplot([[f]]     , ptitle='f(x)')
15 mmplot([[abs(F)]], ptitle='F(u)')
------------------------------------------------------------
*** Exception while evaluating code:
  File "<string>", line 2, in <module>
NameError: name 'iadft' is not defined

------------------------------------------------------------

Gráfico 1 - Cálculo da Transformada de Fourier com 8 amostras da função cosseno.

1.3 Função iadftview

A função iadftview é utilizada para gerar uma imagem da função F(u) obtida por meio da iadft, tal como representado pela Figura 2.

1 f  = iacos([nx,ny], t, theta*pi, phi*pi)
2 F  = iadft(f)
3 Fv = iadftview(F)
4 
5 iashow(ianormalize(f , [0,255]), title='(a) f(x)')
6 iashow(ianormalize(Fv, [0,255]), title='(b) F(u)')

Figura 2 - Exemplo do uso da função iadftview.

2. Estudo da demonstração iadftdecompose

A Figura 3 apresenta (a) uma imagem gerada por uma função cosseno, (b) o gráfico desta função, (c) uma imagem da Transformada de Fourier Discreta aplicada sobre a função e, por fim, (d) o gráfico referente a ela.

1 f  = cos(arange(0, 2 * pi, pi / N))
2 F  = iadft(f)
3 Fv = iadftview(F)
4 
5 iashow(ianormalize(kron(f, numpy.ones([10, 10])), [0,255]), title='(a) f(x)')
6 mmplot([[f]], ptitle='(b) f(x)')
7 
8 iashow(ianormalize(kron(Fv, numpy.ones([10, 10])), [0,255]), title='(c) F(u)')
9 mmplot([[Fv]], ptitle='(d) F(u)')

Figura 3 - Gráficos e imagens das funções f(x) e F(u).

3. Estudo da função iadft

O gráfico 2 exemplifica a reconstrução de uma função f(x) usando a iadft.

 1 f  = cos(arange(0, 2 * pi, pi / N))
 2 F  = iadft(f)
 3 fi = iaidft(F)
 4 
 5 print 'Número de amostras da função f(x):'
 6 print 'N =', N
 7 print
 8 print 'Função:'
 9 print 'f(x) =', f.round(2)
10 print
11 print 'Transformada de Fourier da função f(x):'
12 print 'F(u) =', F.round(2)
13 print
14 print 'Função f(x) reconstituída:'
15 print 'f(x) =', fi.round(2)
16 
17 mmplot([[f]]     , ptitle='f(x)')
18 mmplot([[abs(F)]], ptitle='F(u)')
19 mmplot([[fi]]    , ptitle='f\'(x)')
------------------------------------------------------------
*** Exception while evaluating code:
  File "<string>", line 2, in <module>
NameError: name 'iadft' is not defined

------------------------------------------------------------

Gráfico 2 - Reconstrução de uma função usando a iaidft.