Al permitir un aumento en el retraso introducido por un filtro de sobremuestreo digital, las otras características del filtro, la banda de paso y la ondulación de la banda de detención y el ancho de la banda de transición se pueden mejorar para que sean arbitrariamente cercanas a cero. El factor de sobremuestreo se puede aumentar para ampliar la banda de detención y para relajar los requisitos del filtrado analógico, lo que da como resultado una mayor complejidad computacional pero no un aumento significativo en el tiempo de retraso introducido por el filtro.
Los DAC de audio generalmente tienen un filtro de sobremuestreo digital seleccionable entre un filtro de baja demora (latencia) y un filtro de respuesta de frecuencia nítida. El filtro de bajo retardo puede ser un filtro de fase mínima o un compromiso sintonizado psicoacústicamente entre baja dispersión (algunas frecuencias se retrasan más que otras) y un bajo retardo efectivo. El filtro de caída brusca es típicamente un filtro de fase lineal con una respuesta de impulso simétrica y una ondulación máxima especificada en la banda de paso y en la banda de parada. Este tipo de especificación es fácil de expresar en una hoja de datos e incorporar en un diseño de sistema. Los filtros de fase lineal equiripple comparables se pueden diseñar en Octave usando remez
, aquí con el mismo peso de banda de paso y onda de stop:
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
El guión diseña varios filtros de orden (limitados por lo que remez
puede manejar sin problemas numéricos) para una banda de paso de 0 a 20 kHz y una banda de parada que comienza en 24.1 kHz, para operar en una pequeña selección de frecuencias de muestreo de sobremuestreo de 2 y 4 veces la frecuencia de muestreo de 44.1 kHz, y grafica (Fig.1) las características de ondulación de la banda de parada junto con las de filtros digitales de sobremuestreo equivalentes de DAC de audio insignia de Asahi Kasei ( AK4499 ), Dispositivos analógicos ( AD1955 ) y Cirrus Logic ( CS43198 ).
Figura 1. Banda de parada y ondulación de banda de paso para remez
filtros digitales de paso bajo de fase lineal de sobremuestreo 2x (azul) y 4x (naranja) con pesos de banda de paso y parada iguales, en función de la media longitud de respuesta al impulso en unidades de período de muestreo a la frecuencia de muestreo 1x de 44,1 kHz. También se trazan las cifras de rendimiento de ondulación de la banda de parada para una selección de filtros de sobremuestreo DAC con la ondulación de la banda de paso correspondiente especificada como 5 × 10 ^ -3 dB para el filtro digital de sobremuestreo 8x de AK4499, 10 ^ -2 dB para el digital combinado y filtro analógico de CS43198 y 2 × 10 ^ -4 dB para el filtro digital de sobremuestreo 8x de AD1955. Todos los filtros comparados aquí tienen límites de banda de transición idénticos: 20 kHz a 24,1 kHz.
Para la frecuencia de muestreo de 44.1 kHz, la Fig. 1 ofrece un límite inferior en el rendimiento del filtro digital de sobremuestreo de fase lineal como función del retraso introducido por el filtro, cuando la banda de paso y la onda de parada de banda están igualmente ponderadas. Este límite no depende significativamente de la relación de sobremuestreo. Los fabricantes de DAC pueden elegir una ponderación diferente, por ejemplo, para obtener una ondulación de banda de parada más baja al aumentar la ondulación de la banda de paso, como en el caso de AK4499. También pueden optimizar los filtros por otros criterios que no sean equiripple estrictos. Por ejemplo, el filtro puede incluir una compensación por la atenuación de altas frecuencias por los circuitos analógicos (retención de orden cero, filtros RC, etc.), y las características de retardo del filtro pueden verse afectadas por el uso de una implementación de velocidad múltiple computacionalmente eficiente.
Podemos observar más de cerca el filtro de más alto rendimiento de la Fig. 1 que proviene remez(2*86, [0, 20/44.1, (44.1-20)/44.1, 1], [1, 1, 0, 0], [1, 1], "bandpass", 128)
, trazando su respuesta al impulso (Fig. 2) y la respuesta de frecuencia usando freqz
(Fig. 3):
Figura 2. Respuesta de impulso del filtro de sobremuestreo 2x de fase lineal de mayor rendimiento de remez
.
Figura 3. Respuesta de frecuencia del filtro de sobremuestreo 2x de fase lineal de mayor rendimiento de remez
.
Sería más interesante mirar 8x filtros de sobremuestreo, pero remez
falla error: remez: insufficient extremals--cannot continue
.