基于照片对天线进行全波分析(详细分解步骤)

news2024/11/13 15:00:48

诸如NFC、RFID和物联网系统传感器等无线应用均受益于印刷在塑料基板上的低成本天线。然而,当天线集成到系统中时,数据手册的指标与天线的实际行为及其与相邻结构的相互作用之间通常存在不匹配现象。在这种情况下,就需要执行更高级的分析,充分了解天线特性——这需要天线模型的精确EM模型。

从基本几何形状获得印刷天线几何模型的过程可能比较繁复,因为印刷天线通常具有多个弯曲和其他结构,以提高增益和增加带宽。比较简单的解决方案是从照片中导出模型——

但是如何确保照片拥有足够的细节?如何处理使用网络摄像头或智能手机拍摄的图像中可能出现的光学畸变?

以下两个应用程序可以帮助您解决这些问题。Computer Vision System Toolbox™中的CameraCalibrator应用程序可以校准网络摄像头,提高测量精度。Image Processing Toolbox™中的ImageSegmenter应用程序可对图像进行分割,获取天线边界。

以RFID标签为例,本文介绍利用 Camera Calibrator (Computer Vision System Toolbox™) 和 Image Segmenter (Image Processing Toolbox™) 进行照片构建和分析天线的工作流程(图1),包括分割图像、找到几何边界、校准天线尺寸以及使用全波矩量法(MoM)技术分析天线等步骤。

​图1 通过照片构建和分析天线的工作流程

RFID标签

射频识别(RFID)标签通常用于箱子和托盘上进行库存跟踪。标签由辐射结构、天线和用于在频带上操作的芯片组成。天线通常是窄频带,两个主平面之中有一个为全向图案,并且在发生谐振时具有复阻抗,以此确保与芯片输入有良好的阻抗匹配。在本例中,我们的目标是确认 RFID 标签天线的这些端口、表面和场特性。

首先在高彩色对比度背景下拍摄标签照片。我们使用物美价廉的网络摄像头和网络摄像头功能直接在 MATLAB 中获取图像(图2)。

c = webcam();

img = snapshot(c)

​图2 RFID标签的照片在高对比度背景下拍摄

为确保精确测量沿天线边界的距离,我们将摄像头直接放置在天线上,使沿天线表面的所有点距摄像头的距离大致相同。

使用 Camera Calibrator 应用程序校准摄像头

摄像头校准是距离测量工作的重要组成部分,尤其是在使用镜头光学系统品质较差的摄像机时,如本例所示。

使用Computer Vision System Toolbox中的Camera Calibrator应用程序,我们可以通过从不同方位和距离拍摄的棋盘校准图案来校准网络摄像头(图3)。

​图3 加载到Camera Calibrator应用程序中的棋盘校准图案的照片序列。

从网络摄像头获取了一组校准图像后,我们就可以使用应用程序工具条中的Calibrate(校准)按钮计算摄像头参数(图4)。

​图4 Camera Calibrator应用程序工具条。

我们将这些摄像头参数作为 camera Parameters对象,从应用程序中导出。为了消除给定摄像头拍摄的图像的光学畸变影响,我们使用摄像头的 camera Parameters,它可以模拟摄像头的光学畸变以及Computer Vision System Toolbox中的undistortImage功能。初始图像和无畸变图像如图5所示。

undistortedImage = undistortImage(img,webcamParameters);

​图5 上图:原始网络摄像头图像。下图:通过Camera Calibrator应用程序获得的无畸变图像。

原始图像中存在的径向畸变是由于摄像头镜头光学系统的物理缺陷造成的。在天线所在的焦点中心附近,难以看到径向透镜畸变的影响。当您移动到图像的边缘时,效果最明显。在未畸变图像中,围绕上边缘和下边缘的弯曲反映了透镜畸变的校正过程。

使用Image Segmenter应用程序分割图像

Image Segmenter应用程序包含各种算法,它们可以按不同的方式组合使用,从而选择出分割对象的最佳方式。在本例中,我们将使用图形分割和一种称为“活动轮廓与蛇形轮廓”的迭代能量最小化算法。

使用Image Segmenter应用程序中的Graph Cut(图割)功能,我们可以根据颜色特征对图像进行分割,利用“涂鸦”标记位于前景和背景中的区域(图6中的红线和绿线)。

​图6 通过在Image Segmenter应用程序中制作“涂鸦”识别的前景和背景区域。

在使用图割算法进行初始分割之后,我们可通过活动轮廓算法细化分割。通过图割获得的分割边界看起来很准确。但是有一些小的锯齿状缺陷,我们希望加以改进。

活动轮廓是下一步分割过程的不错选择,其主要原因有两个。首先,该算法从输入图像和分割掩码开始,并尝试通过迭代的方法改进掩码,使其趋于匹配原始图像的边界。其次,活动轮廓目标函数中的其中一项经过优化,代表了分割掩码中边界的平滑度,可以产生边界更平滑的分割效果(图7)。

​图7 使用活动轮廓后期处理算法处理图割算法的初始分割结果。

获得准确的分割掩码后,我们将其从Image Segmenter应用程序中导出到MATLAB工作区(图8)。

​图8 使用Image Segmenter应用程序中的导出按钮将掩码导出到工作区。

执行全波分析

对此结构执行全波分析时,我们首先需要将边界的像素空间表示转换为笛卡尔空间表示。为此,我们提取x、y维度中的最大和最小像素指数,并根据标记的长度和宽度将它们转换为(x,y)坐标。分割可以在边界上产生大量的点:RFID图像边界上有大约11,000个点。这种高保真表示可能产生意外结果,即网格非常大。为了减少边界上的点数,我们按因子20进行下采样。通过简单的视觉检查,该下采样因子仍会准确地表示边界细节。原始边界和下采样版本如图9和10所示。

​图9(左)通过缩放基于标签尺寸的点获得的边界点。 图10(右)下采样边界。

该模型中有两组不同的边界:天线的外边界和内边界。必须移除此内边界,以便模型准确地表示初始照片中天线的拓扑结构。我们可以通过将边界加载到Antenna Toolbox™中的多边形对象中,应用布尔逻辑减法运算来实现此目的。然后将几何体围绕坐标系原点居中,并定义天线的馈线位置和馈线宽度。得到的天线如图11所示。在以下代码段中,两个边界作为单元阵列存储在变量BpD中。

outerPoly = antenna.Polygon;

outerPoly.Vertices = BpD{1};

innerPoly = antenna.Polygon;

innerPoly.Vertices = BpD{2};

c = outerPoly - innerPoly;

c = translate(c,[-(max(outerPoly.Vertices(:,1))-L/2),-(max(outerPoly.Vertices(:,2))-W/2),0]); figure

show(c)

title('RFID antenna geometry')

​图11 利用Antenna Toolbox中的多边形的边界定义和布尔逻辑运算构建的RFID天线几何形状。

点(0.0mm,0.0mm)周围的馈线区域会出现一些明显的转折点,这些过渡是分割算法检测到的伪像。我们需要清理掉它们,使该区域中的网格最小化。我们通过定义一个矩形并切除馈线周围几何图形的部分来创建一个干净的间隙(图12)。

gap = antenna.Rectangle('Length', 6e-3, 'Width', 2e-3, 'Center', [-5.5e-3 -1e-3]);

c = c - gap;

figure show(c) title('RFID antenna geometry with gap across feed region')

​图12 RFID天线的几何形状,馈线区域已通过创建间隙进行清理。

然后,我们在该间隙上定义一个馈电带,以施加激励电压。具有明确馈线的天线模型如图13所示。

​图13 用pcbStack创建的RFID天线模型。使用矩形条限定馈线区域。

定义天线的整体边界后,我们指定了两个层:顶部的天线几何形状和下面的介质层。在该模型下,由于介质材料非常薄,执行初始分析时假设天线处于自由空间。这使得我们可以非常快速地对标签进行首次分析,因为我们不需要为介电材料构建网格。只要材料具有低损耗和低相对介电常数(εr<2),存在电介质就会使标签的整体性能发生微小变化。最后,我们将馈线位置指定为由[x,y,layerNumber]组成的三元组。layerNumber是一个整数,表示存在馈线的层。由于这是平衡天线的内部端口,因此单个数字足以完全指定馈电点。

feed = antenna.Rectangle('Length', 0.25e-3, 'Width', 3.0e-3, 'Center', [-5.5e-3, -1e-3]); cf = c + feed;

d = dielectric('Air');

p = pcbStack;

p.Name = 'RFID-tag';

p.BoardShape = antenna.Rectangle('Length',22e-3,'Width',80e-3);

p.Layers = {cf,d};

p.FeedLocations = [-5.5e-3, -1e-3, 1];

p.FeedDiameter = 0.5*0.25e-3;

figure

show(p)

view(0,90)

现在可以开始——

分析天线

我们首先进行阻抗分析,确定粗略采样频率范围内天线的端口特性。为此,请使用具有一对输入(即天线和频率)的阻抗函数。预计RFID标签将在800至900 MHz之间的UHF频段内运行。分析频率范围将略微超过900 MHz。任何分析都将以该范围内的最高频率作为网格划分频率,然后自动对几何形状进行网格划分。然后将该网格传递到求解器中,由求解器识别馈线位置和相应的馈线边缘,施加1V激励。计算RWG基函数(三角形对)之间的互动矩阵,并求解表面上电流形式的未知数。

f_coarse = linspace(0.8e9,0.95e9,21);

figure

impedance(p, f_coarse)

该射频标签是呈电感性的,并且具有大约857MHz的有效电阻分量(图14)。电抗显示围绕该频率的经典并联谐振曲线。

​图14 RFID天线的阻抗。从电抗曲线(红色)可以看出标签的电感性质。

figure

mesh(p)

​图15 为分析生成的网格;选择频率范围中的最高频率来生成网格。

通常,为了匹配标签,芯片的输入阻抗应为复阻抗。我们使用天线上的Load(负载)属性来消除电感分量。由于电抗约为200Ω,我们将创建电抗为-200Ω的负载分量,并将其添加到天线模型中。当负载位于馈线处时,电抗的感应部分应在857 MHz处被抵消。我们通过分析更精细频率范围内的阻抗来证实这一点。857 MHz的电抗约为0Ω(图16)。

X = -1i*200;

zl = lumpedElement;

zl.Impedance = X;

p.Load = zl;

f_fine = linspace(0.8e9,0.95e9,51);

figure

impedance(p, f_fine)

​图16 在馈线处包含电容电抗后标签的阻抗。

电抗消除过程中,观察到电抗曲线中的零交叉点。

电流分布在857 MHz处显示出强烈的响应,在天线表面上产生了大量电流(图17)。我们使用色条以交互方式调整电流密度范围。

figure

current(p,857e6)

view(0,90)

​图17 电容性加载的RFID标签在857MHz的共振频率下的电流分布。

RFID标签通常在一个平面中具有全向远场图案。为了证实这一点,我们将标签的远场辐射方向图进行可视化。该标签在857 MHz时的增益约为2 dBi。如图18所示,最大方向性出现在方位角为0度的仰角,沿着标签的最大尺寸的轴消失。天线的这种响应与在xy平面上与标签相同方向的简单半波长偶极子天线的响应类似。

figure

pattern(p,857e6)

​图18 电容性加载的RFID标签在857MHz的共振频率下的方向图。

该示例描述了通过照片识别天线边界并将其转换为用于全波分析的天线几何模型的过程。在使用 Computer Vision System Toolbox 和 Image Processing Toolbox 中的应用程序去除图像中的光学畸变后,我们构建了一个天线模型,并使用基于矩量法的全波求解器在Antenna Toolbox中对其进行了分析。

该分析证实了RFID标签的并联共振行为及其电感特性。远场辐射方向图遵循半波长偶极子的辐射方向图,并且在仰角面中是全向的。分析结果可以有多种应用。例如,频率相关的阻抗数据可以用在RF系统模拟中,辐射方向图可以用在阵列级模拟中。(来源:MATLAB)

链接:基于照片对天线进行全波分析(详细分解步骤) - RFASK射频问问

关于RFASK射频问问

射频问问是在"微波射频网”系列原创技术专栏基础上升级打造的技术问答学习平台,主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:RFASK射频问问 - 射频技术研发服务平台 | 技术问答、专栏文章、射频课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【严重】Smartbi商业智能BI软件权限绕过漏洞

漏洞描述 Smartbi是一款商业智能应用&#xff0c;提供了数据集成、分析、可视化等功能&#xff0c;帮助用户理解和使用他们的数据进行决策。 在Smartbi受影响版本中存在权限绕过问题&#xff0c;未授权的攻击者可以通过 RMI 的方式调用 getPassword 接口获取管理员token信息。…

高忆管理:创业板中签第一天卖吗?

跟着科技进步和改革开放的深入发展&#xff0c;我国的股票商场继续火热。随之而来的是越来越多的新股发行。关于股民们来说&#xff0c;怎么抢到新股成为了一个热点话题。在最近的一次创业板新股发行中&#xff0c;中签率再创新高&#xff0c;让不少股民欣喜不已。但是&#xf…

二、JVM-深入运行时数据区

深入运行时数据区 计算机体系结构 JVM的设计实际上遵循了遵循冯诺依曼计算机结构 CPU与内存交互图&#xff1a; 硬件一致性协议&#xff1a; MSI、MESI、MOSI、Synapse、Firely、DragonProtocol 摩尔定律 摩尔定律是由英特尔(Intel)创始人之一戈登摩尔(Gordon Moore)提出来…

输入框长度在XSS测试中如何绕过字符长度限制

大家好&#xff0c;这是我编写的第一篇文章&#xff0c;之所以会分享这个故事&#xff0c;是因为我花了几个晚上的时间&#xff0c;终于找到了解决某个问题的方法。故事如下&#xff1a; 几个月前&#xff0c;我被邀请参加一个非公共的漏洞悬赏项目&#xff0c;在初期发现了一些…

汽车行业案例 | 联合汽车电子全新质量问题管理平台上线,燕千云助力汽车电子领军者实现数字化质量管理

据权威调研机构显示&#xff0c;2022年中国智能电动汽车的销量已占新能源汽车的52%以上。到2025年&#xff0c;在新能源汽车50%的汽车出行市场渗透率的基础上&#xff0c;智能电动汽车的销量将超1220万辆&#xff0c;占新能源汽车的80.1%。在技术进步和产业变革快速推进的背景下…

curl命令详解及设置代理服务器

目录 概述 Linux Curl命令详解 Curl命令参数 Curl模仿浏览器命令 Curl模仿浏览器详解 模仿浏览器 Curl伪造refer命令 Curl伪造refer详解 伪造refer Curl下载文件或网页详解 Curl下载进度条命令 Curl下载进度条详解 Curl断点续传命令 Curl断点续传详解 断点续传 …

Kubernetes客户端认证—— 基于CA证书的双向认证方式

1、Kubernetes 认证方式 Kubernetes集群的访问权限控制由API Server负责&#xff0c;API Server的访问权限控制由身份验证(Authentication)、授权(Authorization)和准入控制&#xff08;Admission control&#xff09;三个步骤组成&#xff0c;这个三个步骤是按序进行的&#x…

Docker 安装 MySQL5.6

方法一、docker pull mysql 查找Docker Hub上的mysql镜像 #docker search mysql 这里我们拉取官方的镜像,标签为5.6 #docker pull mysql:5.6 &#xff08;第一次启动Docker-MySql主要是查看Docker里面MySQL的默认配置&#xff0c;数据位置&#xff0c;日志位置&#xff0c;配…

Flink非对齐checkpoint原理(Flink Unaligned Checkpoint)

Flink非对齐checkpoint原理&#xff08;Flink Unaligned Checkpoint&#xff09; 为什么提出Unaligned Checkpoint&#xff08;UC&#xff09;&#xff1f; 因为反压严重时会导致Checkpoint失败&#xff0c;可能导致如下问题 恢复时间长-服务效率低非幂等和非事务会导致数据…

企业电子招投标采购系统源码之电子招投标的组成 tbms

&#xfeff;功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&…

当我们在谈Web3时,其实谈的是什么?

当我们在谈Web3时&#xff0c;其实谈的是什么&#xff1f;虽然这个问题看似简单&#xff0c;但是Web3的定义却十分复杂。在这篇文章中&#xff0c;我们将尝试用简单易懂的语言来解答这个问题&#xff0c;并深入探讨Web3对未来的影响。 首先&#xff0c;Web3是什么&#xff1f;简…

通讯软件013——分分钟学会Kepware OPC AE Server仿真配置

本文介绍如何使用Kepware软件仿真OPC AE Server配置。相关软件可登录网信智汇&#xff08;wangxinzhihui&#xff09;下载。 1、创建1个数据源&#xff1a;本案例采用“Graybox.Simulator.1”作为数据源。连接OPC Server数据源“Graybox.Simulator.1”。 右键点击“连通性”&am…

SpringBoot复习:(14)容器是怎么创建出来的?

在SpringApplication类的run方法。低版本和高版本的SpringBoot实现有区别。 低版本&#xff1a; run方法调用了createApplicationContext createApplicationContext代码如下&#xff1a; 它会根据contextClass来实例化一个容器然后返回. &#xffe5;&#xffe5;&#xffe…

【设计模式——学习笔记】23种设计模式——命令模式Command(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入 有一套智能家电&#xff0c;其中有照明灯、风扇、冰箱、洗衣机&#xff0c;这些智能家电来自不同的厂家&#xff0c;我们不想针对每一种家电都安装一个手机App来分别控制&#xff0c;希望只要一个app就可以控制全部智能家电要实现一个app控制所有智能家电的需要&…

小程序开发趋势:探索人工智能在小程序中的应用

第一章&#xff1a;引言 小程序开发近年来取得了快速的发展&#xff0c;成为了移动应用开发的重要一环。随着人工智能技术的飞速发展&#xff0c;越来越多的企业开始探索如何将人工智能应用于小程序开发中&#xff0c;为用户提供更智能、便捷的服务。本文将带您一起探索人工智能…

YOLOv8+DeepSORT多目标跟踪(行人车辆计数与越界识别)视频教程

课程链接&#xff1a;https://edu.csdn.net/course/detail/38870 本课程使用YOLOv8和DeepSORT对视频中的行人、车辆做多目标跟踪计数与越界识别&#xff0c;开展YOLOv8目标检测和DeepSORT多目标跟踪强强联手的应用。 课程分别在Windows和Ubuntu系统上做项目演示&#xff0c;并…

基于SpringBoot+Vue的在线考试系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

【样式】默认都不选

html <view class"u-flex u-m-t-32 u-m-b-24 u-f-s-24"><view class"u-flex" click"navFun(1)"><text>佣金率</text><image src"/static/img/pai1.png" mode"" class"u-w-28 u-h-32"…

RabbitMQ 教程 | 第7章 RabbitMQ 运维

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

P7883 平面最近点对(加强加强版)

题目 思路 一眼二分&#xff0c;把平面分成两部分&#xff0c;查左右两边&#xff0c;但是还有可能跨中间的线&#xff0c;所以这个也得判 代码 #include<bits/stdc.h> using namespace std; #define int long long const int maxn4e510; pair<int,int> a[maxn]…