**

安捷伦or是德信号源+频谱仪操作:从程控到自动测试(二)增益计算的程控实现

**

一、概述
目前,对于射频模块的调试与测试,国内大多数的厂商(特别是中小型企业)均是通过最原始的手工调测方式,需要调试人员手动设置和操作仪器(信号源和频谱仪),并通过肉眼观察仪器上的显示数值并读写分析模块性能,来确定所调试的通信模块是否符合指标要求。
在射频模块的批量生产测试过程中,调试和测试人员需要通过重复的手动操作仪器,进行射频模块的指标测试。上篇文章已经介绍了如何实现仪器校准的程控及自动测试(https://blog.csdn.net/qq_27424533/article/details/123482320?spm=1001.2014.3001.5501),本文将对待测模块增益检测的程控及自动测试的实现进行介绍。

二、增益检测
图1给出了射频待测模块及计算机与信号源和频谱仪的连接方式。从图中可以看出,在信号源和频谱仪都已经进行功率校准之后,当从信号源输出功率为Pin (dBm)的信号通过射频线进入待测模块,再由射频线和衰减器进入频谱仪时,我们可以在频谱仪中得到信号的峰值功率Pout (dBm),此时,待测模块的增益即为:Pout-Pin (dB)。

图1 射频待测模块及计算机与信号源和频谱仪的连接方式

那么,接下来介绍使用信号源和频谱仪进行增益检测的步骤:
1、 仪器校准[1]完成后,按图1所示连接待测模块与信号源和频谱仪,将信号源的中心频率和功率设置到待测频点和功率值(如:-50dBm);
2、 待测模块上电,打开射频开关,输出射频信号;
3、 观察频谱仪中的峰值功率,并读出峰值功率,将该峰值功率与信号源输出功率比较,其差值即为待测模块增益值。
当待测模块具备ALC功能时,增益测试应该在ALC起控之前进行。

三、增益检测的程控实现
如何使用程控进行增益检测工作,从而提高测试人员操作效率?
分析以上增益检测步骤,可以将信号源中心频点和功率设置、频谱仪峰值读取、频谱仪峰值和信号源输入功率差值计算等这些手动操作仪器的步骤使用程控实现。(信号源和频谱仪程控的实现,请参考【VISA+SCPI实现安捷伦/是德信号源和频谱仪的程控】)
本文中程控使用VISA+SCPI指令集实现,操作界面使用C#实现,实现方式还有其他的,可依据自身的熟悉程度进行选择。表1给出了信号源校准程控指令及界面实例,频谱仪的程控指令可参考https://download.csdn.net/download/qq_27424533/80233490,界面实例可与信号源一致。信号源的其他程控指令可参考https://download.csdn.net/download/qq_27424533/80233370。

四、指定输出功率的自动化实现
当理解并实现以上增益检测的程控方式后,我们就具备了增益检测自动化实现的基础。增益检测的步骤在第二节中已经介绍清楚了,那么怎么实现增益检测的自动化,则与个人的算法和思路相关,本文中的增益检测自动化实现思路如下:使用指令将信号源频点和功率值设置按步骤分别进行,然后读取频谱仪中的峰值功率,将该峰值功率与信号源输入功率相减得到待测模块增益值。
进一步的,如何使得待测模块输出指定的功率值呢?则只需要将指定的功率值与增益值相减,得到信号源需要设置的输入功率值,将其设置进信号源中即可使得待测模块输出指定功率。若需得到精确的指定输出功率值,则需使用算法实现。
给出代码如下:

private double GainCal(double fre, string DW){double mk1, IniPow;parentWindow.Button_SGRFONorOFF.IsChecked = false;                      //关闭信号发生器射频parentWindow.SGCMDsend(":OUTPut:MOD OFF", "信号发生器MOD开关关闭!");   //关闭双音开关parentWindow.PPCMDsend(":CALC:MARK:AOFF", "Marker点已关闭!");          //关闭所有maker点//fre = Convert.ToDouble(TextBox_IFre.Text);if (TextBox_SGIntPow.Text.Trim() == "")IniPow = -50;elseIniPow = Convert.ToDouble(TextBox_SGIntPow.Text);parentWindow.SGCMDsend(string.Concat(":POW ", IniPow.ToString(), "dBm"), "信号发生器功率设置成功!");parentWindow.SGCMDsend(string.Concat(":FREQ ", fre.ToString(), DW), "信号发生器中心频率设置成功!");parentWindow.PPCMDsend(string.Concat(":FREQ:CENT ", fre.ToString(), DW), "频谱仪中心频率设置成功!");parentWindow.PPCMDsend(string.Concat(":FREQ:SPAN 10MHz"), "频谱仪频率带宽设置成功!");parentWindow.Button_SGRFONorOFF.IsChecked = true;      //打开信号发生器射频// 增益检测parentWindow.ioArbPP.WriteString(string.Concat(":CALC:MARK1:STAT 1"));parentWindow.ioArbPP.WriteString(string.Concat(":CALC:MARK1:X ", fre.ToString(), DW));Thread.Sleep(800);mk1 = Convert.ToDouble(parentWindow.PPCMDread(string.Concat(":CALC:MARK1:Y?"), "频谱仪Marker1功率为:"));if (mk1 < (IniPow - 5)){parentWindow.LogInfo(LogMsgType.Normal, "增益计算异常,请检查频谱仪是否重置!");return -1;}return (mk1 - IniPow);}

安捷伦or是德信号源+频谱仪操作:从程控到自动测试(二)增益计算的程控实现相关推荐

  1. 安捷伦or是德信号源+频谱仪操作:从程控到自动测试(附A)信源播放的程控实现

    ** 安捷伦/是德信号源+频谱仪操作:从程控到自动测试(附A)信源播放的程控实现 ** 一.概述 目前,对于射频模块的调试与测试,国内大多数的厂商(特别是中小型企业)均是通过最原始的手工调测方式,需要 ...

  2. Agilent安捷伦81150A脉冲信号发生器 信号源

    主要特性与技术指标 1μ - 120 MHz脉冲生成,上升/下降时间可变     1μ - 240 MHz正弦波输出     14 bit.2 GSa/s任意波形     每条通道都有512k采样深度 ...

  3. 基于vs2017 Qt编写软件控制安捷伦信号源

    一. 背景 暗室测试通过PC 软件直接控制信号源(信号发生器),不用手动操作.像这种标准控制仪器都有提供有PC接口,要完成信号源的控制我们需要了解两方面的知识:SPCI和VISA. SPCI:SCPI ...

  4. 利用C#Winform串口通信安捷伦信号源

    前言 主要利用C#通过串口通信控制步进电机和安捷伦信号源. 一.串口通信 第一步通过串口RS232控制步进电机,CSDN上很多串口通信示例,下面直接上代码 private void Form1_Loa ...

  5. 安捷伦(Agilent)示波器使用简介

    0.引言 示波器是用来抓取电路中信号的波形,是工程师用于分析电路的利器,常被称作工程师的一双眼睛. 示波器种类:模拟示波器和数字示波器 数字示波器:可以用来分析一些常用的协议的数据帧,例如UART.I ...

  6. 安捷伦示波器DSO-X3034A进入不了测试界面是什么原因?

    有客户送修安捷伦示波器DSO-X3034A,反馈示波器进入不了测试界面.经过检测实际是控制板逻辑单元.本期由安泰测试Agitek为大家分享本示波器故障案例. 安捷伦-DSO-X3034A维修情况 一. ...

  7. Agilent/安捷伦81134A脉冲信号发生器

    Agilent 81134A双通道3.35 GHz脉冲码型发生器是安捷伦较新一代高速脉冲码型发生器产品.在定时和性能非常关键的应用环境(例如类似PCI Express和串行ATA的高速串行总线应用), ...

  8. 安捷伦网络分析仪常见故障

    安捷伦(Agilent)网络分析仪是一种高精度的电子测试仪器,但是在使用过程中仍可能出现一些常见故障.下面是安捷伦网络分析仪常见的故障和排查方法: 硬件故障:网络分析仪的硬件故障可能包括电源故障.接口 ...

  9. Agilent安捷伦34401A|34461A|3458a数字万用表软件NS-Multimeter

    1.软件概述 ◆NS-Multimeter 数字万用表程控软件实现对绝大多数数字万用表的控制,通过此系统软件您不仅能够在独自一人的情况下方便快捷地实现数字万用表所有的常用功能,还可以实现测试数据的图表 ...

最新文章

  1. 【linux】Matchbox(一):启动脚本
  2. 是否提交由npm 5创建的package-lock.json文件?
  3. web服务之Tomcat
  4. ParameterizedType应用,利用java反射获取参数化类型的class实例
  5. 在云服务器上注意GeoServer和ShadowDataMap的跨域设置
  6. 拨码开关控制数码管的数字显示_VHDL编程
  7. ADF12C 一个应用读多个数据库的数据
  8. vivado安装教程
  9. JS 实现海康威视摄像头笔记
  10. 安泰测试新手教程-泰克数字示波器使用方法
  11. linux离线安装系统工具arping
  12. SEO 和 SEM 和区别
  13. Mac OX 下方便的微信语音,图片,视频等导出方式
  14. python搬家具_python3 摆放家具练习
  15. MATLAB求解非线性方程模型
  16. 百度地图LV1.5实践项目开发工具类bmap.util.jsV1.3
  17. 2020年6月TIOBE编程语言排名公布
  18. AIGC席卷,抖快、阅文、知乎大战网文圈
  19. k8s可视化管理工具Rancher安装和使用
  20. 大学物理实验 载流圆线圈轴线上的磁场分布

热门文章

  1. java lambda做参数_Java中的Lambda参数
  2. 救命!李宁也要进军地产
  3. SCCM 2012 R2实战系列之一:SQL安装
  4. linux内核log介绍
  5. 达梦数据库项目 SpringBoot + jpa + DM8
  6. 美评网java 作家系统页面_《大型网站系统与Java中间件》读书笔记(上)
  7. 4.1 理解层叠分类器的检测原理
  8. 领域驱动设计实现疑难解答(一):如何分包及组织工程结构
  9. 可以u盘上运行linux系统,U盘上运行的linux系统--babylinux
  10. Python打开文件并进行处理,txt、excel、pdf、word!