Sigma-Delta ADC 中的 FIR Filter 什么样?
前言
在讲解了一番数字信号处理之后,有助于我们重新回归 ADC 系列,本期就介绍一下 ADC 里的 “FIR Filter” (有限冲激响应滤波器)。
我选取的是 TI ADS127L21(带有 FIR Filter ),之前介绍的 ADS124S08(带有 Sinc Filter )本文也会引用,它们都属于 Sigma-Delta ADC(TI 称为 Delta-Sigma ADC),在 TI ADC 矩阵里的位置如下:
按惯例声明一下:我的解释不一定正确,还可能存在错误,所以仅供参考,欢迎讨论。
从带有 Sinc Filter 的 ADC 说起……
对于 Sigma-Delta ADC, Sigma-Delta 调制器将模拟信号转换为 1-bit 数字脉冲,数字脉冲的调制频率(Fmod)比 ADC 输出数据速率(Fdata)要高出很多。
ADC 中的数字滤波器,实现了对数字脉冲的滤波。Sinc Filter 就是其中一种,它基于最简单的求和平均。下面展示了数字脉冲(红色)与 Sinc Filter (黑色)的频谱情况。
从上图可以看出,Sinc Filter 通带很小,TI 文中[2] 说滤波器 -3 dB 的位置只有输出数据速率(Fdata)的 0.262 倍左右,而且滤波器的通带、阻带不平坦,过渡带很慢。
这使得带有 Sinc Filter 的 ADC 只能用于低频信号,比如温度、压力传感器这类缓慢变化的应用场景。
查询 ADS124S08 spec 可知,在输出数据速率(Fdata)最大 4000 SPS 时,对应的 -3dB 带宽只有 1046 Hz,差不多就是前面的 0.262 倍(1046 / 4000 = 0.262):
对于高频信号应用场景,比如汽车里面的声振(NVH)分析,采用如麦克风、加速度计等进行测量,模拟信号的频率范围为约 10 Hz 至 10 kHz 甚至 100 KHz,这种情况下带有 Sinc Filter 的 ADC 带宽就难以胜任。
于是,便引出带有 FIR Filter 的 ADC。
带有 FIR Filter 的 ADC
ADS127L21 是 24 bit Sigma-Delta ADC,由 TI 在 2023 年推出,是 ADS127L01 的升级版。
内部具有由 FIR、IIR 构成的 “宽频”(Wideband)滤波器、以及 Sinc 构成的 “低延迟” (Low-latency) 滤波器,而且可自定义编程。针对的就是声音、振动等应用场景:
芯片的内部框图如下:
其中, “ FIR Filter” 是本期关注的重点。
ADS127L21 中的 FIR Filter
ADS127L21 的 FIR Filter 如下,由 Sinc5、FIR1、FIR2、FIR3、IIR 组成了“宽频”(Wideband)滤波器,其中 FIR3 与 IIR 属于可编程滤波器:
图中也展现了每个滤波器的“抽取”(Decimation)数量,比如, x4 是每 4 个数据中选 1 个, x2 是每 2 个数据中选 1 个,这样一连串下来,就有了 Oversampling ratio(OSR),OSR = Fmod / Fdata,即 调制器频率与输出数据速率之比。
我们可以看到最小的 OSR = 4 * 2 * 2 * 2 * 1 = 32,而最大的 Fmod(调制器频率)是 16MHz,这样最大的 Fdata (输出数据速率)就是 16M / 32 = 512 kHz。
好了,如果最大的 Fdata (输出数据速率)是 512 kHz,那么想象一下最大的 Fin(模拟输入)频率是多少?
提示:抽取就像降采样,采样定理限制了其带宽。
我们继续看 spec,文中给出了 FIR1、FIR2 以及默认配置 FIR3 下的“宽频”(Wideband)滤波器的整体特性:
图中横坐标均采用了 Fin / Fdata 的归一化频谱,OSR 为 32 或 64,经过 FIR1、FIR2、FIR3 一顿操作,“宽频”(Wideband)滤波器就有了平坦通带、快速过渡带、以及 -100dB 以上阻带的频谱特性,与 Sinc 滤波器相比就优雅华丽了很多。
当然,这离不开 FIR3 的贡献,它的实现是 128 抽头(Taps),每个抽头系数是 32-bit,共占据了 512 字节的 ADC 寄存器配置空间:
我们来看下“宽频”(Wideband)滤波器的具体指标:
最大带宽在第 1 行,即,Fclk 为 32.768 MHz(Fmod 为其二分频),OSR 为 32,最大输出数据速率是 512 kSPS,-3dB 带宽是 223.9 kHz,延迟是 135.5 μs。
同时,ADS127L21 中的还有一路 Sinc Filter 构成的 “低延迟” (Low-latency) 滤波器,指标如下,以便于对比:
即,Fclk 为 32.768 MHz,OSR 为 12,最大输出数据速率是 1365.3 kSPS,Sinc3 的 -3dB 带宽是 357 kHz,延迟只有 2.97 μs。
毫无悬念,如果将上述带宽与数据速率相除,又是熟悉的 0.262 倍(357 / 1365.3 = 0.262)。
总之,通过对比可以看出,Sinc 相比于 FIR 频谱表现差很多,但是延迟很小,这是两种滤波器各有优势的地方。
可编程滤波器的特点
ADS127L21 最大的特点还是可编程滤波器,允许用户在 ADC 内实现多种任意滤波功能,避免外部 FPGA、DSP、MCU 设计带来的功耗、开发成本、PCB 面积等问题。
ADS127L21 的可编程滤波器主要是 FIR 和 IIR,滤波器的设计可借助 MATLAB 等工具,再使用 TI 提供的 GUI 工具配置滤波器系数、频率响应和寄存器,这个 GUI 工具的界面如下,在 ADS127L21 的 EVK 链接中 [6] 可以下载试用:
未来,随着 AI 的流行,也许除了滤波器以外,ADC 中还能植入越来越多的预训练模型,也未可知也。
参考资料
-
https://www.ti.com/data-converters/adc-circuit/precision-adcs/overview.html
-
sbaa230a: Application Note Digital Filter Types in Delta-Sigma ADCs
相关前文
- 探秘!有限冲激响应(FIR)数字滤波器竟如此通俗易懂!
- 深入浅出 Sigma-Delta ADC Datasheet 中的 Sinc 滤波器
- 如何理解 Sigma-Delta ADC 中的“抽取”和“滤波”?
- 什么是 Sigma-Delta ADC 中的 Noise Shaping?
- 理解ADC:Delta-Sigma ADC 如何工作?
欢迎关注我的微信公众号“疯狂的运放”
,及时收到最新的推文。