通过允许增加由数字过采样滤波器引入的延迟,可以将滤波器的其他特性、通带和阻带纹波以及过渡带宽改进为任意接近零。可以增加过采样因子以加宽阻带并放宽对模拟滤波的要求,从而导致计算复杂度增加,但滤波器引入的延迟时间不会显着增加。
音频 DAC 通常具有一个数字过采样滤波器,可在低延时(延迟)滤波器和尖锐频率响应滚降滤波器之间进行选择。低延迟滤波器可以是最小相位滤波器或低色散(一些频率比其他频率延迟更多)和低有效延迟之间的心理声学调谐折衷。急剧滚降滤波器通常是具有对称脉冲响应的线性相位滤波器,并且在通带和阻带中具有指定的最大纹波。这种规格很容易在数据表中表达并融入系统设计。可以在 Octave 中使用 设计类似的等波纹线性相位滤波器remez
,这里通带和阻带波纹的权重相等:
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
remez
该脚本为从 0 到 20 kHz 的通带和从 24.1 kHz 开始的阻带设计了各种阶滤波器(受限于可以在没有数值问题的情况下处理的内容),以在 2 和 4 倍的过采样采样频率的小范围选择下运行44.1 kHz 采样频率,并绘制(图 1)阻带纹波特性以及 Asahi Kasei ( AK4499 )、Analog Devices ( AD1955 ) 和 Cirrus Logic ( CS43198 ) 的旗舰音频 DAC 的等效过采样数字滤波器的特性。
图 1. 2x(蓝色)和 4x(橙色)过采样remez
设计的线性相位低通数字滤波器的阻带和通带纹波具有相等的通带和阻带权重,作为脉冲响应半长的函数,单位为采样周期为 44.1 kHz 的 1x 采样频率。还绘制了选择 DAC 过采样滤波器的阻带纹波性能数据,其中 AK4499 的 8 倍过采样数字滤波器的相应通带纹波指定为 5×10^-3 dB,组合数字和CS43198 的模拟滤波器,AD1955 的 8 倍过采样数字滤波器为 2×10^-4 dB。此处比较的所有滤波器都具有相同的过渡带边界:20 kHz 至 24.1 kHz。
对于 44.1 kHz 采样频率,当通带和阻带纹波的权重相等时,图 1 给出了线性相位过采样数字滤波器性能的下限,它是滤波器引入的延迟的函数。这个界限并不明显取决于过采样率。DAC 制造商可以选择不同的权重,例如通过增加通带纹波来获得更低的阻带纹波,例如 AK4499。他们还可以通过严格等波纹以外的其他标准来优化过滤器。例如,滤波器可以包括对模拟电路(零阶保持、RC滤波器等)的高频衰减的补偿,并且滤波器延迟特性可能会因使用计算效率高的多速率实现而受到影响。
remez(2*86, [0, 20/44.1, (44.1-20)/44.1, 1], [1, 1, 0, 0], [1, 1], "bandpass", 128)
通过绘制其脉冲响应(图 2)和频率响应freqz
(图 3),我们可以仔细查看图 1 中性能最高的滤波器,它来自:
图 2. 最高性能线性相位 2x 过采样滤波器的脉冲响应remez
。
图 3. 最高性能线性相位 2x 过采样滤波器的频率响应remez
。
看看 8x 过采样滤波器会更有趣,但remez
失败了error: remez: insufficient extremals--cannot continue
.