|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我刚刚开始研究ADC的测试,在测试ADC的时候,我看有关说明需要进行相干采样。问题1:
有关相干采样的说明:(转载)
对于相关采样,需要遵循一定的规则:1)需要将被采样信号划分周期;2)Fs/N=Ft/M, Fs为采样频率,N为采样点的数目,Ft为被采样信号频率,M为被采样信号所采样的周期的数目;3)此外,M和N需要互为素数且都需要为整数,这样可避免重复采样,提高效率。
我的理解:
1.对每个周期信号采样的点数必须相同,这样Fs(采样频率)必须为Ft(输入信号频率)的整数倍?比如采样为6MHz,输入信号频率得为精准的6KH或其它的倍数(得小于3M),但是存在clk的jiter,信号发生器的信号也应该存在抖动,实际测试的时候应该还是存在误差吧?
2.相关的概念还有的意思是要采样的周期数必须为整数个,比如我在测试ADC的输出code的时候,比如对一个RAMP进行采样100W个点,其中起始点可能是从RAMP的中间点开始的和末尾点可能是到RAMP的低压,我在处理数据的时候是不是应该要不起始的这些和末尾的这些点都剔除掉,再进行分析才可靠?
问题2:
在测试ADC的静态特性的时候,采用的是码密度方案:
我看了EE247的DNL测试代码:
function [dnl,inl] = dnl_inl_sin(y);
%DNL_INL_SIN
% dnl and inl ADC output
% input y contains the ADC output
% vector obtained from quantizing a
% sinusoid
% Boris Murmann, Aug 2002
% Bernhard Boser, Sept 2002
% histogram boundaries
minbin=min(y);
maxbin=max(y);
% histogram
h = hist(y, minbin:maxbin);
% cumulative histogram
ch = cumsum(h);
% transition levels found by:
T = -cos(pi*ch/sum(h));
% linearized histogram
hlin = T(2:end) - T(1:end-1);
% truncate at least first and last
% bin, more if input did not clip ADC
trunc=2;
hlin_trunc = hlin(1+trunc:end-trunc);
% calculate lsb size and dnl
lsb= sum(hlin_trunc) / (length(hlin_trunc));
dnl= [0 hlin_trunc/lsb-1];
misscodes = length(find(dnl<-0.99));
% calculate inl
inl= cumsum(dnl);
其中LSB是:lsb= sum(hlin_trunc) / (length(hlin_trunc));
我对理解的LSB应该是个固定值:比如12bit ADC,其LSB应该就是1/4096。为什么在这里计算DNL的时候还要用码密度的结果再算一遍呢,其结果不一定等于1/4096.那这样DNL的结果还准吗?
问题3:
码密度的测试方案中,我看了很多资料都是采用的sin波做输入信号,为什么呢?仅仅因为sin波频谱特性好?
我测试静态特性采用斜坡,会有什么问题呢,静态特性也会跟频谱相关吗?
本人初次接触ADC,可能问题有点浅,希望有相关经验的大牛能不吝赐教,谢谢。 |
|