vim :set nonu 不显示行号
1.DAC计算INL DNL
%% 2022年5月17日由Baymax创建,
% 0424.csv:仿真数据为全0至全1的的斜坡数据。
% .csv文件提前做处理,去掉首行数据和第一列的时间数据,只保留台阶值
clear
clc
close all
filename = '0424.csv';
DATA = csvread(filename);
n=length(DATA); %读取列长 例如 8位:256 10位:1024
for i=2:n;
D_LSB(i-1)=DATA(i)-DATA(i-1); %实际台阶
end
LSB=(DATA(n)-DATA(1))/(n-1); %实际LSB
for i=1:n-1;
D_DNL(i)=(D_LSB(i)-LSB)/LSB; %DNL
end
D_INL=cumsum(D_DNL); %INL
%% 作图
figure
plot(D_LSB)
title('LSB');
figure
subplot(2,1,1);
plot(D_DNL)
title('DNL'); axis([1 n -1 1]) ;
DNL=sprintf('MAX#DNL=%.2g, MIN#DNL=%.2g', max(D_DNL), min(D_DNL))
text(n/2,0.8,DNL);
subplot(2,1,2);
plot(D_INL)
title('INL');axis([1 n -1 1]) ;
INL=sprintf('MAX#INL=%.2g, MIN#INL=%.2g', max(D_INL), min(D_INL))
text(n/2,0.8,INL);
2.解方程组
clear
clc
syms m k %%定义变量
A=solve((m+1-2*k*sqrt(m))/(m*(1-k*sqrt(m))+k*sqrt(m)*(m-k*sqrt(m)))-9,k) %%用m表达k
pretty(collect(A)) %% 化简公式显示
double(solve(0.8==(2*sqrt(2*(9*m-1))+1)/(9*sqrt(m)))) %%计算函数=0.8时,m的值
k=(2*sqrt(2*(9*m-1))+1)/(9*sqrt(m)) %% m=0.16时的K值
double(subs(k,0.1604))
3.十转十六进制,拼接
clc;
clear;
%% x400
ci=input('ci='); %输入数据
co=input('co=');
rin=input('rin=');
A1=dec2bin(ci,6); %十转二进制,并且固定为6bits
A2=dec2bin(co,6);
A3=dec2bin(rin,7);
A=[A3,A2,A1]; %拼接二进制数值
AA=bin2dec(A); %二转十
x400=dec2hex(AA) %十转十六
%% x404
st=input('1st=');
nd=input('2nd=');
vcmfb=input('vcmfb=');
mc=input('mc=');
cap1=input('rc_cap1=');
res1=input('rc_res1=');
cap2=input('rc_cap2=');
res2=input('rc_res2=');
B1=dec2bin(st,3);
B2=dec2bin(nd,3);
B3=dec2bin(vcmfb,3);
B4=dec2bin(mc,4);
B5=dec2bin(cap1,5);
B6=dec2bin(res1,4);
B7=dec2bin(cap2,5);
B8=dec2bin(res2,4);
B=[B8,B7,B6,B5,B4,B3,B2,B1];
BB=bin2dec(B);
x404=dec2hex(BB)
4.十六转十进制,拆分
clc;
clear;
%% x400 7fa1f
x400=input('x400='); %输入数据
AA=hex2dec(x400); %十六转十
A=dec2bin(AA,19); %十转二,固定为19bits
ci=bin2dec(A(14:19)) %拆分后6位,二转十
co=bin2dec(A(8:13))
rin=bin2dec(A(1:7))
%% x404
% x404=input('x404=');
BB=hex2dec(x404);
B=dec2bin(BB,31);
st=bin2dec(B(29:31))
nd=bin2dec(B(26:28))
vcmb=bin2dec(B(23:25))
mc=bin2dec(B(19:22))
cap1=bin2dec(B(14:18))
res1=bin2dec(B(10:13))
cap2=bin2dec(B(5:9))
res2=bin2dec(B(1:4))