Acourate und IIR-Filter

uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Acourate und IIR-Filter

Beitrag von uli.brueggemann »

Wie Ihr wisst generiert Acourate ja üblicherweise FIR-Filter.

Derzeit schaue ich mir aber mal so an, was man parallel dazu alles mit IIR-Filtern anstellen kann. :D
Als Beispiel zeige ich mal zwei Bilder.

Im ersten Bild wird ein Korrekturfilter durch eine Kette von 6 biquadratischen IIR-Filtern nachgebildet:

Bild

Das zweite Bild zeigt, wie man mit 20 IIR-Filtern kommt:

Bild

Ich habe hierbei klar den Schwerpunkt auf den niedrigen Frequenzbereich gelegt, der höhere Bereich wäre für IIR-Filter auch kein Problem. Aber gerade für niedrige Frequenzen braucht es ja lange Filter, um eine einigermassen gute Frequenzauflösung zu erreichen (so man nicht extra downsampelt).

Ich stelle das Ganze mal hier rein, weil ich noch bei der Sammlung von Ideen bin. Es gibt ja z.B. die DSP-Fraktion, welche lieber auf PCs verzichtet. So denn ein DSP verfügbar ist, welcher x Filter rechnen kann, lassen sich entsprechende IIR-Filter erzeugen.
Man kann z.B. auch die OpenDRC-Plattform von miniDSP unterstützen und die verfügbaren 6 Filter je Kanal vorbelegen.
Erlaubt z.B. DEQX die Vorgabe von IIR-Filtern anhand von Parametern ?

Es würde mich also interessieren, wer denn da was an Hardware verwendet und z.B. welche Anforderungen an Filteranzahl und Filterformat gegeben sind.

Ich könnte mir zumindest vorstellen, dass da doch einige dafür Verwendung finden könnten.
Bin also für Meinungen, Wünsche und Ratschläge dankbar. :cheers:

Viel Grüsse
Uli
Bild
wgh52
Aktiver Hörer
Beiträge: 5623
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Hallo Ulli,

ich antworte mal weil ich DEQX benutze:
uli.brueggemann hat geschrieben:Erlaubt z.B. DEQX die Vorgabe von IIR-Filtern anhand von Parametern ?
Kurze Antwort: Ja! :cheers:

Längere Antwort:
Ja, man kann mit PEQs "per Hand" und zusätzlich zur FIR Entzerrung eingreifen (und übrigens auch während Musik spielt :wink: ), hier ein Beispiel:

Bild

Man kann die Parameter der EQs durch ziehen des großen Punktes (Pegel) und der kleinen Punkte (Bandbreite/Güte) einstellen oder kann sie im gezeigten Parameterfenster eingeben. Der Effekt wird in Realzeit angezeigt. Das Bild zeigt den "Invert EQs Modus", zur leichteren Kurvenanpassung.

Es stehen 10 PEQs (wie gesagt zusätzlich zur bereits erfolgten FIR Entzerrung) zur Verfügung, allerdings (leider :| ) mit der Einschränkung, dass die PEQs auf beide Kanäle gleich wirken. Warum? Die 10 PEQs sind zur Modendämpfung vorgesehen (die LS wurden bereits vorher per FIR Filterentzerrung oberhalb einer wählbaren Frequenz aneinander angeglichen/linearisiert) und wenn man die Raummessung beider Seiten lädt, kann man sich eine (Mono :wink: ) Entzerrung vorschlagen lassen, die man dann wiederum händisch verändern und besser oder nach Geschmack anpassen kann (das Bild zeigt die PEQs wieder im "Invert EQs Modus" mit dem man diese leichter grafisch anpassen kann):

Bild

Ich hoffe, das inspiriert :wink: :cheers:
Ich beantworte gerne weitere konkrete Fragen! :D

Gruß,
Winfried

3037
Bild
wgh52
Aktiver Hörer
Beiträge: 5623
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

[Fortsetzung weil die Editierzeit abgelaufen war...]

.... ich hab die vorher gezeigten Autoset EQ Vorschläge mal noch etwas nach meinem Gusto/Dafürhalten editiert:

Bild

Invertiert könnte man dann diese jetzt an den DEQX senden:

Bild

...und on-line, per USB-PC Verbindung, während Musik spielt, "weiterbiegen" oder halt nicht.... :mrgreen:

Gruß,
Winfried

3038
Bild
Hank
Aktiver Hörer
Beiträge: 17
Registriert: 06.04.2014, 20:36

Beitrag von Hank »

Hallo,

ich hatte gestern hier einen Beitrag geschrieben. Nun ist er weg. Darf ich fragen, wie das angehen kann?

Danke und Gruß

Hank

Nachtrag:

Der Post war etwa so. Ich bin wieder in das Thema Acourate eingestiegen bzw. möchte wieder einsteigen mit meiner Lizenz, da ich versuchen möchte in einer XBMC Installation mit BruteFir zu arbeiten. Aber ich möchte allerdings voraussichtlich nicht mit Fir Filtern arbeiten, sondern mit den Möglichkeiten des Routings, Summierens, Weichenfunktionen und PEQ, also IIR Filtern arbeiten. Da kommt dieser Thread recht gelegen.

Uli, wird das in Acourate umgesetzt?

Alle, gibt es ein anderes Programm, welches das kann?

Vielen Dank

Hank
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Hank hat geschrieben:Aber ich möchte allerdings voraussichtlich nicht mit Fir Filtern arbeiten, sondern mit den Möglichkeiten des Routings, Summierens, Weichenfunktionen und PEQ, also IIR Filtern arbeiten. Da kommt dieser Thread recht gelegen.

Uli, wird das in Acourate umgesetzt?
Hank,

die aktuelle Version V1.9.0, etwas schleichend eingeführt, erstellt IIR Filter in serieller Topologie. Und zwar derzeit speziell für die OpenDRC-Plattform. D.h. dass je Kanal bis 14 IIR-Filter erzeugt werden, welche zusammen mit einem FIR-Filter (6144 taps) direkt per XML-Datei in das OpenDRC geladen werden können.
Bisherige Testanwender haben sich zufrieden geäußert.
Ziel ist es ja hierbei, mit Hilfe der zusätzlichen IIR-Filter die Nachteile des kurzen FIR-Filters abzuschwächen. Insbesondere der niedrige Frequenzbereich wird damit genauer dargestellt.

Was ebenfalls in Arbeit ist und auch in der Entwicklungsversion funktioniert ist die Erstellung von IIR-Filtern in paralleler Topologie.

Es gibt also viel zu tun.

Grüsse
Uli
Bild
Hank
Aktiver Hörer
Beiträge: 17
Registriert: 06.04.2014, 20:36

Beitrag von Hank »

Hallo Uli,

vielen Dank für Deine Antwort.

Was ist denn der Unterschied, ob nun parallel oder seriell? Und wenn das für OpenDRC ist, ist es für BruteFir nicht nutzbar?!


Danke und Gruß

Hank
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Hank hat geschrieben:Was ist denn der Unterschied, ob nun parallel oder seriell? Und wenn das für OpenDRC ist, ist es für BruteFir nicht nutzbar?!
Zur Veranschaulichung eine grobe Vereinfachung:
e=Eingangssignal, a= Ausgangssignal, f1..fn=IIR Filter

seriell: a = e*f1*f2*f3*...*fn
parallel: a = e*f1 + e*f2 + e*f3 + ... e*fn

Der DSP muss demzufolge eine andere Topologie rechnen, ist kein wirklich mathematisches Problem.
Klar sollte sein, dass die Filterkoeffizienten aber unterschiedlich sein müssen.

Ok soweit?

BruteFIR tut genau das, was sein Name besagt: brute force FIR convolution. D.h. es kann keine IIR-Filter rechnen. Ist nicht implementiert.

Grüsse
Uli
Bild
Hank
Aktiver Hörer
Beiträge: 17
Registriert: 06.04.2014, 20:36

Beitrag von Hank »

Hallo Uli,

ja, jetzt habe ich es verstanden, wobei mir die Auswirkung noch nicht wirklich klar sind. Aber das wird schon noch :) Wie machen es denn die DSP, welche es zu kaufen gibt? Also DCX, Alto etc.?

Ich dachte, dass BruteFir "nur" eine Korrekturdatei bekommt, in der (grob vereinfacht) steht, bei welcher Frequenz welcher Pegel herrschen soll, ebenso die Phase. Das lässt sich aber doch genauso für einen IIR Filter machen. Der Unterschied dürfte doch "nur" sein, wie die Korrekturdatei erstellt wird. Oder habe ich an der Stelle einen Denkfehler?

Vielleicht noch einmal anders formuliert, was ich möchte. Ich möchte im Prinzip, stark vereinfacht formuliert, so einen DSP in den XBMC Rechner integrieren. Klar, die Bedienung wird nicht so komfortabel sein etc. Darum geht es mir auch nicht, sondern um die Lösung als solches...


Danke Dir

Hank

Edit: Also mir geht es streng genommen auch nicht um Raumkorrektur in dem Sinne, wie es von Acourate etc. ursprünglich gedacht ist, sondern eher um Lautsprechermanagement und den ein oder anderen PEQ Filter. Weiterhin halt Routing, Summierung etc.
Bild
Hank
Aktiver Hörer
Beiträge: 17
Registriert: 06.04.2014, 20:36

Beitrag von Hank »

Hallo Uli,

ich glaube, ich weiß wo mein Gedankenfehler liegt.

Es geht mir nicht darum, dass BruteFir in IIR "falten" soll, sondern weiterhin in FIR. Mit geht es darum, dass die FIR-Korrekturdatei eben nicht, so wie bei Acourate gewohnt, mit einem "Inverssignal" erstellt wird, sondern eben mit mehreren PEQ Filtern. In Grenzen ist das ja möglich. Da würde ich mir mehr Möglichkeiten wünschen.

Wie gesagt, der Hintergrund ist der, dass ich eigentlich keine Raumkorrektur in dem Sinne möchte, sondern "nur" X-Over und vielleicht leichte, dezente PEQ Eingriffe.

Konnte ich das verständlich rüberbringen?


Danke und Gruß

Hank
Bild
freezebox
Aktiver Hörer
Beiträge: 576
Registriert: 08.07.2011, 11:42
Wohnort: München

Beitrag von freezebox »

Warum faltest Du nicht einfach Deine XO-Filter mit den entsprechenden IIR Filtern, bringst sie auf die gewünschte Länge und gut ist?

Grüße,
Jörn
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Hank hat geschrieben:Es geht mir nicht darum, dass BruteFir in IIR "falten" soll, sondern weiterhin in FIR. Mit geht es darum, dass die FIR-Korrekturdatei eben nicht, so wie bei Acourate gewohnt, mit einem "Inverssignal" erstellt wird, sondern eben mit mehreren PEQ Filtern. In Grenzen ist das ja möglich. Da würde ich mir mehr Möglichkeiten wünschen.

Wie gesagt, der Hintergrund ist der, dass ich eigentlich keine Raumkorrektur in dem Sinne möchte, sondern "nur" X-Over und vielleicht leichte, dezente PEQ Eingriffe.
Hank,

Acourate erstellt Frequenzweichen als FIR-Filter. Die kannst Du direkt in Brutefir einsetzen. Du kannst mit Acourate auch IIR biquad Filter erstellen, welche als FIR-Filter dargestellt werden. Auch die sind unmittelbar mit Brutefir verwendbar. Wenn Du willst, kannst Du die IIR/FIR-Filter auch durch Faltung miteinander verknüpfen, entsprechend auf gewünschte Länge zurechtschneiden und wiederum verwenden.

Grüsse
Uli
Bild
Hank
Aktiver Hörer
Beiträge: 17
Registriert: 06.04.2014, 20:36

Beitrag von Hank »

Hm, hab ich wieder nicht abgeschickt, sondern stattdessen gespeichert? Ich muss mich wohl noch dran gewöhnen :o

Ich schrieb, dass ich keine Ahnung habe, warum ich das nicht mache. Wahrscheinlich liegt es daran, weil ich allgemein von dieser Thematik kaum Ahnung habe.

Auf jeden Fall vielen Dank für den Impuls :)

Gruß

Hank
Bild
nikander
Aktiver Hörer
Beiträge: 347
Registriert: 01.02.2013, 15:20

Beitrag von nikander »

Hallo Uli,

interessante Weiterentwicklung, die Du da betreibst (ich gehöre auch zur "DSP-Fraktion") - mir ist noch nicht so ganz klar geworden, ob Du damit auch eine Gruppendelay/Phasen-Korrektur anstrebst.
2.: kann man dann mit einer MiniDSP-"upgrade"-Fassung auch Filmton (2.1-Setup) korrigieren oder sind die Latenzen noch zu lang?

Schöne Grüße,

Chistian
Bild
planetti
Aktiver Hörer
Beiträge: 295
Registriert: 29.04.2014, 22:17
Wohnort: Olching, nähe München

Beitrag von planetti »

Hallo Uli,

suchst Du Anregungen zum Einsparen von den beschränkt zu Verfügung stehenden Resourcen des OpenDRC?

a) Vielleicht könnte man die gemessene Kurve nicht einfach nachbilden, sondern analysieren, um nur die relevanten PEQ-Parameter zu bewerten und zu bestimmen.

Im niederfrequenten Frequenzbereich sind es meist die Raummoden in begrenzter Anzahl, die es zu korrigieren gilt. Je nach Hör-bzw. Messposition sind es Wellenknoten, die sich gegenüber den umliegenden Erhebungen in einem schlanken Frequenzpeak nach unten zeigen (siehe oben bei Winfried die 33, 68, 80 und 145Hz). Es wäre nicht gewinnbringend, diese einfach auszugleichen, da sie zum einen das empfundene Klangbild kaum beeinflussen und zum anderen an einer etwas versetzten Hörposition sogar verschwunden sein dürften. Somit könnte man die schlanken, (relativ) negativen Peaks von der Korrektur ausschließen und sparen. (Qualitative Bestimmung durch Umgebungsanalyse der Breite und Amplitude der benachbarten Erhebungen/Absenkungen, und/oder Vergleich der Messungen an mehreren leicht versetzten Positionen).

Die zu korrigierenden Erhebungen bei z.B. Winfried sollten demnach sein: 53, evtl.76, 98, 131 Hz für grün, 54, 76, 91, 130 Hz für rot (also die breiteren, positiven Peaks).
Mit der Nachhallzeit über die Frequenz könnte man ein weiteres Kriterium für die zu korrigierenden Frequenzen heranziehen.


b) Vielleicht könnte man den zu korrigierenden Frequenzbereich (einstellbar?) begrenzen, so dass keine PEQs für Frequenzen belegt werden, die kaum vorkommen(<30Hz?) oder die durch FIR-Filter bereits ausreichend abgedeckt sind (>200Hz?).


c) Die Limitierung beim OpenDRC sind ja die 6144 Taps/Kanal. Müssen die Taps exakt über den gesamten Frequenzbereich gleichverteilt sein oder ist auch möglich bzw.denkbar, jedem Tap die Frequenz der Stützstelle frei zuzuweisen? Wenn letzteres möglich ist, dürfte man durch Analyse (wie in a) angedeutet) mit einer geringeren Anzahl Stützstellen ein schon sehr gutes Ergebnis über das gesamte Spektrum erhalten.

Vielleicht kann Dir das oben genannte irgendwie weiterhelfen, und bitte verzeih, wenn diese Überlegungen alter Kram, Plumperquatsch oder schon längst berücksichtigt sind.


Schönen Gruß und viel Erfolg!
Uli
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Hallo Uli,

anbei ein Bild zur Veranschaulichung.

Bild
Die rote Kurve zeigt ein mit Acourate ermitteltes Korrekturfilter. Dieses wird nun für OpenDRC umgesetzt in IIR-Filter, dargestellt durch die grüne Kurve. Es verbleibt ein "Rest" im Bereich höher Frequenzen, welcher durch das 6144 taps FIR Filter abgedeckt wird = braune Kurve.
Die blaue Kurve ist eine Simulation = Faltung IIR * FIR. Sie ist zum besseren Vergleich mit der roten Ausgangskurve abgesenkt dargestellt, im Prinzip überdecken sich die Kurven prima.

Acourate speichert alle Filter in einer XML-Datei, welche direkt mit dem OpenDRC-Plugin gelesen wird.

Grüsse
Uli
Bild
Antworten