在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3960|回复: 8

[求助] 求SAR ADC MATLAB教程

[复制链接]
发表于 2020-9-26 15:25:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
    最近刚开始学习SAR ADC,老师说可以用下MATLAB仿真个简单的,在网上找到了源代码,可是没有说明,根本看不到,有哪位大佬能帮下忙,或者推荐下如何初步入手SAR ADC吗。
function [Dout, Y] = SAR_ADC (N, Vref, Vcm, Vi)

D = zeros (1,N);
Vip = Vcm + Vi/2;
Vim = Vcm - Vi/2;
CP = zeros (1,N+1);
CN = zeros (1,N+1);
dev = 0.005;
Cp0 = 0; %% The parasitic cap to gnd. Not used here but maybe needed one day.
CP(1) = 1;
CN(1) = 1;
for i=2:1:N+1
    CP(i) = 2^(i-2)*(1 + dev*randn/2^((i-2)/2));
    CN(i) = 2^(i-2)*(1 + dev*randn/2^((i-2)/2));
end
CP_tot = sum(CP);
CN_tot = sum(CN);

Vxp = Vcm - Vip + Vref*CP(N+1)/CP_tot;
Vxn = Vcm - Vim + Vref*(CN_tot-CN(N+1))/CN_tot;

D(N) = (Vxp<Vxn);

for i=N:-1:2
    Vxp = Vxp + Vref*CP(i)/CP_tot + (D(i) - 1)*Vref*CP(i+1)/CP_tot;
    Vxn = Vxn - Vref*CN(i)/CN_tot + (1 - D(i))*Vref*CN(i+1)/CN_tot;

    D(i-1) = (Vxp<Vxn);
end

Dout=0;
for i=1:1:N
    Dout = Dout + D(N+1-i)*2^(N-i);
end

% for i=1:1:N
%     Dout(i)=D(N+1-i);
% end

Y = 0;

for i=N:-1:1
    Y = Y + (D(i) - 0.5)*Vref/(2^(N-i));
end

end

发表于 2020-9-26 21:24:08 | 显示全部楼层
谢楼主,资源很棒
发表于 2020-9-27 09:12:04 | 显示全部楼层
帮顶!我也想学习一下。
发表于 2020-9-28 18:58:29 | 显示全部楼层
我也是刚接触SAR ADC 可以一起交流啊
发表于 2020-9-29 15:55:16 | 显示全部楼层
非常不错的代码
发表于 2021-8-10 16:51:00 | 显示全部楼层
mark~
发表于 2021-9-1 20:15:54 | 显示全部楼层
我也是在网上看到的这个
发表于 2021-10-9 17:52:36 | 显示全部楼层
楼主写得不错
发表于 2023-6-6 15:15:14 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-23 17:27 , Processed in 0.040155 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表