相位相参信号源的设计--示波器上的信号不稳定,来回跑?
目录
- 乱跑的波形
- 边沿触发
- 触发方式
- 外部触发
- 相参与非相参
- 相位相参的射频信号源
- 样机外观与内部设计
- 软件设计
- 上位机软件
- 信号源使用方法
- PWM触发信号
- 射频信号的时域波形
- 射频信号的频谱
- 输出功率
在示波器的实际使用当中波形在示波器的时域上乱跑,左右移动,定不下来,这是什么原因呢?如何稳定住示波器的波形?什么是触发信号?什么是相位相参的触发信号?带着这些问题,本文和大家一起来走进信号的时域测量和相参信号源的设计。
乱跑的波形
如图1所示,一个正弦波在示波器上乱跑,不稳定,就好像多个初始相位不同的正弦信号叠加在一起一样。
为什么会乱跑呢?其实示波器上每一个我们看到的波形都是示波器采样记录并叠加显示在屏幕上的,而什么时候获取单个周期是由一个信号触发的,这个信号我们就称之为触发信号。如果这个触发源本身不稳定,或者没有选择一个合适的触发源,那么示波器就会随机截取信号的周期,体现在屏幕上就是不同初始相位的波形,信号“乱跑”。
边沿触发
很多时候这个触发阈值就是一个直流电平,当信号的边沿(通常可选择上、下边沿)达到这个电平值后触发成功,示波器就会显示第一个信号的周期,再次触发就显示第二个,以此类推,这样每个信号周期的起始点都是相同的,体现在示波器的屏幕上就是稳定的。
这个触发阈值我们是可以设置的,在示波器上有一个名为“level”的旋钮,如图2所示,通过旋转它就可以设置触发电平的高低,从而稳定波形的显示。当然用户可以一键“AUTOSET”设置,让示波器自己选择合适的触发,方法简单但是对于有些波形并不是一直都有效。
例如,当向右旋转Level旋钮后,图1中的图像变得稳定,如图3所示:
触发方式
示波器有很多触发方式,除了上面说的边沿触发之外还有:
- 脉宽触发:当信号的脉宽超过设定阈值后才触发。
- 欠幅触发:欠幅触发有两个阈值,如图4所示,当信号大于下阈值且不超过上阈值时才被显示。另外不只欠幅触发,所有触发方式的阈值设置通常不是输入数值,而是通过旋钮和屏幕上的虚线来确定的,如图4所示。
- 斜率触发、超时触发:都是对时间满足一定条件下才触发。
- 外部触发:顾名思义使用外部信号触发,有时候对于一些高频信号和特殊信号,需要一个同步或者相参的外部信号作为触发,波形才可以稳定,下面一节我们着重讨论外部触发。
外部触发
有客户在构建自己的测试系统时,提出了这样的问题,在系统中需要一个射频信号源,频率可以覆盖到6GHz,而且要求使用示波器测量该信号时波形能够稳定显示,在测试了几台信号源后发现均不能稳定显示波形,即使调整level旋钮也不能稳定。为此我们开始了这个相位相参信号源的设计。
其实射频信号源产生的就是正余弦信号,按道理触发很简单,但是仔细分析发现,由于射频信号的频率太高,上下边沿距离很近,非常容易出现前面所说的波形“乱跑”的问题。
解决办法就是需要设计一台抖动(jitter)很小的信号源,并且最好该信号源可以提供一个相参的时钟,这个时钟和射频信号同步或者是成固定线性关系,这样可以用这个相参的时钟信号作为外部触发信号,使得射频波形稳定显示。不过在开始设计之前我们先解释一下,刚刚提到的相参是什么意思?
相参与非相参
相参又称为相干,在通信原理等课程中,我们都知道解调方式有相干解调和非相干解调;雷达系统也有相参雷达系统和非相参雷达系统。其实所谓相参是指信号之间的初始相位具有确定性,非相参是指信号之间的初始相位都是随机的,彼此不相关。图5展示了一组相位相参的方波和正弦波,在方波的上升沿正弦波开始穿越零点。
另外由于电子线路本身有延迟,没有图5、图6那样理想的正弦波和方波的上升沿在某一时刻重合的情况,比如会错开一段时间,如图7所示,但是这个延时是固定的常数,所以仍不改变两者之间的相位相参关系,现实中大多是这样的情况。
另外触发信号的稳定性也十分重要,任何信号都有一个稳定度的问题,以方波为例,上升沿存在一个抖动的问题(jitter),如图8所示。在时域中,我们用抖动表述,在频域中我们用相位噪声描述,请参考笔者博客《信号抖动jitter与相位噪声》。
相位相参的射频信号源
综上所述,一个带有相参触发信号的射频信号源出炉了,如图9所示,方案采用PLL+VCO的方案产生射频信号,可以覆盖15MHz - 6.4GHz的频率范围。从温补时钟振荡器(TCXO)中产生1MHz的触发信号,由于触发信号和射频信号的时钟源都是TCXO,两者的相位是相参的,所以图中的Trigger Out1可以用来做射频信号的外部触发源。
样机外观与内部设计
在设计方案定下后,采用kicad软件绘制电路图,如下图所示,为ARM处理器电路板的3D图:
射频电路采用屏蔽罩屏蔽电磁干扰,使用射频性能良好的SMA连接头,参见《选择SMA射频连接头的注意事项》https://blog.csdn.net/mzldxf/article/details/103093586
采用DCDC电源芯片、以及LDO构成电源管理模块,由ARM控制上电时序,内部布局如下图所示。
在机壳上配有USB接口,可以配合上位机软件实现改变射频频率、PWM占空比等性能。样机装配完成后如下图所示:
软件设计
信号源具备:切换频率、切换PWM占空比、打开与关闭射频输出端口的功能,因此需要撰写状态机。有关状态机的一些经验,可以参考相关书籍和笔者的博客文章:《状态机编程笔记》https://blog.csdn.net/mzldxf/article/details/105130853
上位机软件
下图为上位机软件的界面:
信号源使用方法
(1) 外部接口的连接:随设备配有24V电源适配器,插入后,按下开关键设备即开始工作。另外两条橙黄色的同轴线用于PWM Trig信号的输出,除此之外还配有一条蓝色同轴线,鉴于蓝色同轴线的射频性能优于橙黄色线,建议使用蓝色线用于射频信号输出。
(2) 使用串口上位机软件设置:将USB连接后,双击打开“单频点信号源上位机V3 “上位机软件,按图15,点击刷新串口后,根据自己计算机的情况选择自己相应的串口(图中仅为示例,不同的计算机其串口编号不同),如不知道自己的串口编号,可以先拔下USB线,看一下自己有几个串口编号,插入后再点击刷新,新出现的编号就是GFSig051的编号。波特率等参数按照图15设置即可。设置完成后,点击Open键,旁边的指示灯变绿。
(3) 使用上位机配置射频信号频率:
如图16所示,先点击频率设置按键,在发送数据框内输入15 ~ 6400之间的数值(默认的频率单位是MHz)然后点击发送按键即可,图8配置的是1000MHz,设置成功后,界面会显示相应的设置成功的提示,另外界面的左下角也有各种操作的提示,使用时请多留意,可以帮助您更好的操作软件。
PWM触发信号
不仅如此,该触发信号还可以修改其占空比,如图17、图18所示:
射频信号的时域波形
高速示波器采用外部触发源,即射频信号源的图10、图11的触发信号,然后对射频信号采样测量,如图19所示,时域波形很稳定,利用刚刚介绍的相参触发信号,可以获得稳定的射频信号的时域显示,图19中横轴每一格是200ps,可见图中的射频信号大于4GHz依旧很稳定。
射频信号的频谱
图20、图21展示了射频信号源的输出频谱,可见3次谐波抑制>40dBc。
输出功率
射频信号源的输出功率如图22所示:
至此,一款相位相参的射频信号源的设计就完成了,还在等什么,大家动起手来吧,喜欢的朋友也可以直接联系我入手哦~
作者:潇洒的电磁波(专业:射频芯片设计、雷达系统、嵌入式。欢迎大家项目合作交流。)
相关文章:

相位相参信号源的设计--示波器上的信号不稳定,来回跑?
目录乱跑的波形边沿触发触发方式外部触发相参与非相参相位相参的射频信号源样机外观与内部设计软件设计上位机软件信号源使用方法PWM触发信号射频信号的时域波形射频信号的频谱输出功率在示波器的实际使用当中波形在示波器的时域上乱跑,左右移动,定不下来…...
Spring Boot 整合 RabbitMQ 多种消息模式
Spring Boot 整合 RabbitMQ 多种消息模式 准备工作集成 RabbitMQ发布/订阅模式点对点模式主题模式总结Spring Boot 是一个流行的 Java 应用程序开发框架,而 RabbitMQ 是一款可靠的消息队列软件。将 Spring Boot 和 RabbitMQ 结合起来可以帮助我们轻松地实现异步消息传递。Rabb…...

node多版本控制
前言 最近在折腾Python,并将node升级至v18.14.2。突然发现一个旧项目无法运行,也无法打包,里面的node-sass报错,显然这是因为node版本过高导致的。 将node版本降低至以前的v14.16.0,果然立马就能正常运行。 存在不同…...
Redis set集合
Redis set (集合)遵循无序排列的规则,集合中的每一个成员(也就是元素,叫法不同而已)都是字符串类型,并且不可重复。Redis set 是通过哈希映射表实现的,所以它的添加、删除、查找操作…...

漫画:什么是希尔排序算法?
希尔排序(ShellSort)是以它的发明者Donald Shell名字命名的,希尔排序是插入排序的改进版,实现简单,对于中等规模数据的性能表现还不错 一、排序思想 前情回顾:漫画:什么是插入排序算法…...

问卷工具选择要看哪些方面?
通常来讲,我们在使用一款问卷制作工具制作问卷时会有哪些需求呢? 一、用户需求 1、操作简单,易上手。 2、能够满足用户个性化的需求。 3、提供多语言服务。 4、能够帮助发布以及数据收集。 5、简化数据分析 市面上的问卷调查制作工具都…...

Qt之QPainter绘制多个矩形/圆形(含源码+注释)
一、绘制示例图 下图绘制的是矩形对象,但是将绘制矩形函数(drawRect)更改为绘制圆形(drawEllipse)即可绘制圆形。 二、思路解释 绘制矩形需要自然要获取矩形数据,因此通过鼠标事件获取每个矩形的rect数…...

介绍两款红队常用的信息收集组合工具
介绍两款红队常用的信息收集组合工具1.Ehole本地识别FOFA识别结果输出2.AlliN1.Ehole EHole(棱洞)3.0 红队重点攻击系统指纹探测工具 EHole是一款对资产中重点系统指纹识别的工具,在红队作战中,信息收集是必不可少的环节,如何才能从大量的资…...

类ChatGPT国产大模型ChatGLM-6B,单卡即可运行
2023年3月14日GPT4又发布了,在ChatGPT发展如火如荼的当下,我们更应该关注国内的进展,今天将分享一个清华大学基于GLM-130B模型开发的类似ChatGPT的ChatGLM-6B模型,ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型࿰…...

vue的diff算法?
文章目录是什么比较方式原理分析Diff算法的步骤:首尾指针法比对顺序:是什么 diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: 比较只会在同层级进行, 不会跨层级比较 在diff比较的过程中,循环从两边向中间比较…...

C++ | 对比inline内联函数和宏的不同点
文章目录一、前言二、宏的优缺点分析1、概念回顾2、宏的缺点3、宏的优点三、inline内联函数1、概念2、特性①:空间换时间🎁趣味杂谈:庞大的游戏更新包3、特性②:inline实现机制4、特性③:inline的声明与定义反汇编观察…...

面试官问 : ArrayList 不是线程安全的,为什么 ?(看完这篇,以后反问面试官)
前言 金三银四 ? 也许,但是。 近日,又收到金三银四一线作战小队成员反馈的战况 : 我不管你从哪里看的面经,但是我不允许你看到我这篇文章之后,还不清楚这个面试问题。 本篇内容预告: Array…...

Linux串口应用编程
一、 串口API 在Linux系统中,操作设备的统一接口就是:open/ioctl/read/write。 对于UART,又在ioctl之上封装了很多函数,主要是用来设置行规程。 所以对于UART,编程的套路就是: open设置行规程,比如波特率、数据位、停止位、检验位、RAW模式、一有数据就返回read/write 怎么设置…...
java程序员学前端-HTML篇
HTML 与 CSS HTML 是什么:即 HyperText Markup language 超文本标记语言,咱们熟知的网页就是用它编写的,HTML 的作用是定义网页的内容和结构。 HyperText 是指用超链接的方式组织网页,把网页联系起来Markup 是指用 <标签>…...
【云原生|Docker】03-docker的基础操作
目录 前言 查询相关 容器相关 1. 容器启动 2. 容器关闭 3. 重启容器 4. 暂停容器 5. 删除容器 6. docker run参数汇总 镜像相关 1. 镜像推送至仓库 2. docker image load使用 3. docker image import使用 4. dokcer image参数汇总 前言 容器的命…...

vue2+高德地图web端开发使用
创建vue2项目我们创建一个vue2项目,创建vue2项目就不用再多说了吧,使用“vue create 项目名 ”创建即可注册高德地图高德地图官网地址:https://lbs.amap.com/如果是第一次使用,点击注册然后进入我们的控制台注册完之后进入控制台&…...

01背包问题c++
问题 问题介绍 有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第…...

ZYNQ硬件调试-------day2
ZYNQ硬件调试-------day2 1.ILA(Integrated Logic Analyzer ) 监控逻辑内部信号和端口信号;可以理解为输出。可单独使用 2.VIO(Virtual Input/Output ) 实时监控和驱动逻辑内部信号和端口信号,可以理解为触发输入。不可…...

JavaScript中Promise的简单使用及其原理
Promise是ES6最重要的特性之一,今天来系统且细致的研究一下Promise的用法以及原理。 按照我往常的理解,Promise是一个构造函数,有all、resolve、reject、then、catch等几个方法,一般情况下,在涉及到异步操作时才会用到…...

SpringBoot RabbitMQ 延时队列取消订单【SpringBoot系列14】
SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见。 程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCloud 微服务系列项目开发 1 项目准备 SpringBoot 雪花算法生成商品订单…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...