资源简介

采用MATLAB计算分析ADC的直流特性,包括DNL和INL

资源截图

代码片段和文件信息

function[DNLINLvo]=dcdac(vinum);
format long;
bit=11;%ADC精度
n=2^bit;%ADC输出码数目
N_negetive=0;%高于0的采样总数
N_positive=0;%低于0的采样总数
N_tot=0;%总采样数目
A=1;%正弦波幅度
temp=vi ; %读入数
%-----------------------------------------------% 
%计算每个码的统计次数
%-----------------------------------------------% 
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
%-----------------------------------------------% 
%计算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) 
%-----------------------------------------------% 
%计算INL、DNL
%-----------------------------------------------% 
ch=zeros(n1);
v=zeros(n1);%possibility of the ith code occurs
in=zeros(n1);%每级台阶的INL
dn=zeros(n1);%每级台阶的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);%实际LSB
for i=1:n-1
    in(i)=v(i)/LSB-i+102

评论

共有 条评论