☰
低功耗Sigma-Delta ADC设计:噪声整形原理与智能手表心率检测实践
2026/10/7 6:37:12 网站建设 项目流程

1. 为什么低功耗场景偏偏选中了Sigma-Delta架构

如果你拆过智能手表或者便携录音笔,大概率会在PCB上看到一颗小小的ADC芯片,旁边配着几个电容电阻,走线也不复杂。但就是这颗不起眼的芯片,决定了你的手表能不能连续测心率七天不充电,决定了录音笔能不能在嘈杂环境里把人的声音干净地抓出来。很多人第一次接触Sigma-Delta ADC的时候会有一个疑问:这玩意儿输出速率不高,还带一堆数字滤波器,功耗看起来也不低,为什么偏偏是它在低功耗领域站稳了脚跟?

答案藏在“精度换功耗”这个反直觉的逻辑里。传统的逐次逼近型ADC(SAR ADC)要跑到16位以上的有效精度,模拟前端的设计压力会急剧上升——比较器失调、电容阵列匹配、参考电压噪声,每一项都在跟你作对。而Sigma-Delta走的是另一条路:它用一个极其粗糙的1位量化器,配合极高的过采样率和噪声整形,把量化噪声“推”到高频段,然后在数字域把它滤掉。模拟部分做得糙,数字部分来补救,而数字电路在先进工艺下功耗和面积都极其便宜。

这个思路在低功耗场景下简直是量身定做。智能手表的心率检测、音频录制、语音唤醒,这些应用的信号带宽通常很窄——心率信号有效带宽可能就几赫兹到几十赫兹,音频也就20kHz左右。信号带宽窄意味着你可以用很高的过采样率而不需要太高的采样时钟,数字滤波器的功耗也就压得住。反过来,如果让SAR ADC去跑16位精度,模拟部分的功耗和面积会成倍增加,在纽扣电池供电的设备里根本扛不住。

我实际对比过几款用于可穿戴设备的ADC方案。同样是12位有效精度、1kSPS输出速率,SAR ADC的功耗大概在几十微安量级,而一个设计得当的Sigma-Delta ADC可以做到十几微安甚至更低。差距的来源不是Sigma-Delta本身有多省电,而是它对模拟器件的要求低,可以用更小的偏置电流、更简单的运放结构来实现。这一点在芯片选型的时候特别关键,很多新手只看数据手册上的“功耗”一栏,忽略了外围模拟电路的功耗,结果整板功耗远超预期。

还有一个容易被忽视的点:Sigma-Delta ADC天然适合做多通道复用。因为它的模拟前端简单,多路信号可以通过一个多路复用器切换后共用一个调制器,数字滤波器也可以分时复用。这在智能手表这种需要同时监测心率、血氧、体温的场景里非常实用。你不需要为每个传感器配一个独立的ADC,一颗Sigma-Delta加上合理的通道切换逻辑就能搞定。

2. 噪声整形到底在“欺骗”什么

2.1 量化噪声不是被消除了,而是被搬走了

很多人第一次听到“噪声整形”这个词,会觉得这是一种魔法——噪声被“整形”掉了?其实不是。量化噪声的总功率是由量化位数决定的,1位量化器的噪声总功率是固定的,你没法把它消灭。Sigma-Delta做的事情是改变噪声的频谱分布:通过反馈环路,把低频段的量化噪声搬到高频段去,让低频段的噪声密度变得极低。

打个比方,你有一个房间,地上散落着垃圾(量化噪声)。SAR ADC的做法是直接把垃圾扫到角落,但角落空间有限,扫不干净。Sigma-Delta的做法是把垃圾全部铲到房间外面的一条走廊里(高频段),房间里看起来干干净净,然后你在房间门口放一个滤网(数字低通滤波器),只让房间里的空气流通,走廊里的垃圾就进不来。垃圾总量没变,但房间里的空气质量变好了。

这个“搬垃圾”的过程靠的是负反馈环路。调制器里有一个积分器、一个比较器和一个反馈DAC。积分器对输入信号和反馈信号的差值进行累积,比较器根据积分器的输出决定反馈DAC是加还是减。这个闭环系统对低频信号呈现高增益,对量化噪声呈现低增益——换句话说,低频段的噪声被环路增益压制了,高频段的噪声被放大了。最终输出端的噪声频谱呈现“低频低、高频高”的形状,这就是噪声整形的核心。

2.2 过采样率是噪声整形的“燃料”

噪声整形要发挥作用,过采样率必须足够高。过采样率(OSR)定义为采样频率除以两倍信号带宽。OSR每提高一倍,量化噪声在信号带宽内的功率就下降3dB。如果配合一阶噪声整形,噪声下降的斜率变成9dB每倍频程;二阶变成15dB每倍频程;三阶变成21dB每倍频程。这就是为什么高阶Sigma-Delta调制器能用1位量化器做到20位以上的有效精度。

但过采样率不是越高越好。采样频率越高,调制器内部积分器和比较器的功耗就越大,数字滤波器的功耗也越大。在低功耗场景下,你需要找到一个平衡点。我的经验是:对于音频应用(带宽20kHz),OSR取64到128比较合适,对应采样频率2.56MHz到5.12MHz;对于心率检测(带宽100Hz),OSR可以取256甚至512,采样频率只有51.2kHz到102.4kHz,功耗可以压得很低。

这里有一个实际设计中的坑:很多人以为过采样率越高精度就越好,于是拼命提高采样时钟。结果发现功耗上去了,精度却没怎么提升。原因是高阶调制器在高OSR下可能进入不稳定状态,或者数字滤波器的功耗增长超过了模拟部分节省下来的功耗。正确的做法是先确定目标精度和信号带宽,然后根据调制器阶数反推需要的OSR,再选择合适的主时钟频率。

2.3 数字滤波器是“收尾”的关键

调制器输出的1位码流看起来像随机噪声,但它包含了完整的信号信息。数字滤波器的任务是把高频量化噪声滤掉,同时把输出速率降到奈奎斯特频率附近。常用的滤波器结构是Sinc滤波器(也叫CIC滤波器)级联一个补偿滤波器。

Sinc滤波器特别适合低功耗场景,因为它不需要乘法器,只需要加法器和寄存器。一个三阶Sinc滤波器对1位码流做抽取,功耗可以做到微安级别。补偿滤波器用来补偿Sinc滤波器在通带内的衰减,通常是一个简单的FIR滤波器,系数可以用对称结构减少乘法次数。

我在实际项目中遇到过一个问题:Sinc滤波器的阶数和抽取率选择不当,导致输出信号的建立时间太长。比如在心率检测中,每次切换通道后需要等待滤波器稳定才能读取有效数据,如果建立时间太长,通道切换的频率就上不去。后来我把Sinc滤波器的阶数从三阶降到二阶,配合一个稍微复杂一点的补偿滤波器,整体建立时间缩短了将近一半,精度只损失了不到1位。

3. 从音频录制到智能手表:不同场景下的设计取舍

3.1 音频录制:高保真与低功耗的拉锯战

音频录制对Sigma-Delta ADC的要求比较特殊。一方面,音频信号带宽20kHz,需要至少16位有效精度才能满足高保真回放的需求;另一方面,便携录音笔和无线耳机对功耗极其敏感,希望ADC的功耗越低越好。

在音频应用中,Sigma-Delta ADC通常采用二阶或三阶调制器,OSR取64或128,主时钟频率在2.56MHz到5.12MHz之间。这个配置下,调制器的功耗大概在几百微安量级,数字滤波器的功耗也在类似量级。为了进一步降低功耗,很多芯片会采用多比特量化器代替1位量化器。多比特量化器可以降低量化噪声,从而允许更低的OSR,但代价是需要一个多比特反馈DAC,对匹配性要求更高。

我实测过几款音频Sigma-Delta ADC,发现一个有意思的现象:在低采样率下(比如8kHz输出),功耗可以降到1毫瓦以下;但在48kHz输出时,功耗会跳到3到5毫瓦。差距主要来自数字滤波器的功耗——输出速率越高,滤波器需要处理的样本越多,功耗自然就上去了。所以如果你的应用不需要48kHz采样,千万别为了“留余量”而选择高输出速率,功耗代价是实打实的。

音频应用还有一个特殊需求:抗混叠滤波。Sigma-Delta ADC的过采样率很高,输入端的抗混叠滤波器可以做得非常简单,甚至只需要一个RC低通滤波器。这比SAR ADC需要的高阶抗混叠滤波器省事多了,也省功耗。但要注意,RC滤波器的截止频率要跟信号带宽匹配,截止频率太高会让高频噪声混进来,太低会衰减有用信号。

3.2 智能手表心率检测:极低功耗下的精度博弈

智能手表的心率检测是Sigma-Delta ADC最典型的低功耗应用场景之一。心率信号的有效带宽通常只有几赫兹到几十赫兹,信号幅度也很小,通常在毫伏级别。但环境噪声很大,包括运动伪影、环境光干扰、电源纹波等。

在这种场景下,Sigma-Delta ADC的设计重点是极低的输入参考噪声和极低的功耗。因为信号带宽窄,OSR可以取到256甚至512,主时钟频率只有几十千赫兹,调制器的功耗可以压到几微安。数字滤波器也可以做得很简单,一个二阶Sinc滤波器加一个简单的补偿滤波器就够了。

但这里有一个容易被忽视的问题:输入端的噪声。Sigma-Delta ADC的输入参考噪声决定了你能检测到的最小信号。如果输入端的噪声太大,再高的分辨率也没用。我在实际调试中发现,很多心率检测方案的噪声主要来自光电二极管的前置放大器,而不是ADC本身。所以选型的时候不能只看ADC的噪声指标,要把整个信号链的噪声预算算清楚。

另一个坑是电源噪声。智能手表的电源通常来自开关电源或LDO,纹波可能在几十毫伏量级。如果ADC的电源抑制比不够高,电源纹波会直接调制到输出信号上。我的做法是在ADC的电源引脚旁边放一个RC滤波器,截止频率设在几赫兹,把低频纹波滤掉。这个RC滤波器的电阻不能太大,否则会影响ADC的瞬态响应;电容也不能太小,否则滤波效果不够。通常取10欧姆电阻配10微法电容,效果比较均衡。

3.3 语音唤醒:Always-On场景下的功耗极限

语音唤醒是最近几年低功耗ADC的热门应用。智能音箱、TWS耳机、智能手表都需要在待机状态下持续监听唤醒词,这对ADC的功耗提出了极高的要求——通常希望整个音频前端(包括麦克风、ADC、预处理)的功耗在几百微瓦以内。

Sigma-Delta ADC在语音唤醒场景下的设计跟音频录制有很大不同。唤醒词检测不需要高保真音频,只需要足够的信噪比让后端的关键词识别算法能工作。所以信号带宽可以降到4kHz甚至2kHz,OSR可以取到128或256,主时钟频率降到1MHz以下,功耗可以做到几十微安。

但语音唤醒对ADC的另一个指标要求很高:快速启动时间。因为设备大部分时间处于休眠状态,只有检测到声音事件后才唤醒ADC进行采样。如果ADC的启动时间太长,可能会错过唤醒词的开头部分。Sigma-Delta ADC的启动时间主要取决于数字滤波器的建立时间,可以通过降低滤波器阶数或减少抽取率来缩短。我的经验是,把建立时间控制在几毫秒以内,对唤醒词检测的成功率影响可以忽略。

还有一个实际问题是麦克风的偏置电压。很多MEMS麦克风需要偏置电压才能工作,这个偏置电压的噪声会直接耦合到信号里。如果ADC的输入参考噪声很低,但麦克风偏置噪声很大,整体信噪比还是上不去。所以在语音唤醒方案里,麦克风偏置电路的设计跟ADC选型同样重要。

4. 低功耗Sigma-Delta ADC的实操选型与调试经验

4.1 选型时容易踩的几个坑

第一个坑是只看分辨率不看有效位数。很多芯片标称24位分辨率,但有效位数可能只有16位甚至更低。有效位数才是真正决定精度的指标,选型时一定要看ENOB(有效位数)而不是分辨率。

第二个坑是忽略输出速率和功耗的关系。同一颗ADC在不同输出速率下的功耗可能差好几倍。选型时要根据实际需要的输出速率来评估功耗,不能只看数据手册上的“典型功耗”。

第三个坑是低估数字滤波器的功耗。有些ADC把调制器和数字滤波器分开供电,数据手册上只标了调制器的功耗,数字滤波器的功耗要另外算。如果数字滤波器在FPGA或MCU里实现,功耗可能比调制器还大。

第四个坑是忽视输入端的驱动要求。Sigma-Delta ADC的输入通常是开关电容结构,输入端需要一定的驱动能力。如果信号源的内阻太大,会导致建立时间不够,精度下降。选型时要确认信号源的内阻是否满足ADC的驱动要求。

4.2 调试中的常见问题与排查思路

问题一:输出噪声比预期大。排查顺序是:先检查电源纹波,用示波器看ADC电源引脚上的纹波幅度;再检查输入端是否有高频干扰,用频谱分析仪看输入信号的频谱;最后检查数字滤波器的配置是否正确,抽取率、阶数、补偿滤波器系数是否匹配。

问题二:输出信号有周期性波动。这通常是数字滤波器建立时间不够导致的。可以尝试降低输出速率、增加滤波器阶数、或者在软件里丢弃前几个样本。

问题三:功耗比预期高。先确认实际工作模式是否跟数据手册的测试条件一致,比如输出速率、时钟频率、供电电压。然后检查是否有未使用的通道或模块没有关闭。最后检查数字接口的功耗,比如SPI或I2S接口在高速传输时的功耗可能不可忽略。

问题四:精度随温度漂移。Sigma-Delta ADC的精度对温度比较敏感,尤其是参考电压和积分器的运放。如果应用场景温度变化大,要选择带温度补偿的参考电压源,或者定期做校准。

4.3 几个实用的低功耗设计技巧

技巧一:动态调整过采样率。在信号质量好的时候降低OSR,在信号质量差的时候提高OSR。这样可以在保证精度的同时降低平均功耗。

技巧二:使用休眠模式。很多Sigma-Delta ADC支持休眠模式,在不需要采样的时候把调制器和数字滤波器关掉,只保留寄存器配置。唤醒时间通常在微秒级别,对大多数应用来说可以接受。

技巧三:优化数字滤波器的实现。如果数字滤波器在MCU里用软件实现,可以用查表法代替乘法运算,用移位代替除法,用定点数代替浮点数。这些优化可以显著降低MCU的功耗。

技巧四:合理选择参考电压。参考电压的噪声直接决定ADC的精度上限。在低功耗场景下,可以用一个低噪声的LDO给参考电压供电,或者在参考电压引脚旁边放一个大电容滤掉高频噪声。

技巧五:注意PCB布局。Sigma-Delta ADC的模拟输入端对干扰很敏感,走线要尽量短,远离数字信号线。地平面要完整,模拟地和数字地要分开,最后在ADC下方单点连接。

5. 从芯片手册到实际产品:一个心率检测方案的完整调试记录

去年我参与了一个智能手环的心率检测方案,用的是一颗国产的低功耗Sigma-Delta ADC,标称24位分辨率,最高输出速率1kSPS,功耗在100微安左右。方案的目标是在100Hz信号带宽下达到16位有效精度,整体功耗控制在200微安以内。

第一版硬件回来之后,测试结果很不理想。输出噪声比预期大了将近10倍,有效位数只有12位左右。排查过程持续了将近两周,最后发现是三个问题叠加在一起。

第一个问题是电源纹波。手环的电源来自一颗开关电容DC-DC,输出纹波在20毫伏左右,频率在100kHz附近。这个纹波通过ADC的电源引脚耦合到了输出信号上。解决方案是在ADC电源引脚旁边加了一个RC滤波器,10欧姆电阻配10微法电容,把100kHz的纹波衰减了将近40dB。

第二个问题是输入端驱动能力不足。光电二极管的前置放大器输出阻抗比较高,大概在几十千欧量级,而ADC的输入开关电容在每个采样周期都需要充电,导致输入端电压建立不完全。解决方案是在前置放大器和ADC之间加了一个单位增益缓冲器,用低功耗运放实现,功耗只有几微安,但输入阻抗提高到了兆欧级别。

第三个问题是数字滤波器的配置。我一开始用的是三阶Sinc滤波器,抽取率256,建立时间大概在10毫秒左右。但心率信号的通道切换频率比较高,每5毫秒切换一次,导致滤波器还没稳定就切换了,输出数据不可用。后来把Sinc滤波器降到二阶,抽取率降到128,建立时间缩短到2.5毫秒,精度只损失了不到1位,但通道切换的问题解决了。

解决这三个问题之后,重新测试,有效位数达到了15.8位,整体功耗在180微安左右,基本达到了设计目标。这个项目给我的教训是:Sigma-Delta ADC的精度不是靠一颗芯片就能保证的,电源、输入驱动、数字滤波器配置,每一个环节都可能成为瓶颈。

6. 写在最后的一些个人体会

Sigma-Delta ADC在低功耗场景下的优势,本质上是用数字电路的复杂度换取了模拟电路的简单性。在先进工艺下,数字电路的面积和功耗越来越便宜,而模拟电路的性能提升越来越难,这个交换变得越来越划算。但交换是有代价的:你需要理解噪声整形的原理,需要会配置数字滤波器,需要处理好电源和输入端的细节。这些知识在数据手册里往往只有寥寥几页,真正的经验得靠一个个项目积累。

我个人的习惯是,在选型阶段就把整个信号链的噪声预算和功耗预算算清楚,不要等到硬件回来才发现问题。噪声预算要从传感器开始算,包括传感器的输出噪声、前置放大器的噪声、ADC的输入参考噪声、电源噪声的耦合。功耗预算要把每一个模块的功耗都列出来,包括ADC、运放、参考电压源、数字接口、MCU的处理功耗。这两个预算算清楚了,方案的成功率会高很多。

另外,Sigma-Delta ADC的调试工具很重要。如果芯片支持输出原始码流,一定要把原始码流抓出来做FFT分析,看看噪声频谱的形状是否符合预期。如果噪声频谱在低频段有隆起,说明调制器可能不稳定;如果高频段噪声比预期高,说明数字滤波器的抑制不够。这些信息比单纯看输出数据的标准差有用得多。

最后说一个容易被忽视的点:Sigma-Delta ADC的精度标定。很多应用场景下,ADC的绝对精度比分辨率更重要。比如心率检测,你不仅需要检测到心跳的波形,还需要准确测量心率值。如果ADC的增益误差或偏移误差太大,心率计算的准确性会受影响。所以量产前一定要做校准,至少做两点校准(零点和满量程),有条件的做多点校准。校准系数存在MCU的Flash里,每次上电时加载。这个步骤看起来简单,但能显著提升产品的实际性能。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询