資源簡(jiǎn)介
采用MATLAB計(jì)算分析ADC的直流特性,包括DNL和INL
代碼片段和文件信息
function[DNLINLvo]=dcdac(vinum);
format?long;
bit=11;%ADC精度
n=2^bit;%ADC輸出碼數(shù)目
N_negetive=0;%高于0的采樣總數(shù)
N_positive=0;%低于0的采樣總數(shù)
N_tot=0;%總采樣數(shù)目
A=1;%正弦波幅度
temp=vi?;?%讀入數(shù)
%-----------------------------------------------%?
%計(jì)算每個(gè)碼的統(tǒng)計(jì)次數(shù)
%-----------------------------------------------%?
hh=zeros(n1);
for?i=1:2^bit
????count=0;%附值
????for?j=1:num
????????if?temp(j)==i-1
????????????count=count+1;
????????else?count=count;
????????end
????end
????hh(i)=count;
end
h=[hh(1:2^bit)];
LSB=A*2.0/(2^bit);%理想LSB
%-----------------------------------------------%?
%計(jì)算offset:vo
%-----------------------------------------------%?
N_negetive=sum(hh(1:n/2));
N_positive=sum(hh(n/2+1:n));
N_tot=sum(hh(1:n))
vo=A*pi/2*sin((N_positive-N_negetive)/N_tot)?
%-----------------------------------------------%?
%計(jì)算INL、DNL
%-----------------------------------------------%?
ch=zeros(n1);
v=zeros(n1);%possibility?of?the?ith?code?occurs
in=zeros(n1);%每級(jí)臺(tái)階的INL
dn=zeros(n1);%每級(jí)臺(tái)階的DNL
for?i=1:n
????for?j=1:i
????????ch(i)=ch(i)+h(j);
????end
????v(i)=-cos(pi*ch(i)/N_tot);
end
LSB=(v(n-1)-v(2))/(n-3);%實(shí)際LSB
for?i=1:n-1
????in(i)=v(i)/LSB-i+102
評(píng)論
共有 條評(píng)論