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.
Antworten:
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.
quelle
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?
quelle