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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: cscs0120

[求助] 流水线ADC测试DNL和INL异常,求大佬帮忙分析分析

[复制链接]
发表于 7 天前 | 显示全部楼层
可以请教一下DNL是怎么测的吗
 楼主| 发表于 3 天前 | 显示全部楼层


我先下了 发表于 2025-7-20 15:24
可以请教一下DNL是怎么测的吗


就是输入斜坡信号,然后采集大量数据用matlab计算的
发表于 3 天前 | 显示全部楼层


cscs0120 发表于 2025-7-24 11:32
就是输入斜坡信号,然后采集大量数据用matlab计算的


有参考资料吗哥们,最近卡这个好几天了,或者有能用的matlab代码吗
 楼主| 发表于 前天 16:26 | 显示全部楼层


我先下了 发表于 2025-7-24 21:16
有参考资料吗哥们,最近卡这个好几天了,或者有能用的matlab代码吗


datac=;


    min_bin=min(datac)+2+30;
    max_bin=max(datac)-2-30;
    h = hist(datac, min_bin:max_bin);          % Histogram
    hsum=sum(h);
    ch = cumsum(h);                           % Cumulative histogram

    Tlevels = -cos(pi*ch/sum(h));
    %Tlevels = ch;             % Raised cosine fit

    hlin1 = Tlevels(2:end) - Tlevels(1:end-1); % Difference between adjacent bins
    hlin = hlin1(3:end-2);                     % Dump outside bins
    hlinsum=sum(hlin);
    hlength=(length(hlin));
    lsb = sum(hlin) / (length(hlin));         % Find average difference between bins
                                              %   to remove gain error
    dnl = [0 hlin/lsb-1];                     % Remove gain error, center DNL on 0
    inl= cumsum(dnl);                         % INL is integral of DNL

    y=datac(1:1446919);

    figure;
    subplot(2,1,1)              % 3 plots: data, histogram, fft
    stairs(y)
    title('Digital Output Data');
    xlabel('Time Index [n]');
    ylabel('Magnitude [LSB]');
    ylim([0 16383]);

    figure;
    subplot(2,1,1)
    plot(linspace(min_bin, max_bin, length(dnl)), dnl);
    title(sprintf('DNL/INL (%g pnt)',length(datac)));
%    xlabel('Digital Code [LSB]');
    ylabel('DNL [LSB]');
    xlim([0 2^14]);
    ylim([-1 ceil(max(dnl))]);
    subplot(2,1,2)
    plot(linspace(min_bin, max_bin, length(dnl)), inl);
%    title(sprintf('DNL/INL (%g points)',length(datac)));
    xlabel('Digital Code [LSB]');
    ylabel('INL [LSB]');
    xlim([0 2^14]);
    ylim([floor(min(inl)) ceil(max(inl))]);

    plot_adc_transfer_curve(14,2,inl,dnl);

把你的数据塞进去就行了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-27 20:27 , Processed in 0.016566 second(s), 6 queries , Gzip On, Redis On.

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