[麦麦茶水间] 【每周分享】ADC芯片的有效位数和无噪声位数的区别

[复制链接]
704|1
dffzh 发表于 2025-9-18 14:47 | 显示全部楼层 |阅读模式
, , , ,
本帖最后由 dffzh 于 2025-9-22 08:58 编辑

@21小跑堂

很多高精度的24位以上分辨率的ADC芯片(比如TI的ADS1262,ADI的AD7191,HCT的HCT6805等等),其性能参数中的有效位数(ENOB,Effective Number of Bits)无噪声位数(NFB,Noise Free Bits)是衡量ADC芯片的实际分辨率的重要指标,两者的实际含义和侧重点也是不一样的,我们详细说说。
1.ENOB(Effective Number of Bits,有效位数)
ENOB表示ADC芯片在实际工作条件下(包含噪声和非线性失真)能够提供的有效分辨率。由于实际ADC存在噪声、谐波失真和非线性误差等因素,其性能会低于理想的理论位数(也就是数据手册标称的分辨率,比如32位)。
ENOB通常通过信噪比(SNR,Signal-to-Noise Ratio)计算得出,比如:
ENOB = (SNR-1.68)/ 6.00;
其中:
SNR是信号功率与噪声功率的比值(单位dB);
1.68 dB是理想ADC的量化噪声理论值;
6.00 dB对应1个有效位的分辨率提升。
比如TI的ADS1262芯片,查看数据手册,其ENOB通常与采样率,滤波器模式和增益配置有关,如下图来源于数据手册:
一般情况下,在高采样率或更宽带宽下,由于输入噪声增加,ENOB往往会降低。
再比如HCT的HCT6805芯片:
综上,ENOB反映了ADC的实际可用分辨率。例如,若ENOB=19位,意味着ADC的实际精度相当于一个理想19位ADC的性能,在使用的时候,代码上就可以对采集的ADC数据进行预处理再计算实际的输入电压:
  1. valid_data_NFB = temp_average &0xFFFFFE000;
  2. actual_vol_NFB=valid_data_NFB *INTERNAL_ADC_REF_VOLTAGE / (ADC1_FSR * ADC1_PGA_GAIN);

2. NFB(Noise Free Bits,无噪声位数)
NFB表示ADC输出码中完全不受噪声波动影响的位数,它通常通过峰峰值噪声(Noise Peak-to-Peak)进行计算,比如:
NFB = log2(FSR / Noisep-p);
其中:
FSR,即Full Scale Range,是ADC芯片的满量程输入范围(如±2.5V)。
Noisep-p是在特定条件下测得的峰峰值噪声(通常通过统计或观察输出码的波动范围获得)。
比如ADS1262芯片的NFB,在数据手册中一般是直接给出相应寄存器配置下的NFB值,例如如果峰峰值噪声为1uV,满量程为5V,则:
NFB = log2(5 / 0.000001),大概是22.3位。
在数据手册上其实也可以查到噪声电压值,如下图所示:
综上,NFB表示输出码中稳定不变的部分,是系统能够可靠分辨的最小信号变化的指标,它通常比ENOB更低(因为ENOB包含统计噪声,而NFB是考虑最坏情况下的峰峰值噪声)。

以下通过表格列出ENOB和EFB的关键区别:
  
参数
  
ENOB
NFB
计算依据
基于RMS噪声(统计平均)
基于峰峰值噪声(最坏情况)
物理意义
实际可用的动态分辨率
输出码中绝对无波动的位数
数值关系
ENOB ≥ NFB
NFB ≤ ENOB
应用场景
动态性能(如信号频谱分析)
静态精度(如直流测量)
所以,对应这类高精度ADC芯片的应用,给出一些参考建议:
高精度直流测量(如称重、温度检测):关注NFB,确保微小信号不被噪声淹没;
动态信号采集(如振动分析):关注ENOB和SNR,优化信号带宽和滤波设置;
数据手册查阅:查看不同采样率、滤波器配置下的ENOB和噪声曲线,以权衡速度与精度。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| dffzh 发表于 2025-9-22 09:00 | 显示全部楼层
本帖最后由 dffzh 于 2025-9-22 09:03 编辑

@21小跑堂,申请原创!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1393

帖子

23

粉丝
快速回复 在线客服 返回列表 返回顶部