Está en la página 1de 6

SERIE DE FOURIER SEÑAL CORTA

FELIPE ALEJANDRO RINCÓN MÉNDEZ

DAVID STEVEN YAYA GOMEZ


DAVID ENRIQUE ZABALA GONZALEZ

POLITÉCNICO GRANCOLOMBIANO FACULTAD DE INGENIERÍA, DISEÑO E


INNOVACIÓN INGENIERÍA EN TELECOMUNICACIONES SEÑALES Y
SISTEMAS AÑO 2022
EJERCICIO

Interpretación de una señal sonora mediante Python para poder apreciar el análisis de frecuencias
y demás componentes. Para esta ocasión se hará uso de un audio con sonido ambiente de una
lluvia y truenos , a continuación, se muestra el código usado y sus resultados.

import numpy as np

import matplotlib.pyplot as plt

import scipy.io.wavfile as waves

#import scipy

import librosa, librosa.display

# Entradas

archivo = 'clp00765.wav'

muestreo, sonido = waves.read(archivo)

print('Frecuencia de muestreo: ', muestreo)

print('Datos del sonido: ')

print(sonido)

# Intervalo de tiempo

Ini = 0

Fin = 122868

Canal = 1

# Extracción del fragmento de sonido

dt = 1/muestreo

t = np.arange(Ini*dt, Fin*dt, dt)

NumM = len(t)

fragmento = sonido[Ini:Ini+NumM, Canal]

# Salida

plt.plot(t,fragmento)
plt.xlabel('t [segundos]')

plt.ylabel('Amplitud')

plt.show()

fft = np.fft.fft(fragmento)

magnitud = np.abs(fft)

frecuencia = np.linspace(0, muestreo, len(magnitud))

FreqIzq = frecuencia[:int(len(frecuencia)/2)]

MagIzq = magnitud[:int(len(frecuencia)/2)]

ListMagIzq = list(MagIzq)

tmp = max(ListMagIzq)

index = ListMagIzq.index(tmp)

Frecuencia_Val_Max = frecuencia[index]

Fsize = (15, 10)

plt.figure(figsize = Fsize)

plt.plot (FreqIzq, MagIzq)

plt.ylabel('Magnitud')

plt.xlabel('Frecuencia')

# Señal con librosa

senal, sample_rate = librosa.load(archivo, sr = NumM)

plt.figure(figsize=Fsize)

librosa.display.waveshow(senal, NumM)

plt.ylabel("Amplitud")

# STFT

n_fft = 2048

hop_length = 512
stft = librosa.core.stft(senal, hop_length = hop_length, n_fft = n_fft)

inv_stft = librosa.core.istft(np.abs(stft), hop_length = hop_length)

espectrograma = np.abs(stft)

plt.figure(figsize=Fsize)

librosa.display.specshow(espectrograma, sr=NumM, hop_length=hop_length)

plt.xlabel("Tiempo")

plt.ylabel("Frecuencia")

cbar = plt.colorbar()

cbar.ax.set_ylabel('Magnitud')
GRAFICAS

• Amplitud de la señal

• Magnitud de la señal sonora


• Duración de la señal sonora

• Frecuencia de la señal sonora

También podría gustarte