概述
从1997年至2021年,根据国际固态电路会议(ISSCC)和超大规模集成电路(VLSI)两大顶级会议给出的各类论文数量的统计显示,
流水线型、Σ-Δ型和逐次逼近型是当前主流的三种ADC架构。
其中,在很长的时间跨度内流水线型和-Δ型一直保持着重要的地位,
近十年来,由于SAR ADC具有低功耗、高精度、面积小以及和先进工艺适配等优点,被广泛应用于传感器网络、生物医疗、视频处理以及无线通信等领域。科研人员对逐次逼近结构进行了更多的研究, SAR ADC正处于“事业”的上升期。
相关服务:韩国VPS服务器

1、 从事高速pipelined ADC、DAC,高精度SAR ADC、Delta-Sigma ADC、DAC,低噪声AFE电路设计与开发;
2、 可专注于“系统架构研究与设计、电路设计与创新、calibration算法研究与设计”中的一项或多项,须完成相应的研究和设计文档撰写与汇报;
3、 指导版图工程师开展layout工作,配合数字工程师进行算法实现;
4、 密切关注ADC/DAC和AFE领域最前沿技术和产品,对产品线的技术方向和产品规划提出建议;
5、 配合AE/PE进行产品的测试和应用方案开发。
分类
六种主流ADC架构的比较(SAR, Sigma-Delta, Pipelined等)
模数转换器的功能是将连续的模拟信号转换为离散的数字输出[151。整个过程可以分为两步,第一步,对模拟输入信号进行采样和保持;第二步,将采样的模拟信号量化为数字输出。根据量化方式的不同, ADC被分为不同的类型。
一个N位理想的量化器可以将整个输入电压范围(
V
F
s
V_{Fs}
VFs)划分为
2
N
2^{N}
2N个数字输出。量化器的作用就是找到与模拟输入信号相对应数字输出。在理想条件下,模拟输入电压与量化数字输出的差值应小于ADC的最小分辨率电压(Least Significant Bit, LSB)的一半,即
V
p
s
V_{ps}
Vps/2N+1。因为SAR ADC通常是轨到轨输入范围,所以满量程电压等于正基准电压Ε

一般的ADC模数转换器,比如Flash,Pipeline,SAR(Successive approximation converter)等等,其原理都是直接测量。
简单的比方吧!测量长度。比如你面前有一根绳子,你不知道它的长度,那么最简单的方法,就是拿一把有精确标注的尺子来量。接着,你会发现,这把尺子必须要满足一些条件才可以让你成功。比如,这把尺子必须比你要量的绳子长度长(Input range之内),而且,比如你需要测量绳子长度值精确到mm,你这把尺子也需要这样精确的标尺。一把精确到cm的尺子对于你来说是不合要求的。……说到这里,大家应该可以清楚的发现,这就是最基本的Flash ADC.
接着,你可能会想,要是我的尺子没有那么精确的刻度,我能测量到mm量级吗?继续举例子:
绳子的长度不知道(大概是0.7m吧!)我只有一把1m长的尺子。而且呢,有个特别的地方,就是这是一把软尺:因此,这把尺子是可以折叠的。
首先,我们先把尺子对折,我们就得到了0.5m的精确量度。拿这个0.5m的尺子去跟绳子比较。好了,现在发现绳子比0.5m要长,我们就在绳子的0.5m处做个记号(或是记做1)。这时候,我们有两种选择:
1. SAR ADC
继续折叠尺子,我们可以得到0.25m长的精确长度。然后拿0.25m长的尺子和剩下来的绳子(原长减去0.5m,比如0.7m的绳子还剩下0.2m)做比较,我们发现0.25m的尺子比剩下来的绳子长(记做0)。然后继续对折尺子,得到0.125m。用0.125m去跟绳子比较,发现0.125m比绳子短(记做0),那么在绳子的0.125m(也就是0.625m处)做个记号。……不断的重复这个过程。最后的结果,就是0.51+0.250+0.1251+……
这也就是所谓的SAR ADC。Input不变,不断改变reference的测量方法。
2.Pipeline ADC
我们还可以不改变reference,也就是一直拿绳子跟0.5m做比较。0.7m长的绳子,第一次比较之后,还剩下0.2m。然后,我们把这个residue放大一倍,也就是Pipeline ADC里面的精确乘二电路。绳子乘二的办法,可以人为的从旁边的绳子上截取一截一样长的,或者任何别的方法。接着,拿放大过的0.4m跟0.5m的reference比较,发现没有0.5m长(记做0)。然后再接着放大……一直重复。最后的结果,跟上面的结果一样,0.51+0.250+0.1251+……
这就是所谓的Pipeline ADC,或者是Subranging ADC,不改变reference,只对input进行处理。
3. Integrating ADC
至于Integrating ADC,差不多就是拿个1cm的尺子,然后反复在绳子上一段段的标记,最后得到的精度,肯定也是1cm。
说了这么多,其实还是为了解释Sigma-Delta。别人都是直截了当的给出结果,Sigma-Delta却不是这样的。它是一种方法论上的创新。
这里我没法再继续用长度了……抱歉,我需要测量一块石头的重量。前面的尺子全部改成天平的砝码就好,大家就当做课外作业了哈!_
4.Sigma-Delta
Sigma-Delta就是一片幽静的封闭的池塘(Feedback Loop),然后你随手就把石头扔到池塘里面去了……随着“噗通”一声,石头掉进池塘,水面上自然而然会出现对应的涟漪。一块一百斤的石头,和一块一斤重的石头,呈现出来的波纹明显不一样。
大石头溅起了一米高的水花,过了好久,水花才逐渐消散。
小石头产生的水花只有一点点,很快就被池塘的“内力”平息了。
一定时间内,水花溅起的高度的平均值,就是能够用来间接测量石头重量的关键数值。比如,我们已知50斤的石头可以溅起0.5m高的水花,那么能够溅起1m高的水花的石头,应该就是100斤的。那么溅起0.01m高的水花,这个石头则是一斤重的。
上面说到的这个池塘,有几个必要的条件:
1.池塘不能太小:池塘要是只有一个小水缸大小,那一块大点的石头就把它弄坏了……比如著名的司马光先生干过的事情……
2. 池塘相对于石头来说不能太大。一块小石头扔到海里,呵呵……
(Dead zones 。The effect of dead zones actually results in a certain “minimum” input being present at the Modulator before it can generate a LSB so as to say.)
3.池塘必须是封闭的系统。要是还有小溪跟这个池塘连着,那么水波就会被小溪干扰,因此,Sigma-Delta重要的一环——integration,就没有办法保证准确度了。
参考:ADC杂谈(一)Sigma-Delta ADC
下面简要介绍常用的几种类型的基本原理及特点:
积分型、逐次逼近型、并行比较型/串并行型、Σ-Δ调制型、电容阵列逐次比较型及压频变换型。
| 特点 | 分类 | 优点 | 缺点 | 应用场景 | |
|---|---|---|---|---|---|
| SAR ADC | 二进制搜索算法,当内部电路运行在数兆赫兹(MHz)时,由于逐次逼近算法的缘故,ADC采样速率仅是该数值的几分之一 | 电压型,电流型,电荷型,阻容混合型。 | 低功耗、中高分辨率(8位至18位)、高精度、以及小尺寸 | 采样速率低,采样速率低于5Msps (每秒百万次采样) | 便携/电池供电仪表、笔输入量化器、工业控制和数据/信号采集等,SAR架构允许高性能、低功耗ADC采用小尺寸封装,适合对尺寸要求严格的系统。电荷充分配型只消耗动态功耗。 |
| 流水线ADC | 采样率在5MSPS-10MSPS的主要应用,采样率大于100MSPS。 | 并行,数据吞吐量,(12bit~16bit ) | 延迟与误差(相对于SAR)、功耗(硬件需求与位数成线性关系),并行结构以功耗和时延为代价实现较快速度。 | 视频、图像处理、通信和工业领域,适合各种成本相对较低的集成电路工艺,如CMOS和Bi CMOS。运用于中高速分辨率应用。 | |
| 闪速ADC | 虽然flash架构的ADC主导了20世纪80年代和90年代的8位音频IC ADC市场,但是Pipelined架构在现代应用中已经很大程度上取代了flash ADC。 | 转换速率快(大于1GHz采样率,高功耗) | 大量比较器,预放大器提供增益,硬件消耗量过大(随位数成指数型增长) | 采样率最高,分辨率最低 | |
| Σ-Δ转换器 | 在不降低SNR的情况下尽量扩展信号带宽,这在数字视频,无线通信和雷达应用领域具有广阔的空间。 | 以速率换取分辨率 | 数字抽取滤波器占用面积大 | 高分辨率,低采样率,低带宽(速度小)。适用于数字高分辨率低采样率的数字音频应用。带宽在kHz范围内。人耳能听到的声音频率20Hz-20000Hz以内。 |
Pipelined ADC架构主导了现阶段采样率在5MSPS-10MSPS的主要应用。虽然flash架构的ADC主导了20世纪80年代和90年代的8位音频IC ADC市场,但是Pipelined架构在现代应用中已经很大程度上取代了flash ADC。在大于1GHz采样率的少量高功耗应用场合中flash仍然受到欢迎,但其分辨率只能达到6位或8位。
Pipelined ADC架构广泛应用于视频、图像处理、通信和工业领域。这种架构适合各种成本相对较低的集成电路工艺,如CMOS和Bi CMOS。目前的技术可以做到12bit~16bit 的分辨率,且采样率大于100MSPS。
流水线ADC采用一种并行结构,并行结构中的每一级同时进行一位或几位的逐次采样。这种固有的并行结构提高了数据的吞吐率,但要以功耗和延迟为代价。所谓延迟,在此情况下定义为ADC采样到模拟输入的时间与输出端得到量化数据的时间差。例如,一个5级流水线ADC至少存在5个时钟周期的延迟,而SAR只有1个时钟周期的延迟。需要注意的是,延迟的定义只是相对于ADC的吞吐率而言,并非指SAR的内部时钟,该时钟是吞吐率的许多倍。流水线ADC需要频繁地进行数字误差校准,以降低对流水线上每一级闪速ADC (即比较器)的精度要求。而SAR ADC的比较器精度只需与整体系统的精度相当即可。流水线ADC一般比同等级别的SAR需要更多的硅片面积。与SAR一样,精度高于12位的流水线ADC通常需要一些某种形式的微调或校准。
SAR ADC
发展历史
早在1946年,就出现了基于二进制搜索算法的SAR ADC,但其性能受限于工艺制造水平的落后。随着超大规模集成电路行业的发展,半导体芯片制造业的工艺尺寸已经发展到了深亚微米阶段,使得模数转换器在功耗、面积、精度和速度等方面都有较大的进步叫。
1975年,加州大学的McCreary JL首次提出了基于电容阵列结构的电荷重分配型SAR ADC,由于该结构中的电容既是采样电容又是数模转换器的权重电容,提高了硬件利用效率的同时,没有静态功耗,具有低功耗、面积小的优势,成为后来研究的主流结构[21。近年来,集成电路行业发展迅速,集成电路制造技术和设计技术都得到了很大的提升,两者相互促进,在此过程中,SAR ADC由于电路组成中数字电路比重高、对高性能运放依赖性低和支持轨到轨输入等优点,可以很好的利用集成电路制造技术进步带来的优势。



2002年,区别于传统的二进制电荷重分配型SAR ADC,英飞凌科技股份有限公司的Kuttner F设计了一种非二进制冗余电容阵列,可以降低权重电容对于建立时间的要求,提高ADC的速度。此外,采用该技术的SAR ADC即使在转换过程中发生了比较器误判,只要这个误判是在可纠错范围内,最终也可以输出正确的结果,提高ADC精度。然而,该技术也存在一定的缺陷,首先,该技术需要更加复杂的控制电路。其次,额外的校正技术的引入需要消耗更多的电路硬件。最后,非二进制权重电容在版图设计中难以匹配[3]。


2006年,加州大学伯克利分校Chen SW等,首次设计了一款异步时序逻辑结构的SAR ADC,该结构可以节省大量的比较器等待时间,提高SAR ADC的时间利用率,提升ADC的转换速度,还避免了对外部高速时钟的需求,该结构在后来的中高速SAR ADC设计领域中得到了广泛的应用[4]。在高速SAR ADC设计中,单位电容的取值和电容的匹配度是相互冲突的,单位电容取值越小, SAR ADC可以工作的速度就越快,但是,电容匹配度就会变差,对ADC的性能产生巨大的负面影响。现在,一些工艺厂提供的电容已无法满足对速度、精度和功耗要求都很高的SAR ADC,因此,一些文献[6][7][8]提出了全定制的电容结构,在满足小面积、匹配度好的情况下,不仅能提高转换速度同时也能降低电路的整体功耗。
2007年,为了减小电容切换过程中的能量消耗,台湾大学的Chang等[9对传统电容开关时序进行了改进,提出了节能电容开关时序。与传统电容开关时序相比,节能电容开关时序在第一步开关动作不消耗能量,从而显著减小电容开关能量,相比于传统电容开关时序,节能电容开关时序的平均开关功耗减小了56%。
2010年,刘纯成等10提出了单调电容开关的方法来提高能量效率,该切换策略不需要共模电平产生和缓冲电路,相比于传统电容开关时序,单调电容开关时序的平均开关功耗减小了81%。
2010年,澳门大学的Zhu等对采用正基准电压、负基准电压和共模电平等三,个电平作为电容阵列的基准电压,提出了Vcm-based电容开关时序。相比于传统电容开关时序, Vcm-based电容开关时序的平均功耗减少了87%。
2015年,电子科技大学的高俊枫提出了多种新型DAC开关方式,通过减少最大误差点的电容翻转次数获得了95%的DAC功耗优化和1倍的线性度提升[12]。
2018年,西北工业大学的王立煌设计了一种低功耗动态比较器,通过改进结构和调整晶体管参数可以降低回馈噪声和失调电压,在SMIC 40nm工艺下,实现了一个10位的SAR ADC,采样率为990.09KS/s,整体功耗为870nW[13]。
2020年韩国成均馆大学DEEKSHA VERMA等人,采用改进的二进制工模电荷重分配算法以减少开关功率,实现了一款8 fj/Conversion-Step 10-bit 8MS/s使用于IEEE 802.15.1物联网传感器应用的SAR ADCI141。
分类

逐次逼近型模数转换器又根据DAC工作原理的不同可以划分为以下几种类型:
电压型,电流型,电荷型,阻容混合型。
其中电荷重分配型SAR ADC只存在动态功耗,更加有利于低功耗设计,成为目前主要采用的结构[20]。

图2.5是传统的全差分电荷重分配型SAR ADC结构框图。包括四个基本模块:采样保持电路、DAC、比较器和逐次逼近逻辑。在采样阶段,采样保持电路会采集到模拟输入信号的一个电压值,并且将这个电压值保持一段时间以供后续量化处理。
比较器通过比较结果产生各个数字输出位。逐次逼近逻辑根据比较器的输出给电容DAC提供控制码,使得DAC的输出完成逐次逼近的功能。

顾名思义,SAR ADC实质上是实现一种二进制搜索算法。所以,当内部电路运行在数兆赫兹(MHz)时,由于逐次逼近算法的缘故,ADC采样速率仅是该数值的几分之一。 尽管实现SAR ADC的方式千差万别,但其基本结构非常简单(见图1)。模拟输入电压(VIN)由采样/保持电路保持。为实现二进制搜索算法,N位寄存器首先设置在中间刻度(即:100… .00,MSB设置为1)。这样,DAC输出(
V
D
A
C
V_{DAC}
VDAC)被设为VREF/2,VREF是提供给ADC的基准电压。然后,比较判断VIN是小于还是大于
V
D
A
C
V_{DAC}
VDAC。如果VIN大于
V
D
A
C
V_{DAC}
VDAC,则比较器输出逻辑高电平或1,N位寄存器的MSB保持为1。相反,如果VIN小于VDAC,则比较器输出逻辑低电平,N位寄存器的MSB清0。随后,SAR控制逻辑移至下一位,并将该位设置为高电平,进行下一次比较。这个过程一直持续到LSB。上述操作结束后,也就完成了转换,N位转换结果储存在寄存器内。



逐次比较型AD由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率(<12位)时价格便宜,但高精度(>12位)时价格很高。

比较
SAR ADC与其它ADC结构的比较
与流水线ADC相比
流水线ADC采用一种并行结构,并行结构中的每一级同时进行一位或几位的逐次采样。这种固有的并行结构提高了数据的吞吐率,但要以功耗和延迟为代价。所谓延迟,在此情况下定义为ADC采样到模拟输入的时间与输出端得到量化数据的时间差。例如,一个5级流水线ADC至少存在5个时钟周期的延迟,而SAR只有1个时钟周期的延迟。需要注意的是,延迟的定义只是相对于ADC的吞吐率而言,并非指SAR的内部时钟,该时钟是吞吐率的许多倍。流水线ADC需要频繁地进行数字误差校准,以降低对流水线上每一级闪速ADC (即比较器)的精度要求。而SAR ADC的比较器精度只需与整体系统的精度相当即可。流水线ADC一般比同等级别的SAR需要更多的硅片面积。与SAR一样,精度高于12位的流水线ADC通常需要一些某种形式的微调或校准。
与闪速ADC相比
闪速ADC由大量的比较器构成,每个比较器包括一个宽带、低增益预放大器和锁存器。预放大器必须仅用于提供增益,不需要高线性度和高精度,这意味着只有比较器的门限值才需具有较高的精度。所以,闪速ADC是目前转换速率最快的一种架构。
通常需要折衷考虑闪速ADC的速度以及SAR DAC的低功耗和小尺寸特性。尽管极高速的8位闪速ADC (以及它们的折叠/内插变种)具有高达1.5Gsps的采样速率(例如MAX104、MAX106和MAX108),但很难找到10位的闪速ADC,而12位(及更高位)闪速ADC还没有商用化的产品。这是由于分辨率每提高1位,闪速ADC中比较器的个数将成倍增长,同时还要保证比较器的精度是系统精度的两倍。而在SAR ADC中,提高分辨率需要更精确的元件,但复杂度并非按指数率增长。当然,SAR ADC的速度是无法与闪速ADC相比较的。
与Σ-Δ转换器相比
传统的过采样/Σ-Δ转换器被普遍用于带宽限制在大约22kHz的数字音频应用。近来,一些宽带Σ-Δ转换器能够达到1MHz至2MHz的带宽,分辨率在12位至16位。这通常由高阶Σ-Δ调制器(例如,4阶或更高)配合一个多位ADC和多位反馈DAC构成。Σ-Δ转换器具有一个优于SAR ADC的先天优势:即不需要特别的微调或校准,即使分辨率达到16位至18位。由于该类型ADC的采样速率要比有效带宽高得多,因此也不需要在模拟输入端增加快速滚降的抗混叠滤波器。由后端数字滤波器进行处理。Σ-Δ转换器的过采样特性还可用来“平滑”模拟输入中的任何系统噪声。
Σ-Δ转换器要以速率换取分辨率。由于产生一个最终采样需要采样很多次(至少是16倍,一般会更多),这就要求Σ-Δ调制器的内部模拟电路的工作速率要比最终的数据速率快很多。数字抽取滤波器的设计也是一个挑战,并要消耗相当大的硅片面积。在不远的将来,速度最高的高分辨率Σ-Δ转换器的带宽将不大可能高出几兆赫兹很多。
总结
综上所述,SAR ADC的主要优点是低功耗、高分辨率、高精度、以及小尺寸。由于这些优势,SAR ADC常常与其它更大的功能集成在一起。SAR结构的主要局限是采样速率较低,并且其中的各个单元(如DAC和比较器),需要达到与整体系统相当的精度。
一般dsp和mcu中集成的8位、12位、16位ADC多数是SAR型的,如ADI(Blackfin),STC,silabs等。
快闪型ADC
典型的三位快闪型ADC结构如图2.2所示。在快闪型ADC中,电阻分压器产生数字输出码对应的判别电平,比较器通过将模拟输入信号和各个判别电平进行比较,产生温度计输出码,最后,译码器对温度计输出码进行译码,将其转换成二进制输出位,完成模数转换过程。如图2.2所示,该结构中比较器的硬件需求随着ADC的位数呈指数形式增加。因此,尽管快闪型ADC是一种速度很快的结构,但对于需要高分辨率的应用来说,快闪型ADC的硬件消耗量过大[7)。

Σ-Δ(Sigma delta)调制型 ADC
Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。电路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。
Σ-ΔADC通常用于高分辨率、低带宽的数字音频应用。带宽通常在千赫兹范围内,分辨率可达18位。Sigma-delta ADC对速度和分辨率进行折中,并以比奈奎斯特速率快很多倍的速度对输入信号进行采样,以便执行噪声整形。由于内部电路必须以比采样率快很多的速度运行,与奈奎斯特速率ADC相比,功耗可能要高很多。此外,数字抽取滤波器的设计也是一个巨大的挑战。
pipelined ADC
逐次逼近的方法可以使用流水线的方式来加快整个转换过程。每一级判断出输入是否大于或者小于中间的电压(VREF/2),并产生一个输出位d。接下来通过在输入中减去0(d=0)或者VREF/2(d=1)产生一个残差电压信号Vres。最后,将残差电压乘以2以恢复下一阶段需要进行比较的信号。这个过程本质上涉及到去除已知的电压和放大残差电压,这个剩余的量化误差是未知的。每个阶段的输入总是与相同的参考电压比较,这大大降低了参考电压产生电路的复杂性。通过将N阶级联在一起,可以实现N-bit的分辨率1181,
pipelined ADC
Pipelined ADC架构主导了现阶段采样率在5MSPS-10MSPS的主要应用。虽然flash架构的ADC主导了20世纪80年代和90年代的8位音频IC ADC市场,但是Pipelined架构在现代应用中已经很大程度上取代了flash ADC。在大于1GHz采样率的少量高功耗应用场合中flash仍然受到欢迎,但其分辨率只能达到6位或8位。
Pipelined ADC架构广泛应用于视频、图像处理、通信和工业领域。这种架构适合各种成本相对较低的集成电路工艺,如CMOS和Bi CMOS。目前的技术可以做到12bit~16bit 的分辨率,且采样率大于100MSPS。
比较器特性


【T】预放大再生比较器设计
数据转换器静态误差分析
转换器的静态误差是指转换器在进行直流信号转换时影响其转换精度的误差158]。静态误差主要包含偏置误差(Offset Error),增益误差(Gain Error),微分非线性误差(Differential Nonlinearity Error, DNL Error)与积分非线性误差(Integral Nonlinearity Error, INL Error)。其中,偏置误差与增益误差同为线性误差,可以修正,而微分非线性误差与积分非线性误差为非线性误差,不能进行消除,必须通过合理的电路与版图设计并结合相关校正技术加以抑制或改进。




数据转换器动态特性分析
高性能音频Delta-Sigma数据转换器的设计与优化技术研究.

高速低精度,转换速度受带宽制约,所以分辨率一般小于10bit。


【T】预放大再生比较器设计

一些衡量指标
特拉华大学(University of Delaware,简称UD或UDel),位于美国东部特拉华州的纽瓦克市,是一所公立研究型大学,也是公立常春藤大学之一。学校始建于1743年,最初名为纽瓦克学院,1921年正式更名为特拉华大学,也称德拉威尔大学(University of Delaware)。
特拉华大学下设七个学院,分别为文理学院,农业与自然资源学院,Alfred Lerner商业与经济学院,工程学院,健康科学学院,教育与人类发展学院,地球、海洋和环境学院,设立超过70个研究中心,共有超过125项主修专业和100多项辅修专业,提供140个学士学位和159个硕博学位。
特拉华大学拥有土地,海洋,空间和国家支持的科研机构。特拉华大学在2019年美国新闻周刊全美大学综合排名中名列89位,公立大学排名38位。
参考:Using FFT in Cadence Spectre - University of Delaware
首先,你需要根据采样率和采样数量来确定输入频率,以确保相干采样。例如,采样率为f,=100MHz,样本数量(FFT箱的数量)为NFFT=2^6=64。如果我们希望输入频率(in)在10MHz左右,则相干采样所需的输入频率为:

然后用MATLAB对导出的csv文件进行FFT计算,得到采样后的RA输出的FFT结果
完整的prettyFFT函数是:[ENOB, SNDR, SFDR, SNR] = prettyFFT(波,f_S,maxh,no_annotation,no_plot)“波”可以是任何长度,但应该连贯采样
(required)‘f_S’ is the SAMPLING rate (i.e. f_Nyquist * 2)(optional, default = 1)‘maxh’ is the highest harmonic plotted, 0 means all harmonics (optional, default = 12) NOTE: lowering this value will affect SNR since SNR is calculated as SNDR with harmonics removed. Setting maxh to 1 will effectivly set SNR = SNDR. (1 means only the fundamental is a ‘harmonic’)‘no_annotation’ set to anything but O to turn off annotation(optional, default = 0)‘no_plot’ set to anything but O to not create a plot(optional, default = 0)‘baseline’ is the minimum value on the y-axis. When set to ‘O’ the y-axis is auto-scaled such that some of the noise floor is displayed. It is useful to set this parameter when comparing twoFFT plots by keeping the scale the same. (optional, default = 0
动态指标
ADC动态指标是描述A/D转化过程中非理想因素对转换结果的影响。衡量A/D Performance的重要依据,注意大部分的动态指标都和输入信号的频率、幅度及采样频率相关。使用时需要注明这些指标值得条件。

ENOB 有效位数
参考:添加链接描述
有效位数 (ENOB) 是用于衡量数据转换器相对于输入信号在奈奎斯特带宽上的转换质量(以位为单位)的参数。
• 一般数据转换器数据手册标题显示的“位数”(12位或14位)指的是数字位或电压分辨率。这与ENOB无关。
• ENOB主要与噪声、非线性和输入频率存在函数关系。
• ENOB会因多种外部不确定性因素(例如时钟源、电源等)而劣化。
• ENOB是在整个奈奎斯特带宽上(DC到fs/2)计算的。



SQNR信号量化噪声比

SNDR 信噪失真比


SFDR无杂散动态范围(SFDR)
知识点理解:无杂散动态范围(SFDR)

SNR 信噪比
输入信号的最大rms和噪声rms的比值。其中噪声包含量化噪声和电路本身的噪声。对理想A/D,仅存在量化噪声,其信噪比的定义和分辨率的关系如图4所示。这也是理想N bit A/D所能达到的理想信噪比。实际上电路噪声和信号处理过程中失真的存在都会导致信噪比下降。



THD 总谐波失真



(THD),定义为输出信号FFT频谱中所有谐波分量的和。如图5所示,其定义是相对于1次谐波分量。对于周期信号,A/D转换过程中的非线性和误差的引入,导致输出包含了比较多的谐波分量,谐波分量的频率和输入信号及采样频率有关。
静态指标
静态指标基本可以通过对比ADC理想和实际传输特性得到。图2(a)给示意图其传输特性为台阶型的非线性函数,其中参考电压为0.8V。横坐标为模拟输入电压,输出为数字码输出(离散的2^N个码值)。黑色为无穷大分辨率的transfer characteristic。蓝色为理想3bit的传输特性,红色为一种实际


DNL与INL

DNL微分非线性




此外,还有表征传输特性的静态指标,增益误差和失调。
偏置误差offset error

增益误差Gain error

补偿知识点ADC
模数转换器即A/D转换器,简称ADC,将模拟信号转变为数字信号。输入端输入的模拟电压,经采样、保持、量化和编码四个过程的处理,转换成对应的二进制数码输出。
采样是利用模拟开关将连续变化的模拟量变成离散的数字量,由于经采样后形成的数字量宽度较窄,经过保持电路可将窄脉冲展宽,形成梯形波。量化是将阶梯形模拟信号中各个电压值转化为某个最小单位的整数倍,便于用数字量来表示。编码是将量化的结果(即整数倍值)用二进制数码来表示。这个过程则实现了模数转换。
分辨率与动态范围N与DR
动态范围(DR)定义为器件本底噪声至其规定最大输出电平之间的范围,通常用dB表示。ADC的动态范围是指ADC能够分辨的信号幅值范围;ADC的分辨率位数(N)决定ADC的动态范围,代表ADC可测量的输入信号等级范围,DR可定义为:

分辨率(Resolution),ADC能够将模拟输入表示的数字信号的位数。和参考电压(Reference Volatage)共同决定了ADC能够分辨的最小识别电压。例如对于10bit的ADC,其数字输出只有1024个,对应十进制的0~1023。其中最小位成为LSB。
静态指标基本可以通过对比ADC理想和实际传输特性得到。图2(a)给示意图其传输特性为台阶型的非线性函数,其中参考电压为0.8V。横坐标为模拟输入电压,输出为数字码输出(离散的2^N个码值)。黑色为无穷大分辨率的transfer characteristic。蓝色为理想3bit的传输特性,红色为一种实际
参考: ADC基础学习
DAC
关于DAC的原理
经常说DAC ,近来各个手机厂家也开始宣传自家的Hi-Res DAC产品,一百度,出来可能是某东某宝的广告。那这个DAC到底是个什么;所谓DAC,就是Digital-Analog-Converter,数字模拟转换器。在模拟电路中,电流电压变化是连续的,而数字电路处理的数据都是离散的数据,输出高电平或者低电平,比如5V单片机,引脚输出的电压要么5V要么0V。DAC做的就是输出一个“任意“的电压,当然这个”任意“是有限制的,后面继续介绍。
比如说一个16Bit的DAC,它可以接受的数据就是从0到65535(2^16-1),共65536个数字,如果这是一个电压输出DAC,那最小电压就是3300mv/65535=0.05mv,当然这个是理论情况,而实际上DAC还有一个指标是转换精度,以上面16BIT DAC为例实际上输出有1bit的抖动,也就是说上下差个0.05mv。
说了这些,DAC如何实现从数字量到模拟输出的呢(为了方便,后面都假定所讲的DAC输出为电压),先说一个最简单的知识,电阻分压。

参考:DAC的原理-好文
上图如果每一个电阻相等,每一个节点的电压都是1/4Vcc的倍数,但是显然这,用每个开关都由数字来控制,但是显然这样输出只有四个值,而且不能方便地输入二进制数直接控制,早期地电子工作者是这样解决地:

这种类型的DAC称之为开关树DAC,开关就像树枝分布,电阻单一而且如果不从输出取电流这个设计是比较简单的,但是显然,这需要大量的模拟开关。

这个电路的特点是简单粗暴,从低位到高位用电阻让电流呈2的幂数改变。但是这个电路很难做到高的位数,若是一个8位的dac,最大的电阻达到了最小电阻的128倍,如果最小的电阻有10k,最大就有1MΩ多,这个电阻可不好做准确,而且尽管只用几个电阻,但是每个电阻阻值都不一样,在使用这种方法的时候有一种叫做双权电阻的方法,减少了电阻种类和大电阻,但是仍然无法避免最大电阻的需求。
(电阻,简单粗暴。幂指数变,但是不能高位数)
实际上还有更多的DAC技术,譬如权电容DAC等等。但是终究目的是讲数字量变化为模拟输出。
到这里,那那些没有耳机孔的手机用的DAC是什么,还有什么什么解码DAC,数字界面等等,这些DAC集成了更多的外围原件,如上面的例子都是并行数字接口,单通道输出,而这些产品,例如使用I2S接口,支持不同的数据格式等等。
ADC
最近开始学习SAR ADC,之前接触比较少,所以学起来也是头大,不过万事开头难,就一点点的学吧。
集成电路发展到今天,得益于摩尔定理下数字电路不断的shrink,速度不断提高,功耗不断下降,面积也在不断减小。而现实世界是连续的,或者混沌的。数据转换器(A/D和D/A)作为连接现实世界和二进制世界的桥梁。

cadence-virtuoso中的FFT分析


注 :DFT-离散傅里叶变换。
参考:离散傅里叶变换
离散时间傅立叶变换(DTFT)

DFT

窗函数与频谱泄露-STFT短时傅里叶变换
在上一篇文章中,离散傅里叶变换 (DFT)为我们提供了一种实际实现傅里叶变换的实用方法。然而,为了分析长信号,经常需要将它们分解成更小的块,并在每个块上运行 DFT,一次一个。正如我们将很快看到的,这可能会导致称为频谱泄漏的问题。一个我们无法完全解决的问题。但是,可以通过使用窗口函数来降低其严重性。
各位大侠,小弟想要用DFT对tran中获得的一个类似正弦波的信号进行频谱分析,应该怎么设置呢。
我对window type 和里面的smoothing factor 都不太懂。 希望有人能够帮助我,麻烦诸位了啊。
参考:Waveform Calculator User Guide
FFT算法——(DFT)的加速
代码
用如下fft代码跑仿真,我之前的数据就能跑通,但是现在数据加进去后,在运行到line22的"Ps = sum(pow_spec(fin-widm:fin+widm))"报错为:下标索引必须为正整数类型或逻辑类型。
同时工作区显示如附件。
d_len:1023 Pdc:2.0883
d_len2:511 power spec:1511 double
fin:1 vout: 11023
widm:6 widmh: 2
求高手指教。
fft代码如下:
clear all;
load(‘vout.dat’);
vout = vout(:,2);
vout = vout(1:length(vout)-1);
vout = rot90(vout);
d_len = length(vout);
vout = vout.*rot90(kaiser(d_len,18));
pow_spec = fft(vout).*conj(fft(vout));
pow_spec = pow_spec/max(pow_spec);
d_len2 = floor(d_len/2);
pow_spec = pow_spec(1:d_len2);
% find the signal bin number
fin = find(pow_spec(1:d_len2)==1);
% set the main lobe width of the input signal
widm = 6; %设置信号的主瓣宽度,主瓣的宽度=2widm+1,对于整数个周期采样,令widm=0即可
widmh = 2; % 设置用于寻找谐波位置的范围
%求直流失调功率*********************
Pdc = sum(pow_spec(1:widm));
%求信号总功率**********************
Ps = sum(pow_spec(fin-widm:fin+widm));
% 定义谐波位置和大小的数组变量
Fh = []; Ph=[];
%寻找谐波位置和其幅值***************
for har_num=1:10
tone=rem((har_num*(fin-1)+1)/d_len, 1);
if tone>0.5 tone=1-tone; end
Fh = [Fh tone];
har_peak = max(pow_spec(round(toned_len)-widmh:round(toned_len)+widmh));
har_bin = find(pow_spec(round(toned_len)-widmh:round(toned_len)+widmh)==har_peak);
har_bin = har_bin+round(toned_len)-widmh-1;
Ph = [Ph sum(pow_spec(har_bin-1:har_bin+1))];
end
%求总谐波失真功率***************
Pd = sum(Ph(2:5));
%求噪声功率***************
Pn = sum(pow_spec)-Pdc-Ps-Pd;
%求ADC动态指标****************
format;
SNDR = 10log10(Ps/(Pn+Pd)) %求SNDR
SNR = 10log10(Ps/Pn)
disp(‘THD is calculated from 2nd through 5th order harmonics’);
THD = 10log10(Pd/Ph(1))
SFDR = 10log10(Ph(1)/max(Ph(2:10)))
disp(‘Signal & Harmonic Power Components:’);
HD = 10log10(Ph(1:10)/Ph(1))
%ENOB_EFF = (SNDR-20log10(vpp)-1.76)/6.02 % 等效分辨率
ENOB = (SNDR-1.76)/6.02
%***************** 画出功率谱 *****************************************
xz = 0:1/d_lend_len2-1)/d_len; %这里的xz只是对X轴坐标进行了重新定义,在最终画功率谱图时将xz作为X轴的坐标
plot(xz,10*log10(pow_spec)) %画功率谱图,Y轴是对数刻度
%title(‘ADC Output Spectrum’)
xlabel(‘fi/fs’)
ylabel(‘Power (dB)’)
axis([0,0.5,-120,0])
grid
参考:fft分析
对噪声整形ADC的输出做FFT频谱分析,fft点数对输出的影响
你这输入信号摆幅都有8了吧?一般没有这么大吧?另外,两张频谱图没问题,不管低频噪底如何,高频的都很一致。我觉得错的是你的计算代码的参数设置。另外,信号频点很明显有频谱泄露啊,那么宽,不是相干采样吧?像8楼说的,要质数。
你算FFT的带宽到底是多少?从你的频谱图来看,12.73bit的那张图,计算的带宽大概是5M的样子才会有78.4dB的SNDR,而10.26bit的那张图,计算带宽则大概是10M的样子才是63.5dB的SNDR,如果计算点依旧是5M,那么也差不多有78.4dB。如果你说带宽是按照250kHz来算的,那么SNDR应该妥妥往100dB走了,所以这个代码计算肯定有哪个地方你没有注意。
8楼说的公式倒过来,fin/fs=k/nsample,nsample表示的是fft的点数,fin是输入信号的频率,fs是采样信号的频率,这三个都知道了才去算k值,k不一定是整数,比如是9.9,但你不能取10,你要取一个最接近它的质数,比如7或11,然后根据这个k再去算fin,这才是你的输入信号频率,这样频谱图表示信号的那个频点,就是一条线,而不是像一座山一样分散在好几个频点。k表示的就是输入信号这个频点在频谱中的位置。
同样的,你要根据你的带宽来找带宽频点。FFT分析的,永远都是信号带宽内的SNDR,而过采样率是采样频率和带宽之间的比值,不是和输入信号的比值。要注意的是,信号带宽和输入信号频率,是两码子事,比如你要做一个带宽10M,ENOB=12Bit的SDM,那我输入1M的信号,5M的信号,9M的信号,你算出来的ENOB都要满足12bit才可以。
引入频率抖动前后对siwitch节点进行 FFT 分析,仿真结果如图 所示。

0~5Mhz。









