技术文章和新闻稿

自动化通信测量

由迈克·伍德沃德,MathWorks公司


自动化通信测量涉及的不仅仅是创建控制仪器的按钮界面。理想的自动化系统结合了数据分析、仪器控制和报告。例如,这样的系统可能使模型适合测量数据,将模型预测与新测量数据进行比较,并在文档中总结结果。目前大多数可用的自动化系统擅长其中一项任务,但其他任务则不行。例如,解决方案可能提供出色的仪器控制,但数据分析能力较差。

本文介绍了如何可以自动在MATLAB整个测量过程®.我们将通过两个例子演示了自动化。第一示出了在MATLAB GUI仪器控制和数据分析的结合。第二个显示的自动数据分析和报告的撰写,并且演示了如何创建可与最终用户不暴露下面的代码可以共享一个独立的可执行文件。

本文中讨论的代码示例可用于下载.

仪器控制与数据分析相结合

这个例子显示了如何在一个GUI驱动的MATLAB应用结合测量值的获取,数据分析和可视化。我们的目标是一个未知的电路的响应来自Agilent产品型号为已知输入®33220A任意波形发生器。我们的测试设置包括一个未知电路、一个捕获未知电路输出的外部声卡、波形发生器,当然还有MATLAB(图1)。

图1。MATLAB应用程序控制波形发生器并对未知电路的响应进行建模。

第一步是使用仪器控制工具箱从MATLAB控制测试设备.该工具箱使我们通过各种接口,包括USB,LXI和GPIB控制设备。它还提供仪器专用的驱动程序从安捷伦,泰克,罗德与施瓦茨和其他厂商很多乐器。

控制仪器包括创建和使用协议对象打开会话,写命令到会话,并读取仪器的响应。我们可以连接并控制通过使用下面的代码的VISA接口安捷伦33220A任意波形发生器:

interfaceObj=visa(“安捷伦”,VISAaddress)
%创建一个设备对象。
fgen=icdevice('agilent_33220a.mdd',interfaceObj)
%连接设备对象的硬件。
连接(FGEN)
%将电压幅值设置为0.2 V
集(fgen,振幅,0.2)

正如你看到的,代码非常简单。

接下来,使用MATLAB中的GUIDE工具,我们构建了一个基于GUI的应用程序,用于实时仪器控制、数据分析和可视化。通过GUI,用户控制仪器设置并启动测量过程(图2)。

图2.测量,数据分析和可视化的GUI。

应用程序同时接收来自声卡和波形发生器的数据,并将其显示在图形上。当用户单击开发模式,底层代码从未知电路分析该波形数据和该数据,拟合多项式模型的数据,显示所述拟合结果作为信号频率的函数。当模型后测量回吐简历已经建成,该应用程序显示了测量的和模拟的数据之间的差异。

数据分析和GUI构建

我们的第二个应用程序将继续GUI控制的主题,但这个时候,我们要自动化的数据分析和撰写报告。我们的目标是研究测定长期演进(LTE)的参数如何随时间而变化一定。放大器和发射机特性变化从设备到设备,但随着时间的推移趋势可能表明一个问题,我们需要进行调查。我们希望显示这些变化和模式的转变。

我们的源数据是在不同时间采集的不同设备的LTE测量参数文件,如最大输出功率、EVM、接收器灵敏度和杂散发射。

桂楼

我们要显示一段时间内测量参数的变化,并绘制这些变化的柱状图(对分布和蔓延的类型)。我们也想获得最小值,最大值和平均值加上标准偏差。我们的图形用户界面将这些任务自动化。使用引导工具,我们所建立的界面(如图3)。

图3。左:使用GUIDE构建的界面。右:运行应用程序的同一接口。

指南使用拖放方法,使您能够通过GUI项菜单(如按钮、文本框和图形)构建GUI。我们通过回调函数将GUI控件链接到底层MATLAB代码。例如,当用户单击更新为了更新图,应用程序调用以下回调函数。请注意,这些图表包括随时间的变化和直方图。

%---在更新图中按下按钮时执行。
函数UpdateGraphs\u回调(hObject、eventdata、handles)
轴(handles.axes1);
cla;
popup_sel_index=get(handles.popupmenu1,'Value');
开关弹出选择索引
情况1
绘图(处理最大输出);
案例2
HIST(handles.max_output);
案例3
绘图(句柄.最小输出);
案例4
HIST(handles.min_output);
案例5
积(handles.evm);
案例6
hist(handles.evm);
案例7
情节(handles.receive_sens);
案例8
历史(手柄、接收传感器);
案例9
积(handles.acs);
案例10
HIST(handles.acs);
案例11
绘图(手柄、杂散电磁干扰);
案例12
嘘(handles.spurious_emi);
终止

底层代码可以是任何MATLAB代码;例如,它可以是控制仪器、分析数据或绘制图形的代码。

选择GUI上的按钮将激活底层代码。例如,当用户单击浏览,将打开一个对话框来定位数据文件。当用户选择运行分析对于每个测量的参数并显示结果在对话框中的底层代码计算的统计信息。

自动生成报告

分析和编写组件和系统随时间变化的报告是一项必要但繁琐的任务。MATLAB报表生成器自动化大部分的数据分析和报告写作过程。

在Report Generator工具中,我们定义了报告的结构:包含摘要结果的概述,以及每个单独参数的部分。我们编写MATLAB代码来计算测量统计数据(最小和最大,平均值,标准偏差),曲线拟合数据(看看是否有随时间的变化),并生成图表,绘制参数值与时间和参数直方图。我们将此代码包含在Report Generator项目中,并将MATLAB输出添加到生成的报告中(图4)。

图4。报表生成器接口。

在一个按钮的新闻,我们生产出微软®单词®包含所有这些信息的文档(图5)。

图5。LTE报告生成与MATLAB报表生成器。

该报告包括结果摘要概述和每个参数的部分,包括随时间变化的分析(包括对变化是否重要的自动简短评估)、图表、曲线拟合结果和参数直方图。Word文档是可编辑的,可以将数据解释添加到基本报告中。

为了进一步自动化该过程,我们将报告生成添加到GUI中。报告生成器可以从MATLAB命令行调用,而无需通过接口,因此我们可以添加生成报告按钮连接到GUI,并将其连接到生成报告的MATLAB代码。

构建独立的应用程序

MATLAB编译器允许您在保护底层源代码的同时共享应用程序。编译器将应用程序编译成独立的可执行文件,用户无需访问源代码或MATLAB许可证即可运行。

这个过程很简单(图6)。第一步是创建包含MATLAB文件和应用程序所需的所有其他文件(例如,图像文件)的一个项目文件。这个过程类似于在其他C编译器建设项目。第二步是编译项目,这是只需按下的事编译按钮。最后一步是分发独立的可执行文件。

图6. MATLAB编译GUI,用于产生独立的可执行文件。

独立应用程序可以包括几乎所有的MATLAB功能,包括数据分析,图形,仪器控制,统计分析,和信号处理。

我们构建了一个可以控制仪器、分析和显示数据、生成书面报告的应用程序,并将该应用程序编译为独立应用程序分发。简而言之,我们已经使用MATLAB实现了整个通信测量过程的自动化。

2012年出版-9206V00

查看相关功能的文章

查看文章为相关行业