Entwerfen eines Tiefpassfilters zur Minimierung des Aliasing bei vordezimiertem Audio-Streaming

7

Ich muss einen Tiefpassfilter auf PCM-Dateien anwenden. Es gibt verschiedene Methoden wie FIR-Filter, IIR-Filter (Butterworth-Chebyshev ..), aber es scheint mir, dass die Anwendung der Fast Fourier-Transformation und die Eliminierung höherer Frequenzen der beste Weg zu einem idealen Filter ist.

Was ist die schnellste und der idealsten Filtermethode am nächsten kommende?

Es ist für das Anti-Aliasing erforderlich, bevor die Abtastrate geändert wird (Fcutoff = Fs / 2). Es wird in jedem Block von 1 Sek. Angewendet. Daten. Die Hauptanforderung ist, dass nach Änderung der Abtastrate die neue Audioqualität so nahe wie möglich an der ursprünglichen Audioqualität liegt. (Nicht laut.)

Vielen Dank.

Mete
quelle
4
Sie sollten wahrscheinlich erklären , warum Sie diese Daten gefiltert werden sollen und was Ihre Anforderungen aus der Filterung (dh was ist Ihre Filterspezifikation ?).
Paul R
Was sind Ihre Anforderungen in Bezug auf Sperrbanddämpfung, Steigung, Welligkeit im Durchlassbereich usw.? Wie wichtig ist Ihnen die Latenz (Wenn wir beispielsweise Ihrem FFT-Ansatz folgen, muss ein Block mit N Samples verfügbar sein, bevor wir überhaupt das erste Output-Sample schreiben können)?
Pichenettes
Es ist für das Anti-Aliasing erforderlich, nachdem die Abtastrate geändert wurde. Und wird jeden Block von 1 Sek. Angewendet. Daten. Die Hauptanforderung ist, dass nach dem Ändern der Abtastrate die neue Audioqualität so nahe wie möglich an der ursprünglichen Audioqualität liegt. (Nicht laut)
Mete
Hinweis: Zum erneuten Abtasten müssen Sie den Filter anwenden, bevor Sie die Abtastrate ändern (durch Dezimierung oder was auch immer).
Paul R
Was sind die Vorher- und Nachher-Abtastraten? Sind sie repariert? Sind sie immer ein ganzzahliges Verhältnis (z. B. 44,1 kHz => 22,05 kHz)?
Paul R

Antworten:

8

Die beste Filterauswahl hängt von Ihren spezifischen Anwendungsanforderungen ab. Es gibt zwei grundlegende Möglichkeiten: FIR und IIR. IIR wird viel effizienter sein, jedoch zu Phasenverzerrungen führen. Die Phasenverzerrungen sind völlig unhörbar (es sei denn, es handelt sich um einen bizarren Ausreißerfall), aber eindeutig messbar. Es kommt also darauf an, ob Sie dies nicht tolerieren können.

In beiden Fällen müssen Sie entscheiden, wie nahe Sie der neuen Nyquist-Frequenz kommen und wie viel Aliasing-Rauschen Sie tolerieren können. Ein typisches Beispiel wäre, dass sich das Durchlassband auf 90% der neuen Nyquist-Frequenz erstrecken soll und dass Ihre Aliasing-Produkte unter -80 dB liegen sollen. Basierend auf diesen Spezifikationen können Sie dann den entsprechenden Filter entwerfen. Weitere Überlegungen umfassen, wie viel Durchlassbandwelligkeit Sie akzeptieren können und ob Sie Einschränkungen hinsichtlich der maximalen Gruppenverzögerung und / oder Latenz haben.

Hier ein Beispiel: Angenommen, Sie möchten von 44,1 kHz auf 32 kHz heruntersampeln, und die neue Nyquist-Frequenz beträgt 16 kHz. Ein 90% Nyquist (14400 Hz) mit einer Durchlasswelligkeit von 0,1 dB und einer Dämpfung von 80 dB bei 16 kHz könnte mit einem elliptischen Filter 9. Ordnung durchgeführt werden.

Wie Nibot hervorgehoben hat, ist das Nullstellen von FFT-Bins eine schlechte Wahl für ein Tiefpassfilter, da der resultierende Tiefpass sehr große Nebenkeulen aufweist und die Aliasing-Zurückweisung ziemlich schlecht ist. Es würde auch eine ordnungsgemäße Implementierung eines Überlappungsadditions- oder Überlappungsspeicheralgorithmus erfordern, um mit einem kontinuierlichen Signal umzugehen.

Hilmar
quelle
1
Ist die Phasenverzerrung wirklich unhörbar? Wurde dies in Experimenten gezeigt?
Endolith
1
Es gibt eine große Anzahl wissenschaftlicher Arbeiten zu diesem Thema. Das menschliche Ohr ist ziemlich unempfindlich gegenüber monoauralen Phasenverschiebungen (aber SEHR empfindlich gegenüber binauralen Phasen). In diesem Fall wären Phasenverzerrungen bei hohen Frequenzen, bei denen zunächst wenig Energie vorhanden ist, nahe am Übergang. Wenn es nicht extrem ist, ist es unwahrscheinlich, dass es einen hörbaren Unterschied macht
Hilmar
Richtig, also ist es hörbar. :) Es geht wirklich darum, wie stark man es verzerren kann, bevor Menschen es bemerken, nicht um eine binäre hörbare / unhörbare Sache. Ein wirklich schlechtes Filterdesign könnte also hörbar sein, insbesondere wenn es mit Stereodaten arbeitet, was fast immer der Fall ist.
Endolith
@endolith: nicht wirklich - Phasenverzerrung ist normalerweise auf dem linken und rechten Kanal bei einer bestimmten Frequenz gleich, so dass keine binaurale Phasenverzerrung erkennbar ist, was das Gehirn gut erkennen kann (es ist ein großer Teil davon, wie wir lokalisieren Ton). Wir nehmen keine monaurale Phasenverzerrung wahr, weil sie keinen evolutionären Wert hat.
Paul R
1
Die menschliche Wahrnehmung ist selten schwarz und weiß. Hier ist ein interessanter Überblick über die monaurale Phasenwahrnehmungsforschung music.princeton.edu/~john/monauralphaseexperiments.htm . Mein Punkt war, dass das menschliche Ohr nicht sehr empfindlich auf die monaurale Phase reagiert und dass die Art der Phasen- oder Gruppenverzögerung, die durch einen Anti-Aliasing-Filter eingeführt wird, wahrscheinlich nicht hörbar ist.
Hilmar
0

Es gibt kein einfaches "Bestes" oder "Ideal". Es gibt nur Kompromisse, die Ihren spezifischen Anforderungen oder Prioritäten besser entsprechen (und daher schlechter zu anderen passen).

Im Fall von Anti-Aliasing können die Anforderungen maximale Welligkeit, Übergangsbreite, Phasenlinearität, Berücksichtigung des Vorklingelns, maximale Latenz, Rechenzyklus- oder Energieanforderungen oder -beschränkungen, Speicherbeschränkungen, spezifische Kerbfrequenzen usw. umfassen.

Das Nullstellen von FFT-Bins eignet sich hervorragend für steile Übergänge und scharfe Kerben und ist eine der schlechtesten Lösungen, um die Stop-Band-Welligkeitsspezifikation zu erfüllen (und es kann im Durchlassbereich klingeln). Was willst du?

hotpaw2
quelle