关于流水线ADC及其数字校准的一些问题请教
时间:10-02
整理:3721RD
点击:
小弟最近在做流水线ADC的数字校准技术的研究,然后目前研究的是Boris Murmann教授提出的基于信号统计规律的数字校准技术,其出版的书籍《Digitally Assisted Pipeline ADCs》目前相关章节已经拜读完,然后目前遇到了一些问题,但是没人请教(这边只有小弟一个人弄啊,可怜/(ㄒoㄒ)/),所以只能到这里求助各位了,问题如下:
(1)在12-bit 40MS/s的流水线ADC中,第1级4位子级结构框图如下图1所示:
当输入信号Vin经过子ADC时进行第1次模数转换,转换后输出4位的数字量,然后这个数字量被调制模块进行调制,当调制模块输出为1时,该数字量的最低位需要加上二进制数“1”,如果此时该数字量敲好为最大值“1111”,那么此时需要用5位的数字量“10000”来表示这个调制之后的值,所以D1输出是5位数字量,这个不难理解。我不懂的是,子DAC输入是几位数字量呢?如果是5位的话,那子DAC的模拟量输出与对应的数字量输入又该怎么划分呢?(Boris教授书中说子DAC输出电平的状态数应该由原先的16个变为17个,只是我不明白这17个状态电平该如何划分呢?)
(2)Boris书中说第1级4位子级并没有做冗余位,那么这一级的子ADC失调误差该怎么消除呢?还是说这个失调误差可以通过后面的数字校准模块消除?
(3)在12-bit 40MS/s的流水线ADC中,数字校准是基于统计规律的算法思想进行设计的。这个算法的框图您的书中也有说明,如下图所示:
我认为,算法中比较难的有两个地方:一是e(Db2)的求解;一是距离估计。
e(Db2)这个虽然计算很难,但是硬件中通过二维查找表的方法比较容易实现,这里我觉得还算简单,就是那个距离估计问题,我不知道从何下手。感觉距离估计的理论我看得明白,就是如何在Simulink进行实现我却不知道怎么下手。请问:距离估计在MATLAB/Simulink中该如何去实现呢?
论坛里有木有做过这个的大神,求解惑,提前说声谢谢了!
(1)在12-bit 40MS/s的流水线ADC中,第1级4位子级结构框图如下图1所示:
当输入信号Vin经过子ADC时进行第1次模数转换,转换后输出4位的数字量,然后这个数字量被调制模块进行调制,当调制模块输出为1时,该数字量的最低位需要加上二进制数“1”,如果此时该数字量敲好为最大值“1111”,那么此时需要用5位的数字量“10000”来表示这个调制之后的值,所以D1输出是5位数字量,这个不难理解。我不懂的是,子DAC输入是几位数字量呢?如果是5位的话,那子DAC的模拟量输出与对应的数字量输入又该怎么划分呢?(Boris教授书中说子DAC输出电平的状态数应该由原先的16个变为17个,只是我不明白这17个状态电平该如何划分呢?)
(2)Boris书中说第1级4位子级并没有做冗余位,那么这一级的子ADC失调误差该怎么消除呢?还是说这个失调误差可以通过后面的数字校准模块消除?
(3)在12-bit 40MS/s的流水线ADC中,数字校准是基于统计规律的算法思想进行设计的。这个算法的框图您的书中也有说明,如下图所示:
我认为,算法中比较难的有两个地方:一是e(Db2)的求解;一是距离估计。
e(Db2)这个虽然计算很难,但是硬件中通过二维查找表的方法比较容易实现,这里我觉得还算简单,就是那个距离估计问题,我不知道从何下手。感觉距离估计的理论我看得明白,就是如何在Simulink进行实现我却不知道怎么下手。请问:距离估计在MATLAB/Simulink中该如何去实现呢?
论坛里有木有做过这个的大神,求解惑,提前说声谢谢了!
顶一下!
有木有大神懂这个?