Durch Ermöglichen einer Erhöhung der Verzögerung, die durch ein digitales Überabtastungsfilter eingeführt wird, können die anderen Eigenschaften des Filters, der Durchlassband- und Stoppbandwelligkeit und der Übergangsbandbreite so verbessert werden, dass sie beliebig nahe bei Null liegen. Der Überabtastungsfaktor kann erhöht werden, um das Stoppband zu erweitern und die Anforderungen an die analoge Filterung zu lockern, was zu einer erhöhten Rechenkomplexität führt, jedoch zu keiner signifikanten Erhöhung der durch das Filter eingeführten Verzögerungszeit.
Audio-DACs verfügen normalerweise über ein digitales Oversampling-Filter, das zwischen einem Filter mit geringer Zeitverzögerung (Latenz) und einem Roll-Off-Filter mit scharfem Frequenzgang ausgewählt werden kann. Das Filter mit niedriger Verzögerung kann ein Minimalphasenfilter oder ein psychoakustisch abgestimmter Kompromiss zwischen geringer Dispersion (einige Frequenzen sind stärker verzögert als andere) und geringer effektiver Verzögerung sein. Das scharfe Abrollfilter ist typischerweise ein lineares Phasenfilter mit einer symmetrischen Impulsantwort und einer spezifizierten maximalen Welligkeit im Durchlassband und im Stoppband. Diese Art von Spezifikation lässt sich leicht in einem Datenblatt ausdrücken und in ein Systemdesign integrieren. Vergleichbare Equiripple-Linearphasenfilter können in Oktave unter Verwendung des remez
gleichen Gewichts von Durchlassband und Stoppbandwelligkeit entworfen werden :
pkg load signal
x2x = []; x4x = [];
for n = [16:86]
b2x = remez(2*n, [0, 20/44.1, (44.1-20)/44.1, 1], [1, 1, 0, 0], [1, 1], "bandpass", 128);
b4x = remez(2*n, [0, 20/(44.1*2), (44.1-20)/(44.1*2), 1], [1, 1, 0, 0], [1, 1], "bandpass", 128);
[h2x, w2x] = freqz(b2x); [h4x, w4x] = freqz(b4x);
x2x = [x2x; (length(b2x)-1)/2/2, 20*log10(abs(h2x(end)))];
x4x = [x4x; (length(b4x)-1)/2/4, 20*log10(abs(h4x(end)))];
endfor
plot(x2x(:,1), x2x(:,2), "x", x4x(:,1), x4x(:,2), "x", 29.2, -100, "x", 39.5, -110, "x", 43.3828125, -110, "x")
xlabel("group delay / f_s");
ylabel("stop band ripple (dB)");
text(29.2-2, -100-4, "AK4499");
text(39.5-2, -110+4, "CS43198");
text(43.3828125-2, -110-4, "AD1955");
grid on
Das Skript entwirft verschiedene Ordnungsfilter (begrenzt durch das, was remez
ohne numerische Probleme gehandhabt werden kann) für ein Durchlassband von 0 bis 20 kHz und ein Stoppband ab 24,1 kHz, die bei einer kleinen Auswahl von Überabtastabtastfrequenzen von 2 und 4 Mal betrieben werden Die Abtastfrequenz von 44,1 kHz und die Diagramme der Stop-Band-Welligkeit (Abb. 1) zusammen mit denen der äquivalenten digitalen Oversampling-Filter von Flaggschiff-Audio- DACs von Asahi Kasei ( AK4499 ), Analog Devices ( AD1955 ) und Cirrus Logic ( CS43198 ).
Abbildung 1. Welligkeit des remez
Stoppbandes und des Durchlassbandes für 2x (blau) und 4x (orange) Oversampling-entworfene Linearphasen-Tiefpass-Digitalfilter mit gleichem Durchlass- und Stoppbandgewicht als Funktion der Impulsantwort halber Länge in Einheiten von Abtastperiode bei der 1x Abtastfrequenz von 44,1 kHz. Es sind auch Leistungswerte für die Stop-Band-Welligkeit für eine Auswahl von DAC-Oversampling-Filtern aufgetragen, wobei die entsprechende Durchlassband-Welligkeit als 5 × 10 ^ -3 dB für das 8x-Oversampling-Digitalfilter von AK4499, 10 ^ -2 dB für das kombinierte Digital- und Analogfilter von CS43198 und 2 × 10 ^ -4 dB für das digitale 8x-Oversampling-Filter von AD1955. Alle hier verglichenen Filter haben identische Übergangsbandgrenzen: 20 kHz bis 24,1 kHz.
Für eine Abtastfrequenz von 44,1 kHz gibt Fig. 1 eine Untergrenze für die Leistung des digitalen Filters mit linearer Phasenüberabtastung als Funktion der vom Filter eingeführten Verzögerung an, wenn Durchlassband und Stoppbandwelligkeit gleich gewichtet sind. Diese Grenze hängt nicht wesentlich vom Überabtastungsverhältnis ab. DAC-Hersteller können eine andere Gewichtung wählen, um beispielsweise durch Erhöhen der Durchlassbandwelligkeit eine geringere Welligkeit des Stoppbands zu erzielen, wie im Fall von AK4499. Sie können die Filter auch nach anderen Kriterien als dem strengen Equiripple optimieren. Beispielsweise kann das Filter eine Kompensation für die Dämpfung hoher Frequenzen durch die analoge Schaltung (Halten nullter Ordnung, RC-Filter usw.) enthalten, und die Filterverzögerungseigenschaften können unter der Verwendung einer rechnerisch effizienten Mehrratenimplementierung leiden.
Wir können uns das Filter mit der höchsten Leistung in Abb. 1 genauer ansehen remez(2*86, [0, 20/44.1, (44.1-20)/44.1, 1], [1, 1, 0, 0], [1, 1], "bandpass", 128)
, indem wir seine Impulsantwort (Abb. 2) und Frequenzantwort mit freqz
(Abb. 3) auftragen:
Abbildung 2. Impulsantwort des leistungsstärksten linearen 2x-Oversampling-Filters aus remez
.
Abbildung 3. Frequenzgang des leistungsstärksten linearen 2x-Oversampling-Filters aus remez
.
Es wäre interessanter, sich 8x Oversampling-Filter anzusehen, remez
schlägt aber mit fehl error: remez: insufficient extremals--cannot continue
.