def SimuleDoppler (v=130.0, x0=10.0, cs=340.0, f=440.0, duree=8.0, sample_rate=22050): vSI = v/3.6 # On convertit la vitesse en m/s ystart = -vSI*duree/2 n_samples = int(duree * sample_rate) samples = zeros(n_samples) phase = 0 y = ystart dt = 1/sample_rate for i in arange(n_samples): # Distance de la source d = sqrt (x0**2+y**2) # Valeur de la perturbation sonore samples[i] = 128+127*(sin(phase)*0.5)*abs(x0/d) # Position suivante de la source y = y+vSI*dt # Nouvelle distance de l'émetteur dp= sqrt (x0**2+y**2) # Vitesse d'éloignement de la source ve = (dp-d)/dt # Fréquence du son perçu fp= f/(1.+ve/cs) # Nouvelle phase de la perturbation sonore phase = phase + 2*pi*fp*dt play_samples(samples, sample_rate=sample_rate) Prepamath downloader

Prépamath

Downloading...