对一个3-Level,4th Order =1.5,OSR=32,再理想DAC下,一个-3dBFS幅值的正弦信号输入,仿真得到的SNDR=101dB。如果器件element的失配达到1%的话,SNDR是55dB,而且有非常高的谐波失真Harmonic Distortion。
当运用Random策略后,SNDR有所提高,到了59dB,不是很多,但是谐波消除掉了。
尝试进行推导,推导的思路
对于一个M − Step的量化器,每一个element用表示,误差为,方差为,对于一个的量化结果,用endpoint端到端的方式去作理想传递关系,那么误差为为
这里这个外面的求和过程,不管累加到还是,括号里面的结果都是一样的,所以就是m倍
尝试以非相关白噪声叠加,平方求和,从随机过程的某一个实例去计算方差,那么
如果信号能够均匀的跨越整个量化区间,[0,M],那么这个信号的平均方差为,也就是mismatch noise power:
(*用于计算这个\sum的累加结果*)
clearAll["Global`*"]
variance = (1 - m/M)*m + m/M (M - m);
FullSimplify[variance, Assumptions -> {m, M} > 0]
averageVariance = Sum[variance, {m, 0, M}]/(M + 1)
对于一个[0,M]的信号,其幅值为,由于DAC返回的数据与输入信号无法区分,这部分误差到输出的传递函数也是1,所以仅有1/OSR的滤波效果,所以Mismatch Noise Power为,单位是dBFS
这样估计的SNDR结果大约是-60dB,信号是-3dB,这样dBFS是57dB。而从图中看到仿真结果是59dB。
如果是运用rotation的方式与处理DEM,则看到MNP是有一个20dB/decade的一个一阶噪声整形效果的。
如果噪声是功率,回顾一阶整形后,OSR的带内噪声可以用以下公式表示:
乘以我们的Mismatch的功率(2),代入到公式(4)中的P中,然后除以信号的功率,就得到了在这种情况下的SNDR。
在任何一个时刻,总的mismatch error,应该就是DAC输出m个element的失配之和,如果认为信号均匀分布[0,M],那么应该讲各个DAC的输出是的噪声功率求和之后再平均。
如果DAC各个m输出下的每个elemnt的失配误差之间是独立的,也就是白噪声,那么一阶整形之后可以用噪声,可以用(3)乘以(4)。这个计算问题很大:
不管怎么说,从结果看,这种估算方式过于严苛,实际谐波噪声没有这么大,还是需要仿真确认。
第一种方法是将比较器的输出,input data,thermometer code,经过S<2:0>次移位。
上面这个图的结构示意图如下
这个结构的理解如下:
shift code,也就是S<2:0>,用的上次计算的结果,不是本次的数据,因此对速度要求不高
原理很好理解,观察最后一列S0,当S0=0时,数据的位置时一样的,S0=1时,数据是来自于位置+1的;同理,S1=1时,数据是来自于位置+2的;S2=1时,数据是来自与位置+4的。
这个结构需要一个MUX,结构如下,其中带*是大尺寸的器件。大尺寸的器件是上一拍确定的,不需要很快的建立速度。而中间的器件尺寸较小,RC传递速度较快。
这个结构需要一个unary to binary converter,可以用全加器和半加器实现,如下就是一个用于M=8的一个unary to binary converter
另外一种办法是,直接打乱比较器的输入基准,这样比较器的输出(温度计码)所控制的一个Element直接就是经过Rotation轮巡的。这样做的好处是最大化的利用比较器的时间,让反馈DAC的部分不占用时间;缺点是需要一个analog shuffler
Analog Shuffling 的实现方法,可以用ROM/RAM这类的阵列开关实现,也可以用4个Aanlog MUX实现
一个非常高效的结构,就是Butterfly Shuffler,他的基本操作是
这样的操作的实质是,将“1”的密度尽可能地均匀分散开,1的分布更“白”一些。因此几乎没有周期性。效果如下:
From patent-US7079063.pdf
In these methods, a shuffler (also sometimes called Scrambler) is used to dynamically select a group of elements for every digital input code Such that over time, each element is equally used. This implies that the first integral of the difference between every pair of elements is Zero, hence, equivalent to a first-order noise shaped sigma delta converters. The only difference is in a normal sigma delta converter, the amplitude error is noise shaped whereas in a data shuffler, the error in the usage of the element is noise shaped.
在这些方法中,使用一个切换器(有时也称为混频器)来动态选择一组元素,以适应每个数字输入码,以便随着时间的推移,每个元素都能得到均等使用。这意味着每对元素之间的差异的一次积分为零,因此等效于一阶噪声整形Σ-Δ转换器。唯一的区别在于,在普通的Σ-Δ转换器中,振幅误差是噪声整形的,而在数据切换器中,元素使用的误差是噪声整形的。
DEM Type | SQNR(dB) | Harmonics | Description |
---|---|---|---|
Ideal | 101 | None | M=16, Mismatch=1% |
No DEM | 51 | M=16, Mismatch=1% | |
Random | 59 | None | M=16, Mismatch=1% |
Alternative | 87 | M=16, Mismatch=1% | |
ButterFly | 81 | None | M=16, Mismatch=1% |
Advanced DWA | 79 | None | M=16, Mismatch=1% |
Biderection DWA | 81 | None | M=16, Mismatch=1% |
Tree-Structured ESL | 80 | None | M=16, Mismatch=1% |