在通信系统中使用抖动改进 ADC的SFDR
moboyou 2025-05-14 14:25 31 浏览
在之前的文章中,我们讨论了如何使用抖动来通过打破量化误差和输入信号之间的统计相关性来提高理想量化器的性能。所谓理想,是指 ADC传递函数具有统一的阶跃。换句话说,理想的 ADC 具有零 DNL 误差。这种抖动应用在需要高SFDR 的无线电接收器中尤为重要。
在本文中,我们将讨论抖动的另一个重要应用,即改善现实中的 A/D 转换器的 SFDR,例如 AD6645,它会出现 DNL误差。这种抖动应用在当今需要高 SFDR 的无线电接收器中尤为重要。
ADC 静态和动态线性度
在开始之前,让我们首先快速回顾一下提高 ADC 线性度的主要限制。尽管 ADC 使用不同的架构和电路实现,但它们有两个主要的非线性源:采样保持(S/H) 电路和 ADC 的编码器部分。S/H 非线性部分源于这样一个事实,即它具有有限的转换速率,并且当输入是具有大振幅的高频信号时,可能无法足够快地跟随输入。缺乏表现出足够转换率的 S/H 是许多 ADC 无法提供高于几兆赫信号带宽的高 SFDR 的一个关键原因。这也解释了为什么 S/H 的非线性与频率有关。S/H 在确定 ADC的动态(或 AC)线性度方面起着关键作用。
另一个非线性源是 ADC 编码器部分。对于给定的 ADC 相位,编码器部分主要处理直流信号,因为它位于 S/H 之后。因此,编码器非线性会导致系统的静态(或直流)非线性。理想情况下,非线性成分不会随频率变化。静态非线性的特征在于ADC 传递函数中的DNL 和INL(积分非线性)误差。术语“静态非线性”可能用词不当,因为这种非线性成分不仅影响直流信号,而且在处理交流信号时还会降低线性度。
请注意哪种非线性类型占主导地位!
本文要牢记的另一件重要事情是,对于许多 ADC,S/H 是非线性的主要来源。在这种情况下,谐波失真性能会随着输入接近奈奎斯特频率而迅速下降。如果 S/H 是限制因素,则无法通过外部方式显著改善 ADC 线性度。但是,某些 ADC 专门设计有宽带、高线性度的前端。这使得编码器部分成为非线性的主要来源。对于此类 ADC,我们可以使用抖动技术来改善 ADC SFDR。在研究这种抖动应用之前,让我们仔细看看 ADC 静态传递函数引入的非线性误差。
传递函数非线性——确定性误差
为了更好地理解静态非线性,我们将以图 1 所示的传递函数引入的非线性误差为例进行研究。
图 1. 引入非线性误差的传递函数示例
上图中的红色曲线表示非线性 4 位 ADC,而蓝色曲线表示理想的 4 位响应。如果我们使用上述特性曲线将以 4 MHz 采样的 1.11 kHz 正弦波数字化,我们将获得图 2 中的波形。
图 2.以 4 MHz 采样的数字化 1.11 kHz 正弦波的波形
在图 2 中,绿色曲线显示输入,而蓝色和红色曲线分别是理想和非线性传递函数的输出。通过从红色曲线中减去蓝色曲线,我们可以确定非理想响应引入的非线性误差。这由图 3 中的红色曲线显示。
图 3. 显示非理想响应引入的非线性误差的图。
传递函数非线性引入的误差是确定性误差。这意味着,对于给定的输入电压,误差始终相同。例如,参考图 1,我们观察到 6 LSB(最低有效位)的输入总是导致比理想值高 3 LSB 的输出。这种确定性行为在输入和错误之间建立了相关性。如果输入处于特定频率,我们预计误差在与输入相关的某些特定频率处具有很强的频率分量。
图 3 可以帮助您更好地理解这种情况。在这种情况下,误差波形不完全是周期性的;但是,错误的整体形状似乎会以规律的方式重复出现。即输入信号在一个周期内有两次重复。这表明误差在输入的二次谐波处具有很强的分量。为了更好地形象化这一点,该图还绘制了 2.22 kHz(二次谐波)的正弦波。如您所见,正弦波近似于误差波形整体形状的趋势。
对非线性响应输出进行快速傅里叶变换 (FFT),我们得到图 4 中的频谱,其中仅显示 DC 至 50 kHz 范围。
图 4. 显示从 DC 到 50 kHz 范围内的非线性响应输出
FFT 结果证实二次谐波是非线性响应的主要频率分量。值得一提的是,主要谐波分量的频率取决于 ADC的 INL 形状。对于图 1 所示的非线性(有时称为弓形 INL),二次谐波是主要谐波。对于 S 形 INL,三次谐波是误差的主要频率分量。
打破 ADC 误差与输入之间的相关性
如果我们向输入添加一个相对较大的随机信号,使 ADC 的整体输入以不可预测的方式在ADC 传递函数的不同阶跃之间变化,我们可以在一定程度上减少确定性失真。这个概念如图 5 所示。
图 5. 显示 ADC 传递函数阶跃期间 ADC 输入变化的基本图。图片由Analog Devices提供
添加随机信号(或抖动信号)后,给定的输入并不总是转换为相同的输出电平。因此,即使输入不变,误差也会随时间变化。例如,考虑将 6 LSB 的输入应用于图 1 中的传递函数。如果没有抖动,误差始终为 3 LSB。现在考虑抖动的情况。假设抖动信号偶尔等于 2 LSB。在 2 LSB 处,非线性误差变为零。由于误差在 0 和 3 LSB 之间变化,因此与未抖动情况相比,误差平均值有所降低。这个简单的例子展示了抖动如何消除输入和非线性误差之间的相关性,从而减少确定性失真。抖动通过使转换器的 DNL 误差离域或随机化来实现这一点。
通信系统抖动技术
抖动技术在通信系统中特别有用。对于许多通信应用,输入可以是远低于 ADC 满量程的小信号。这个小信号使用相对少量的 ADC 输出码字。如果这些输出码字表现出较大的 DNL误差,则输出将包含显著的谐波失真。
请注意,对于满量程(或大)信号,DNL 误差在某种程度上是固有平均的。原因是大信号会覆盖 ADC 的所有输出码字。因此,当信号幅度降至低于满量程值 20 dB 时,具有 88 dBFS 满量程 SFDR 的 ADC 可能仅提供 80 dBFS 的 SFDR。在这种情况下,抖动技术可能有助于我们在低信号水平下保持 ADC的 SFDR 性能。应该注意的是,由于输入电平很小,我们可以将抖动信号添加到输入,而不会过度驱动 ADC。
ADC 加入噪声——不是在丢失信息吗?
你可能会问:我们在输入信号中加入比较大的噪声不是丢失了信息吗?答案是信息似乎在时域中丢失了。然而,通过适当选择噪声信号以及信号处理技术,我们可以重建原始信息。一种解决方案是减法式色抖动。在这种情况下,将图 5 中的基本图修改为下图(图 6)。
图 6. 减法式抖动图。图片由Analog Devices提供
在减法方法中,引入输入的噪声以相反的极性添加到输出,从而将系统输出端的净抖动噪声归零。在通信系统中使用的另一种有趣的技术是使用频率内容超出所需信号带宽的窄带噪声。几百 kHz 的小带宽对于抖动信号通常就足够了。带外噪声的两个可能位置是直流附近或略低于奈奎斯特频率(f s /2,其中 f s 是采样频率)。在可用于抖动目的的大多数通信系统中不使用这两个频率区之一。在这种情况下,可以很容易地在输出端滤除抖动。
分析一下我们假设的 ADC
让我们使用图 1 中的传递函数来研究这种技术。为此,我们向该 ADC 应用幅度为 2 LSB 和 DC 值为 7.5 LSB 的 1.11 kHz 正弦波。这样的输入会执行 ADC 的中档代码。从略高于 0 Hz 到 30 kHz 范围的输出频谱如图 7 所示。
图 7. 1.11 kHz 正弦波的另一个示例图,其频谱范围略高于 0 Hz 至 30 kHz
对于这个特定的输入,有几个不同的谐波分量,但主要的仍然是二次谐波。将值转换为分贝,我们发现 SFDR 为 17.47 dBc。为了产生抖动信号,我们可以使用 Matlab 的“randn”函数来产生具有 2 LSB RMS(均方根)的宽带高斯噪声。应用以 1.94 MHz 为中心的通带为 100 kHz 的带通滤波器,宽带噪声被转换为略低于 f s /2的窄带抖动。抖动信号的频谱如下图 8 所示。
图 8. 抖动信号的示例频谱
由于抖动信号是原始噪声的带限版本,我们可以使用以下等式来确定抖动信号的方差:
代入数字,我们得到:
取该值的平方根,抖动信号的 RMS 为 0.45 LSB。抖动的峰峰值可以估计为 6.60.45 = 2.97 LSB(RMS 高斯噪声乘以 6.6 转换为峰峰值)。请注意,抖动的峰峰值足够小,不会过度驱动 ADC。应用抖动后,我们获得以下输出频谱(图 9)。
图 9. 应用抖动 RMS 后的输出频谱
可以看出,谐波被显著抑制。将值转换为分贝,我们获得 27.9 dBc 的 SFDR,与未抖动情况相比提高了 10.43 dB。抖动通过将信号杂散散布到本底噪声中来抑制谐波分量。
真实世界 ADC 的测试结果——ADC3424
下面的图 10 显示了ADC3424对于 70 MHz 输入的输出频谱。
图 10. 70 MHz 输入时 ADC3424 的输出频谱。图片由德州仪器提供
ADC3424 提供抖动功能作为内部特性。关闭内部抖动后,SFDR 为 91 dBc。然而,随着内部抖动被激活,杂散扩散到本底噪声中,并且 SFDR 增加到 99 dBc。
抖动技术限制
可显著改善 ADC SFDR 的适当抖动级别取决于特定 ADC 的架构和其他属性。SFDR 的改善还取决于输入信号的幅度以及抖动的幅度。还应注意,超过一定的噪声水平,SFDR可能不会显著改善。 以Analog Devices 的AD6645为例。该设备使用多级架构。对于这种类型的 ADC 架构,DNL 误差具有重复模式,并且当输入扫过 ADC 输入范围时,DNL 图中有一些尖峰。下面的图 11 显示了 AD6645 在其一小部分输入范围内的 DNL 图。
图 11. AD6645 在其一小部分输入范围内的 DNL 图。图片由Analog Devices提供
对于 AD6645,尖峰每 512 个 LSB 出现一次。经实验发现适合此特定 ADC的抖动电平为 1024 LSB 峰峰值或 155 LSB RMS。应用更大的抖动不会显著改善 AD6645 的 SFDR。对于这个 ADC,抖动的峰峰值等于两个 DNL 尖峰之间代码距离的两倍。但是,我们不能断定这是所有多级 ADC 的一般规则。
推荐阅读:
PPT分享:SerDes专题--高速低抖动PLL/DLL/CDR电路专题
原创模拟IC论文分享--TCAS-II主编邀稿:极低抖动频率综合器的多速率时间戳建模
相位噪声vs时间抖动
计算隔离式精密高速DAQ的采样时钟抖动的简单步骤
深入浅出聊抖动(Jitter)
什么是抖动?利用抖动消除ADC量化误差
相关推荐
- NodeJs(一)我对NodeJs的认知
-
欢迎来到我的NodeJs专题系列,更多精彩内容持续更新中,敬请关注!写在前面前面我已经分享了100+篇前端相关的技术文章,都是自己平时工作中遇到的一些问题的问题,还有是我平时自学的内容。但是那些前端文...
- 「Django框架」-Django初识
-
Django介绍Django是一个由Python编写的Web应用框架。它源自一个在线新闻Web站点。Django作为一个从新闻系统生成环境中诞生的框架,是直接面向企业级开发的。Django是一个全功能...
- 什么是PHP?APP开发可以选择PHP编程语言吗?
-
在开发一款APP的过程当中,一支专业的APP开发团队需要UI设计师、前端开发人员、后端开发人员以及测试等等。而熟练掌握PHP编程语言的人才就相当于APP开发团队中的后端开发人员。一般在APP开发中后端...
- php可以做前端吗
-
php可以做前端吗?php不可以做前端,因为php是在服务器端执行的脚本语言,也就是后端语言,主要适用于Web后端开发领域。php简介:PHP(全称:PHP:HypertextPreprocesso...
- PHP多久能学会?比java,python难还是简单呢?
-
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。利于学习...
- java哪有这细糠啊,PHP是世界上最好的语言!
-
要不说我们要多了解一下其他技术呢,java哪有这好玩应啊。今天分享个php开发的辅助工具:phpenv(当然,php是世界上最好的语言,毋庸置疑)phpenv就是一个开发者工具箱神器,只有拥有了他,你...
- Java和Php的对比
-
(1)开发速度Java是一种面向对象和结构化的语言,开发速度较慢,比如代码更多,耗费较多时间。而PHP是一种解释型语言,开发速度快,代码量少,耗费的时间较少。(2)安全性Java基于字节码形式进行...
- php宝塔搭建实战多端壁纸小程序源码一(wordpress后台安装篇)
-
大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套php开发的多端壁纸类型的小程序源码,后台是使用wordpress集成的,前端是使用uniapp开发的。今天先给大家分享后台怎么在宝塔里部署...
- PHP中的IMAP扩展简单入门
-
对于邮件处理来说,大家比较熟悉的应该是POP3、SMTP这类的协议,而今天我们介绍的IMAP其实也是非常常用的一种邮件处理协议。它和POP3比较类似,都是以接收处理邮件为主。不过相对于...
- 【推荐】一款免费、全能型的数据库管理神器,效率提升利器
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍HeidiSQL是一款免费的数据库管理工具,适用于与数据库打交道的开发人员和数据库管理员。它支持多种数据...
- Php+Vue.js实现的项目管理系统
-
一个基于Vue.js实现的项目管理系统目前已实现的主要功能项目管理任务管理账号管理文件管理团队管理权限管理多组织管理技术栈PHPVueMySQLRedis相关界面前端源码地址:https://git...
- 让PHP和Node.js同框共舞:解密php-node的革命性玩法!
-
你有没有想过,PHP和Node.js有朝一日能在一个进程里握手言和?不是“后端服务调用后端服务”,也不是“前端请求后端接口”,而是——直接共享内存、互传变量、同步执行逻辑。听起来像是幻想,但今天...
- 8个增强PHP程序安全的函数
-
安全是编程非常重要的一个方面。在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性。在现代网站应用中,经常要获取来自世界各地用户的输入,但是,我们都知道“永远不能相信那些用户输入的数据”...
- Peachpie —— .NET 的 PHP 编译器
-
Peachpie是一款.NET平台的PHP编译器,主要特性:物联网:可以使用PHP开发WindowsIoT设备应用,至少节省30%的开发支出安全:可以在最安全的平台上运行PH...
- PHP的垃圾回收机制-PHP高级面试题+详解
-
ps:本篇内容包括精选面试题与知识篇。PHP面试题关于PHP的垃圾回收机制,PHP的垃圾回收机制引用计数(referencecounting)GC机制,PHP可以自动进行内存管理,清除不需要的...
- 一周热门
- 最近发表
- 标签列表
-
- curseforge官网网址 (16)
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- oracle两个表 (20)
- oracle 数据库 字符集 (20)
- oracle安装补丁 (19)
- matlab化简多项式 (20)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- c语言编程小知识大全 (17)
- css class选择器用法 (25)
- css样式引入 (30)
- html5和css3新特性 (19)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- 网站管理平台php源码 (19)
- php小说爬取源码 (23)
- github好玩的php项目 (18)