主要内容

通过测量其S参数来表征低噪声放大器

此示例显示了如何使用MATLAB®和仪器控制工具箱™自动化keysightTechnologies®(以前AgilentTechnologies®)网络分析仪的2端口S参数测量。该示例还可视化MATLAB中的测量值,并使用RF Toolbox™的功能将测量值保存到Thegstone数据文件。

介绍

散射参数或S参数描述了线性电气网络中各个组件的行为或组件网络。电气网络中组件的S参数的测量可以用于模拟性能,模拟行为,设计匹配网络等。该MATLAB示例连接到并配置键(Agilent)PNA(N522A)以测量S参数低噪声放大器(LNA)。在此示例中使用的仪器正在运行固件版本A.09.90.02。如果您使用的是使用不同的仪器或固件,则需要修改该示例中PNA的可编程仪器(SCPI)的标准命令。大多数仪器的SCPI命令集可在仪器供应商仪器编程器手册中提供。

要求

要执行此示例,您需要连接到您的设备的Keysight(Agilent)PNA。该示例中的参数特定于我们使用的低噪声放大器的测量,并且可能需要修改以在被测设备上进行测量。

此示例使用仪器控制工具箱和RF工具箱的功能。

仪器连接和配置

在进行测量之前,定义用于配置仪器的参数。在此示例中,我们将使用VISA接口连接到TCPIP网络上的仪器的键视图(Agilent)PNA。根据您的感兴趣的测量,您可能需要修改以下一些参数。

%定义仪器签证地址。仪器的签证地址%可以从仪器的用户界面或您的签证获得%配置实用程序InstrumentVisaAddress ='tcpip0 :: 127.0.0.1 :: inst0 :: instr';%定义2.3GHz到2.6GHz的频率范围ForderRange = [2.3E9 2.6E9];%测量点数Numpoints = 401;%创建与仪器接口的VISA连接inersobj = Visa('安捷伦',internervisaaddress);%设置连接参数,用于从中传输测量数据% 乐器inersobj.inputbuffersize = 10e6;inersobj.byteorder =.'小小的是';%打开与仪器的打开连接和仪器的清晰硬件缓冲区fopen(instrobj);clrdevice(instrobj);%显示有关仪器的信息idnstring =查询(Instrobj,'* idn?');fprintf('连接到:%s \ n',idnstring);
连接到:Agilent Technologies,N5222A,US51220131,A.09.90.02

测量设置

设置仪器以制作2端口S参数测量。

%提示用户询问他们是否想要校准仪器docalibration = questdlg(“你想校准你的pna吗?'examplemeasuresparameter''是的''不''不');如果Strcmpi(Docalibration,'是的'%启动向导导向仪器上的校准并提示用户确认完成fprintf(instrobj,'系统:ercr:wiz main');HMSGBOX = MSGBOX('校准完成后按OK''examplemeasuresparameter''帮助''模态');%等到用户已确认校准完成Uiwait(HMSGBOX);结尾%执行系统预设fprintf(instrobj,'系统:FPRESET');fprintf(instrobj,'* cls');%等到系统准备好预设可能需要时间opcstatus = 0;尽管(〜opcstatus)opcstatus = str2double(查询(instrobj,'* opc?'));结尾%定义了测量名称和参数fprintf(instrobj,“计算:参数:定义:EXT'SParamMeasurementS11”,S11');fprintf(instrobj,'计算:参数:定义:Ext''sparameAlements12'',S12');fprintf(instrobj,'计算:参数:定义:EXT''sparameAlements21',S21');fprintf(instrobj,'计算:参数:定义:Ext''sparameAlements22'',S22');%创建一个新的显示窗口并打开它fprintf(instrobj,'显示:window1:state');%将测量值与window1关联fprintf(instrobj,'显示:窗口1:TRACE1:FEED'SParamMeasurementS11' '');fprintf(instrobj,'显示:window1:trace2:feed''sparammeasurense12'''');fprintf(instrobj,'显示:Window1:Trace3:Feed''SparameAsurements21''');fprintf(instrobj,'显示:window1:trace4:Feed''SparammeAsurements22'''');%打开标题,频率和跟踪注释以允许仪器显示器上测量的%可视化fprintf(instrobj,'显示:window1:标题:状态为“);fprintf(instrobj,“显示:注释:频率ON”);fprintf(instrobj,'显示:window1:trace1:state');fprintf(instrobj,'显示:window1:trace2:state');fprintf(instrobj,'显示:window1:trace3:state');fprintf(instrobj,'显示:window1:trace4:state');%关闭平均fprintf(instrobj,'Sense1:平均:状态关闭');%设置点数FPRINTF(Instrobj,Sprintf('感觉:扫描:分数%',num2str(numpoints)));%设置频率范围FPRINTF(Instrobj,Sprintf('感觉:频率:启动%shz',num2str(surfordrange(1)))));FPRINTF(Instrobj,Sprintf(“感觉:频率:停止%shz”,num2str(surfordrange(2)))));%选择测量并将测量触发器设置为即时fprintf(instrobj,'计算:参数:选择''sparameaeSurements11'');fprintf(instrobj,'计算:参数:选择''sparammeasurense12''');fprintf(instrobj,'计算:参数:选择''sparameaeurements21'');fprintf(instrobj,'计算:参数:选择''sparameaeSurense22''');fprintf(instrobj,'trig:source立即');%autoscale显示fprintf(instrobj,'显示:风:Y:Auto');%在频率范围内选择单个扫描以触发测量fprintf(instrobj,':感觉:扫描:模式单一');%由于仪器可能需要时间来进行测量,等到它%在请求测量数据之前完成opcstatus = 0;尽管(〜opcstatus)opcstatus = str2double(查询(instrobj,'* opc?'));结尾

检索测量数据

仪器可以以各种格式返回测量数据。传输S参数测量的最有效方法使用IEEE 488.2块格式。

%设置仪器使用binblock格式返回数据fprintf(instrobj,'格式真实,64');%设置字节顺序以交换(小端)格式。交换是必需的使用IBM兼容计算机时%fprintf(instrobj,'格式:边框交换');%请求2端口测量来自仪器的测量数据fprintf(instrobj,'Calc:数据:SNP:端口?'' 1,2 ''”);%读取测量数据Rawdatadb = binblockread(instrobj,'双倍的');欺诈(instrobj,1);%读回测量中的点数并重塑%测量数据numpoints = str2double(查询(instrobj,“感觉:扫描:点?”));%重塑测量数据到[频率,真实,Imag]数组Rawdatadb = Rehape(RawdataDB,Numpoints,9);

显示任何错误

如果前面的SCPI命令中的任何一个导致仪器错误,请将仪器错误显示给用户。

%循环通过错误队列并显示所有错误systemerror =.'';尽管isempty(strfind(较低的(systemerror),'没有错误'))systemError =查询(Instrobj,'系统错误?');fprintf('系统错误:%s',系统错误);结尾
系统错误:+0,“没有错误”

清理仪器连接

测量完成后清理到仪器的任何连接

%关闭,删除和清除仪器连接。fclose(Instrobj);删除(Instrobj);清除instrobj.;

将数据格式化为Sparameters对象,以供RF Toolbox使用

RF Toolbox具有可用于存储测量的对象,例如从仪器获得的S参数测量值。可以通过从标准文件格式读取测量来创建对象,或者通过使用测量数据初始化对象来创建。

%储存频率范围的测量freqrange = RawdataDB(:,1);%转换从db中检索的幅度信息sparammag = 10. ^((1/20)。* RawdataDB(:,2:2:8));%将检索到的阶段信息从度到弧度转换为弧度Sparamphase = RawdataDB(:,3:2:9)*(PI / 180);%提取S参数向量Rawdatari = sparammag。*(cos(sparamphase)+ 1i * sin(sparamphase));S11 = Rehape(Rawdatari(:,1),1,1,Numpoints);S12 = REPAPE(Rawdatari(:,3),1,1,Numpoints);S21 = REPAPE(Rawdatari(:,2),1,1,Numpoints);S22 = REPAPE(Rawdatari(:,4),1,1,Numpoints);%汇编为RF工具箱消耗的3D矩阵sparameter3ddata = [S11 S12;S21 S22];

将测量的数据写入Thegstone文件中

Touchstone文件的是用于存储的S参数测量数据的标准文件格式。RF Toolbox提供从Matlab读取和写入Toundstone文件的标准功能。S参数测量可以直接用于MATLAB以进行设计目的,例如这个例子关于低噪声放大器的匹配网络。

RFWRITE(SPARAMETER3DDATA,FREQRANGE,'lnasparams.s2p');

可视化MATLAB中的测量数据

MATLAB可用于以多种方式可视化数据。有关仪器屏幕上显示的内容的简单比较,请绘制S参数数据的频率与复数。

%创建斯波拉姆计对象hsparamdata = sparameters(sparameter3ddata,freqrange);%绘制LNA的S参数的幅度V / S频率图RFPLOT(HSPARAMDATA);标题('2端口S参数测量值');

附加信息

此示例显示了如何使用Matlab和仪器控制工具箱从KeysightTechnologies®(以前AgilentTechnologies®)网络分析仪进行自动测量S参数数据。使用仪器控制工具箱,可以从Matlab内控制各种测试和测量硬件,如信号分析仪,RF信号发生器,示波器等。马铃薯可以被用于可视化的测量数据,或使用测量来分析和设计使用在功能库中的数字和RF系统信号处理工具箱™DSP System Toolbox™Communications Toolbox™rf工具箱