基于LMS算法的16位SAR ADC中电容失配数字校正技术研究:Split ADC原理、MAT...
基于lms电容失配数字校正的16bit sar adc的split adc MATLAB可对比校正前后精度原理基于国外论文不支持。 适合进阶学习想要对sar adc数字校正建模有了解的同学可以。SAR ADC设计里最头疼的就是电容失配问题。当工艺跑到16bit精度时哪怕几个fF的误差都能让线性度崩盘。今天咱们聊聊怎么用Split ADC结构配合LMS算法玩转数字校准手把手用MATLAB验证校准效果。先看ADC基础结构。传统SAR的电容阵列一旦出现±3%的随机误差INL直接飙到200LSB开外。这时候Split ADC结构就派上用场了——把主ADC拆成两个子通道ADC1/ADC2每次转换时让它们互为校验对象。具体实现看这段建模代码% 生成5%随机失配的电容阵列 mismatch 0.05; cap_array [1 2 4 8 16].*(1 mismatch*(rand(1,5)-0.5)); % Split ADC工作模式 adc1_output sar_conversion(vin, cap_array); adc2_output sar_conversion(vin, cap_array.*cal_weights); % 带校准权重的副本重点在cal_weights这个校准系数矩阵。理想情况下它应该是全1数组实际需要通过LMS算法动态调整。校准的核心思想可以理解为让两个子ADC的输出差异驱动权重更新直到它们的转换误差统计特性趋同。看看LMS权重更新怎么实现mu 0.001; % 收敛步长 error adc1_output - adc2_output; % 差异信号 % 电容权重更新公式 delta_w mu * error * input_vector; cal_weights cal_weights delta_w;这里input_vector对应比较器决策时的电容状态向量。有意思的是步长参数mu的选择需要反复试错——太大会振荡太小收敛慢。实测中发现当输入信号幅值超过0.7Vref时误差信号的信噪比最适合权重收敛。基于lms电容失配数字校正的16bit sar adc的split adc MATLAB可对比校正前后精度原理基于国外论文不支持。 适合进阶学习想要对sar adc数字校正建模有了解的同学可以。校准效果验证用动态性能对比最直观。跑个8192点的FFT看看% 校准前频谱 [thd_pre, snr_pre] calc_performance(adc_raw_output); % 校准后频谱 [thd_post, snr_post] calc_performance(adc_calibrated_output); fprintf(ENOB从%.1f提升到%.1f位\n,... (snr_pre-1.76)/6.02, (snr_post-1.76)/6.02);实测某次运行结果三次谐波从-78dBc降到-102dBcENOB从13.2位跳到15.6位。不过要注意这种校准对温度变化敏感建议在芯片内置温度传感器触发周期校准。有个坑得特别注意MATLAB建模时如果直接用浮点数运算会掩盖实际电路中的比较器噪声和亚稳态问题。最好在比较器决策环节加入±0.5LSB的随机抖动这样仿真出来的SNDR更接近流片实测值。最后留个思考题当输入信号出现长连0或连1时LMS算法会不会因为缺乏激励而发散试试在输入信号里混入少量dither噪声观察校准系数的稳定性变化。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2461313.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!