Esta senial la hacemos con el siguiente programa
import numpy as np from scipy.io.wavfile import write # Parámetros de la señal frecuencia = 2000 # Frecuencia en Hz (Ejemplo: 440 Hz corresponde a la nota A4) duracion = 5 # Duración en segundos amplitud = 32767 # Amplitud máxima (para 16-bit PCM) # Frecuencia de muestreo fs = 44100 # Frecuencia de muestreo en Hz (común para audio de alta calidad) # Crear el tiempo de la señal t = np.linspace(0, duracion, int(fs * duracion), endpoint=False) # Crear la señal sinusoidal senal = amplitud * np.sin(2 * np.pi * frecuencia * t) # Convertir la señal a un formato adecuado para WAV (entero de 16 bits) senal_int16 = np.int16(senal) # Guardar el archivo WAV write("seno_2000.wav", fs, senal_int16) print("Archivo WAV generado con éxito.")
el sonido que sale es este
Para ver esta senial
import numpy as np import matplotlib.pyplot as plt from scipy.io import wavfile # Función para graficar la señal de un archivo WAV def graficar_senal_wav(archivo_wav): # Leer el archivo WAV sample_rate, data = wavfile.read(archivo_wav) # Comprobar si los datos son estéreo o mono if len(data.shape) == 2: # Si es estéreo, tomar solo un canal data = data[:, 0] # Generar el eje de tiempo tiempo = np.linspace(0, len(data) / sample_rate, num=len(data)) # Graficar la señal plt.figure(figsize=(12, 6)) plt.plot(tiempo, data) plt.title('Señal Acústica') plt.xlabel('Tiempo (s)') plt.ylabel('Amplitud') plt.grid() plt.xlim(0, len(data) / sample_rate) # Limitar el eje x al tiempo total #plt.xlim([2.8,2.85]) plt.show() # Especificar el archivo WAV que deseas graficar from scipy.io import wavfile from scipy.io import wavfile archivo_wav = 'seno_2000.wav' # Cambia esto por el nombre de tu archivo WAV graficar_senal_wav(archivo_wav)


Vamos a analizar como pasa esta onda sinusoidal despues de una bocina y capturandola en un microfono


las bocinas registraron los siguientes sonidos, bocina 1
bocina 2
bocina 3
bocina 4
bocina 5
bocina 6
aqui esta la senial de la bocina 1






