Echtzeit-Spatialisationssystem für beliebige Lautsprecheranordnungen
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}
tdi = (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.