INDIETRO
  Primi programmi
AVANTI

localizzazione 3D

Simuliamo una sorgente posta in un certo punto nell'aria libera, che emette un semplice segnale sinusoidale, con una certa potenza sonora, e facciamo l'ipotesi che il suono si propaghi isotropamente con simmetria sferica, senza essere smorzato dal mezzo.

Ad una certa distanza dal centro, la potenza si distribuisce su tutta la superfice sferica. La legge di conservazione dell'energia ci dice quindi che l'intensità sonora decresce con il quadrato della distanza dalla sorgente.
Ne segue che la pressione sonora decresce in modo inversamente proporzionale alla distanza dal centro.
In termini di livello di pressione sonora (SPL) un raddoppio della distanza causa una diminuzione di circa 6dB (20Log10(0.5)).

Ricordiamo infine che quando impostiamo una ampiezza A del segnale sinusoidale, la potenza elettrica è proporzionale al suo quadrato, e la potenza sonora prodotta dalla cuffia o dall'altoparlante è ancora proporzionale al quadrato di A, e quindi la pressione sonora che finalmente agisce sulle nostre orecchie sarà proporzionale alla ampiezza A che avevamo impostato.
Quindi ad una distanza d dalla sorgente abbiamo semplicemente una ampiezza A/d.

Per ora supponiamo che le due orecchie non abbiano una risposta direzionale (sappiamo che invece sia le orecchie che molti microfoni hanno una spiccata direzionalità) e che distino circa 20 cm. una dall'altra.
Ciò nonostante il segnale arriva un pochino piu' forte ad una orecchio che all'altra, e con una piccola differenza di fase, e questo è sufficiente a dare una certa sensazione di direzionalità, anche se alla localizzazione della sorgente di un rumore mediante le orecchie contribuiscono anche effetti più complessi che vedremo in seguito.

Un primo programma semplicissimo è unasorgente.f90 o unasorgente.c in C.

In un secondo esempio proviamo a simulare un punto che emette un segnale sinusoidale di frequenza e ampiezza assegnata, e che si muove lungo una retta a velocità assegnata.
Supponiamo sempre che il segnale si propaghi nell'aria, e che ciascuna orecchio percepisca i suoni da qualsiasi direzione nello stesso modo.
Per determinare il suono che arriva ad una certa orecchio ad un istante t, occorre tenere conto del fatto che esso era partito ad un certo istante t' ed ha coperto la distanza tra la posizione che all'istante t' aveva il punto e l'orecchia, viaggiando alla velocità del suono: occorre risolvere l'equazione del secondo ordine in t' e tenere conto che il suono si indebolisce proporzionalmente Il quadrato della distanza percorsa.

Arriviamo così al programma moto1.f90 o moto1.c in C.
Sperimentando con questo programma si vede che viene reso esattamente l'effetto doppler, con il caratteristico spostamento in frequenza (nota: 60Km/h sono 16.7m/s).

In certi casi però si ottiene un suono molto strano, con una variazione in senso opposto della tonalità del suono.
Per esempio prendendo frequenza=3500, ampiezza=1, velocità=10, distanza_retta=0.5.

Che cosa è accaduto ?
Analizzando il segnale mediante il programma snd si scopre che quando il punto è vicino, il suono è molte forte e viene limitato dal massimo valore che abbiamo imposto nel programma.
Questo troncamento introduce delle armoniche di ordine più elevato nel suono.
Alcune di queste armoniche sono sufficientemente elevate da superare la frequenza di Nyquist: non sono udibili, ma i loro alias lo sono.
Mentre il punto si avvicina, le frequenze aumentano di tono, ma gli alias invece calano di tono (c'è un ripiegamento attorno alla frequenza di Nyquist dello spettro...).

Questo esempio è molto istruttivo: manipolazioni numeriche fatte sui segnali possono facilmente introdurre erroneamente componenti di frequenza inaspettatamente alta.  


INDIETRO
Laboratorio Sperimentale di Matematica Computazionale - parte III
Sergio Steffè - AA 2012/2013 - PISA
AVANTI