Beispiel #1
0
 def plot_group_delay(self, a, b):
     w, gd = signal.group_delay((b, a))
     plt.plot(w, numpy.round(gd, 5))
     plt.ylabel('Retardo de grupo [muestras]')
     plt.xlabel('Frecuencia [rad/muestra]')
     plt.title('Retardo de grupo')
     plt.show()
Beispiel #2
0
 def plot_freq_resp(self, a, b, worN=None):
     w, h = signal.freqz(b, a, worN)
     plt.plot(w, 20 * numpy.log10(abs(h)), 'b')
     plt.ylabel('Amplitud [dB]', color='b')
     plt.xlabel('Frecuencia [rad/muestra]')
     plt.gca().twinx()
     angles = numpy.unwrap(numpy.angle(h))
     plt.plot(w, angles, 'g')
     plt.ylabel('Fase (rad)', color='g')
     plt.grid()
     plt.show()
Beispiel #3
0
    def leer_wave(self, filename):
        """Lectura de un fichero de audio para representación gráfica

        - filename, cadena de texto, es la ruta donde se encuentra el fichero a analizar"""
        framerate, data = wavfile.read(filename)
        t = numpy.arange(start=0,
                         stop=1.0 * data.size / framerate,
                         step=1. / framerate)
        plt.figure(1)
        plt.subplot(211)
        plt.title('Onda de:\n' + filename)
        plt.xlabel('Tiempo (seg)')
        plt.plot(data)
        return plt, data, framerate
Beispiel #4
0
    def representa_espectrograma(self, x, NFFT, Fs, noverlap):
        """Representacion del espectograma de un fichero de audio

        - x, array, datos de la señal
        - NFFT, int, la cantidad de puntos de datos utilizados en cada bloque para la Transformada de Furier.
        - Fs, long, frecuencia de muestreo
        - noverlap, int, el número de puntos de superposición entre bloques"""
        plt.figure(1)
        plt.subplot(212)
        plt.title('Espectograma')
        plt.ylabel('Frequencia [Hz]')
        plt.xlabel('Tiempo [seg]')
        Pxx, freqs, bins, im = plt.specgram(x,
                                            NFFT=NFFT,
                                            Fs=Fs,
                                            cmap='jet',
                                            noverlap=noverlap)
        return plt, Pxx, freqs
Beispiel #5
0
    def leer_wave(self, filename):
        """Lee un fichero de audio y muestra en la salida los datos leidos en x
        y la frecuencia de muestreo a la que se ha grabado el audio

        Entrada:
        - filename, cadena de texto, ruta del fichero que queremos leer

        Salidas:
        - x, array, datos en bruto del fichero leido
        - framerate, entero, frecuencia de muestreo del audio"""
        framerate, data = wavfile.read(filename)
        plt.figure(1, figsize=(9, 9))
        plt.subplot(211)
        plt.title('Onda de:\n' + filename)
        plt.ylabel('Amplitud')
        plt.xlabel('Tiempo [muestras]')
        plt.plot(data)
        return data, framerate