4、读出噪声(Read Noise):高斯分布建模,相关双采样(CDS)原理,ADC量化噪声

读出噪声,说白了就是传感器在“读”这个动作里自己产生的底噪。它不像光子散粒噪声那样跟信号挂钩,而是电路本身固有的。你信号再弱,它也在那;你盖上镜头盖,它依然存在。我刚开始调图像质量时,最头疼的就是这个噪声——因为它藏得深,改起来又牵一发动全身。

4.1 读出噪声的物理来源

读出噪声主要来自三个环节:像素内源极跟随器的热噪声、列级放大器(如 PGA)的 1/f 噪声,以及 ADC 量化过程引入的误差。这些噪声叠加在一起,最终在输出端表现为一个近似高斯分布的总噪声。

我个人习惯把读出噪声拆成两部分来看:

  • 模拟域噪声:包括像素复位噪声(kTC 噪声)、源极跟随器沟道热噪声、列放大器宽带噪声。
  • 数字域噪声:主要是 ADC 量化噪声,以及电源/衬底耦合进来的高频干扰。

嗯,这里要注意:kTC 噪声虽然叫“复位噪声”,但它其实是一种热噪声,带宽由复位开关的导通电阻和像素电容决定。公式很简单:Vn² = kT / C。你想想看,像素电容越大,噪声越小,但转换增益也会下降——这就是个典型的 trade-off。

4.2 高斯分布建模

读出噪声的幅度分布,在大多数 CMOS 传感器中都可以用高斯分布来近似。为什么?因为它是多个独立随机过程的总和,中心极限定理说了算。

我曾在项目中遇到过一款传感器,读出噪声在低增益下表现正常,但一切换到高增益(比如 16x 以上),直方图尾部就出现非对称拖尾。查到最后发现是列放大器偏置电流不足,导致大信号摆幅下线性度恶化,噪声分布偏离了高斯模型。所以,高斯建模是基础,但别迷信它。

读出噪声高斯模型关键参数:

  • 均值 μ:通常接近 0(无偏置),但实际会有固定偏移,需做黑电平校准。
  • 标准差 σ:即读出噪声的 RMS 值,单位常用 e⁻(电子数)或 DN(数字码)。
  • 概率密度函数:p(x) = (1 / (σ√(2π))) · exp(-(x-μ)² / (2σ²))

实际测量时,我们通常取暗场(无光照)下多帧数据的像素值,计算其标准差作为读出噪声的估计值。但要注意:暗场里还包含暗电流散粒噪声和固定模式噪声(FPN),需要做帧差法或双采样来分离。

4.3 相关双采样(CDS)原理

相关双采样,英文叫 Correlated Double Sampling,简称 CDS。它是 CMOS 图像传感器里最经典的降噪技术之一,专门对付复位噪声和 1/f 噪声。

原理其实很简单:对同一个像素做两次采样——一次在复位后(采样复位电平),一次在电荷转移后(采样信号电平)。然后做差,把两次采样中共模的噪声分量抵消掉。

为什么会有效?因为复位噪声和 1/f 噪声在时间上是低频相关的。两次采样间隔足够短(通常几微秒),噪声幅度变化不大,相减后大部分被消除。我刚开始做 ISP 时,总觉得 CDS 是硬件的事,后来调暗光噪声才发现,如果 CDS 时序没配好,残留噪声会直接吃掉低照度下的动态范围。

CDS 实现方式对比:

方式 采样点 优点 缺点
模拟 CDS 像素内或列级 带宽高,噪声抑制好 需要额外电容/开关,面积大
数字 CDS ADC 之后 实现灵活,面积小 受 ADC 噪声影响,延迟大
差分 CDS 列级差分路径 共模抑制比高 功耗较高

我曾经调过一款全局快门传感器,它的 CDS 时序跟卷帘快门完全不同——因为全局快门需要同时复位所有像素,再同时读出。如果 CDS 的两次采样间隔没对准像素的电荷转移窗口,残留噪声能高出 3~5 倍。嗯,那段时间我几乎天天盯着示波器看时序波形。

4.4 ADC 量化噪声

ADC 量化噪声,是模拟信号转数字时必然产生的误差。理想情况下,量化噪声的 RMS 值为 LSB / √12,其中 LSB 是 ADC 的最低有效位对应的电压。

举个例子:一个 10-bit ADC,满量程 1V,LSB ≈ 0.977 mV。那么量化噪声 RMS ≈ 0.977 / √12 ≈ 0.282 mV。如果传感器转换增益是 100 μV/e⁻,这个量化噪声等效为 2.82 e⁻。你想想看,如果读出噪声本身只有 3 e⁻,那 ADC 量化噪声就占了将近一半——这时候提升 ADC 位数或降低 LSB 电压就很有必要了。

避坑指南:我曾经遇到过一个项目,ADC 量化噪声在常温下没问题,但高温时 ADC 的 INL(积分非线性)恶化,量化噪声分布从均匀分布变成了带谐波的复杂分布。结果暗场图像上出现规律的条纹噪声,怎么调 CDS 都去不掉。最后发现是 ADC 参考电压的温度系数没补偿好。

量化噪声的分布,理想情况下是均匀分布(幅度在 ±0.5 LSB 之间)。但实际 ADC 存在 DNL(微分非线性)和 INL 误差,量化台阶不均匀,噪声分布会偏离均匀模型。我建议在评估 ADC 对读出噪声的贡献时,不要只看理论值,一定要测实际 DNL 曲线。

4.5 读出噪声的链路预算

整个读出链路的噪声,可以近似为各环节噪声的方和根(RSS)。我习惯用下面这个表格来做预算:

噪声源 典型值(e⁻ RMS) 备注
像素复位噪声(kTC) 2~5 CDS 后可降至 0.5~1
源极跟随器热噪声 1~3 与带宽和偏置电流相关
列放大器噪声 1~4 高增益下更明显
ADC 量化噪声 0.5~3 取决于位数和 LSB
总读出噪声(典型) 2~8 高端传感器可做到 <2

做链路预算时,我通常会留 20% 的余量。因为实际 PCB 布局、电源纹波、温度漂移都会让噪声比理论值高一点。你想想看,如果预算刚好卡在指标边缘,量产时良率一定会给你颜色看。

4.6 本章知识结构图

下面这张图把读出噪声的组成、建模方法、CDS 原理和 ADC 量化噪声的关系串起来了:

读出噪声知识结构图 读出噪声知识结构 读出噪声(Read Noise) 高斯分布建模 相关双采样(CDS) ADC量化噪声 均值 μ ≈ 0 标准差 σ(RMS 值) 暗场帧差法测量 复位电平采样 信号电平采样 相减抵消共模噪声 理想 RMS = LSB/√12 实际受 DNL/INL 影响 高温下 INL 恶化 链路预算:方和根(RSS)叠加 总读出噪声 = √(kTC² + SF² + PGA² + ADC²) ,典型值 2~8 e⁻ RMS 高端传感器通过 CDS + 低噪声 ADC 可做到 < 2 e⁻ RMS

4.7 小结与个人经验

读出噪声的调优,我总结了三句话:

  1. 先测准,再调优——不要上来就改寄存器。先做暗场帧差,把读出噪声的 RMS 值和分布形态摸清楚。
  2. CDS 是基础,但不是万能——它对付复位噪声和 1/f 噪声很有效,但对 ADC 量化噪声和电源耦合噪声无能为力。
  3. 链路预算要留余量——我见过太多项目因为噪声预算卡太紧,量产时温度一高就超标。留 20% 的余量,睡得更安稳。

嗯,这一章的内容就到这里。读出噪声是图像质量的基础指标之一,理解它的来源和建模方法,后面调暗光噪声、动态范围、信噪比的时候会顺手很多。