Sviluppo di un software per la simulazione in tempo reale del riverbero in una stanza. E' stato implementato un plugin per la piattaforma NuTech (http://www.nu-tech-dsp.com), ambiente di sviluppo dedicato ad applicazioni DSP (Digital Signal Processing).
Sono stati studiati diversi algoritmi per la simulazione di ambienti tramite l’utilizzo di risposte impulsive sintetiche ed in particolare è stato implementato il metodo delle “sorgenti immagine” di J. Allen e D. Berkley. L’algoritmo è stato migliorato, rispetto alla sua formulazione originale, introducendo gli spettri di riflessione delle pareti della stanza in luogo dei singoli coefficienti indipendenti dalla frequenza.
E’ stata introdotta inoltre la possibilità di calcolare la risposta binaurale della stanza, riferita cioè ad un ascoltatore umano (HRTF).
2. Obiettivi del progetto:
– Sintesi della risposta impulsiva di una stanza
– Introdurre coefficienti di assorbimento dipendenti dalla
frequenza
– Sintesi risposta binaurale rispetto ad un ascoltatore umano
– Filtraggio in tempo reale con latenza minima
– Implementazione come PlugIn per ambiente NU-Tech
1 febbraio 2013 2
3. La risposta impulsiva si può ottenere:
• Per via sperimentale, registrando la risposta ad un suono
fortemente impulsivo (colpo di pistola)
•Attraverso un algoritmo di sintesi.
1 febbraio 2013 3
4. Esistono diversi metodi di
sintesi della risposta,
ognuno con determinate
Modelli Acustici
peculiarità
Wave Ray
Statistici
based based
Metodo
degli FDTD Pyramid e Sorgenti SEA
Ray Tracing
elementi Cone Tracing Immagine
FEM
Buoni per basse Buoni per alte frequenze
BEM frequenze
Non esiste un metodo
universale!
1 febbraio 2013 4
5. Il suono DIRETTO raggiunge il ricevitore al tempo:
In questo istante R percepirà il livello:
Q
L1 = LW + 10 log LW = potenza sorgente
4πr1
2
Q=1
Il suono RIFLESSO raggiunge il ricevitore al tempo:
1
Nell’istante t2 , R percepirà il livello: L2 = LW + 10 log + 10 log(1 − α1 )
4πr2
2
α1 = coefficiente di assorbimento acustico della parete
1
Dopo due riflessioni il livello sarà: L3 = LW + 10 log + 10 log[(1 − α1 )(1 − α 2 )]
4πr3
2
1 febbraio 2013 5
6. Riverberazione: le onde riflesse arrivano in rapida
successione al ricevitore, con un ritardo rispetto
al suono diretto.
I livelli dei suoni rifessi decrescono
fino a che si ha una coda sonora
continua in cui non si distinguono
più le riflessioni
La coda sonora di un suono va a sporcare il
fonema o la nota musicale che segue. Ne risulta
un degrado dell’informazione
V Formula di Sabine per
T60 = 0,16 ⋅ il calcolo della
∑α S i i tempo di riverbero
1 febbraio 2013 6
7. Il campo sonoro in un punto viene calcolato come
sovrapposizione dei contributi di sorgenti simmetriche
della sorgente reale rispetto alle pareti (o ostacoli)
presenti nell’ambiente.
D: ricevitore
S: sorgente reale;
S’ sorgente immagine rispetto alla parete
La distanza percorsa da suono riflesso SR+RD è pari alla
distanza tra il ricevitore e la sorgente immagine S’D
Riflettendo le sorgenti del primo ordine, troviamo le
sorgenti del secondo ordine, relative ai suoni con
compiono due riflessioni
1 febbraio 2013 7
8. Per stanze di forma rettangolare il
metodo delle immagini genera un
reticolo nelle tre dimensioni.
Dalle dimensioni della stanza,
delle coordinate di sorgente e
ricevitore l’algoritmo ricava le
distanze delle sorgenti virtuali dal
ricevitore e quindi i ritardi di arrivo
delle riflessioni
݀݅݉݁݊ ܮܴ :ܽݖ݊ܽݐݏ ݈݈ܽ݁݀ ݅݊݅ݏൌ ܴܮ௫ ܴܮ௬ ܴܮ௭
ܿ ܴ :݁ݎݐ݅ݒ݁ܿ݅ݎ ݁ݐܽ݊݅݀ݎൌ ݖ ݕ ݔ
ܴܿ :݁ݐ݊݁݃ݎݏ ݁ݐܽ݊݅݀ݎ ൌ ݔ ݕ ݖ
1 febbraio 2013 8
9. Distanza sorgente - ricevitore: ܴ ൌ ݔ െ ݔ 2݅ݔ ݕ െ ݕ 2݆ݕ ݖ െ ݖ 2݇ݖ
Incremento ordine di riflessione: ࡾ࢘ ൌ ࡾࡸ࢞ ࡾࡸ࢟ ࡾࡸࢠ
Dove
• (i,j,k)=p : valori 0 o 1
• (n,l,m)=r : assumono valori da –N a +N
• N ordine di riflessione
Le onde riflesse arriveranno al
ricevitore con un ritardo pari a
ܴ ܴ
߬ൌ
ܿ
1 febbraio 2013 9
10. In luogo di singoli coefficienti di riflessione, sono stati utilizzate le
risposte in frequenza dei materiali.
680 materiali diversi,
i cui coefficienti di
riflessione sono
specificati per le
frequenze centrali
delle bande d’ottava,
da 63 Hz a 8000 Hz
Risposta in frequenza per ‘Ballast or Crushed Stone’ (# 0)
1 febbraio 2013 10
11. La risposta impulsiva si ottiene come somma degli impulsi ritardati associati
ai cammini d’onda (path) che dalla sorgente giungono al ricevitore
Nel nostro caso lavoriamo nel dominio della frequenza:
Lo spettro dell’impulso ritardato è
attenuato secondo la risposta in
frequenza delle pareti che vengono
coinvolte nel path.
sorgente La combinazione delle risposte in
ricevitore
frequenza delle pareti, danno il
contributo del singolo path alla
risposta finale
1 febbraio 2013 11
12. L’effetto di «spazialità» del suono avviene grazie all’ascolto binaurale del
segnale => introdurre la funzione di trasferimento della testa (HRTF)
HRTF
ITD : il suono impiega tempi diversi per IID : il suono giunge all’orecchio in
giungere ai padiglioni auricolari, a causa ombra con un livello inferiore rispetto
del differente cammino percorso all’altro, perché la testa assorbe parte
dell’energia
1 febbraio 2013 12
13. CIPIC* HRTF Database: risposta impulsiva della testa in
funzione di azimut, elevazione e tempo
25 intervalli di azimut (θ) da -90° a +90°
50 intervalli di elevazione (ϕ) da -45° a +230.625°
200 campioni nel tempo a 44 kHz
Il database è composto dalle risposte
impulsive della testa per una sorgente
diretta secondo tutte le coordinate polari
*CIPIC, Center for Image Processing and Integrated Computing, California University
1 febbraio 2013 13
14. La risposta associata al path viene convoluta con la
risposta impulsiva della testa, secondo la direzione
con cui il path giunge all’ascoltatore
1 febbraio 2013 14
15. Filtraggio mediante algoritmo Overlap and Save
h(n) Zero-pad FFT a L punti
K punti L punti Hz(m)
IFFT Selezione ultimi
Yi(m)=Xi(m)Hz(m) L-K campioni
x(n) Selezione
FFT a L punti
sequenza
Xi(m) All’output
di L punti
L>K Sale ampie possono avere risposte con K=65536 campioni (1.5 sec a 44kHz)
PROBLEMI:
• Tempi di latenza eccessivi per applicazione real-time;
• Risorse memoria eccessive per successivo porting su scheda DSP
1 febbraio 2013 15
16. Algoritmo Overlap and Save partizionato
La risposta impulsiva h(n) viene
partizionata in un numero ragionevole
di P blocchi di dimensione K
P*K=N
Il valore di P viene scelto dal
programma in base alle
caratteristiche della stanza.
1° blocco 2° blocco 3° blocco 4° blocco
1 febbraio 2013 16
17. Input stream (suddiviso in blocchi sovrapposti di L-K campioni)
1° blocco di
• FFT di ordine minore
2° blocco di (T-1) ° blocco di T (ultimo)blocco
L campioni L campioni L campioni di L campioni • Più moltiplicazioni e
FFT FFT somme
1° spettro T° spettro
F1 X F2 X FP X F1 X
• La latenza si riduce ad L
° °
1 seg. 2 seg. P° seg. 1° accumulatore campioni anziché N
1° seg. 2° seg. P° seg. 2° accumul. • Miglior sfruttamento
(T-1)°accumul. 1° seg. 2° seg. processore
T° accumul. l° seg.
• Miglior ripartizione carico
computazionale
Somma Somma Somma Somma
ad indice ad indice ad indice ad indice • Maggior flessibilità nello
0 L 2L i-L
scegliere lunghezza IR
IFFT IFFT IFFT IFFT
Si ha la migliore efficienza
Seleziona Seleziona Seleziona Seleziona
gli ultimi gli ultimi gli ultimi Output stream gli ultimi
scegliendo
L-K punti L-K punti L-K punti L-K punti
L=2*K
1 febbraio 2013 17
18. Tempi di sintesi della risposta
Lunghezza IR Lunghezza IR a 44 kHz Tempo di sintesi*
Partizioni K
(campioni) (millisecondi) (Human Model abilitato)
1 4096 4096 92.8 Circa 2‘’
2 4096 8192 185.7 Da 20’’ a 35‘’
4 4096 16384 371.5 Da 25‘’ a 1’30‘’
8 4096 32768 743 Da 5’ a 13’20’’
16 4096 65536 1486 Più di 30’
*su CPU: Intel Core 2 Duo 2.4 GHz - RAM:4Gb DDR2 - SO.: Windows 7 64bit
1 febbraio 2013 18
19. • La verifica è stata effettuata confrontando la risposta impulsiva calcolata
dal MechoBin con quella di un altro software di sintesi
• Una funzione specifica del PlugIn è stata scritta per caricare la risposta da
confrontare e visualizzarla in ambiente NU-Tech
• Le risposte sono state poi sovrapposte
Brown Acoustic Simulator
Di Avram Levi
Brown University (USA)
Software di sintesi della risposta
in MATLAB, con caratteristiche
simili al MechoBin
1 febbraio 2013 19
20. • dimensioni della sala (x x y x z) : (10x6x6) metri;
• coordinate ricevitore (x,y,z): (9,3,3);
• coordinate sorgente (x,y,z): (1,3,3) ;
• flags “Human listener”(MechoBin) e “Human source
model”(Brown): disabilitati;
• materiale pareti: #36 - “Gravel, 100mm tickness”;
• frequenza di campionamento: 16kHz.
1 febbraio 2013 20
24. Condizioni esempio:
Dimensioni Sala (x x y x z) 10x20x10 metri
Sorgente (x , y , z) : (0.5,2.5,1.5) - Ricevitore (x , y , z) : (5,2.5,1.5)
Human Model abilitato: Azimut 270° - Elevazione 0°
Ceil e Floor : 1% Absorbing (#679) - Pareti perimetrali: Ballast (# 0)
Lunghezza risposta: 0.74 sec (32768 campioni)
Soprano – Anecoico Soprano – Auralizzato
Clarinetto – Anecoico Clarinetto – Auralizzato
1 febbraio 2013 24
25. • Il confronto con l’algoritmo della Brown è soddisfacente
• L’impressione soggettiva buona
• Suoni impulsivi si riproducono con alcune «artificiosità» dovute
al mancato trattamento del campo diffuso nel modello
• Introduzione del contributo del campo diffuso mediante
modellazione ibrida
• Estensione ad ambienti di forma generica
• Possibilità di lettura di modelli CAD degli ambienti in studio
1 febbraio 2013 25