Matlab 提供了多种手段可以用来连接各种外设和仪器,包括常用的Agilent公司的矢量信号发生器ESG4438C。
具体操作步骤:
网线连接4438到局域网,直连或者用路由、交换机都行。
在4438的utility里面配置LAN的属性,包括IP,子网掩码等(和计算机要在一个局域网内),端口不用配置,Telnel默认端口5023,SCPI端口5025。生效配置后4438自动重启。
等待4438重启完成后再计算机CMD中输入ping ESG_IP, ESG_IP是前面设置的IP,如果有回应下一步,如果无回应检查网线连接,计算机的网络配置ESG的网络设置和防火墙。
再浏览器中输入ESG的IP地址。看到如下界面:
- 以上通过表明连接正常。下一步用来测试SCPI接口,点击左侧SCPI Telnet按钮,输入并发送
*idn?
-
返回:
获得返回值后表明测试通过。下面通过Matlab和ESG4438通信。
Matlab连接ESG4438有多重方式和多重通信介质(LAN或者GPIB等),Agilent提供了MSG X系列、PSG、ESG的MATLAB 下载助手 或者直接使用 Matlab Instrument Control Toolbox
打开Matlab、建立新的文件,自己生成一个IQ信号。
输入:
io=agt_newconnection('tcpip','192.168.1.16');
[status,status_description,query_result]=agt_query(io,'*idn?');
if(status<0) return;end
[status,status_description2]=agt_sendcommand(io,'SOURce:FREQuency 500E6');
[status,status_description3]=agt_sendcommand(io,'POWer -10');
[status,status_description4]=agt_waveformload(io,IQData,'TitleName,fs,'play','normscale');
[status,status_description5]=agt_sendcommand(io,'OUTPut:STATe ON');% agt_closeAllSessions;
上面fs是设置的采样率,IQData为需要输入给4438的IQ数据。其他语句按照字面均可理解,详细可参见下载助手文件内注释。
连接N9020和4438,频带调到中心频点500M,带宽2M,
运行MATLAB程序,观测结果。需要说明的是,这里IQData有格式要求,参见文件内部说明。此外还修改了一处agt_newconnection.m中tciip部分的InputBufferSize = 1000000, 不修改会提示过大无法处理。
http://www.jianshu.com/p/0269fa01cf03