Slogan: sound technology

Betrachtung der Rechenleistung, Länge der Impulsantworten und Frequenzauflösung der FIR Filter im HD2

Dieser Artikel beschäftigt sich mit der zeitlichen Länge und der Frequenzauflösung von FIR Filtern zur Realisierung einer Frequenzweiche sowie Verbesserungen durch die Verwendung eines Multiratenansatzes.

Die Signalverarbeitung in einem HD2 DSP (4 Outputs) sieht wie folgt aus

HD2 Processing in 1 DSP

Die PEQ Bänke nutzen IIR Filter mit doppelter Rechengenauigkeit.
Die Frequenzweichen-FIR Blöcke liegen zwischen einem Down- und Upsampleblock. Durch das Down- und Upsampling ist es möglich, FIR Filter mit einer hohen Koeffizientenzahl / langen Impulsantworten zu rechnen.

Der DSP bietet neben dem Hauptprozessor noch einen Koprozessor zur Filterberechnung. Beide rechnen mit 275 MIPS (Millionen Instruktionen pro Sekunde). Die FIR Filter werden komplett im Koprozessor gerechnet. Zieht man einige MIPS für IO Operationen ab, bleiben ca. 250 MIPS. Die Berechnung eines Koeffizienten benötigt nur 1 Instruktion. Somit sind 250 Millionen Koeffizienten pro Sekunde rechenbar, bei einer Abtastrate von 96 kHz dann also 250 000 000 / 96 000 = 2604 Koeffizienten.

Die Begrenzung der Koeffizientenzahl hängt ab von

  1. der Rechenleistung des DSP
  2. dem Speicherplatzbedarf für die Koeffizienten im DSP

Filterlänge in Abhängigkeit von der Rechenleistung

Pro DSP gibt es 4 Ausgangswege. Bei einer Berechnung mit einer Abtastrate von 96 kHz in allen 4 Wegen sind also 4 Filter mit je 650 Koeffizienten rechenbar.
Rechnung: 250 MIPS / 96 kHz / 4 Wege = 650 / Weg
Bei 48 kHz verdoppelt sich die maximale Koeffizientenzahl auf 1300.
Im Frequenzbereich betrachtet, besteht das Filter aus Amplituden- und Phasenwerten bei diskreten Frequenzen. Der Abstand dieser Frequenzwerte ergibt sich durch die Abtastrate dividiert durch die Anzahl der Filterkoeffizienten. Für 650 Koeffizienten bei 96 kHz also 96000Hz / 650 = 147,7Hz bzw. bei 48kHz dann 48000Hz / 1300 = 37Hz, d.h der Abstand der Frequenzlinien im Filter ist ca. 150 bzw. ca 40 Hz. Damit lässt sich bei tiefen Frequenzen nicht arbeiten.
Betrachtet man die Länge der Filterimpulsantworten ergibt sich
650 / 96000 Hz = 6,77 ms bzw 1300 / 48000 Hz = 27 ms.
Dies lässt sich durch die Verwendung von Down-/Upsampling verbessern.

Filterlänge in Abhängigkeit vom Speicherplatzbedarf

Das Frequenzweichenfilter für einen Subwoofer erstreckt sich nur auf einen kleinen Frequenzbereich. Der Bereich zwischen z.B. 500Hz und 48kHz ist gewissermaßen „verschwendete Signalverarbeitung“ der Sperrdämpfung. Die Abtastrate könnte also ohne weiteres auf 1 kHz reduziert werden ohne Signalanteile zu verlieren. Die für ein Filter benötigte Rechenleistung ist proportional zur Abtastrate. Im HD2 wird dieser Sachverhalt ausgenutzt, indem die Abtastrate in den verschiedenen Wegen um den Faktor 1,2,4,8 oder 16 reduziert wird. Die zeitliche Länge des Filters und die Frequenzauflösung werden dadurch ebenfalls um diesen Faktor verbessert. Damit ergibt sich also eine quadratische Verbesserung mit dem Faktor der Unterabtastung. Die Tabelle unten zeigt Zahlenwerte anhand eines Beispiels.
Down- und Upsampling um dem Faktor 16 bedeutet, dass das FIR Filter nur jeden 16. Eingangswert verarbeitet. Damit das Nyquist-Kriterium nicht verletzt wird, muss das Signal vorher durch Anwendung eines Tiefpasses von Signalanteilen oberhalb von 96kHz / 2 / 16 = 3kHz bereinigt werden. Dieses Downsampling-Filter verursacht eine Signalabschwächung in der Nähe der Grenzfrequenz, welche durch eine Anhebung im Frequenzweichenfilter kompensiert wird. Die Grenzfrequenz des Weichenfilters sollte deshalb nicht oberhalb von einem Drittel der „neuen“ halben Abtastrate liegen, also z.B. bei 96000Hz / 16 / 2 / 3 = 1kHz.
Down- und Upsampling verbraucht pro Weg 1 MIPS an Rechenleistung bei 96 kHz unabhängig von der Downsampling-Rate. Im FIR Filter reduziert jedoch ein Down-/Upsampling um den Faktor 16 auch die Rechenleistung um den Faktor 16. Gleichzeitig verbessern sich Frequenzauflösung und die Länge der Impulsantwort um den Faktor 16, es ergibt sich also eine gesamte Verbesserung mit dem Quadrat des Faktors. Das Berechnen des Down-/Upsamplings geschieht im Hauptprozessor und verringert damit nicht die den FIR Filtern im Koprozessor zur Verfügung stehenden 250 MIPS Rechenleistung.
Die maximale Koeffizientenzahl ist nun in den meisten Fällen durch den verfügbaren Speicher für die Koeffizienten begrenzt. Bei einem 4 Wege Setup können maximal 2048 Koeffizienten pro Weg gespeichert werden.

Beispielrechnung

Weg DS Koeffizenten Nutzbarer Frequenzbereich MIPS Frequenzauflösung Länge der Impulsantwort
48kHz 96kHz 48kHz 96kHz 48kHz 96kHz 48kHz 96kHz 48kHz 96kHz
Sub 16 2048 2048 0,5kHz 1kHz 6,14 12,3 1,46Hz 2,93Hz 341ms 170ms
Low 16 2048 2048 0,5kHz 1kHz 6,14 12,3 1,46Hz 2,93Hz 341ms 170ms
Mid 4 2048 2048 2kHz 4kHz 24,6 49,2 5,9Hz 11,7Hz 170ms 85ms
High 1 2048 2048 24kHz 48kHz 98,3 196,6 23,4Hz 53,3Hz 42,7ms 21,3ms
Total MIPS 135 270