当前位置: 首页 > news >正文

相位相参信号源的设计--示波器上的信号不稳定,来回跑?

目录

  • 乱跑的波形
    • 边沿触发
  • 触发方式
    • 外部触发
  • 相参与非相参
  • 相位相参的射频信号源
    • 样机外观与内部设计
    • 软件设计
      • 上位机软件
    • 信号源使用方法
    • PWM触发信号
    • 射频信号的时域波形
    • 射频信号的频谱
    • 输出功率

  在示波器的实际使用当中波形在示波器的时域上乱跑,左右移动,定不下来,这是什么原因呢?如何稳定住示波器的波形?什么是触发信号?什么是相位相参的触发信号?带着这些问题,本文和大家一起来走进信号的时域测量和相参信号源的设计。

乱跑的波形

  如图1所示,一个正弦波在示波器上乱跑,不稳定,就好像多个初始相位不同的正弦信号叠加在一起一样。
在这里插入图片描述

图1:乱跑的波形

  为什么会乱跑呢?其实示波器上每一个我们看到的波形都是示波器采样记录并叠加显示在屏幕上的,而什么时候获取单个周期是由一个信号触发的,这个信号我们就称之为触发信号。如果这个触发源本身不稳定,或者没有选择一个合适的触发源,那么示波器就会随机截取信号的周期,体现在屏幕上就是不同初始相位的波形,信号“乱跑”。

边沿触发

  很多时候这个触发阈值就是一个直流电平,当信号的边沿(通常可选择上、下边沿)达到这个电平值后触发成功,示波器就会显示第一个信号的周期,再次触发就显示第二个,以此类推,这样每个信号周期的起始点都是相同的,体现在示波器的屏幕上就是稳定的。

  这个触发阈值我们是可以设置的,在示波器上有一个名为“level”的旋钮,如图2所示,通过旋转它就可以设置触发电平的高低,从而稳定波形的显示。当然用户可以一键“AUTOSET”设置,让示波器自己选择合适的触发,方法简单但是对于有些波形并不是一直都有效。
在这里插入图片描述

图2:示波器的Level旋钮

  例如,当向右旋转Level旋钮后,图1中的图像变得稳定,如图3所示:
在这里插入图片描述

图3:通过level旋钮稳定后的波形

触发方式

  示波器有很多触发方式,除了上面说的边沿触发之外还有:

  • 脉宽触发:当信号的脉宽超过设定阈值后才触发。
  • 欠幅触发:欠幅触发有两个阈值,如图4所示,当信号大于下阈值且不超过上阈值时才被显示。另外不只欠幅触发,所有触发方式的阈值设置通常不是输入数值,而是通过旋钮和屏幕上的虚线来确定的,如图4所示。
  • 斜率触发、超时触发:都是对时间满足一定条件下才触发。
  • 外部触发:顾名思义使用外部信号触发,有时候对于一些高频信号和特殊信号,需要一个同步或者相参的外部信号作为触发,波形才可以稳定,下面一节我们着重讨论外部触发。
    在这里插入图片描述
图4:欠幅触发波形

外部触发

  有客户在构建自己的测试系统时,提出了这样的问题,在系统中需要一个射频信号源,频率可以覆盖到6GHz,而且要求使用示波器测量该信号时波形能够稳定显示,在测试了几台信号源后发现均不能稳定显示波形,即使调整level旋钮也不能稳定。为此我们开始了这个相位相参信号源的设计。
  其实射频信号源产生的就是正余弦信号,按道理触发很简单,但是仔细分析发现,由于射频信号的频率太高,上下边沿距离很近,非常容易出现前面所说的波形“乱跑”的问题。
  解决办法就是需要设计一台抖动(jitter)很小的信号源,并且最好该信号源可以提供一个相参的时钟,这个时钟和射频信号同步或者是成固定线性关系,这样可以用这个相参的时钟信号作为外部触发信号,使得射频波形稳定显示。不过在开始设计之前我们先解释一下,刚刚提到的相参是什么意思?

相参与非相参

  相参又称为相干,在通信原理等课程中,我们都知道解调方式有相干解调和非相干解调;雷达系统也有相参雷达系统和非相参雷达系统。其实所谓相参是指信号之间的初始相位具有确定性,非相参是指信号之间的初始相位都是随机的,彼此不相关。图5展示了一组相位相参的方波和正弦波,在方波的上升沿正弦波开始穿越零点。
在这里插入图片描述

图5:相位相参的正弦波和方波
如果是射频信号源,正弦波的频率会远高于方波的频率,两者的周期不同,方波的边沿和正弦波不是一一对应的,但是仍具有相位相参的特征,仍可以作为触发信号使用,如图6所示。

在这里插入图片描述

图6:周期不同但相位相参的正弦波和方波

  另外由于电子线路本身有延迟,没有图5、图6那样理想的正弦波和方波的上升沿在某一时刻重合的情况,比如会错开一段时间,如图7所示,但是这个延时是固定的常数,所以仍不改变两者之间的相位相参关系,现实中大多是这样的情况。
在这里插入图片描述

图7:与正弦波相位相参且有固定延迟的方波

  另外触发信号的稳定性也十分重要,任何信号都有一个稳定度的问题,以方波为例,上升沿存在一个抖动的问题(jitter),如图8所示。在时域中,我们用抖动表述,在频域中我们用相位噪声描述,请参考笔者博客《信号抖动jitter与相位噪声》。
在这里插入图片描述

图8:信号的抖动jitter

相位相参的射频信号源

  综上所述,一个带有相参触发信号的射频信号源出炉了,如图9所示,方案采用PLL+VCO的方案产生射频信号,可以覆盖15MHz - 6.4GHz的频率范围。从温补时钟振荡器(TCXO)中产生1MHz的触发信号,由于触发信号和射频信号的时钟源都是TCXO,两者的相位是相参的,所以图中的Trigger Out1可以用来做射频信号的外部触发源。
在这里插入图片描述

图9:相位相参的射频信号源方案

样机外观与内部设计

  在设计方案定下后,采用kicad软件绘制电路图,如下图所示,为ARM处理器电路板的3D图:
在这里插入图片描述

图10:ARM处理器电路板3D图

  射频电路采用屏蔽罩屏蔽电磁干扰,使用射频性能良好的SMA连接头,参见《选择SMA射频连接头的注意事项》https://blog.csdn.net/mzldxf/article/details/103093586
采用DCDC电源芯片、以及LDO构成电源管理模块,由ARM控制上电时序,内部布局如下图所示。
在这里插入图片描述

图11:射频信号源内部布局

  在机壳上配有USB接口,可以配合上位机软件实现改变射频频率、PWM占空比等性能。样机装配完成后如下图所示:
在这里插入图片描述

图12:射频信号源的前面板

在这里插入图片描述

图13:射频信号源的后面板

软件设计

  信号源具备:切换频率、切换PWM占空比、打开与关闭射频输出端口的功能,因此需要撰写状态机。有关状态机的一些经验,可以参考相关书籍和笔者的博客文章:《状态机编程笔记》https://blog.csdn.net/mzldxf/article/details/105130853

上位机软件

  下图为上位机软件的界面:
在这里插入图片描述

图14: 上位机软件的界面

信号源使用方法

(1) 外部接口的连接:随设备配有24V电源适配器,插入后,按下开关键设备即开始工作。另外两条橙黄色的同轴线用于PWM Trig信号的输出,除此之外还配有一条蓝色同轴线,鉴于蓝色同轴线的射频性能优于橙黄色线,建议使用蓝色线用于射频信号输出。
(2) 使用串口上位机软件设置:将USB连接后,双击打开“单频点信号源上位机V3 “上位机软件,按图15,点击刷新串口后,根据自己计算机的情况选择自己相应的串口(图中仅为示例,不同的计算机其串口编号不同),如不知道自己的串口编号,可以先拔下USB线,看一下自己有几个串口编号,插入后再点击刷新,新出现的编号就是GFSig051的编号。波特率等参数按照图15设置即可。设置完成后,点击Open键,旁边的指示灯变绿。
在这里插入图片描述

图15:串口上位机的参数配置

(3) 使用上位机配置射频信号频率:
  如图16所示,先点击频率设置按键,在发送数据框内输入15 ~ 6400之间的数值(默认的频率单位是MHz)然后点击发送按键即可,图8配置的是1000MHz,设置成功后,界面会显示相应的设置成功的提示,另外界面的左下角也有各种操作的提示,使用时请多留意,可以帮助您更好的操作软件。
在这里插入图片描述

图16:设置PWM的占空比

PWM触发信号

  不仅如此,该触发信号还可以修改其占空比,如图17、图18所示:
在这里插入图片描述

图17:50%占空比的触发信号

在这里插入图片描述

图18:占空比为25%的触发信号

射频信号的时域波形

  高速示波器采用外部触发源,即射频信号源的图10、图11的触发信号,然后对射频信号采样测量,如图19所示,时域波形很稳定,利用刚刚介绍的相参触发信号,可以获得稳定的射频信号的时域显示,图19中横轴每一格是200ps,可见图中的射频信号大于4GHz依旧很稳定。
在这里插入图片描述

图19:高速示波器对射频信号的测量

射频信号的频谱

  图20、图21展示了射频信号源的输出频谱,可见3次谐波抑制>40dBc。

在这里插入图片描述

图20:射频输出端窄带频谱

在这里插入图片描述

图21:射频输出端宽带频谱

输出功率

  射频信号源的输出功率如图22所示:
在这里插入图片描述

图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名字命名的,希尔排序是插入排序的改进版,实现简单,对于中等规模数据的性能表现还不错 一、排序思想 前情回顾:漫画:什么是插入排序算法&#xf…...

问卷工具选择要看哪些方面?

通常来讲,我们在使用一款问卷制作工具制作问卷时会有哪些需求呢? 一、用户需求 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 是一个开源的、支持中英双语的对话语言模型&#xff0…...

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 是什么&#xff1a;即 HyperText Markup language 超文本标记语言&#xff0c;咱们熟知的网页就是用它编写的&#xff0c;HTML 的作用是定义网页的内容和结构。 HyperText 是指用超链接的方式组织网页&#xff0c;把网页联系起来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项目&#xff0c;创建vue2项目就不用再多说了吧&#xff0c;使用“vue create 项目名 ”创建即可注册高德地图高德地图官网地址&#xff1a;https://lbs.amap.com/如果是第一次使用&#xff0c;点击注册然后进入我们的控制台注册完之后进入控制台&…...

01背包问题c++

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

ZYNQ硬件调试-------day2

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

JavaScript中Promise的简单使用及其原理

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

SpringBoot RabbitMQ 延时队列取消订单【SpringBoot系列14】

SpringCloud 大型系列课程正在制作中&#xff0c;欢迎大家关注与提意见。 程序员每天的CV 与 板砖&#xff0c;也要知其所以然&#xff0c;本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCloud 微服务系列项目开发 1 项目准备 SpringBoot 雪花算法生成商品订单…...

【论文阅读 WWW‘23】Zero-shot Clarifying Question Generation for Conversational Search

文章目录前言MotivationContributionsMethodFacet-constrained Question GenerationMultiform Question Prompting and RankingExperimentsDatasetResultAuto-metric evaluationHuman evaluationKnowledge前言 最近对一些之前的文章进行了重读&#xff0c;因此整理了之前的笔记…...

ouc 网络安全实验 格式化字符串漏洞

文章目录要求lab1lab2lab3lab4结语因为当时自己做实验的时候出现了很多疑问不会解决&#xff0c;在网上看到了一位大佬 王森ouc 的专栏文章解决了很多问题&#xff0c;也学到了很多知识和解决问题的方法&#xff0c;现在把我的实验解决方法也发上来&#xff0c;希望有不会的同…...

PMSM矢量控制笔记(1.1)——电机的机械结构与运行原理

前言&#xff1a;重新整理以前的知识和文章发现&#xff0c;仍然有许多地方没有学得明白&#xff0c;懵懵懂懂含含糊糊的地方多如牛毛&#xff0c;尤其是到了真正实际写东西或者做项目时&#xff0c;如果不是系统的学习了知识&#xff0c;很容易遇到问题就卡壳&#xff0c;也想…...

2022年全国职业院校技能大赛(中职组)网络安全竞赛试题——中间人攻击渗透测试解析(详细)

B-4任务四:中间人攻击渗透测试 *任务说明:仅能获取Server4的IP地址 *任务说明:仅能获取Server11的IP地址 1.通过上题渗透后得到控制权限的服务器场景Server4进行查看本地的arp缓存表的操作,并将该操作所使用的命令作为Flag值提交; 2.通过上题渗透后得到控制权限的服务…...

MySQL必知必会 | 安全、维护、性能

全球化和本地化 关于MySQL处理不同字符集和语言 字符集和校对顺序 数据库被用来存储和检索数据&#xff0c;不同的语言和字符集需要以不同的方式存储和检索&#xff0c;因此&#xff0c;MySQL需要适应不同的字符集&#xff0c;适应不同的排序方式 一些术语&#xff1a; 字符…...

MaaS Model as a Service 模型即服务

大模型是人工智能的发展趋势和未来。大模型是“大算力强算法” 结合的产物。目前&#xff0c;大模型生态已初具规模。大模型能够实现 AI 从“手工作坊”到“工厂模式”的转变&#xff0c;大模型通常是在大规模无标注 数据上进行训练&#xff0c;学习出一种特征和规则&#xf…...

【编程基础】027.C语言中函数在解题中的应用(三)

文章目录C语言中函数的应用1、自定义函数实现二维数组的转置2、自定义函数之整数处理3、自定义函数之数字后移4、自定义函数之字符串拷贝C语言中函数的应用 1、自定义函数实现二维数组的转置 题目描述 写一个函数&#xff0c;使给定的一个二维数组&#xff08;&#xff13;&a…...

echart图表之highcharts

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、HighCharts是什么&#xff1f;二、使用步骤1.引入库2.前端代码3.展现结果4.后台自动截图总结前言 提示&#xff1a;这里可以添加本文要记录的大概内容&…...

关于.Net和Java的看法——我见过最牛的一个小实习生经历

1、背景 笔者&#xff08;小方同学在学习&#xff09;是一个专科院校的一名普通学生&#xff0c;目前就职于某三线城市的WEB方面.Net开发实习生&#xff0c;在找实习期间和就业期间的一些看法&#xff0c;发表此文&#xff0c;纯个人想法&#xff0c;欢迎讨论&#xff0c;指正…...

基于springboot+vue的“智慧食堂”程序设计实现【毕业论文,源码】

系统登录界面系统架构开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven浏览器&#xf…...

摄影设计网站/域名查询网站

buffer cache深度分析之buffer cache的优化 buffer cache的等待事件 与buffer cache相关的等待事件包括&#xff1a;latch free、buffer busy waits、free buffer waits。曾经发生过的等待事件可以从v$system_event&#xff08;一个等待事件对应一行记录&#xff09;和v$se…...

天津市做公司网站的公司/百度广告推广平台

我的一位女性朋友想要减肥&#xff0c;一段时间之后她说“运动是很难的”。好吧&#xff0c;其实运动并不是很难&#xff0c;而是很乏味&#xff0c;又很容易避免。锻炼本身很简单&#xff0c;但经常做才是难点。事实证明&#xff0c;软件测试在很多方面与运动类似——它很乏味…...

霸州网站建设/广告外链平台

开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多&#xff0c;为了方便重写的ListView来实现下拉刷新&#xff0c;同时添加了上拉自动加载更多的功能。 Android下拉刷新可以分为两种情况&#xff1a; 1.获取更多的数据&#xff0c;按服务器数据库时间顺序存储入情况…...

杭州做网站优化/引擎优化是什么意思

一块花布条&#xff0c;里面有些图案&#xff0c;另有一块直接可用的小饰条&#xff0c;里面也有一些图案。对于给定的花布条和小饰条&#xff0c;计算一下能从花布条中尽可能剪出几块小饰条来呢&#xff1f; Input输入中含有一些数据&#xff0c;分别是成对出现的花布条和小饰…...

搜索引擎网站推广法怎么做/百度网站推广费用

混合云应基于商业化的现成的产品&#xff0c;特别是使用X64架构。ARM64也是一个可能的市场竞争者&#xff0c;但它是新的&#xff0c;仍然还需要一些在管理程序环境的证明。至于其他的方法&#xff0c;使用复杂的UNIX系统与一种基于大型主机的混合云的想法是非常矛盾的。 基于上…...

嘉兴建设局网站/灰色词排名推广

Android5.0之后使用 ActivityManager activityManager (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //获取进程的集合 runningAppProcesses activityManager.getRunningAppProcesses(); size runningAppProcesses.size(); 这种方法获取进程数&…...