Jump to content


Photo

Calculo Fft Em C


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 mayzinha

mayzinha

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Feminino

Posted 18/07/2011, 17:11

Sou totalmente principiante em C, usando como base o programa abaixo, gostaria de saber como faço para modificar este programa de modo que ele calcule apenas uma harmonica [a fundamental por exemplo], sendo que não sei se estou enganada, mas pelo que pude perceber a entrada teria que ser numeros pares.
Se alguem puder me ajudar desde já obrigada.

def fft_sandetukey(inputf):
"""
Return a list with the coeficients of Fast Fourier Transform
(Sande-Tukey — Decimation in Frequency algorithm).

F = fft_sandetukey(inputf)

INPUT:
* f: list with discrete points of time-domain

return: list discrete points of frequency-domain

Author: Pedro Garcia [sawp@sawp.com.br]
see: http://www.sawp.com.br

License: Creative Commons
http://creativecommo...y-nc-nd/2.5/br/

Mar 2011
"""

def fft_st(x, n):
if n != 1:
d = [complex(0.0) for i in xrange(n)]
e = [complex(0.0) for i in xrange(n)]
nh = n / 2
for k in xrange(nh, -1, -1):
s = x[k]
t = x[k + nh]
e[k] = s + t
d[k] = s – t
for k in xrange(nh):
theta = k * omega * n
real = cos(theta)
imag = sin(theta)
d[k] = d[k] * complex(real, imag)
# divide and conquer
bige = fft_st(e, nh)
bigd = fft_st(d, nh)
j = 0
for k in xrange(nh):
x[j] = bige[k]
x[j + 1] = bigd[k]
j = j + 2
return x

f = map(complex, inputf)
m = len(f)
omega = -2.0 * pi / m
return fft_st(f, m – 1)




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq