首级3.5b,无采保流水线ADC首级问题(SHA_LESS pipeline ADC)
我在这里采用的是3.5bit的首级,所用的结构和时序参照这篇文章Design Techniques for a Pipelined ADC Without Using a Front-End Sample-and-Hold Amplifier,作者是Dong-Young Chang,下图为结构图,与图中结构有些不同的地方在于,我实际中在比较器前仍然加了预放大电路。
仿真的时候发现,提前关断开关采用MOS管时,输入斜方波,可以看到看到正常的3.5bit的输入输出曲线。在采样相末尾,提前关断时钟关断那个时间节点,读输入信号值,然后在读出保持相的输出结果。按照8vin+D0*Vref的关系式验算,比较仿真值和误差值关系,误差范围在可容忍的范围内。后接理想ADC,输出的数字码经过matlab还原,可以得到一个完整的原输入信号。但是将输入换成sin信号以后,仍然采用原先的方式进行验算,发现仿真值和计算值相差很大。误差是一个非线性误差,斜率大的位置,误差大。但是,此时,经过AD转换后的数字码经过MATLAB仿真测试后,可以得到很高的信噪比和动态范围(分别为SNR=60dB,SFDR=73dB)。如果将提前关断的开关换成理想开关时,可以保证在输入信号为sin时,第一级输出信号的仿真值和计算值误差在可以容忍的范围内,但是,经AD转换后的数字码的信噪比和无杂散动态范围都变得很低(SNR=30dB左右,SFDR=36dB左右)。可以看到三次谐波很高,躁底也变得很高。请问各位大大,有没有遇到过类似的情况?以及如何解决?是我的验算方法有问题吗?还是有什么其他问题?
小编,你好,我正在学习,流水线ADC,想问一下,单独的一级流水怎么仿真,就比如你这个首级3.5位。给讲讲吗
大概说一下我是怎么做的,以1.5bit为例。首先可以先输入斜方波,做瞬态仿真,看第一级的输入输出曲线,可以大概看一下功能。然后可以像我在问里边说的,利用提前关断时钟,在关断的时刻,读出输入信号的值,这就是采样值,然后按照Vout=2vin+(D*Vref)其中D=-1,0,1。这样得到一个计算值,再用这个计算值和实际的第一级输出值做比较。看有没有超出1/2LSB的范围,如果在范围之内,应该就是没有什么问题的。之后就可以在你的第一级后边接一个理想的AD,在adhlib这个库里边。注意用VCVS做一个双端到单端和电平的转换。再搭出配套的数字移位电路,这样读出数据,就可以输入matlab测试信噪比了。注意测试信噪比时,仿真时间一定要够长。采点要到1000个点左以上,而且输入信号频率和时钟频率不能成倍数关系。
小编,谢谢你的回复!我会按照你说的去仿真测试一下。我的情况是这样的,10位流水线ADC,共9级,每级1.5bit ,最后一级2bit ,
由于不会单独的仿真每一级流水线,是否满足需求,我就整体仿真了,连在一起,
采样了1024个点,用Matlab 跑了FFT ,结果很差,有效位才7.4 。失码很严重。
可是我的前端采样电路,采1024个点,跑FFT,有效位是12.8,是足够用了。
问题应该是出在每一级流水了,应该就像你说的,每一级的流水误差可能大于1个LSB,
才导致这样的结果。 我尝试着你的做法,看看能否找到原因。
申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习本站推出的微波射频专业培训课程。