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

MATLAB进行天线阵列方向图综合

摘要:本次推文将介绍如何利用MATLAB的Sensor Array Analyzer进行天线阵列的方向图综合。

1. 阵列方向图综合理论

对于均匀平面阵列而言,其阵因子公式可以写成

当阵列是三角网格布置或者圆环阵时,《ANTENNA THEORY ANALYSIS AND DESIGN》等相关教程也是有公式可参考的。不过对于任意孔径下排布,我们就需要回归到最通用的方向图综合公式。即通过已知的每个单元的位置、激励幅度和相位、对

进行累加来综合阵因子(点源模型)。

对于上述情况,就需要借助编程工具进行方向图综合的可视化,例如工科生们最常用的MATLAB或者Python。

2. Sensor Array Analyzer

MATLAB 2014b中开始新增支持的Sensor Array Analyzer (MATLAB 传感器阵列分析器),这个工具箱提供用于分析和处理传感器阵列数据的综合工具和功能,适用于信号处理、通信、雷达和声纳等领域使用传感器阵列的研究人员和工程师。该工具箱还提供用于显示和分析阵列数据的可视化工具并支持传感器阵列的设计和仿真。功能范围从 1-D 到 3-D 天线、声纳换能器和麦克风阵列等,并且可以包含子阵列。指定阵列和传感器参数后,应用程序会显示基本性能特征,例如阵列方向性和阵列尺寸。

支持的阵列类型如下所示:

阵列类型

2D阵列

均匀线性阵列(ULA)
均匀矩形阵列(URA)
均匀圆形阵列(UCA)
均匀六角形阵列(UHA)
圆形平面阵列(Circular Planar Array)
同心阵列(Concentric Array )

3D阵列

球形阵列(Spherical Array)
圆柱形阵列 (Cylindrical Array)
任意阵列 (Arbitrary Array)

对于天线阵列设计而言,我们可以通过遵从下面步骤来实现搭积木式的阵列方向图综合:选择阵列类型👉配置单元数/单元间隔/阵列法向方向/阵列的锥削/工作频段等。然后就可以点击3D Pattern/2D Pattern按钮来查看天线方向图。

下面以一个URA为例进行简单的使用示范:

  • ①Size:输入一个一行2列的向量,例如[4,4];

  • ②Element Spacing:输入单元间距,支持2种格式,例如[10,12](单位m),或者[0.5,0.6](单位λ);

  • ③Lattice:支持Rectangular(矩形网格布阵)和Triangular(三角网格布阵);

  • ④Array Normal:阵列的法向,例如x,y,z;

  • ⑤Taper:支持Custom自定义类型和行、列分别类型的幅度锥削激励;

  • ⑥Custom Taper:当⑤中选择Custom类型时,可自定义各单元的激励系数。如果阵列的Size是4×4,则可输入一个4×4的矩阵(可以是复数形式)。

以上向量或者矩阵均可以从workspace里载入

综合的方向图结果如下所示:

除了简单的阵列综合外,还有子阵综合,单元方向图选取以及波束扫描等功能,大家可以根据自己的需求来调用!

3. 代码封装设计

通过Export按钮可以Generate Matlab script,通过观察代码来学习如何将上面的UI操作转换为代码的,从而将其封装起来方便使用。

这里给大家一个封装的MATLAB Demo

function radiation=Cal_RecArray(ArrSize,Spacing,Taper)

% ArrSize=[8,8];Spacing=[0.5,0.5];Taper=1;

% w = taylorwin(16,8,-20);w=w/max(w);Taper=w*w.';

% Create a uniform rectangular array

Array = phased.URA('Size',ArrSize,... 'Lattice','Rectangular','ArrayNormal','z');

% The multiplication factor for lambda units to meter conversion

Array.ElementSpacing = Spacing;

Array.Taper = Taper;

% Create an isotropic antenna element

Elem = phased.IsotropicAntennaElement;

Elem.FrequencyRange = [0 300000000];

Array.Element = Elem;

% Assign Frequencies and Propagation Speed

Frequency = 300000000;

PropagationSpeed = 300000000;

% Plot Array Geometry

figure;

viewArray(Array,'ShowNormal',false,...

'ShowTaper',false,'ShowIndex','None',...

'ShowLocalCoordinates',true,'ShowAnnotation',false,...

'Orientation',[45;45;45]);

% Calculate Steering Weights

Freq3D = 300000000;

% Find the weights

w = ones(getNumElements(Array), length(Frequency));

% Plot 3d graph

plotType = 'Directivity';

radiation=pattern(Array, Freq3D , 'PropagationSpeed', PropagationSpeed,...

'weights', w(:,1),...

'ShowArray',false,'ShowLocalCoordinates',true,...

'Type', plotType);

end

简单的调用下即可得到3D方向图数据:

w = taylorwin(10,8,-20);w=w/max(w);Taper=w*w.';

pattern=Cal_RecArray([10,10],[0.5,0.5],Taper);

4. 进阶功能

除了常规的1D线阵,矩形、圆形等阵列结构外,还可以进行Arbitrary设置,我们只需要传入单元的坐标位置和单元的法向角度 (对于平面阵列而言,所有单元的法向角度相同),以及单元的幅度锥削即可。

该工具箱内置的子阵分析和自定义单元方向图功能使得复杂的阵列综合更加便利化。

作者:微波天线工程师

来源:MATLAB进行天线阵列方向图综合 - RFASK射频问问

关于RFASK射频问问

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 海外域名自动手动免费续费ssl证书
  • 对象存储数据库minio的持久化存储
  • 模拟算法专题——算法介绍算法讲解力扣实战应用
  • Android中使用eBPF跟踪 FD打开与关闭
  • HTTP“请求”和“响应”的报头及正文详解
  • BUUCTF—[网鼎杯 2020 朱雀组]phpweb
  • 【Spring Boot 3】【Web】解析获取HTTP请求参数
  • 828华为云征文|部署私有云和文档管理系统 Kodcloud
  • 【C++】static作用总结
  • Harmony TextInput实现带有提示语的Text效果
  • Linux之MySQL日志
  • java 中简单实现异步的几种方法
  • Falcon Mamba:首个高效的无注意力机制7B模型
  • knime和Python两种解法提取斜杠(/)或反斜杠(\)分隔前后数据
  • 工时管理遇难题?试试这款系统解决方案
  • 网络传输文件的问题
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【面试系列】之二:关于js原型
  • angular组件开发
  • centos安装java运行环境jdk+tomcat
  • Flex布局到底解决了什么问题
  • IDEA常用插件整理
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript设计模式之工厂模式
  • js继承的实现方法
  • Laravel 菜鸟晋级之路
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP变量
  • RxJS: 简单入门
  • SQLServer之创建显式事务
  • SQLServer之索引简介
  • tensorflow学习笔记3——MNIST应用篇
  • windows-nginx-https-本地配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 彻底搞懂浏览器Event-loop
  • 从零开始在ubuntu上搭建node开发环境
  • 机器学习中为什么要做归一化normalization
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 软件开发学习的5大技巧,你知道吗?
  • 移动端 h5开发相关内容总结(三)
  • C# - 为值类型重定义相等性
  • 整理一些计算机基础知识!
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • $(selector).each()和$.each()的区别
  • $forceUpdate()函数
  • (12)Hive调优——count distinct去重优化
  • (Charles)如何抓取手机http的报文
  • (function(){})()的分步解析
  • (Qt) 默认QtWidget应用包含什么?
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (二)Linux——Linux常用指令
  • (回溯) LeetCode 78. 子集
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐