问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

理解ADC:为什么量化噪声也会产生谐波?附带介绍 Dither(抖动)

创作时间:
作者:
@小白创作中心

理解ADC:为什么量化噪声也会产生谐波?附带介绍 Dither(抖动)

引用
1
来源
1.
http://crazyamp.com/post/adc/why-quantization-noise-causes-harmonics/

在数字信号处理领域,ADC(模数转换器)是将模拟信号转换为数字信号的关键组件。然而,在这个转换过程中,量化噪声的产生是一个不可避免的问题。本文将深入探讨量化噪声与输入信号相关性导致谐波产生的原理,并介绍如何通过Dither(抖动)技术来改善信号质量。

前言

让我们从ADI的经典文献《MT-001》开始讨论。通常情况下,量化噪声被视为白噪声,但如果量化噪声与输入信号之间存在相关性,就不能简单地将其视为白噪声。

举一个具体的例子:假设理想ADC的采样频率为80 MHz,输入信号频率分别为2 MHz和2.111 MHz。这两种情况下,量化噪声的FFT频谱图有何不同?


图1 量化噪声FFT频谱图:(A) 输入信号为2 MHz;(B) 输入信号为2.111 MHz;[1]

从图1中可以看到,当输入信号为2 MHz时(图A),量化噪声中出现了明显的谐波,且FFT底噪较低;而当输入信号为2.111 MHz时(图B),没有明显的谐波,但FFT底噪较高。

文中提到,两种情况下理想ADC的SNR都是74 dBc(噪声总能量相同),但SFDR(无寄生动态范围)却有很大差异:图A中SFDR为77 dBc,图B中SFDR为92 dBc。

原因在于,当采样时钟与信号存在谐波关系时,量化噪声会变得相关,能量集中在信号的谐波上。虽然RMS值保持在q/√12左右,但这种相关性会导致谐波的产生。

为什么量化噪声会产生谐波?

可以将ADC视为一种非线性设备,它将连续的输入信号转换为离散的量化信号。例如:


图2 ADC量化信号与量化噪声[2]

量化信号与输入信号之间的差异就是量化噪声。

如果采样时钟频率是输入信号的整数倍(如80 MHz采样2 MHz的正弦波),每个周期内的采样点数相同,且这些样本值在不同周期间重复出现。这种周期性与输入信号相关,导致量化噪声也呈现周期性。

反之,如果采样时钟频率不是输入信号的整数倍(如80 MHz采样2.111 MHz的正弦波),每个周期内的采样位置不同,样本值的集合更加丰富。这种情况下,量化噪声相对随机,与输入信号不相关。

为什么只有奇数谐波?

观察图1(A)中的量化噪声频谱,可以发现只有输入信号的奇数谐波(如3rd、5th、7th等)。

回顾傅里叶变换的基本原理:


图3 FFT奇数谐波对应的信号[3]


图4 FFT偶数谐波对应的信号[3]

如果信号在正半周期与负半周期是对称的,频谱上只有奇数谐波;如果正负半周期不对称,则会有偶数谐波。图1(A)中的量化噪声属于前者的情况。

如何模拟量化噪声?

通过Python可以模拟量化噪声的过程:

signal = np.sin(2 * np.pi * f0 * t)  # 原始输入信号
quantized = quantize(signal, threshold)  # 量化信号
qnoise = quantized - signal  # 量化噪声

模拟结果如下:


图5 Python模拟的量化噪声[4]

图中,蓝色是原始输入信号,红色是量化后信号(2 bit量化),绿色是量化噪声。

但在实际开发中,我们是对ADC之后的量化信号做FFT,也就是对上图的红色信号直接做FFT,那么想象一下其频谱图会是什么样?

如何破除相关性 —— Dither(抖动)

为了避免图1(A)中的情况,现代化ADC内部通常具有Dither功能。这是一种对信号施加抖动的技术,可以破除量化噪声的相关性,虽然会略微增加底噪,但可以显著改善SFDR。

例如,LTC2208 ADC的内部Dither对SFDR的提升效果:


图6 LTC2208 ADC内部Dither对SFDR的提升[5]

小结

本文从ADI《MT-001》的例子出发,解释了当量化噪声与输入信号具有周期相关性时会产生谐波,通过Dither可以破除相关性,提升SFDR。

ADI的MT系列文档非常经典,值得深入研究。作者Walt Kester在ADI工作了47年,其著作全集可以在相关网站查阅。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号