0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

合并多个数据文件以优化INL/DNL处理

星星科技指导员 来源:ADI 作者:ADI 2023-01-10 14:16 次阅读

以下应用笔记展示了如何利用 MATLAB 的一些强大命令来提高存储器受限高速数据采集系统的码密度,以实现任何高速模数转换器ADC) 的 INL 和 DNL 测试所需的大量代码重复。

本简短的应用笔记演示了在逻辑分析仪存储器深度有限的情况下,如何使用 MATLAB™¹ 等数据处理软件来增加代码数量。任何使用配备 HP16517A 高速状态卡(数据速率超过 135MHz)的逻辑分析仪 (LA) 主机 HP16500C 捕获超高速数据的工程师可能已经遇到过这些内存限制。

此HP系统的标准版本通常配备64k的最大内存深度,单次测试运行仅允许捕获65536个数据点。64k 内存捕获的数据点根本不足以生成 INL/DNL 图形的准确表示。事实上,对于 INL 和 DNL 图,逻辑分析仪通常应捕获 256k 到 4M 个数据点,这些数据点通过 MATLAB 或其他信号处理软件进行处理。

要使用上述数据采集系统的64k标准存储深度并实现精确的INL/DNL表征,必须捕获多个数据记录并将其合并到一个文件中。例如,如果需要 256k 个数据点,则必须捕获四组 64k 数据点并将其组合在一起,然后才能使用应用笔记 2085“直方图测试确定 DNL 和 INL 误差”中提供的 MATLAB 程序(或类似源代码)进行处理。

要将多个数据记录合并到一个足够大的文件中以进行 INL/DNL 处理,请执行以下步骤。

使用高速状态卡 (HP16517A) 捕获 64k 数据点。

删除代码文件中所有不属于代码的特定于 LA 的行,然后保存该文件。

为文件的内容分配一个新变量。
MATLAB 命令: a=load('inltest1');

使用高速状态卡捕获另一个 64k 数据记录。

同样,删除代码文件中不属于代码一部分的特定于 LA 的行,然后保存该文件。

为新数据文件的内容分配另一个新变量。
MATLAB 命令: b=load('inltest2');

合并两个数据记录(A 和 B)并将它们分配给新变量。
MATLAB 命令: c=vertcat(a,b);

如果要测试组合数据记录的大小,只需在 MATLAB 中键入 size(c),您应该会收到 132k 的数据记录。

将此新记录另存为.TXT或 。DAT 文件,以便 MATLAB 可以处理数据以进行 INL/DNL 计算。
MATLAB 命令: save inldata.txt c -ascii;

上述命令将文件另存为预定义目录中的 ASCII 文件,并使其可用于 INL/DNL 测试例程。

如果所有步骤都在一个 MATLAB 会话中完成,则上述过程将起作用。也可以对以前合并的文件重复此操作。为此在这种情况下,只需加载存储数据的文件,并为其分配一个新变量。
MATLAB 命令: d=load('inldata.txt');

完成此任务后,可以获取一组新数据并将其添加到现有数据中。只需捕获另一个 64k 数据记录并将其内容分配给另一个新的矩阵变量。
MATLAB 命令: e=load('inltest3');

将旧文本文件(现在分配给变量 d)与变量 e 中的新数据合并。
MATLAB 命令: f=vertcat(d,e);

按照步骤 9 将矩阵的新扩展内容保存到 ASCII 文件。

也可以通过在 MATLAB 中键入以下命令一次组合多个变量:

y=vertcat(a,b,c,d,e,f,g,h)。

有许多不同的方法、程序和设置配置可以使用现有设备和简单的软件命令来完成这些测试。这里描述的过程只是使用 MATLAB 强大功能的一个示例。

要使用 INL/DNL 测试程序实现闭环,只需在 MATLAB 中调用 INL/DNL 测试例程即可。运行它,并在询问时将连接的数据集加载到程序中。如果将合并数据保存在.TXT或 .DAT文件,不要忘记记录矩阵文件的数据路径。当程序提示时,您必须提供要加载到测试例程中的确切路径和文件名。该程序还会询问数据点的数量(级联矩阵的大小)、转换器分辨率及其中间代码。在运行 INL/DNL 测试程序之前,请确保您有此信息可用。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    181

    文章

    2960

    浏览量

    229959
  • 存储器
    +关注

    关注

    38

    文章

    7413

    浏览量

    163466
  • adc
    adc
    +关注

    关注

    97

    文章

    6380

    浏览量

    543607
收藏 人收藏

    评论

    相关推荐

    AD的一些指标——INLDNL

    元器件及结构造成的不能精确测量产生的误差。(2)DNL(Differential NonLinear)差分非线性值。理解为刻度间的差值,即对每个模拟数据按点量化,由于量化产生的误差。例子: (1) INL
    发表于 03-12 11:59

    数据文件合并

    第一次练手写的小工具,可以批量将大量测试数据文件合并成一个文档,以便后续处理,奉上源码,各位可自由发挥。
    发表于 03-04 16:52

    ADC的微分非线性(DNL)和积分非线性(INL)规范解析

    和测量应用为了更好地理解DNL规范在控制和测量系统中的含义,让我们考虑图4中描述的示例。图4. 显示腔室温度调节的示例反馈系统。在本例中,反馈系统尝试调节腔室的温度。温度数据由ADC数字化并传送到处理
    发表于 12-21 14:49

    已知INLDNL,怎么计算ADC的转换精度呢?

    请教: 已知INLDNL,怎么计算ADC的转换精度呢?
    发表于 12-06 06:16

    如何测量高速ADC的INLDNL

    本文主要介绍的是如何测量高速ADC的INLDNL
    发表于 04-25 09:50 30次下载

    通过多个数据文件组合优化INL/DNL分析

    通过多个数据文件组合优化INL/DNL分析 本文探讨如何利用MATLAB强大的指令功
    发表于 05-07 13:43 1433次阅读

    matlab数据文件处理小程序

    数据文件处理小程序 在实验中,处理记录数据文件是经常要做的,而用Matlab来处理是我最推崇的,方便快捷,
    发表于 12-25 13:01 1029次阅读

    通过多个数据文件组合优化INL/DNL分析

    摘要:本文探讨如何利用MATLAB强大的指令功能改进高速数据采集系统中存储器受限的代码密度,提高程序代码的循环量,满足高速模/数转换器(ADC)的INLDNL测试需求。
    发表于 04-25 10:00 707次阅读

    通过多个数据文件组合优化INL/DNL分析

    摘要:本文探讨如何利用MATLAB强大的指令功能改进高速数据采集系统中存储器受限的代码密度,提高程序代码的循环量,满足高速模/数转换器(ADC)的INLDNL测试需求。
    发表于 05-01 10:45 745次阅读

    AD5781:真18位电压输出DAC,±0.5 LSB INL, ±0.5 LSB DNL

    AD5781:真18位电压输出DAC,±0.5 LSB INL, ±0.5 LSB DNL
    发表于 03-20 14:56 8次下载
    AD5781:真18位电压输出DAC,±0.5 LSB <b class='flag-5'>INL</b>, ±0.5 LSB <b class='flag-5'>DNL</b>

    18 位 DAC 实现 ±1LSB INLDNL

    18 位 DAC 实现 ±1LSB INLDNL
    发表于 03-21 05:02 11次下载
    18 位 DAC 实现 ±1LSB  <b class='flag-5'>INL</b> 和 <b class='flag-5'>DNL</b>

    合并多个数据文件优化 INL/DNL 处理

    发表于 11-18 23:46 0次下载
    <b class='flag-5'>合并</b><b class='flag-5'>多个数据文件</b><b class='flag-5'>以</b><b class='flag-5'>优化</b> <b class='flag-5'>INL</b>/<b class='flag-5'>DNL</b> <b class='flag-5'>处理</b>

    直方图测试确定DNLINL错误

    直方图测试方法也称为码密度测试,有助于确定非线性参数,例如数据转换器中的差分和积分非线性(INLDNL)。以下应用笔记有助于深入了解概率密度函数与成功完成直方图测试所需的各种数据转换
    的头像 发表于 02-25 17:37 5519次阅读
    直方图测试确定<b class='flag-5'>DNL</b>和<b class='flag-5'>INL</b>错误

    python如何输入多个数据

    在Python中,输入多个数据可以通过以下几种方式实现:使用input函数、使用sys模块的argv参数、使用文件输入等等。下面将详细介绍这些方法。 使用input函数: 使用input函数可以让
    的头像 发表于 11-23 15:29 5440次阅读

    磁编码器芯片常见参数INLDNL的区别

    INL:学名“积分线性误差值”,英文名“Interger NonLinear”通俗点“精度”,再白话点“整体误差值”。DNL清晰于单挑 一对一的误差,INLDNL误差的累加。
    的头像 发表于 01-07 20:44 1737次阅读
    磁编码器芯片常见参数<b class='flag-5'>INL</b>和<b class='flag-5'>DNL</b>的区别