主要内容

通过TCP/IP从信号分析仪读取Inphase和Quadrature (IQ)数据

这个例子展示了如何通过TCP/IP接口从信号分析仪获取IQ数据。

仪器控制工具箱™支持通过接口和驱动程序与仪器通信。金宝app

有关所支持的硬件的完整列表,请访问www.ma金宝appthworks.com/products/instrument/的“仪器控制工具箱”产品页面下载188bet金宝搏

介绍

本例通过TCP/IP接口从Keysight Technologies®(原安捷伦Technologies®)x系列信号分析仪(N9030A, PXA信号分析仪)获取IQ数据。

需求

要运行这个示例,您需要一个带有以太网(TCP/IP)连接的x系列信号分析仪。您也可以在X-Series分析仪上使用MATLAB执行这个示例,或者在与X-Series分析仪相同网络上的PC上执行。

这个例子使用仪器控制工具箱和DSP系统工具箱™中的功能。

定义测量参数

在进行测量之前,定义用于配置仪器的参数。根据您所测量的信号,您可能需要修改以下参数。

%指定信号分析仪的IP地址addressMXA =“172.28.16.61”

参数定义

%被调制波形中心频率(Hz)centerFrequency = 2.14 e9;%信号带宽(Hz)带宽= 25 e6;测量时间(s)measureTime = 8 e - 3;信号分析仪机械衰减百分比(dB)mechAttenuation = 0;%频谱分析仪视图的启动频率startFrequency = 2.11 e9;%频谱分析仪视图的停止频率stopFrequency = 2.17 e9;%分辨率带宽频谱分析仪视图resolutionBandwidth = 200年e3;%视频带宽频谱分析仪视图videoBandwidth = 300;

连接仪器

  • 使用TCP/IP连接建立仪器连接。

  • 设置超时时间以允许有足够的时间来测量和传输数据。

  • 将字节顺序设置为“大端顺序”,以便以正确的格式从分析器读取浮点数据。

信号分析对象= tcpclient(addressMXA, 5025);signalAnalyzerObject。ByteOrder =“大端法”;signalAnalyzerObject。超时= 20;

查询仪器识别信息

使用适当的SCPI命令将仪器重置为已知状态。查询仪器标识以确保我们连接到正确的仪器。

writeline (signalAnalyzerObject“* RST”);instrumentInfo = writeread (signalAnalyzerObject,“* IDN ?”);disp (“仪器识别信息:”+ instrumentInfo);
仪器识别信息:Agilent Technologies,N9030A,US00071181,A.14.16

设置IQ波形测量仪器

x系列信号和频谱分析仪执行IQ测量以及频谱测量。在本例中,获取时域IQ数据,在MATLAB中可视化,并对采集到的数据进行信号分析。使用SCPI命令配置仪器进行测量,并在测量完成后定义数据传输的格式。

将信号分析仪模式设置为基本/IQ模式writeline (signalAnalyzerObject”:仪器:选择基本”);%设置中心频率writeline (signalAnalyzerObject”:意义:频率:中心”+ num2str (centerFrequency));%设置分辨率带宽writeline (signalAnalyzerObject”:意义:波形:带宽:决议”+ num2str(带宽));关闭平均百分比writeline (signalAnalyzerObject”:意义:波形:断言“);%设置在触发线高的时候进行一次测量writeline (signalAnalyzerObject”:INIT:续了”);%将触发器设置为外接源1,正斜率触发writeline (signalAnalyzerObject”:触发:波形:立即源”);writeline (signalAnalyzerObject”:触发:行:坡积极”);%设置需要进行测量的时间writeline (signalAnalyzerObject”:波形:理念:时间”+ num2str (measureTime));关闭电衰减。writeline (signalAnalyzerObject”:意义:力量:射频:EATTenuation:国家了”);设置机械衰减等级writeline (signalAnalyzerObject”:意义:力量:射频:衰减”+ num2str (mechAttenuation));将IQ信号调至自动writeline (signalAnalyzerObject”:意义:电压:智商:范围:汽车”);%设置返回数据的字节顺序writeline (signalAnalyzerObject”:格式:边境正常”);%设置返回数据的格式writeline (signalAnalyzerObject”:格式:数据真实,32 ");

开始测量

触发仪器进行测量,等待测量操作完成并读取波形。在处理数据之前,将I和Q分量从仪器返回的交错数据中分离出来,并在MATLAB中创建一个复杂的向量。

触发仪器并启动测量writeline (signalAnalyzerObject“*丹”);writeline (signalAnalyzerObject”:启动:波形”);%等待测量操作完成measureComplete = writeread (signalAnalyzerObject,“* OPC ?”);%读取IQ数据writeline (signalAnalyzerObject”:阅读:WAV0 ?”);data = readbinblock (signalAnalyzerObject“单身”);从仪器读取附加终止符读(signalAnalyzerObject, 1);%分离数据并构建复杂的IQ向量。同相的=数据(1:2:结束);交=数据(2:2:结束);IQData =同相的+ 1我*交;

显示测量信息

该仪器提供有关最近获得的数据的信息。捕获并显示此信息。

writeline (signalAnalyzerObject”:获取:WAV1 ?”);signalSpec = readbinblock (signalAnalyzerObject,“单身”);sampleRate = 1 / signalSpec (1);disp ("采样率(Hz) = "+ num2str (sampleRate));disp ("读取的点数= "+ num2str (signalSpec (4)));disp ("信号最大值(dBm) = "+ num2str (signalSpec (6)));disp ("信号最小值(dBm) = "+ num2str (signalSpec (7)));
采样率(Hz) = 312500.8838读取点数= 250001信号最大值(dBm) = -8.211信号最小值(dBm) = -42.5689

绘制获得的智商数据

绘制获得的时域数据的前1000个点,并在图上标注。

图(1)情节(真实(IQData (1:1000)),“b”);持有情节(图像放大(IQData (1:1000)),“g”);传奇(“同相的信号”“正交信号”);标题(“采集信号前1000点的IQ数据”)包含(“样品号”);ylabel (“电压”);

绘制IQ数据的光谱图

频谱视图可能比数据的时域视图有更多的信息。例如,您可以使用频谱视图来识别主要频带、信号带宽等。您需要DSP系统工具箱来绘制频谱视图。如果所需的功能不可用,可能会出现错误。

%创建一个带有汉明窗口的周期图图(2)周期图(IQData汉明(长度(IQData)), [], sampleRate,“中心”

将仪器切换回频谱分析仪模式

将仪器切换到频谱分析仪模式,并将MATLAB中生成的频谱视图与信号分析仪上的视图进行比较。使用附加的SCPI命令来配置仪器测量和显示设置。

%切换回频谱分析仪视图writeline (signalAnalyzerObject”:仪器:选择山”);设置机械衰减等级writeline (signalAnalyzerObject”:意义:力量:射频:衰减”+ num2str (mechAttenuation));%设置中心频率、RBW、VBW和触发writeline (signalAnalyzerObject”:意义:频率:中心”+ num2str (centerFrequency));writeline (signalAnalyzerObject”:意义:频率:开始”+ num2str (startFrequency));writeline (signalAnalyzerObject”:意义:频率:停止”+ num2str (stopFrequency));writeline (signalAnalyzerObject”:意义:带宽:决议”+ num2str (resolutionBandwidth));writeline (signalAnalyzerObject”:意义:带宽:视频”+ num2str (videoBandwidth));%连续测量writeline (signalAnalyzerObject”:INIT:续上”);%触发writeline (signalAnalyzerObject“*丹”);

清理

%关闭并删除仪器连接清晰的signalAnalyzerObject