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

王朝厨房·作者佚名  2007-01-03
窄屏简体版  字體: |||超大  

本文探讨如何利用MATLAB强大的指令功能改进高速数据采集系统中存储器受限的代码密度,提高程序代码的循环量,以满足高速模/数转换器(ADC)的INL、DNL测试需求。

本文简单介绍了MATLAB?1数据处理软件,在逻辑分析仪存储容量有限的情况下用于增强程序代码量。大多数工程师在使用配有HP16517A高速状态卡的大型逻辑分析仪(LA) HP16500C设备采集超高速数据(数据速率高于135MHz)时,都会面临存储器受限的问题。

HP设备的标准配置中通常提供64k最大存储器容量,每次测试只能存储65536个数据点。为了准确描述INL/DNL特性,64k存储器所能捕获的数据点还远远不能满足需求。事实上,对于INL和DNL测试图,逻辑分析仪需要采集256k到4M个数据点,提供给MATLAB或其它信号处理软件进行分析。

采用上述64k标准数据采集系统的存储容量时,为了精确描述INL/DNL特性,必须采集多组数据记录并将其合并到一个文件中。例如,当需要256k个数据点时,则要采集四组64k的数据,在采用应用笔记:Histogram Testing Determines DNL and INL Errors介绍的MATLAB软件(或同类软件)进行数据分析之前,需要将它们合并到一起。

可通过以下步骤将多个数据记录合并到一个足够大的INL/DNL文件中,以便进行INL/DNL数据处理:

用高速状态卡(HP16517A)采集64k个数据点。

删除所有程序文件中LA指定的、不属于程序的代码,并保存文件。

A为文件内容指定一个新变量。

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测试程序之前,须确认你已拥有这些信息。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航