Skip to content

News Arts and Science Teaching Media Library Services IEM - intern Contact
  You are not logged in Link icon Log in
You are here: Home » Kunst & Forschung » Signalverarbeitung » Echtzeit-Spatialisation für beliebige Lautsprecheranordnungen

Echtzeit-Spatialisationssystem für beliebige Lautsprecheranordnungen

Christian Feldbauer

Aufgabe: Ziel war es, ein System zu entwickeln, das Ns virtuelle Schallquellen, die einen Pfad im virtuellen Raum beschreiben, auf Nc räumlich beliebig angeordneten Lautsprechern in Echtzeit simuliert. Somit soll es möglich sein,  räumliche Kompositionen ("Klangtheater") ohne Berücksichtigung der Lautsprecheranordnung zu schreiben.
Das System wurde mittels IRCAM MAX (FTS) auf einer SGI O2 und Origin realisiert.
 


 

Source j ... virtuelle Schallquelle:  {sigj(t), xj(t), yj(t), zj(t)}
Ns  ... Anzahl der virtuellen Quellen
Channel i ... Lautsprecher-Kanal: {chi(t)}
Nc  ... Anzahl der Kanäle (Lautsprecher)
 

Also jede virtuelle Schallquelle besteht aus einem Mono-Signal sigj(t) und einem Ortsvektor (xj(t), yj(t), zj(t))T, der die Position im virtuellen Raum als Funktion der Zeit angibt.
 

Akustische Aspekte
 

Modell:

o) Freies Schallfeld (keine Reflexionen) bzw. Außenmauer-Modell (1. Reflexion)
o) Ausbreitung von Kugelwellen (Abnahme der Schallintensität prop. 1/r2, keine Richtcharakteristik)
o) Bewegte Schallquellen (Dopplereffekt)
o) Medium Luft (entfernungs- und frequenzabhängige Absorption)
 

Wiedergaberaum:

o) Jedem Kanal ist 1 Lautsprecher zugeordnet (eindeutige Position im Wiedergaberaum)
o) Die Charakteristik des Wiedergaberaumes wird nicht berücksichtigt (sollte möglichst reflexionsarm sein)
o) Fixe Hörerposition (maximale Qualität in diesem Punkt)
o) Beliebige Hörerausrichtung (keine Berechnung interauraler Zeitdifferenzen)
 

Details - Mathematische Beschreibung
 

Blockschaltbild   (Modell: freies Schallfeld, Ns = 2)
 


Koordinatensystem und Definitionen

Als Ursprung wird die Kopfposition des Zuhörers festgelegt, die Ausrichtung der Achsen sei nebensächlich, sollte aber nach erfolgter Definition beibehalten werden.
Die Koordinaten der Lautsprecher, bzw. die Vektoren werden bezeichnet als: Ci = (xCi, yCi, zCi)T,
die der virtuellen Quellen als: Sj = (xj, yj, zj)T, wobei Ci konstant ist und Sj eine Funktion der Zeit.
Index eines Lautsprechers (bzw. eines Kanals):    i = 0, 1, ... NC-1
Index einer virtuellen Schallquelle:                        j = 0, 1, ... NS-1
gxx ... Gain Factor
txx ... Delay Time

 Lautsprecheranordnung

Die Lautsprecheranordnung ist prinzipiell beliebig, sollte aber natürlich zweckmäßig sein. Es kann nur dann eine virtuelle Quelle aus einer bestimmten Richtung wahrgenommen werden, wenn die Gerade in Richtung des Quellenvektors ein Kugeldreieck, das durch drei Lautsprecher gebildet wird, schneidet.
Der Begriff Kugeldreieck setzt voraus, daß alle Lautsprecher in gleicher Entfernung vom Ursprung plaziert sind und somit auf einer Kugeloberfläche liegen. Da eine Lautsprecheranordnung aber beliebig sein sollte, darf diese Forderung nicht gestellt werden.
Korrektur von Laufzeit und Intensität für jeden Kanal: Die Signale für Lautsprecher, die näher sind, werden verzögert (tdi) und abgeschwächt (gci). Mathematisch befinden sich nun alle Lautsprecher auf einer Kugeloberfläche mit dem Radius rcmax und somit sollten jetzt keine Phasendifferenzen mehr auftreten, wenn das Signal einer Quelle auf mehrere Kanäle aufgeteilt wird.

rci = ABS{Ci} ... Abstand des Lautsprechers i vom Ursprung
rcmax = MAX{rc1, rc2, ... rcNc-1}
td= (rcmax –  rci) / c
gci ... durch Einrauschen ermitteln

Minimalanordnung: drei Lautsprecher.
Idealanordnung: große Anzahl an Lautsprechern, gleichmäßige Aufteilung um den Hörer herum.

Entfernungsbewertung

Laufzeit (Doppler-Effekt):

Der Schall einer nahen Quelle gelangt früher zum Ohr als der einer entfernten.

rj(t) = ABS{Sj(t)} ... Abstand der virtuellen Quelle j vom Ursprung
tdvj(t) = (rj(t) - rcmax) / c

Realisierung durch ein variables Delay.
Es ergibt sich eine untere Grenze für die Entfernung einer Quelle: rj(t) ³ rcmax

Intensität:

Die Intensität einer Kugelwelle nimmt proportional mit 1/r2ab, somit der Schalldruck mit 1/r .

Festlegung: gdj(t) = 1, wenn rj(t) = rcmax

gdj(t) = rcmax / rj(t)

Filter:

Weit entfernte Quellen klingen dumpfer als nahe.

Der Schalldruck (einer ebenen Welle) in einem verlustbehafteten Medium ergibt sich aus folgendem Zusammenhang:
p(r) = p(0) . e-a.r
Das Dämpfungsmaß a ist allerdings eine nicht triviale Funktion der Frequenz.

Einfache Approximation: Tiefpaß erster Ordnung, dessen CutOff-Frequenz je nach Entfernung variiert wird.
parj(t) = fcj(t)

Festlegung:  fcj = 2 kHz  bei rj =  rmax   und   fcj = SR/2  bei rj =  rmin
SR ... Samplerate
Mit rmax = 50 m wird eine gute Annäherung erreicht.

fcj(t) = SR/2 + (2000 - SR/2) . (rj(t) - rmin) / (rmax - rmin)

Außenmauer-Modell:

Der virtuelle Raum ist durch eine Mauer begrenzt. Zur einfacheren Berechnung wählt man einen kugelförmigen Raum (Radius: rM). Durch die Reflexion der Schallwellen an der Mauer entsteht eine Phantomschallquelle (Spiegelung), wodurch sich der Aufwand zur Berechnung von Laufzeit, Intensität und frequenzabhängiger Absorption verdoppelt.

Durch diese erste Reflexion wird dem Zuhörer auch ein statisches Entfernungswahrnehmen ermöglicht, da Hallversatzzeit und Pegeldifferenz zwischen Direktschall und erster Reflexion ausgewertet werden können.

Richtungsbewertung

Das Kernstück des Systems berechnet die Gain-Faktoren aller Kanäle.

Intensity Panning:

Wird das Signal einer Quelle auf mehrere Kanäle aufgeteilt, so sollte die Summe der Intensitäten gleich groß wie die, wenn das Signal nur von einem Lautsprecher abgestrahl wird, sein. Es muß gelten:

gj,02 + gj,12 + ... + gj,Nc-12 = 1

Wenn dieser Satz eingehalten wird, bewegt sich die virtuelle Schallquelle in konstanter Entfernung.

 3 dimensionale Spatialisation: Das Signal einer Quelle wird (im Allgemeinen) auf drei Lautsprecher aufgeteilt, d.h. es werden höchstens 3 Gain-Faktoren ungleich Null.

Richtwinkel eines Vektors: Als Richtwinkel bezeichnet man jene drei Winkel (jx , jy , jz), die ein Vektor mit den Achsen des Koordinatensystems bildet. Es gilt:

cos2 jx + cos2jy + cos2 jz = 1

Nehmen wir nun an, daß wir auf den drei positiven Achsen jeweils einen Lautsprecher bei 1 angebracht haben und der Vektor der virtuellen Quelle nur positive Komponenten besitzt, so berechnen sich die Gain-Faktoren:

gj,x = cos jx = Sj,n.Cx,n = xj / rj
gj,y = cos jy = Sj,n.Cy,n = yj / rj
gj,z = cos jz = Sj,n.Cz,n = zj / rj

mit

Cx,n = (1, 0, 0)T
Cy,n = (0, 1, 0)T
Cz,n = (0, 0, 1)T

und

Sj,n = (xj / rj , yj / rj , zj / rj)T
rj = ABS{Sj}

Faßt man die Gain-Faktoren zu einem Vektor zusammen, ergibt sich:

Gj = Sj,n

wobei der Vektor-Index n darauf hinweisen soll, daß es sich um normierte Vektoren handelt.
Da die Lautsprecheranordnung jedoch beliebig sein soll, darf die Forderung nach Orthogonalität nicht gestellt werden.

Koordinatentransformation und Orthogonalisierung

Gehen wir von einer bestimmten Anzahl von Lautsprechern aus, die sich auf einer Kugeloberfläche befinden, und teilen diese in Kugeldreiecke ein.
Bevor nun die Gain-Faktoren berechnet werden können, muß das entsprechende Kugeldreieck, welches von der Gerade in Richtung des Quellenvektors geschnitten wird, gefunden werden. Bezeichnen wir die Vektoren der drei Lautsprecher, die dieses Dreieck aufspannen als CA , CB und CC .

T . CA = Cx,n = (1, 0, 0)T
T . CB = Cy,n = (0, 1, 0)T
T . CC = Cz,n = (0, 0, 1)T

Im transformierten System stellen die drei Einheitsvektoren das entsprechende Lautsprechertripel dar.

Durch diese Gleichungen ergibt sich für die Transformationsmatrix:

T = [CA , CB , CC]-1

Es muß also für jedes Dreieck eine Transformationsmatrix berechnet werden.

Natürlich muß auch der Vektor der virtuellen Schallquelle ins neue System transformiert werden, und es ergibt sich somit für die Gain-Faktoren:

Gj = (gj,A , gj,B , gj,C)T = T . Sj / ABS{T . Sj}

© 2000 zuletzt geändert am 8. Februar 2000.

Christian Feldbauer     type: Project    state: finished project     Date: 01.01.2000

Last modified 10.09.2004