Exercicio 8 - Introdução Transformada Discreta de Fourier

1.

Estudar as funções da toolbox ia636: iacos, iadft, iadftview.

http://calhau.dca.fee.unicamp.br/adessoweb/toolboxes/ia636/ia636/iacos.html

iacos - Cria Imagem Cossenoidal

imagem = iacos( tamanho [linhas, colunas], periodo (pixels), direcao_da_onda (radianos), angulo_de_fase)

1 imagem = iacos([128,256], 100, pi/4, 0)
2 normalizada = ianormalize(imagem, [0,255])
3 adshow(normalizada, title = 'Funcao iacos()')

Funcao iacos()

http://calhau.dca.fee.unicamp.br/adessoweb/toolboxes/ia636/ia636/iadft.html

iadft - Transformada Discreta de Fourier

Transformada = iadft(amostras)

 1 f = [0, 0.707, 1, 0.707, 0, -0.707, -1, -0.707]
 2 F = iadft(f)
 3 
 4 mmplot([[f]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Funcao f(x) - 8 amostras')
 5 
 6 print "F(x):"
 7 print array(F).round(3)
 8 
 9 f = [1, 1.707, 2, 1.707, 1, 1-0.707, 1-1, 1-0.707]
10 F = iadft(f)
11 
12 mmplot([[f]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Funcao f(x) - 8 amostras')
13 
14 print "Transformada de funcao senoidal com nivel dc = 1"
15 print array(F).round(3)
F(x):
[[-0.+0.j]
 [ 0.-4.j]
 [-0.+0.j]
 [ 0.+0.j]
 [ 0.+0.j]
 [ 0.-0.j]
 [ 0.+0.j]
 [-0.+4.j]]
Transformada de funcao senoidal com nivel dc = 1
[[ 8.+0.j]
 [ 0.-4.j]
 [-0.-0.j]
 [-0.+0.j]
 [-0.-0.j]
 [ 0.-0.j]
 [ 0.+0.j]
 [-0.+4.j]]

http://calhau.dca.fee.unicamp.br/adessoweb/toolboxes/ia636/ia636/iadftview.html

iadftview - Genera imagem do espectro da transformada discreta de Fourier

imagem = iadftview(Transformada)

1 f = iarectangle([200,300], [50,50], [100,150])
2 F = iadft(f)
3 iF = iadftview(F)
4 adshow(f, title = 'f(x)')
5 adshow(iF, title = 'iadftview(F)')

f(x)

iadftview(F)

2.

Estudar a demonstração iadftdecompose e procurar fazer a demonstração inversa, isto é, começar a reconstruir parcialmente a função original, adicionando-se as cossenóides, de menor frequência.

3.

Repetir parte do exercício que o Prof. Clésio demonstrou em classe usando as funções iadft.

 1 f = [0, 0.707, 1, 0.707, 0, -0.707, -1, -0.707]
 2 F = iadft(f)
 3 
 4 mmplot([[f]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Funcao f(x) - 8 amostras')
 5 
 6 fr = iaidft(F)
 7 mmplot([[fr]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Funcao f(x) reconstruida - 8 amostras')
 8 
 9 
10 
11 f = [0, 1, 0, -1]
12 F = iadft(f)
13 
14 mmplot([[f]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Mesma funcao f(x) - 4 amostras')
15 
16 fr = iaidft(F)
17 mmplot([[fr]],['set yrange [-2.5:2.5]','set xrange [0:10]'], ptitle='Funcao f(x) reconstruida - 4 amostras')