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






