LimeSDR 中文教程 (九)

Smith圆图工具在射频电路设计中的应用与实战 在GHz以上频率范围内,直接测量电压和电流变得极为困难,因为探针引入的寄生效应会严重干扰被测电路的工作状态。此时,基于入射波与反射波功率比值定义的散射参数(Scattering Parameters, 简称S参数)展现出显著优势。对于一个双端口网络,S参数矩阵表示为:b_1 \b_2a_1 \a_2其中 $ a_n $ 表示第n端口的入射波归一化幅度,$ b_n $ 为其对应的出射波。 阅读详情

这是第九篇教程。从第一篇教程开始,我们一步步教会你各种SDR相关工具,现在你应该会用LimeSDR做各种操作了。

 

上一篇文章,我们看了C代码,以及如何实现一个简单的扫频仪。这次我们要看一下pyLMS7002M,它是LimeSDR的python库。我们这次不是要创建一个程序,而是解释一下一个现成的例子,矢量网络分析仪VNA。

 

注意,这个VNA精度不会很高,不是罗德施瓦茨产的够买辆豪华轿车的仪器,但是它也能工作,让你i大概知道某个电路在特定频率下会如何表现。

 

我们需要一些组件:

定向耦合器

SMA连接线

SMA衰减器(10dB)

SMA接口的“校准过的”短路负载

 

开始

VNA例子需要一些依赖包,但是安装不会太麻烦,首先你需要有一个LimeSDR环境(windows或者linux都行)。你还需要python 2.7或者3.x。

 

接下来,到 https://github.com/myriadrf/pyLMS7002M/ 下载python 2.7.x版本。还有个python 3.x分支,但是还没完全测试好,所以推荐使用主分支。

 

你可以在这里找到pySmithPlot:https://github.com/vMeijin/pySmithPlot 我们用的就是这个版本,下载下来然后放到合适的目录。

 

首先我们要安装pyLMS7002M。用终端到这个文件夹下。

 

你应该能找到setup.py,你可以输入python2 setup.py install来安装,注意一定要强制使用python2。

 

接下来pySmithPlot也是用类似步骤安装,只不过这次运行python3 setup.py install。在windows里,我们需要手动用pip来安装依赖。

 

安装完成

到这里VNA就应该能工作了,会生成s.2p文件(S参数),但是不会显示史密斯圆图,这个图对VNA很重要。

在pyLMS7002M的examples文件夹中,分为两个子文件夹,basic和VNA,我们先试试basic文件夹下的findLimeSDR.py,它的功能就是它的名字,只需要输入命令python2 findLimeSDR.py,就会得到下面的输出:

 

这样就代表pyLMS7002M库工作正常了。接下来我们看看VNA文件夹下的例子。

 

VNA分为两部分:测量和计算。首先要做的就是测量。但是开始之前,我们要设置硬件。可以看看下面的图片:

 

从左往右,我们需要把接上TX2_1这个发射口。并使用RX1_H这个接收口。还需要一个10dB的衰减器,理论上这个值可以是别的,因为会被校准掉。它的功能只是为了提供一个固定的功率衰减,并控制输出功率,这样负载变化的时候影响就会减小,同时也可以提高测量精度。

 

定向耦合器

这可能是最难理解的部分了。我们不深入研究传输线理论,定向耦合器基本做两件事:

耦合

定向

 

一条通道从输入到达输出,它被称作主通道。这条通道与另一个端口形成耦合(通过微带线和波导等方式)。你可以看看这里的介绍。这样信号中的一小部分就会出现在耦合端口。方向性意味着,耦合通道的其中一个端口接入了一个匹配的阻抗。这样会把那个方向大多数能量吸收掉。意味着只有一个方向的信号会从匹配的端口发射出去。

 

你可能会想,我们可以自制一个定向耦合器吗?当然是肯定的,但是它没有经过校准,那么耦合和方向性可能无法保证。微带线版本的定向耦合器可能非常简单,只是2条并行的路径,其中有一头的阻抗是50欧(这是对于LimeSDR来说的,也有系统的要用阻抗75欧的)。一个输出口接入50欧后连到地上,另一个口就是耦合口。

 

你应该会想到,定向耦合器有几个方面是重要的:耦合信号的大小、方向性和损耗。推荐的耦合器是Mini Circuits ZHDC-16-63-S+。它的方向性是30dB,这个数字是信号导通和隔离的比例。也就是说定向耦合器在两个方向所看到的信号的比例。主线损耗是2dB,也就是信号从输入到输出的损耗。耦合大小是17dB。

 

我们手头没有Mini Circuits的耦合器,我们使用的是AtlanTecRF A2023-20。这样就有一些问题:

首先,这耦合器的频率范围是500MHz到2GHz,第二它的方向性只有25dB。

 

这样就产生了另一个问题,因为这个例子的默认设置是使用2.4GHz,所以我们需要把它改到适合我们的耦合器的范围,我们选择1.5GHz。还有一点要注意的是,这已经接近LNAH的频段边缘了,就会有一些问题,最好完全保持在支持的频段内,或者更改匹配网络,使得它能够更好地对要测量的频率做匹配。这有点像先有蛋还是先有鸡的问题,因为VNA就是用来解决这个问题的。

 

比如,我们的LNAH输入口相位噪声问题,那么要做866MHz的精确测量就是不可能的。如果你看了这一段但是没理解,你可以看看教程第二篇,我们说到过匹配问题。

 

初次测量

在开始调整频率前。注意我们选择LNAH路径作为默认的LNA,那么我们必须选择1500MHz以上,否则会降低灵敏度。

 

打开“measureVNA.py”,我们需要更改下面几行(你可以根据你的需求来改):

startFreq = 2.3e9

endFreq = 2.4e9

nPoints = 101

改为

startFreq = 1500e6

endFreq = 1510e6

nPoints = 101

保存文件,并输入“python2 measureVNA.py test1”

这样就会在命令行输出很多内容,然后会要求你连上短路负载用于校准。

 

这一步会校准VNA。最好用校准过的短路负载来做。有个难以理解的地方是,射频电路的短路负载可能跟常识里的短路负载不同。导线和PCB中的寄生电感和寄生电容可能就能实现这个电路,你不信的话可以用万用表测量WiFi天线的直流电阻(这句话不确定)

做完校准后,脚本会要求你接入DUT(待测设备)。

 

接下来就会像校准一下运行相同的操作。简单来说VNA的原理就是比较这两组数据的相位和振幅,用来计算电抗(虚部)的损失和电阻(实部)的损失。

 

然后会使用一种特殊的图形来清楚的展示这个信息,这个图形叫作史密斯圆图。

 

搞定后,我们会生成两个文件:

vna_test1_short_1500000000.0_1510000000.0_101

vna_test1_DUT_1500000000.0_1510000000.0_101

 

绘制结果

接下来我们要处理这些文件,得到S-参数和图形。我们要改一下代码。在 “calculateVNA.py” 中,我们需要把下面的几行改掉,这样就能支持0.2.0版本的smithplot.py support.

这里:

from smithplot.smithaxes import update_scParams

改为:

from smithplot.smithaxes import SmithAxes

文件最下面:

subplot(1, 1, 1, projection=’smith’,grid_major_fancy=True,

grid_minor_fancy=True, plot_hacklines=True)

改为

subplot(1, 1, 1, projection=’smith’,grid_major_fancy=True,

grid_minor_fancy=True)

 

这样就算是改好了。

接下来运行“python3 calculateVNA.py test1 plot”

 

第一个图形是校准过的短路负载的相位,相位随频率变化很小,如果DUT就是短路负载,那么结果应该与之类似。

 

类似短路负载的相位图,这个图也是相位/频率图。当负载带有电抗成分后会产生相位变化。简单来说,短路负载和DUT的相位差会做比较,这样就能生成史密斯圆图的复数阻抗了。

 

这是电压驻波比,用来测量待测器件的反射功率比。

 

这是S11图,表示负载反射回来的能量。

 

最后还有史密斯圆图,展示的是用电抗分量和电阻分量来表示的负载的图形,这里有史密斯圆图的基础。

 

最后

希望LimeSDR教程对你有帮助。现在,我们已经把最有用的射频开发的工具给你了,这就是VNA。根据我们的经验,这个例子还可以再改进一下,用更大的射频功率和更好的外部LNA。我们还注意到用更大的衰减器,我们会看到一些奇怪的结果,比如相位变化,可能是因为接收到的信号处于底噪上。

 

你可以开始自己写一些SDR程序了,就像这个VNA例子一样。

 

 

注意要做这个实验还有一些额外的步骤要做:

1. 安装cython 直接apt安装这个包

2.要到cylimelib目录里也运行一下python setup.py install

此处感谢热心买家:antboy1979

LimeSuite:基于LMS7002M的SDR平台的驱动程序和GUI 石灰套房 Lime Suite是一个软件集合,支持基于LMS7002M收发器RFIC的多个硬件平台,例如LimeSDR系列。 它包含以下组件: 提供C风格API的LimeSuite库; LimeSuiteGUI应用程序,用于访问底层芯片和电路板设置,显示FFT,更新固件等; SoapySDR中支持LimeSDR的SoapyLMS插件; LimeUtil命令行工具,用于列出LimeSDR设备和更新固件; LimeQuickTest应用程序可以运行一些基本测试; LimeSuite API示例(basicRX,basicTX,singleRX,dualRXTX,gpio_example); 八度插件(仅提供一些基本功能); 建置状态 特拉维斯(Travis): AppVeyor: 文献资料 在Wiki上找到Lime Suite的构建和安装说明: 有关LimeSDR板的信息: 立即下载

相关推荐

VNA的使用方法和原理

讲述VNAs的使用方法和原理,包括他的内容介绍

【亲测免费】 探索高级电磁场可视化利器:pySmithPlot

探索高级电磁场可视化利器:pySmithPlot 在电磁领域研究与工程设计中,一个准确且直观的阻抗和导纳图表展示是关键环节。而当提到创建高质量的史密斯图(Smith Chart),pySmithPlot无疑是一款不可或缺的工具库。它以其强大功能和细腻体验,成为Python开发者手中的绘图神器。 深度解析:技术创新点亮电磁世界 技术点睛: 兼容性增强:全面支持Python 3环境,确保了在现代开发...

gitblog_00061的博客 880

告别USB转接:在STM32探索板上用SPI跑通ESP-Hosted,实现Wi-Fi/BLE连接

本文详细介绍了如何在STM32F469I-DISCO开发板上通过SPI接口实现ESP-Hosted方案,为嵌入式设备添加Wi-Fi和蓝牙连接功能。通过硬件配置、协议栈优化和性能测试,展示了这一创新方案的成本效益和开发效率,特别适合资源受限但需要稳定无线连接的嵌入式应用场景。

weixin_34046298的博客 252

使用smithplot将矢网中测出的史密斯圆图数据绘图遇到的标注问题

网上找到的相关错误分析主要是空格或者变量个数不匹配,与我遇到的情况不一样,有些郁闷。由于屏蔽掉了plt.legend() 所以缺少图注,但运行正常。

qq_42554448的博客 814

C# chart以鼠标所在位置为中心进行缩放

以前都用labview做一些软件,但给出去总是会遇到版本,安装包过大等一些问题,于是想自学C#,记录一下使用过程中遇到的一些问题和解决措施,便于日后回顾。 在这个项目中需要绘制折线图,由于数据比较大,需要对图表进行缩放操作,以鼠标为中心对图表进行缩放,在网上查找了一些资料没找到我想要的,于是自己想了一个解决方案,可以基本实现,但略显繁琐,由于刚开始学习C#,对一些操作不太了解,若以后遇...

fei的博客 6363

【数据集7】全球人类住区层GHSL数据详解

全球人类住区层GHSL数据详解

WW、forever的博客 2254

LimeSDR 实验(一)

python流实现简易VNA实验准备1、实验器材2、软件支持(win10下)实验步骤实验结果 实验准备 1、实验器材 LimeSDR、合适频段定向耦合器、短路校准件、待测件(DUT) 2、软件支持(win10下) PothoSDR(注意版本与Python一致)、WinDriver_LimeSDR-USB、Pycharm(其他编译器亦可)、Python(相关包:pyLMS7002Soapy-mast...

fish_dreamer的博客 840

LVGL(lv_table)

LVGL中的lv_table是一个轻量级表格控件,用于显示行列式文本数据。它支持设置单元格内容/样式、行列调整、事件响应等基础功能,适用于参数配置、数据展示等场景。通过API可快速创建表格,设置行列数、填充数据,并自定义对齐方式与样式。但需注意默认无滚动条、行数限制等问题。该控件适合简单表格需求,复杂交互需结合自定义事件处理。

m0_49476241的博客 1265

微波课设 基于pyqt5+pyqtgraph的Smith圆图GUI程序设计

学期末要做微波技术课设,老师要求设计一个GUI,和Smith圆图有关 然后选用python里面的pyqt5设计出一个交互界面。 思路很简单就是先用qtdesigner搭建框架生成python代码,再把python代码改改就ok 画图本来想用matplotlib,但是这个库交互性没有pyqtgraph强,所以画图用了pyqtgraph。 pyqtgraph库里面的十字光标参考了https:/...

xiuwenwubolo的博客 2573

kylinos-SP3的软件包降级到V10-SP1中的版本

如果想再次回退到原来版本,将repo改为原来的SP3版本,然后执行yum history 查看ID号,执行yum history rollback ID就可以恢复了。此时我们发现已安装的版本是1.32-2.ky10,而sp1网络源里的版本是1.30-11.ky10,我们将降级安装网络源中的低版本软件包。近期有个客户想要把kylinos-V10-sp3的软件包降级到kylinos-V10-SP1的版本。3、以tar包为例,查看已安装版本及网络源中其他版本。1、查看系统版本,确认是V10-SP3。

太极淘的博客 1103

【推荐100个unity插件之24】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

【推荐100个unity插件之23】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1683

LimeSDR 中文教程 (一)

本博客官方淘宝店铺:舒克贝塔008 行业应用及合作请联系: j.shao@limemicro.com LimeSDR购买链接: https://item.taobao.com/item.htm?spm=a230r.1.14.22.2c6377ffs2sbnB&id=535797511228&ns=1&abbucket=17#detail LimeSDR Mini购买...

老邵的开源世界 1万+

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2291

LimeSDR srsLTE实验

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

无线通信实验室 3860

如何在 DevOps 管道中实现 AI?

AI与DevOps的融合(AIOps)正在重塑软件开发生命周期。本文系统阐述了AI在DevOps中的五大应用场景:智能监控、自动化测试、安全防护、CI/CD优化和事件管理,并提出了六步实施框架:痛点识别、工具选型、流程集成、智能监控、MLOps和治理合规。通过Netflix、Google等企业的实践案例,验证了AI在提升部署效率(降低40%故障率)、缩短问题解决时间(MTTR减少60%)方面的显著价值,同时指出数据质量、模型偏差等实施挑战。研究表明,战略性地

介绍AWS Azure GCP devops Terraform 等技术 497

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LimeSDR 中文教程 (四)

现在我们来继续看LimeSDR的有关知识。这是第四篇文章,尽管这是我们实际操作的第二个联系,但是它还是与前面的所有文章都有关系,如果你没有看前三篇文章,我推荐你看一下。上一篇文章我们看了self_test.ini,把这个例子里大多数有关内容都讲了。这次我们会使用之前学到的知识来提高信号质量,并创建我们第一个应用。开始到这里,我们假设LimeSuite已经在你电脑上装好了,并且运行正常。如果你没有装...

老邵的开源世界 2824

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LimeSDR 中文教程 (二)

(本文所有图片请参考Myriadrf官网原文:https://myriadrf.org/blog/limesdr-made-simple-part-2-matching-lms7002m-rx-iq/)这是LimeSDR系列教程的第二篇,用来帮助你实际使用SDR,并且写自己的程序。上一次我们探讨了LimeSDR是什么以及它的功能。这篇文章我们会讲解LMS7002M和射频输入输出,这是许多神奇的事发...

老邵的开源世界 4970

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

LimeSDR 中文教程 (三)

这是这个系列教程的第三篇。我们会以之前的教程为基础,如果你没看可以点这里。上一次我们详细看了RX部分,这样就能更好理解LimeSuite程序里的设置选项。上一篇文章理论比较多,这一篇文章理论会少一些,我们会做更多实际操作。开始我们会使用“self test”例子作为本文的基础。原因是只要你有LimeSDR,你不需要额外的硬件(比如RF口上不需要接东西)就能使用。如果你想看一下步骤,可以点击这个链接...

老邵的开源世界 4108

LimeSDR Linux环境搭建

本文原文来自LimeSDR中文网:www.limesdr.com.cn 转载请说明出处,谢谢! 原文链接: Ubuntu 18.04 LTS下搭建LimeSDR开发环境 By Jin Wu 我们在Ubuntu 18.04 LTS系统下,搭建LimeSDR开发环境,主要安装开发过程中涉及到的驱动及软件:使用PPA安装如下软件: LimeSuite SoapySDR Pot...

1436

LimeSDR 中文教程 (七)

在GNU Radio中接收和发射ASK信号这是第七篇教程。我们继续上一次的内容,我们会仿制出一个最简单的无线电设备。上一篇文章我们可以接收比特流,但是每个符号对应的比特数是错误的。这篇文章,我们计划改进ASK接收机,并且设计一个发射机,重放数据。要实现这个目标我们需要同时有发射机(类似遥控器)和接收设备。我们手头正好有Brennenstuhl Primera-Line遥控插座。出于好奇,我们看了它...

老邵的开源世界 1742

LimeSDR-Mini简介1

转载至:www.limesdr.com.cn SDR中文网 LimeSDR-Mini简介1 什么是LimeSDR-Mini    LimeSDR-Mini是Lime Microsystem推出的开源软件无线电开发硬件,是LimeSDR软件定义无线电开发板中一款体积更小,价格更便宜的产品。 LimeSDR-Mini推出的早期优惠价格为99美元(约630人民币),并在推出后24小时内售馨全...

1143

LimeSDR 中文教程 (八)

这是第八篇教程。我们在第一篇就说过,我们会从SDR新手开始一步步教你,直到你学会调用API编程。前几篇说完后,现在是时候开始写程序了。如果你已经读完了前面的文章,会用GNU Octave,也熟悉Pothos和GNU Radio了,那么直接调用API只需要再前进一小步。在Linux下开发(Ubuntu系统)首先我们需要一个编译器,我们使用gcc,它是Linux的主要部件,所以你很可能已经有了。如果你...

老邵的开源世界 3202

LimeSDR 中文教程 (六)

在Pothos和GNU Radio中接收ASK/OOK信号这是第六篇LimeSDR教程。上一篇文章我们在Octave中发射和接收ASK信号。我们没怎么详细讲调制技术。在接下来的文章里,我们会研究单级ASK的发射和接收,这种ASK也被叫做OOK开关键控。这个调制方式很好理解,经常用在门铃和车库开门钥匙里。如果你要做这个实验,你需要额外的硬件,比如433MHz(UHF频段)的ASK/OOK设备。如果你...

老邵的开源世界 2716

LimeSDR 中文教程 (五)

这是本教程的第五篇,我们上一次看了软件无线电的软件部分,使用了一个相对简单的流图开发环境Pothos。从理论的角度比再之前的几篇文章简单些。这次我们要稍微深入看一下,我们这次的例子用代码来写。快速复习根据维基百科的定义,软件无线电是:“把以往用硬件实现的组件(混频器、滤波器、放大器、调制/解调器、检波器)用软件方式实现的无线电通信系统”现在是时候复习下前面学到的东西了:第一篇:介绍 第二篇:匹配和...

老邵的开源世界 3005
上一篇: LimeSDR 中文教程 (八)
下一篇: LimeSDR mini固件更新方法
老邵的科创世界
博客等级 码龄9年 2336粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值