示例#1
0
    def plot_obs(self):
        #Tamano caja
        L = self.Lbox.get()
        #Posicion de la fuente
        X0 = self.xsource.get()
        Y0 = self.ysource.get()
        #Posicion del observador
        XOb = self.xobs.get()
        YOb = self.yobs.get()
        #Frecuencia
        f = self.freq.get()
        #Velocidad de onda
        vel = self.vel.get()
        #Longitud de onda
        lamb = vel / f
        #Condicional de fronteras reflectivas
        reflex = self.frontera.get()

        #Intervalo de tiempo
        dt = 1 / (44100.)
        #Tiempo maximo
        tmax = self.tmax.get()
        #Arreglo de tiempo
        self.tiempo = np.arange(0, tmax, dt)
        #Calculo de campo en el punto del observador
        self.Z = \
        Z_amplitud(XOb, YOb, X0, Y0, self.tiempo, f, lamb )
        if reflex == 1:
            self.Z -= \
            Z_amplitud(XOb, YOb, 0.0, -Y0, self.tiempo, f, lamb )+\
            Z_amplitud(XOb, YOb, 0.0, 2*L-Y0, self.tiempo, f, lamb )+\
            Z_amplitud(XOb, YOb, -X0, 0.0, self.tiempo, f, lamb )+\
            Z_amplitud(XOb, YOb, 2*L-X0, 0.0, self.tiempo, f, lamb )
            self.Z *= 1 / (5.)
        #Grafica
        self.ax.clear()
        self.ax.grid()
        self.ax.set_title('Amplitud Onda Sonora por Observador')
        self.ax.set_xlabel('tiempo [s]')
        self.ax.set_ylabel('Amplitud [$A_0$]')
        self.ax.plot(self.tiempo, self.Z / (1.0 * ad.Amplitude))
        self.ax.set_ylim((-1, 1))
        self.ax.set_xlim((0, tmax))
        self.canvas.draw()
        #Creando objeto de audio
        sonido = ad.audio()
        #Cargando nota de audio
        sonido.load(self.Z)
        #Reproduciendo sonido
        sonido.play()
 def plot_obs(self):
   #Tamano caja
   L = self.Lbox.get()
   #Posicion de la fuente
   X0 = self.xsource.get()
   Y0 = self.ysource.get()
   #Posicion del observador
   XOb = self.xobs.get()
   YOb = self.yobs.get()
   #Frecuencia
   f = self.freq.get()
   #Velocidad de onda
   vel = self.vel.get()
   #Longitud de onda
   lamb = vel/f
   #Condicional de fronteras reflectivas
   reflex = self.frontera.get()
   
   #Intervalo de tiempo
   dt = 1/(44100.)
   #Tiempo maximo
   tmax = self.tmax.get()
   #Arreglo de tiempo
   self.tiempo = np.arange( 0, tmax, dt )
   #Calculo de campo en el punto del observador
   self.Z = \
   Z_amplitud(XOb, YOb, X0, Y0, self.tiempo, f, lamb )
   if reflex == 1:
     self.Z -= \
     Z_amplitud(XOb, YOb, 0.0, -Y0, self.tiempo, f, lamb )+\
     Z_amplitud(XOb, YOb, 0.0, 2*L-Y0, self.tiempo, f, lamb )+\
     Z_amplitud(XOb, YOb, -X0, 0.0, self.tiempo, f, lamb )+\
     Z_amplitud(XOb, YOb, 2*L-X0, 0.0, self.tiempo, f, lamb )
     self.Z *= 1/(5.)
   #Grafica
   self.ax.clear()
   self.ax.grid()
   self.ax.set_title('Amplitud Onda Sonora por Observador')
   self.ax.set_xlabel('tiempo [s]')
   self.ax.set_ylabel('Amplitud [$A_0$]')
   self.ax.plot( self.tiempo, self.Z/(1.0*ad.Amplitude) )
   self.ax.set_ylim( (-1, 1) )
   self.ax.set_xlim( (0, tmax) )
   self.canvas.draw()
   #Creando objeto de audio
   sonido = ad.audio()
   #Cargando nota de audio
   sonido.load( self.Z )
   #Reproduciendo sonido
   sonido.play()
示例#3
0
tau = 1.

#Tiempo maximo [s]
tmax = 5
#Intervalos
dt = 1/44100.
#Arreglo de tiempo 
tiempo = np.arange( 0, tmax, dt )

#Potencial
V = Vfem( tiempo )
#Oscilacion original
y_cuerda = y( tiempo )

#Grafica
plt.plot( tiempo, V, linewidth = 0.5 )
plt.grid()
plt.title( "Potencial inducido por una bobina fonocaptora")
plt.xlabel( "t [s]" )
plt.ylabel( "Potential [V_0]" )
plt.show()

#Audio producido por la bobina
nota_bobina = ad.audio()
nota_bobina.load( V*ad.Amplitude/max(V) )
nota_bobina.play()

#Audio original de la cuerda
nota_cuerda = ad.audio()
nota_cuerda.load( y_cuerda*ad.Amplitude/max(y_cuerda) )
nota_cuerda.play()
# Efecto Doppler
#==========================================================

#**********************************************************
#	MODULOS
#**********************************************************
import numpy as np
import os
import matplotlib.pylab as plt
import AudioLib as ad

#Velocidad del sonido [m/s]
vs = 331.5

#Creando objeto de audio
sonido = ad.audio()

#Intervalo de tiempo
dt = 1/(44100.)
#Frecuencia de nota [Hz]
freq0 = 110.

#Tiempo maximo	[s]
tmax = 6.
#Arreglo de tiempo
tiempo = np.arange( 0, tmax, dt )
#Nota a reproducir
nota = ad.Amplitude*np.sin( 2*np.pi*freq0*tiempo )

#Cargando nota de audio
sonido.load( nota )
示例#5
0
# Efecto Doppler
#==========================================================

#**********************************************************
#	MODULOS
#**********************************************************
import numpy as np
import os
import matplotlib.pylab as plt
import AudioLib as ad

#Velocidad del sonido [m/s]
vs = 331.5

#Creando objeto de audio
sonido = ad.audio()

#Intervalo de tiempo
dt = 1 / (44100.)
#Frecuencia de nota [Hz]
freq0 = 110.

#Tiempo maximo	[s]
tmax = 6.
#Arreglo de tiempo
tiempo = np.arange(0, tmax, dt)
#Nota a reproducir
nota = ad.Amplitude * np.sin(2 * np.pi * freq0 * tiempo)

#Cargando nota de audio
sonido.load(nota)