PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linear Phase Filter ohne Latenz (eqAPO & rePhase



Darakon
04.02.2024, 12:29
Hallo,

ich nutzte rephase zum erstellen Linear-Phase-Filter für eine aktive Frequenzweiche.
Nutze momentan highpass / lowpass phasenlineare LR-24 Filter.
Und eine Phasenlinearisierung LR-24.
Die erstellten Impulse Responce lade ich dann in equalizerAPO.

Funktioniert gut. Klingt gut.
Nur ich habe beim Hören eine sehr hohe Latenz. Mit meinen aktuellen IRs habe ich pro Instanz ca 1,4 Sekunden. Macht bei mir in Summe fast 3 Sekunden Latenz, was natürlich Videos mit Ton ziemlich unmöglich macht.

Kennt ihr eine Möglichkeit linearphasige Filter (oder gleichwertiges) in eqAPO zu integrieren, ohne die Latenz zu haben?

Slaughthammer
04.02.2024, 12:35
für derart einfach Filter kannst du in rePhase einfach kürzere Impulsantworten erstellen. Ich hänge mal einen Screenshot meiner rePhase config an. Das so erstellte Filter erzeugt in EqAPO eine Latenz von wenigen ms.
73234

Gruß, Onno

Darakon
04.02.2024, 12:47
Hi Onno,

danke für die super schnelle Antwort!

Was ist denn der Unterschied zwischen "Taps" und "FFT-Length"?
Welcher Wert ist ausschlaggeben für die Latenz?

Gibt es eine Regel oder ein Kriterien, wie ich die Werte für "Taps" und "FFT-Length" sinnvoll auswähle?
Macht es einen Unterschied, ob beispielweise einen LR-24 bei 20 Hz oder 20.000 Hz habe?

Slaughthammer
04.02.2024, 13:10
Die Taps entscheiden maßgeblich über die Latenz. Ich reduziere die einfach soweit, bis das Ergebnis nicht mehr dem Soll entspricht. Was genau die FFT-Length macht weiß ich leider auch nicht, es gibt leider keine gute Doku zu rePhase. Die Frequenz macht auch einen unterschied wie lang das Filter sein muss, tiefer-->länger. Grundsätzlich, je Steiler der Eingriff die Gruppenlaufzeit ver-/entzerrt, desto länger muss das Filter werden. Regeln kenne ich dafür keine, ich optimiere das auch nach Tial&Error

Gruß, Onno

Darakon
04.02.2024, 14:59
Wonach gehst du beim Trail&Error ? Bzw wodran machst du fest, dass der gewählte "Taps"-Wert zu gering ist ?

Würde es nicht auch helfen, bei gleich bleibenden Taps ein höhere Samplingrate auszuwählen (und natürlich bei der Soundkarte einzustellen)?

Micha_HK
04.02.2024, 15:17
Wonach gehst du beim Trail&Error ? Bzw wodran machst du fest, dass der gewählte "Taps"-Wert zu gering ist ?

Würde es nicht auch helfen, bei gleich bleibenden Taps ein höhere Samplingrate auszuwählen (und natürlich bei der Soundkarte einzustellen)?
Hi,

wenn die Taps Anzahl zu gering ist, kann die Phase im Tiefton nicht mehr so genau beeinflusst werden. rePhase zeigt das anhand der blauen gepunkteten Kurve an.

VG
Michael

MK_Sounds
04.02.2024, 16:05
Wonach gehst du beim Trail&Error ? Bzw wodran machst du fest, dass der gewählte "Taps"-Wert zu gering ist ?
Würde es nicht auch helfen, bei gleich bleibenden Taps ein höhere Samplingrate auszuwählen (und natürlich bei der Soundkarte einzustellen)?
Versteh mich nicht falsch, aber lese dir doch erstmal die Grundlagen der digitalen Signalverarbeitung/Filtertheorie an.

Wenn man sich die Struktur des FIR-Filters (in Normalform) allein rein bildlich (https://upload.wikimedia.org/wikipedia/commons/9/95/Fir_filter_df1.png) anschaut, werden folgende Eckpunkte klar:
Die Latenz hängt ab von:

der Filterlänge (= Anzahl Koeffizienten = Anzahl Taps = Anzahl der Verzögerungsglieder-1 (Block von der z-Trafo meist mit z^-1 bezeichnet)):
Einfach gesagt: wie viele Samples müssen in den FIFO befüllt werden, bis das Filter "eingeschwungen" ist.
linear oder minimalphasiges Filter:
Einfach gesagt: ist der Filter mittensymmetrisch, was eine Latenz von Taps/2 verursacht oder nicht.
Samplerate:
Einfach gesagt: Die Geschwindigkeit, in der dein Filter-FIFO mit Samples befüllt wird.

Die Frequenzauflösung und somit die Darstellung des gewünschten Filters im Tieftonbereich hängt ab von:

Filterlänge:
Je mehr Samples du im Filter hast, desto länger ist der Auswertungszeitraum, dementsprechend hast du eine bessere Frequenzauflösung (entspricht den bekannten Frequenz-Bins in einer FFT).
Samplerate


Verdoppelst du also die Samplerate, halbierst du die Latenz. Das wäre grundsätzlich schön :) Blöderweise halbiert sich dabei auch die Frequenzauflösung.
Verdoppelst du dann die Anzahl Taps, hast du wieder die gleiche Frequenzauflösung, allerdings die doppelte Filterlänge. Womit du wiederum bei der gleichen Latenz wie am Anfang angekommen bist.
Beachte dabei:
Der Rechenaufwand steigt nicht linear mit der Filterlänge an. Wird auch klar, wenn man sich das Bildchen anschaut: bei einer diskreten Faltung im Zeitbereich ist nunmal für jeden Tap eine MAC-Operation notwendig.
Das ist auch der Grund für Multirateprocessing, also konsequentes Downsampling im Tieftonbereich und anschließendes Resampling.
Ein FIR-Filter ist somit ein klassisches Optimierungsproblem und hängt von den Erfordernissen ab.
Mit modernen Gleitkomma-DSPs (z.B. AD Sharc der 215x-Generationen) die reichlich Performance haben, kann man schon reichlich schöne Sachen veranstalten :D

Darakon
04.02.2024, 17:34
Hi,

wenn die Taps Anzahl zu gering ist, kann die Phase im Tiefton nicht mehr so genau beeinflusst werden. rePhase zeigt das anhand der blauen gepunkteten Kurve an.

VG
Michael

Hab alles versucht, aber bei mir sehen die Kurven egal ob ich extrem wenig oder extrem viele Taps einstelle, immer gleich aus.
Kann jemand bitte einen screenshot posten?

@Markus:
ok, danke.
Schade, das mit der Samplingfrequenz hätte ja klappen können. :rolleyes:

Micha_HK
04.02.2024, 19:19
Hi,

für wenig stell doch mal z.B. 300 Taps ein und versuche die Phase unter 100Hz zu linearisieren. Da wirst du deutliche Abweichungen sehen.

Darakon
04.02.2024, 19:29
Hallo Michael,

jetzt habe ich es!
Man sieht die 'reale' vs die 'Zielkurve' erst nachdem man die IR generiert hat.
Ok, hätte ich drauf kommen können.

Welches ist das bevorzugte Ausgabeformat von rePhase für die Einbindung in eqAPO ?

josh_cpct
05.02.2024, 11:40
Vielleicht hilft diese Illustration etwas dem Verständnis was wie warum geschieht...

73248
73249
73250
73253
73254

Das ist stark vereinfacht und hat keinen Absolutheitsanspruch.
Aber es erklärt erstmal die Eckpfeiler in der Praxis.

Es gibt auch Phase nach dem Peak und EQ vor dem Peak, aber das folgt dann oftmals nicht den Standard-Anwendungen. Standard ist Phasenkorrektur durch Allpass Inverse und EQ durch Minphasige Amplitude.

Generell gibt es aber das Missverständnis dass FIR Delay haben MUSS. Man muss Garnichts. Man darf den Impuls an jeden beliebigen Punkt setzen. Oft sind die Optionen der Software nur eingeschränkt um dem Anwender nicht zu überfordern. Peak am Anfang und schon ist das Delay weg.

In der Praxis gibt es nur oft ein kleines Delay von 30msec vom Interface selbst zum Puffern. Das ist aber so klein dass es nicht stört. Erst ab 200-300msec fällt das Lipsync auf. Das packen moderne Beamer aber noch, das Bild so lange zu verzögern.
Kleines aber, je nach Player auf alten leistungsschwachen Rechnern gönnt sich die Software für FIR Convolving auch noch mal einiges um die Berechnung zu Puffern. Ein üblicher Wert ist so viel Puffer wie der FIR Filter selbst.
Das heißt, ein ganz gewöhnlicher FIR von 1 Sekunde länge mit Peak im Center, hat dann 1 Sekunde Puffer, plus 0,5 Sekunden Pre-Peak-Delay = 1,5 Sekunden (und 32msec Interface) Delay.
Wenn man weiß wie, kann man das aber umgehen.

Gruß
Josh