前言

在讲解了一番数字信号处理之后,有助于我们重新回归 ADC 系列,本期就介绍一下 ADC 里的 “FIR Filter” (有限冲激响应滤波器)。

我选取的是 TI ADS127L21(带有 FIR Filter ),之前介绍的 ADS124S08(带有 Sinc Filter )本文也会引用,它们都属于 Sigma-Delta ADC(TI 称为 Delta-Sigma ADC),在 TI ADC 矩阵里的位置如下:

图1 TI ADC 矩阵

图1 TI ADC 矩阵,来源 [1]

按惯例声明一下:我的解释不一定正确,还可能存在错误,所以仅供参考,欢迎讨论。

从带有 Sinc Filter 的 ADC 说起……

对于 Sigma-Delta ADC, Sigma-Delta 调制器将模拟信号转换为 1-bit 数字脉冲,数字脉冲的调制频率(Fmod)比 ADC 输出数据速率(Fdata)要高出很多。

ADC 中的数字滤波器,实现了对数字脉冲的滤波。Sinc Filter 就是其中一种,它基于最简单的求和平均。下面展示了数字脉冲(红色)与 Sinc Filter (黑色)的频谱情况。

图2 ADC 中的 Sinc Filter

图2 ADC 中的 Sinc Filter,来源 [2]

从上图可以看出,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):

图3 ADS124S08 Sinc Filter 的带宽

图3 ADS124S08 Sinc Filter 的带宽,来源 [3]

对于高频信号应用场景,比如汽车里面的声振(NVH)分析,采用如麦克风、加速度计等进行测量,模拟信号的频率范围为约 10 Hz 至 10 kHz 甚至 100 KHz,这种情况下带有 Sinc Filter 的 ADC 带宽就难以胜任。

图4 NVH 的频率特性

图4 NVH 的频率特性,来源 [4]

于是,便引出带有 FIR Filter 的 ADC。

带有 FIR Filter 的 ADC

ADS127L21 是 24 bit Sigma-Delta ADC,由 TI 在 2023 年推出,是 ADS127L01 的升级版。

内部具有由 FIR、IIR 构成的 “宽频”(Wideband)滤波器、以及 Sinc 构成的 “低延迟” (Low-latency) 滤波器,而且可自定义编程。针对的就是声音、振动等应用场景:

图5 TI ADS127L21

图5 TI ADS127L21,来源 [5]

芯片的内部框图如下:

图6 内部框图

图6 内部框图,来源 [5]

其中, “ FIR Filter” 是本期关注的重点。

ADS127L21 中的 FIR Filter

ADS127L21 的 FIR Filter 如下,由 Sinc5、FIR1、FIR2、FIR3、IIR 组成了“宽频”(Wideband)滤波器,其中 FIR3 与 IIR 属于可编程滤波器:

图7 ADS127L21 的 FIR Filter

图7 ADS127L21 的 FIR Filter,来源 [5]

图中也展现了每个滤波器的“抽取”(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)滤波器的整体特性:

图8 FIR 滤波器特性

图8 FIR 滤波器特性,来源 [5]

图中横坐标均采用了 Fin / Fdata 的归一化频谱,OSR 为 32 或 64,经过 FIR1、FIR2、FIR3 一顿操作,“宽频”(Wideband)滤波器就有了平坦通带、快速过渡带、以及 -100dB 以上阻带的频谱特性,与 Sinc 滤波器相比就优雅华丽了很多。

当然,这离不开 FIR3 的贡献,它的实现是 128 抽头(Taps),每个抽头系数是 32-bit,共占据了 512 字节的 ADC 寄存器配置空间:

图9 可编程 FIR 滤波器抽头

图9 可编程 FIR 滤波器抽头,来源 [5]

我们来看下“宽频”(Wideband)滤波器的具体指标:

图10 宽频滤波器指标

图10 宽频滤波器指标,来源 [5]

最大带宽在第 1 行,即,Fclk 为 32.768 MHz(Fmod 为其二分频),OSR 为 32,最大输出数据速率是 512 kSPS,-3dB 带宽是 223.9 kHz,延迟是 135.5 μs。

同时,ADS127L21 中的还有一路 Sinc Filter 构成的 “低延迟” (Low-latency) 滤波器,指标如下,以便于对比:

图11 低延迟滤波器指标

图11 低延迟滤波器指标,来源 [5]

即,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] 可以下载试用:

图12 TI ADC 可编程滤波器 GUI 工具

图12 TI ADC 可编程滤波器 GUI 工具,来源 [6]

未来,随着 AI 的流行,也许除了滤波器以外,ADC 中还能植入越来越多的预训练模型,也未可知也。

参考资料

  1. https://www.ti.com/data-converters/adc-circuit/precision-adcs/overview.html

  2. sbaa230a: Application Note Digital Filter Types in Delta-Sigma ADCs

  3. spec: ADS124S08

  4. https://www.researchgate.net/publication/341324386_Analysis_and_characterization_of_the_friction_of_vehicle_body_vibration_dampers

  5. spec: ADS127L21

  6. https://www.ti.com/tool/ADS127L21EVM-PDK

相关前文


欢迎关注我的微信公众号“疯狂的运放”,及时收到最新的推文。