课程目录索引

第一章 课程概述.
第二章 控制设备
第2.2节 串行SPI接口控制PE4312数控衰减器.
第三章 控制仪器
第3.2节 通过GPIB控制信号源.
第3.3节 通过GPIB控制矢量网络分析仪.
第3.4节 通过GPIB控制频谱仪.
第四章 控制软件
第五章 综合案例一
第5.2节 应用工具包得到幅相加权.
第5.3节 共用端口的SPI控制.
第六章 综合案例二
第七章 综合案例三
第八章 课程总结


第3.4节 通过GPIB控制频谱仪

  • 课程目录索引
  • 3.4.1 GPIB连接
  • 3.4.2 频谱仪的测试设置
  • 3.4.3 读取与数据处理
  • 3.4.4 频谱仪控制函数
  • 总结

3.4.1 GPIB连接

在前节介绍了通过GPIB接口控制矢量网络分析仪的方法,在本节将简要介绍如何通过GPIB对频谱分析仪进行,首先是GPIB连接的代码如下。

%% GPIB频谱仪连接
delete(instrfindall);
instrObj = visa('AGILENT','GPIB0::16::INSTR');  % 创建仪器连接对象
fopen(instrObj);                                % 连接仪器
fprintf(instrObj, '*IDN?');                   % 询问IDN
idn = fscanf(instrObj)                        % 读取IDN
% ‘控制代码’
fclose(instrObj);
delete(instrObj);

可以对比前节代码,GPIB连接的部分基本上完全相同,如果有多台仪器需要更改对象命名“instrObj”,同时“GPIB0::16::INSTR”中的连接数字会有不同。

3.4.2 频谱仪的测试设置

在下面射频频谱仪的语句中,主要对中心频率 FREQUENCY 、带宽 SPAN 、分析带宽BW 、参考电平 LEVEL 进行设置,并开启标注点,并标注最大值。

%% 设置频谱仪
FREQUENCY = 1e9; % 中心频率1GHz
SPAN = 500e6;    % 带宽500MHz
BW = 1e5;        % 分析带宽100kHz
LEVEL = 0;       % 参考电平为0dBm
fprintf(instrObj,':SENS:FREQ:CENT %f HZ\n', FREQUENCY); % 设置中心频率
fprintf(instrObj,':SENS:FREQ:SPAN %f HZ\n', SPAN); % 调整带宽
fprintf(instrObj,':SENS:BAND:RES %f HZ\n', BW); % 调整分析带宽
fprintf(instrObj,':DISP:WIND:TRAC:Y:RLEV %f DBM\n', LEVEL); % 设置参考电平
fprintf(instrObj,':CALC1:MARK1:STAT ON'); % 开启标注
fprintf(instrObj,':CALC1:MARK1:MAX:PEAK');% 标注最大点

3.4.3 读取与数据处理

最后,读取最大点的横轴X即频率(单位Hz)和纵轴Y即幅度(单位dBm)。同样由于读取的是字符串,需要转换成数字,这里用了 str2double 函数。

%% 读取峰值的测试结果
fprintf(instrObj,'CALC:MARK1:X?');
X = str2double(fscanf(instrObj));
fprintf(instrObj,'CALC:MARK1:Y?');
Y = str2double(fscanf(instrObj));

这里只是频谱仪最基本的操作,其实只要学会查阅相关的VISA语句,无论什么仪器,理论上所有的手动操作流程都能够转化为代码自动控制。需要注意的是,不同厂家不同型号的仪器相同操作可能对应的指令不同,如果更换测试平台,最好在仔细检查下代码的兼容性。

3.4.4 频谱仪控制函数

类似前面的信号源控制,实际使用时可能需要将频谱仪相关的代码写成一个函数,输入参数进行调用。这里将前面三部分代码进行组合,以仪器地址ADD,中心频率FREQUENCY(单位Hz),带宽SPAN(单位MHz),分析带宽BW(单位Hz),参考电平LEVEL(单位dBm)为函数的输入,读取到的最大电平Y(单位dBm)和最大值频率(单位Hz)为函数的输出。

%% GPIB频谱仪连接
function [X Y] = SAContr(ADD,FREQUENCY,SPAN,BW,LEVEL)
instrObj = visa('AGILENT',ADD);  % 创建仪器连接对象
fopen(instrObj);                                % 连接仪器
fprintf(instrObj,':SENS:FREQ:CENT %f HZ\n', FREQUENCY); % 设置中心频率
fprintf(instrObj,':SENS:FREQ:SPAN %f HZ\n', SPAN); % 调整带宽
fprintf(instrObj,':SENS:BAND:RES %f HZ\n', BW); % 调整分析带宽
fprintf(instrObj,':DISP:WIND:TRAC:Y:RLEV %f DBM\n', LEVEL); % 设置参考电平
fprintf(instrObj,':CALC1:MARK1:STAT ON'); % 开启标注
fprintf(instrObj,':CALC1:MARK1:MAX:PEAK');% 标注最大点
%% 读取峰值的测试结果
fprintf(instrObj,'CALC:MARK1:X?');
X = str2double(fscanf(instrObj));
fprintf(instrObj,'CALC:MARK1:Y?');
Y = str2double(fscanf(instrObj));
fclose(instrObj);
delete(instrObj);
delete(instrfindall);

从稍专业的角度来看,这样的代码效率会比较低,因为每次运行这个函数都会从头到尾的运行一遍程序,而在某些应用场景,其实并不需要重新设置频谱仪,只是需要重新找个最大点读数即可。避免这种低效操作的方法之一是使用面向对象编程,但考虑到这里的目标只是帮助射频工程师快速的实现原型系统并解决手头的问题,而不是实现一个高效的工程化的自动测试系统,因此这种顺序的编码方式可能更好理解和使用。

总结

本节介绍了采用GPIB控制频谱仪完成峰值幅度测试的方法,包括连接仪器,设置中心频率、带宽、分析带宽、参考电平、标注并读取最大点频率幅度等操作。

第3.4节 通过GPIB控制频谱仪相关推荐

  1. java调用visa的dll库,查看新闻/公告--[备忘]Java中,使用JNA调用Visa32.dll,控制频谱仪~~...

    Java中,使用JNA调用Visa32.dll,控制频谱仪~~ C:\Program Files\Agilent\IO Libraries Suite\ 有visa.chm,是方法和属性的说明. 首先 ...

  2. 三菱四节传送带控制梯形图_基于三菱FX—2N系列PLC的四节传送带模拟控制设计...

    龙源期刊网 http://www.qikan.com.cn 基于三菱 FX - 2N 系列 PLC 的四节传送带 模拟控制设计 作者:侯芳 李子都 来源:<无线互联科技> 2018 年第 ...

  3. 三菱四节传送带控制梯形图_基于三菱FX-2N系列PLC的四节传送带模拟控制设计

    基于三菱 FX-2N 系列 PLC 的四节传送带模拟控制设计 侯 芳 1 ,李子都 2 [摘 要] 文章以模拟某企业的四节传送带的 PLC 控制为例,通过 I/O 分配.接 口电路图.工作原理图.梯形 ...

  4. 三菱四节传送带控制梯形图_四节传送带PLC控制课程设计.doc

    四节传送带PLC控制课程设计 四节传送带PLC控制课程设计 一 设计背景和功能概述 二 电气原理图与功能详细分析说明 三 部分元件的说明 四 软件流程图 五 总结 六 源程序清单 七 参考文献 四节传 ...

  5. c#GPIB控制安捷伦矢网和频谱仪

    1.第一步,硬件准备. 一台安捷伦8753ES矢网,一台E4440A频谱仪,GPIB448连接线一条,安捷伦GPIB转usb连接器一条,win7计算机一台. 2.第二步,软件准备. Agilent i ...

  6. 三菱四节传送带梯形图_四节传送带PLC控制

    匿名用户 17级 2010-01-11 回答 健康减肥:1.日常习惯:随便吃(错误)新功能:最后吃主食可减肥减肥原理:进食顺序先吃汤菜再吃饭肉比较符合健康理念,而且可以减肥,这是非常流行的令摄取热量下 ...

  7. ZigBee-Z-Stack协议栈 第一节 无线收发控制LED

    什么是 ZigBee 协议栈呢? 它和 ZigBee 协议有什么关系呢?协议是一系列的通信标准,通信双方需要共同按照这一标准 进行正常的数据发射和接收.协议栈是协议的具体实现形式,通俗点来理解就是协议 ...

  8. PLC实验四节传送带的控制

  9. 4.Java学习笔记第四节——程序流程控制(尚硅谷视频整理)

    文章目录 一.分支语句 1.       if-else 结构 1)如何从键盘获取不同类型的变量 2.      switch-case 结构 二.循环结构 1.      for 循环 一.分支语句 ...

  10. gta python解指纹_基于图像处理和tensorflow实现GTA5的车辆自动驾驶——第四节通过Python控制人物前进后退...

    一开始想采用PyAutoGUI,然后GTA并不支持,遂采用DirectX的输入模式 这部分的代码看不太懂了,我就Github上搜了一下代码,然后调整了一下. Kyes.py文件 键盘映射,主要是把键位 ...

最新文章

  1. 246.三元图的应用与绘图实战
  2. 创办智能车竞赛平台,十五年无间断,育人数十万
  3. python:字典,元组
  4. OPA initialization
  5. idea tomcat debug不能启动的问题
  6. DoDAF示例图绘制
  7. ant接口用什么天线_天线接口 一个叫SMA 另一个叫TNC
  8. 如何免费下载知网论文
  9. 计算机发明于1946年用英语怎么说,电子计算机发明于哪一年,电子计算机发明与1946年...
  10. android手机误删短信恢复软件,苹果手机短信误删恢复工具_安卓手机已删除短信恢复软件-万能数据恢复大师官网...
  11. Android SDK是什么意思?
  12. matlab duffing相图,典型二阶非线性Duffing方程的MATLAB仿真.doc
  13. 国家开放大学2021春1259西方行政学说题目
  14. 百度搜索引擎优化指南 2.0
  15. 不同浏览器JS获取浏览器高度和宽度
  16. 缉拿隐藏进程以及隐藏CPU利用率的进程
  17. java调用libreoffice_JAVA实现LibreOffice转换PDF文档
  18. it转正述职报告_it试用期转正工作总结范文
  19. 遭遇公司裁员,如何赔偿?
  20. 用一年时间备考,如何拿到高中学科竞赛金牌?

热门文章

  1. cad转dwf格式怎么转换?
  2. Louvain算法在反作弊上的应用
  3. 液压伺服控制技术和电液比例控制技术
  4. 自适应中值滤波器(基于OpenCV实现)
  5. 大型IT项目策划和管理关键点
  6. 六款Linux常用远程连接工具介绍,看看哪一款最适合你
  7. 手机号段199/198/166,横空出世
  8. Linux忘记开机密码
  9. 如何在Windows环境搭建Object C开发环境
  10. 利用计算机软件优化设计畜禽饲料配方 excel软件优化畜禽饲料配方,利用Excel线性规划优化饲料配方【荐】.ppt...