?? dnlandinlofad.m
字號:
%輸出的數字碼字采用MATLAB腳本進行分析,從Smartspice仿真軟件輸出
%的每個數字碼字轉換為相應的模擬信號。下面是MATLAB計算DNL和INL的
%腳本文件。
clc;
clear;
dataTmp=rand(1024,10);
data=round(dataTmp);
index=size(data);
%Columns for adcdata matrix:
vs=1;d10=1;d9=2;d8=3;d7=4;d6=5;d5=6;d4=7;d3=8;d2=9;d1=10;
Vout=1;VsamPle=2;Vshifted=3;
%OutPut code data retrieval
j=1;k=1;
%Dout=rand(1024,3);
for i=1:index(1,1)%每一個for循環將data中的第i行加權和賦值給Dout的第一列第j個元素;
%將data的第k(k=i)行第1列的元素賦值給Dout的第二列第j個元素;
Tmp1=data(i,d10)/2+data(i,d9)/4+data(i,d8)/8+data(i,d7)/16;
Tmp2=data(i,d6)/32+data(i,d5)/64+data(i,d4)/128+data(i,d3)/256+data(i,d2)/512;
Tmp3=data(i,d1)/1024;
Dout(j,VsamPle)=data(k,vs);
Dout(j,Vout)=1.25*(Tmp1+Tmp2+Tmp3);
k=k+1;
j=j+1;
end
totalCodes=size(Dout);%totalCodes=(index(1,1),2);
LSB=(Dout(1024,Vout)-Dout(1,Vout))/1024;
%End of outPut code data retrieval
idealLSB=1.25/1024;
for i=1:totalCodes(1,1)
idealVT(i)=(i-1)*idealLSB;
end
Offset=Dout(:,VsamPle)-idealLSB;
%for i=1:totalCodes(1,1)
Dout(:,Vshifted)=Dout(:,Vout)-Offset;
%end
%DNL and INL calculation
for m=1:totalCodes(1,1)-1
DNL(m)=(Dout(m+1,Vshifted)-Dout(m,Vshifted)-LSB)/LSB;
INL(m)=(Dout(m,Vshifted)-idealVT(m))/LSB;
end
plot(DNL,'r');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -