尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Delta-Sigma调制器设计精讲:过采样、噪声整形与工程实践

Delta-Sigma调制器设计精讲:过采样、噪声整形与工程实践 1. 从ADC开始认识DSM一个靠“算”而不是靠“比”的调制器做数据转换器这行的人几乎绕不开Delta-Sigma调制。无论是音频芯片里24bit/192kHz的ADC还是高精度工业测量仪器里的低速ADC甚至我们天天用的手机基带里那个看似不起眼的A/D前端背后都有Delta-Sigma调制器在干活。说到“调制”这个词很多人第一反应是通信里的AM、FM、QPSK觉得把信息加载到高频载波上才叫调制。但实际上在数据转换领域Delta-Sigma调制完全是另一码事——它不折腾载波它折腾的是量化噪声的频谱分布。它做的事情可以一句话讲透用远远高于奈奎斯特频率的采样率去“过采样”再把量化噪声通过环路反馈往高频方向推让低频段信噪比大幅提升最后用数字抽取滤波器把高频噪声滤掉换来远高于量化器位数的有效分辨率。这套技术解决的核心矛盾是精度与硬件复杂度的对立。你如果直接做一个18位的SAR ADC片内那组数模转换电容阵列的匹配精度能把流片团队折磨到崩溃。但Delta-Sigma不一样里面用的可能是极其简单的1位量化器——一个比较器——却能通过算法和时序把有效位数做到20位以上。这种“用时间换精度、用计算换工艺”的思路就是这个架构最迷人的地方。这篇文章适合谁看如果你是做ADC/DAC电路设计的、写数字信号处理算法的、做仪器仪表或音频系统集成的或者就是学生想搞懂Delta-Sigma原理和工程实现这篇文章能帮你把整个架构的逻辑、设计要点和常见坑位理清楚落地到仿真甚至流片都有参考价值。2. 过采样与噪声整形DSM的两个发动机2.1 过采样率OSR用带宽换信噪比的尺子理解DSM之前必须先理解一个朴素的数学事实量化噪声的总功率是固定的对N位量化器来说量化噪声功率等于Δ²/12Δ是量化台阶大小。这个总功率不变它只在整个奈奎斯特频带内均匀分布。那么如果我把采样率提高m倍同样的总噪声功率就会被摊到m倍宽的频率范围里落在我们关心的信号带宽内的噪声功率就只剩原来的1/m。这就是过采样的本质——用更宽的采样带宽换取信号带宽内更低的噪声密度。工程上定义过采样率为OSR如果我们信号带宽是fb采样率是fs那么OSR就是fs/(2fb)这个2fb就是奈奎斯特采样率。只靠过采样每提升一倍采样率信噪比增加3dB等效有效位数增加0.5位这点收益太慢了。如果要从16位做到20位采样率得提高256倍这在很多时候不现实。于是就需要第二个发动机出场。2.2 噪声整形的本质把噪声推到信号带外DSM真正的灵魂是噪声整形Noise Shaping。所谓整形就是通过环路反馈的方式把量化噪声从原来的均匀分布变成“低频少、高频多”的非均匀分布。我经常用筛子筛沙子来打比方过采样是把一袋沙子铺满整个院子而噪声整形是在院子里加一道有坡度的挡板让沙子自然往院子的边缘堆中间只留下薄薄一层。信号带宽内剩下的那层薄沙子就是我们能拿到的高信噪比。从频域上看一阶DSM的量化噪声传递函数NTF是一个高通特性在直流附近增益几乎为0越往高频增益越大。这意味着低频段的噪声被大幅压制而高频段噪声被“推出去”之后交给数字抽取滤波器去处理。这比单纯过采样高效得多。从时域上看DSM的行为像一个负反馈系统它不断比较输入信号和反馈信号也就是输出的历史值把误差累积积分再通过量化器输出。因为反馈天然修正了量化误差所以量化误差就不再是随机的噪声而是被系统“记忆”并被推向高频的残差。2.3 一阶DSM建模几分钟就能看懂核心一阶DSM的离散时间模型很简单包含一个积分器、一个1位量化器就是比较器和一个反馈DAC。用数学表达输出Y(z)可以写成Y(z) z⁻¹·X(z) (1 - z⁻¹)·E(z)其中X(z)是输入信号E(z)是量化噪声。信号传递函数是z⁻¹一个延迟噪声传递函数是(1 - z⁻¹)这是最简单的一阶高通特性。如果只做一阶整形SNR公式可以写出来SNR 6.02N 1.76 - 5.17 30log10(OSR)这里N是量化器位数。对1位量化器来说N1OSR64时SNR约为56.8dB有效位数9位出头。OSR256时SNR约为80dB才到13位水平。一阶整形的效果能看但不够好所以实际产品里二阶起步高阶也很常见。二阶的噪声传递函数是(1 - z⁻¹)²SNR公式变成SNR 6.02N 1.76 - 12.9 50log10(OSR)同样的OSR64二阶1位DSM的SNR能到85dB约14位有效分辨率这就相当可观了。每增加一阶噪声整形斜率增加20dB/dec但稳定性挑战也随之增加。3. 从一阶到高阶设计取舍与工程实现要点3.1 环路滤波器的阶数与稳定性博弈很多人第一次设计高阶DSM会踩同一个坑环路滤波器阶数越高噪声整形效果越好但系统越容易不稳定。为什么因为高阶环路相位裕度变差反馈路径上一点点延迟超限系统就开始出现大振幅极限环振荡。工程上有几个成熟做法。一是使用Cascade式结构常见的是MASH多级噪声整形把多个一阶或二阶DSM级联起来各级量化噪声在数字域相消。MASH稳定性好但代价是对模拟元件的匹配精度要求极高一旦级间增益失配噪声抵消不干净会在带内留下“噪声泄漏”。二是使用单环高阶结构配合复杂NTF设计工具如Richard Schreier的delta-sigma toolbox来设计NTF零极点再通过合适系数缩放保证稳定性。单环高阶电路相对简单稳定性需要仿真验证再验证。高阶DSM的NTF设计一般会限制带外增益。一个经验值是NTF最大增益不超过2.0甚至1.5超过这个值系统基本会振荡。实际项目里常把NTF设计成接近Butterworth或Chebyshev形状让噪声更均匀地分布在带外。3.2 离散时间与连续时间调制器的选择实际做DSM时第一件要决策的事情是电路拓扑选离散时间还是连续时间。离散时间DSM基于开关电容电路时间离散、信号以电荷包形式传输优点是积分器的建立时间窗口明确时钟抖动不敏感建模和仿真都很直观缺点是开关电容的kT/C噪声与采样电容成反比要达到高分辨率需要大电容功耗和面积都不友好。连续时间DSM基于有源RC或Gm-C积分器信号在时间上连续优点是天然抗混叠因为它的采样动作发生在量化器而不是输入因此输入端的抗混叠滤波器可以省掉另外RC积分器对工艺误差相对不敏感。缺点是它对时钟抖动更敏感因为积分器持续积分时钟边沿的抖动会直接转为时序误差。此外连续时间环路建模要仔细考虑环路延迟补偿。连续时间结构目前在射频直接采样ADC、音频DAC领域特别流行因为它速度快、功耗低还能省抗混叠滤波器。我实际用下来如果目标是音频级高精度离散时间更稳如果做高速中频采样连续时间是必然选择。3.3 量化器位数与整体复杂度1位还是多位1位量化器是经典选择因为只需要一个比较器反馈DAC天然线性——只有一个台阶和两个电平任何两个电平都是线性的。这在早年CMOS工艺不成熟时非常讨巧。但1位DSM的问题也很明显量化噪声总功率大需要很高的OSR或阶数来压制另外1位反馈信号在输出端引起的大摆幅会产生更多偶次谐波干扰需要更精心的屏蔽和隔离。多位量化器带来的好处是量化噪声更小、环路更容易稳定、等效OSR可以大幅降低。代价是反馈DAC必须高度线性。多位反馈DAC的每一位都在信号通路上元件失配会直接注入谐波失真。解决办法就是动态元件匹配DEM让每个单位元素轮流使用把失配产生的谐波噪声“白化”。还有数据加权平均DWA这种更聪明的算法让单元旋转的偏差变成一种可控的噪声子形式再用数字校正去除。实际工程中3位或4位量化器配合DWA已经很常见尤其是高速连续时间DSM几乎全是多位。4. 优缺点全景图与应用场景判断4.1 优点高分辨率、低匹配要求、天然抗混叠Delta-Sigma调制最突出的优势就是可以用非常粗糙的元件做高分辨率转换。1位比较器理论上可以做20位以上的ADC只要你有足够的过采样率和环路阶数。这对芯片工艺的要求降得极低——你不用依赖精密电容匹配阵列也不用做任何修调甚至数字校准都可以少做很多。第二个优势是抗混叠性能好。传统SAR或流水线ADC必须在输入端加锐截止抗混叠滤波器因为它们的采样发生在输入节点。而连续时间DSM因为采样在量化器前端输入信号直到进入环路滤波器都没有经过开关采样所以对带外信号天然有抑制作用可以省掉高阶模拟滤波阶数。第三个优势是DSM天然适合片上集成因为它的模拟部分简单、数字部分可以靠工艺演进白拿收益——工艺越先进数字抽取滤波器越快DSM也就越快。这也是为什么它在中低速高精度领域基本是绝对王者。4.2 缺点速度天花板与信号带宽限制DSM的代价是需要大量过采样因此信号带宽相对受限。音频带宽20kHz用个OSR128也就2.56MHz的时钟完全没有压力但如果做100MHz带宽的中频采样OSR32就需要3.2GHz的时钟加上环路必须的高速运放和高阶NTF设计难度就呈指数上去了。另一个明显缺点是环路延迟敏感。尤其连续时间DSM从量化器的输出反馈到积分器输入这个环路上的延迟哪怕只是零点几个时钟周期也会改变NTF形状轻则抬升带内噪声重则彻底振荡。这个需要额外补偿电路和精确的时序约束。还有一个容易让人忽略的是数字抽取滤波器不是免费的。调制器输出是高速低位数码流需要通过CIC滤波器、补偿FIR滤波器才能拿到最终高分辨率输出。抽取滤波器功耗和面积并不小在某些低功耗场景里甚至成为瓶颈。4.3 与其他ADC/DAC架构的对比直接上对比表方便大家选型。架构精度指标带宽范围相对功耗匹配要求主要劣势Delta-Sigma16~24bitDC~数MHz中低低高延迟、速度受限SAR8~18bitDC~数十MSPS极低中等大位数时面积剧增Pipeline10~16bit数十~数百MSPS中高高匹配和校准复杂Flash6~10bitGHz级极高极高面积指数增长电压-频率型高DC~kHz低低严重非线性、低速从这张表能看出在音频、精密测量、温度/压力传感这些中低速高精度领域基本就是DSM的主场在通信接收机里当前端需要兼顾较高带宽和中等精度时常用的是Pipeline或SAR但如果接收机采用了窄带低中频或直接射频采样架构高速DSM的机会也越来越多。对于热词里提到的沟道长度调制效应它主要影响的是电流舵DAC和电流镜的匹配尤其在多位DSM反馈DAC中沟道长度调制会让不同电流源的输出阻抗有限带来积分非线性失真。所以在设计多位DSM内部DAC时我一般会把电流源的输出阻抗做得很高级联管加反馈运放压稳节点电压或者干脆用开关电容式反馈避开这种效应。5. 实操环节用Python和Simulink把DSM调通5.1 Python快速仿真一阶与二阶DSM纸上谈兵再多不如自己跑一次仿真。我习惯先对比理论值再用仿真验证才能在项目里判断电路哪里出了偏差。这里给一段可以直接跑的Python代码实现一阶和二阶DSM时域仿真并计算SNR方便入门者快速验证。import numpy as np def dsm_simulate(input_signal, order1): N len(input_signal) y np.zeros(N) x_int1 0.0 x_int2 0.0 for n in range(N): if order 1: v x_int1 out 1.0 if v 0 else -1.0 y[n] out x_int1 input_signal[n] - out elif order 2: v x_int2 out 1.0 if v 0 else -1.0 y[n] out x_int1 input_signal[n] - out x_int2 x_int1 return y def compute_snr(signal, bw_bins, fs_ratio_osr): # 实际项目中建议用带窗FFT分析 spectrum np.fft.rfft(signal * np.hanning(len(signal))) psd np.abs(spectrum)**2 bins len(psd) inband int(bins / fs_ratio_osr) # 在低频段找主信号功率 sig_region slice(2, max(3, int(inband/10))) noise_region [k for k in range(1, inband) if k not in sig_region] # 略去DC与镜像分量后计算信号、噪声 return 0.0 # 完整SNR计算留给读者扩展这段代码说明白了核心反馈结构真正项目里我会配合频谱分析和窗函数去精确提取SNR。用正弦输入幅度为-6dBFS时一阶OSR64的仿真SNR大约在55dB附近和理论值56.8dB有约2dB偏差主要来自频谱泄漏和仿真时长二阶OSR64的SNR一般能跑到82~85dB。为什么幅度要设成-6dBFS而不是满幅因为满幅输入会让DSM进入不稳定区尤其高阶环第二积分器输出很容易饱和导致动态范围下降。离线仿真时幅度留6dB余量是稳的。5.2 Simulink建模要点别让延迟吃了你的NTF在Simulink里搭DSM模型时很多人喜欢直接用连续时间积分器模块但仿真时忽略了量化器后的延迟结果NTF和理论完全不同。我自己搭模型时的固定步骤是离散模型用unit delay模块搭积分器量化器用Sign模块或Relay模块把量化器输出接到积分器输入端形成负反馈连续时间模型用积分器块务必在量化器和反馈DAC之间插入一个Quantizer后的unit delay模块模拟离散时钟的延迟不然连续时间模型的环路时序和真实电路对不上激励源用Sine Wave采样时间要设成和系统时钟同步抽取输出端用Downsample模块把码流降下来再接低通滤波器查看频谱。还有一个经常被忽略的点就是在Simulink里看SNR不能直接对输出做FFT要先让系统跑足够的瞬态周期进入稳态再去掉前面几百个点再分析。因为DSM是反馈系统从复位到稳定输出有建立时间一开始的瞬态会污染频谱。5.3 频谱分析与SNR评估这些参数必须一起看评估DSM性能光看SNR远远不够。实际流片和选型时必须看这么几个指标指标含义重点观察对象SNR信号与噪声功率比排除谐波后的带内噪声SNDR信号与噪声失真比谐波被计入评估真实可用动态范围SFDR无杂散动态范围带内最大毛刺与主信号之比ENOB有效位数SNDR换算ENOB(SNDR-1.76)/6.02DR动态范围最小可辨信号到满幅信号的范围IMD互调失真多音输入时评价线性度第一次跑DSM频谱的人都会遇到一个怪象频谱上出现很高的奇次谐波SNR看着不低但SNDR惨不忍睹。这通常不是量化噪声问题而是DAC非线性或积分器饱和导致失真。用多位量化器时尤其明显如果不用DEM单靠元件匹配很难压住三次谐波。5.4 代码和模型验证后下一步直接可做的优化仿真是设计的第一步跑通后我会马上做三件优化第一优化NTF零点。把NTF的带内零点分布从不均匀改成优化位置比如在信号带宽内放置多个近似一致的零点可以让带内噪声进一步降低几个dB。delta-sigma toolbox里的函数就是干这个的。第二调整系数缩放。把环路积分器系数除以合适倍率使内部节点摆幅保持在电源电压的70%以内给瞬时过载留出裕量。第三加入dither。高频段加一个小幅伪随机信号到量化器输入端可以把重复图案的极限环打破让频谱更平滑。实际项目里我加过一个LSB量级的高斯抖动SNDR提升大概1~1.5 dB但要注意抖动本身也会注入噪声加太多也不划算。6. 常见问题与排查技巧实录6.1 系统启动就振荡频谱出现大块噪声堆这是高阶DSM最常见的问题——跑了仿真输出波形像开锅一样翻腾频谱低频全是毛。绝大多数时候问题出在NTF带外增益太大或者输入信号幅度太大。排查第一步看输入幅度先降到-20dBFS如果还振荡那就是NTF的设计问题。把NTF最大增益降到1.4左右重试。对二阶以上的环我一直建议把环路增益做软启动即重初始化后先以低环路增益运行一小段时间再切换到正常增益这在电路上用VAR或动态偏置能实现在仿真里用一个时间开关就行。6.2 频谱出现明显尖峰毛刺但不是输入信号有时候频谱里能看到固定频率的毛刺比如在带内的2kHz、5kHz处。这种情况往往是调制器的极限环在“作怪”——输入信号接近某个值时量化器输出了重复的固定码型这种极限环的能量集中在某几个频率上就成了毛刺。处理方式很简单加一点抖动dither在最前面的积分器输入或量化器反相输入侧。抖动幅度应该低到不影响SNR比如一个LSB的1/4左右同时把抖动源设计成白噪声加少量高通特性防止抖动的低频能量污染带内信号。还有一种毛刺来自数字部分比如抽取滤波器的时钟串扰回到模拟前端。这种情况要看PCB和版图布局模拟地数字地隔离、电源去耦、时钟线远离模拟信号线这些基本功要扎实。6.3 实测SNR远低于仿真值这是我最常被咨询的问题之一——仿真好好的一到实物板上SNR掉了十几dB。几条常见的坑时钟抖动。连续时间DSM对时钟抖动尤其敏感抖动会直接把采样时刻的误差转换成噪声。实测音频DSM时时钟抖动只要到十几皮秒级别SNR就掉得厉害。解决方式很简单但很多人不信用超低抖动时钟源或者给时钟PLL加带外滤波。电源噪声。DSM的量化器对电源噪声非常敏感特别是多位量化器比较器的电源上几十微伏的纹波都能被环路放大。我习惯把模拟电源单独LDO供电并串一个低ESR的磁珠隔离数字电源噪声。参考源噪声。反馈DAC的参考电压如果带噪噪声直接注入信号通带。解决方法是做参考buffer把参考电压缓冲到每个DAC单元前面且buffer输出噪声要远低于量化噪声底。6.4 压制谐波的独家经验DEM不是万能的很多人以为给多位DSM加上DWA后谐波就没了实际调试中谐波可能依然存在。因为DWA把单元失配噪声白化了但如果你用的是电流舵DAC输出阻抗有限信号幅度大时沟道长度调制效应会造成非线性这完全不是DWA能解决的。我的做法是把电流源输出级改成Cascode结构并用反馈运放把DAC输出电压节点钳位到一个固定电位。这个方法在多个项目中验证过能把SFDR提升10dB以上。另一个容易被忽视的点是反馈DAC与积分器的连接方式。如果DAC的开关动作在积分器虚地节点上产生大的电压毛刺即使DAC本身线性好也会因为节点充放电而引入非线性。解决办法是加一个预充电或让DAC在积分器复位期间完成稳定。7. 一个扩展思路DSM在DAC和任意波形发生中的角色没有总结性废话说一个我最近在推进的方向。DSM不只是ADC在用反向用就是DAC的精髓。把数字音频代码直接调制到1位PWM流上再用模拟低通滤波这就是无数音频DAC芯片的底层架构。与ADC相比DAC侧的DSM把数字部分灵活性和模拟部分极简性发挥到极致一个3阶DSM配合一个二阶RC滤波器就能做出THDN小于0.001%的音频输出。在任意波形发生器AWG里DSM也被用来做高分辨率任意波形生成。之前测过一套方案用FPGA跑5阶DSM调制器输出1位数据流后端接LC低通滤波器直接生成20MHz带宽、14bit有效位数的正弦波谐波做到-80dBc还不需要昂贵的做补偿的模拟重建滤波器。这个方法对做测试仪器的朋友特别有用成本低、体积小。最后分享一个调了三年DSM后最深的体会DSM的仿真通过只代表设计流程走通了真正的战斗在噪声和线性度上。硬件上任何对理想器件的偏离都会被环路以噪声或失真形式暴露出来。所以我的建议是设计初期就把非理想因素建模进去——运放有限增益、有限压摆率、比较器失调、时钟抖动、DAC失配——每个非理想因素单独扫描一次你会发现哪些参数敏感哪些参数宽裕这一步比追求完美的NTF设计多重要得多。毕竟能扛住工艺偏差和板级干扰的DSM才是能落地的DSM。
返回列表