Hola, ya que la lista se usa últimamente para plantear todo tipo de dudas, a
ver si alguien me puede echar un cable con esto.

Mirando algunos ejemplos sobre DSP, me encontré un ejemplo que me gustó. Es
claro y sencillo, tanto como para empezar a jugar un poco con las FFTs. Mi
problema es que no entiendo mucho cómo pasa el formato binario a "vete tú a
saber". El error que me da al ejecutar es:

 File "wave_file.py", line 57, in getFreqPwrFFT
    temp[i,:] = array(struct.unpack("%dB"%(fft_length), tempb),Float) -
128.0
struct.error: unpack str size does not match format

¿Alguien que sepa un poco de arrays y structs me podría aclarar un poco por
qué falla y cómo funciona esto realmente? El ejemplo qie estoy siguiendo
está en:
http://www.onlamp.com/pub/a/python/2001/01/31/numerically.html?page=2

funcion:
--------------------------------------------
  def getFreqPwrFFT(self, fft_length):
        if self.nchannels > 1:
            print 'Muestra con mas de un canal'
            return null
        else:
            # Rellenamos array y procesamos
            num_fft = (self.nframes / fft_length ) - 2
            temp = zeros((num_fft,fft_length),Float)
            for i in range(num_fft):
                tempb = self.wavefile.readframes(fft_length);
                print '.'
                # Ahora peta...
                temp[i,:] = array(struct.unpack("%dB"%(fft_length),
tempb),Float) - 128.0
            #10*log 10 pasamos a decibelios.
            freq_pwr  = 10*log10(1e-20+abs(real_fft(temp,fft_length)))
            return freq_pwr
_______________________________________________
CRySoL mailing list
http://crysol.inf-cr.uclm.es/
https://arco.inf-cr.uclm.es/cgi-bin/mailman/listinfo/crysol

Responder a