关于阵列发射端的波束形成(相控阵)研究与仿真实践

news2025/2/25 19:34:15

说明

    相控阵是一个很大的话题,相控阵说得直白一点就是通过控制天线阵列中各个天线的相位来使得波束指向我们想要的方向。现阶段相控阵雷达用得更多的还是军事领域,不过随着技术的进步、成本的下降以及小型化,相控阵雷达也逐渐被用于民用领域了,车载雷达是其落地的应用场景之一。

    最近想着基于Ti的级联板实践一下其发射端波束形成(相控阵)的功能,整理一套处理流程和代码。在那之前,想先捋清楚关于发射端波束形成的基本概念,并做仿真实践,于是有的这篇博文。

Blog

20230607  博文第一次撰写

目录

说明

目录

一、关于波束形成

二、仿真实践说明

三、关于线阵的仿真实践

四、关于面阵的仿真实践

五、总结

六、参考资料

七、代码链接


一、关于波束形成

    先给波束形成做一个简单的解释:波束形成是指通过控制天线阵列中各个天线(通道)的相位来使得波束指向我们想要的方向。波束形成可以在射频前端做(在发射或者接收端控制天线的相位),也可以在数据处理端做(我们基于DBF\Capon等算法进行测角也是波束形成)。不管是对发射天线、接收天线还是对测角,波束形成的本质都是一样的:给不同的通道设置不同的相位以达到改变波束指向的目的

    基于波束形成的测角,读者可以参考我之前的博文:车载毫米波雷达DOA估计综述_墨@#≯的博客-CSDN博客本博文讨论发射端的波束形成,或者更为一般化的叫法:相控阵。

    首先,在发射端做波束形成(相控阵)是有优势的:时分(TDM)的发射模式下,每个发射天线是分时发射的,也即任意时间下最多只有一个发射天线在发射电磁波,而相控阵下所有的发射天线都在发射电磁波,这种情况下所辐射出去的能量自然会得到增强(相较于TDM,相控阵下可以提高约20*log10(NTx)dB的SNR,NTx是单次同时发射的总的天线个数)。

    其次,通过设定不同阵元的相位值,我们可以让波束指向某些我们更感兴趣的区域,使得这些区域的目标检测能力和概率得到提高。

    本博文讨论最简单的情况:每个发射天线为各向同性。各向同性是说天线的方向图是一个球形(或者说我们考虑天线布在PCB板上,只考虑其垂直于板子向外的辐射,此时其方向图是一个半球形)。(不过阵列的主波束指向什么位置主要还是取决于各个阵元的相位和相对位置,与各阵元的方向图没有关系)。

    我们去求解阵列的方向图(波束指向),或者从需求的波束指向角度出发去求解每个阵元的相位,其背后的原理其实很简单:试想当发射天线都往外辐射电磁波时,这些电磁波必然会在空间中叠加,我们去求解阵列的波束指向,本质上就是基于各个阵元所辐射电磁波的初始相位、幅值、以及它们之间的相对位置关系来求得各个方向下电磁波叠加后的结果(对应下文公式中的AE)

    我们以线阵的第一个阵元(或面阵的某个顶角的阵元)作为参考基准,求解阵列的方向图。所用的阵列示意图与坐标系参考如下(对于线阵,取面阵的一行阵元即可):

图1.1  阵列坐标系示意图

    图中θ为与阵列法向的水平向夹角,φ为与水平面的夹角。

    对于N阵元线阵

                                           (1-1)

     式中,为第n个阵元辐射电磁波的幅值(对于各向同性的辐射来说,朝各个方向辐射的电磁波幅值一致),δn为该阵元辐射电磁波的初始相位,D为相对于参考阵元的间隔,θ为往外辐射时水平方向的角度,λ为载波波长。对于线阵,因为阵元是全向辐射的,所以在相对阵列的不同俯仰向下其辐射方向图是一样的

    对于N*M阵元面阵

(1-2)

    式中,Dn为列向第n个阵元相对参考阵元的距离,Dm为行向第m个阵元相对参考阵元的距离。

    关于波束指向的问题,对应到上述两式,就是要设置各阵元的初始相位δ。相位值的设置需要基于所需的指向角来得到导向矢量,以均匀线阵为例:

图1.2 线性阵列导向矢量求解示意图

    假定要使得波束指向θ方向,那么就要使每个阵元所发射的电磁波于远场下在该方向平行。假设以第一个阵元为基准,其初始相位为0,对于后续的阵元,在θ方向上,电磁波需要多走:D1、D2、D3 … 的路程,不难理解的是,

                                                               (1-3)

     该路程反映到相位上就是:

                                                                                                       (1-4)

    我们可以通过设置每个阵元的初始相位来达到弥补路程差的目的,此时应该设置各个阵元的初始相位值为:

                                             (1-5)

     上式也就是通常所说的导向矢量

    对于面阵,每个阵元的初始相位值的推导与线阵类似,如果想要使得阵列的波束指向(θ,φ),则阵列中的第(n,m)个阵元的初始相位值应该设置成:

                                            (1-6)

    关于上式各变量的解释可以参考式(1-2)的说明。

二、仿真实践说明

    在前文几个公式的指导下,本博文将分别仿真线阵和面阵两种情况下波束形成的结果。

    线阵采用间隔0.5个波长的10阵元均匀阵,面阵采用两个方向都间隔0.5个波长的由100个阵元组成的矩形面阵,如果读者想更改阵元间隔、阵元数目这些参数,可以在所提供的代码中很方便地进行更改。

    仿真中各阵元均为各向同性辐射,读者也可以给各阵元在不同的方向上赋不同的值,来看看非各向同性的阵元辐射下合成后的阵列波束方向图是什么样的,(各阵元的方向图可以使用天线的仿真数据结果)。

    后文仿真结果中的三维图为了更直观的展示,我把阵列的位置从图1.1中的xoz面转移到了xoy面

三、关于线阵的仿真实践

对波束指向0°和30°分别进行了仿真,直接贴仿真的结果吧:

 

图3.1  阵列波束指向0°时的仿真结果(3D)

图3.2  阵列波束指向0°时的仿真结果

(其中一个俯仰向的切片)

图3.3  阵列波束指向0°时的仿真结果

(极坐标下的视角,其中一个俯仰向的切片)

图3.4  阵列波束指向-30°时的仿真结果(3D)

图3.5  阵列波束指向-30°时的仿真结果

(其中一个俯仰向的切片)

图3.6  阵列波束指向-30°时的仿真结果

(极坐标下的视角,其中一个俯仰向的切片)

    仿真的结果与理论预测吻合良好。

四、关于面阵的仿真实践

    将波束指向分别设置了(0,0)和(30,-30)两组,仿真结果如下(分别从以角度为横纵坐标以及放在xyz坐标系中观察):

图4.1  阵列波束图1(0°, 0°)

图4.2  阵列波束图2(0°, 0°)

图4.3  阵列波束图1(30°, -30°)

图4.4  阵列波束图2(30°, -30°)

图4.5  阵列波束图3(30°, -30°),俯视图

    仿真的结果与理论预测吻合良好。

五、总结

    本博文探讨发射端波束形成(相控阵)的问题,阐述了关于波束形成的概念、原理、求解阵列方向图的方法、以及将阵列波束指向某个角度的方法,文中分别以线阵和面阵为分析对象,仿真实践了这两种阵列的波束方向图。

    本博文作为后续基于Ti级联板进行相控阵实践的铺垫,内容不算太多。后续如果有更深入的探讨我会补充和更新本博文。

六、参考资料

参考资料1: Jonah Gamba 《Radar signal Processing for Autonomous Driving》 书本第一章内容。

七、代码链接

关于阵列发射端的波束形成(相控阵)研究与仿真实践博文相对应的代码资源-CSDN文库

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

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

相关文章

Python之Gradio简单使用

目录 安装Gradio示例用法应用界面1. gr.Interface2. gr.Blocks Gradio的输入和输出组件输入组件(Inputs)输出组件(Outputs) 其他 Gradio是一个Python库,用于构建快速的Web界面,以便于使用机器学习模型进行实…

Vue.js 中的 watch 属性详解

Vue.js 中的 watch 属性详解 在 Vue.js 中,watch 属性是一种非常重要的属性,它可以监听 Vue 实例中指定的数据变化,并在数据发生变化时执行相应的操作。本文将对 Vue.js 中的 watch 属性进行详细的介绍,并附上相关的代码示例。 什…

一文看穿 TypeScript 的庐山真面目

导语: 在了解 TypeScript 之前,我们需要了解 什么是强类型语言和什么是弱类型语言,以及什么是静态类型,什么又是动态类型。 强类型不允许任意的隐式类型转换,而 弱类型 允许静态类型:一个变量声明时它的类型…

基于Python的大数据舆情分析,舆论情感分析可视化系统

运行效果图 基于Python的微博大数据舆情分析,舆论情感分析可视化系统 系统介绍 微博舆情分析系统,项目后端分爬虫模块、数据分析模块、数据存储模块、业务逻辑模块组成。 先后进行了数据获取和筛选存储,对存储后的数据库数据进行提取分析处…

sqlmap -os-shell 使用方法

一、burp suite抓包。 如上图所示,红框处很明显是一个传参点,我们就在这个页面抓包。 抓到包之后将内容保存到桌面的1000.txt文件下。 二、sqlmap跑包。 打开sqlmap跑包。 python sqlmap.py -r C:\Users\16434\Desktop\1000.txt -dbmsmysql --os-shell…

Oracle-catalog影响归档量统计

有个12.2 rac环境报警备份异常,登录检查备份,发现报错日志 piece handle/backup/orcl/archbackup/ARCHBAK_ORCL_20230607_738_1 tagARCH_BAK commentNONE channel d1: backup set complete, elapsed time: 00:01:55 released channel: d1 RMAN-00571: …

从Vuex过渡到pinia

Vuex过渡到Pinia 众所周知,Vuex是一个状态管理库,它方便了我们任何组件不用考虑关系就可以共享一个全局的状态。😃但是 Vuex也有它一定的缺陷。主要缺点,我总结如下: mutations里面不能写异步函数,否则就…

Simulink仿真模块 - Waveform Generator

Waveform Generator模块的功能是使用信号符号输出波形。它所在的库为: Simulink / Sources 如图所示: 双击模型弹出如下对话框,如图所示: Waveform Generator 模块根据您在波形定义表中输入的信号符号输出波形。 此模块支持下列用于信号符号的语法: 函数…

STM32单片机OLED语音识别路灯台灯控制系统人检测亮度调节

实践制作DIY- GC0143-OLED语音识别路灯台灯控制系统 基于STM32单片机设计---OLED语音识别路灯台灯控制系统 二、功能介绍: 电路:STM32F103C系列最小系统串口语音识别模块LED灯板1个红外传感器OLED显示器1个手动自动模式键1个开关按键 1.有两个模式1个手…

速卖通,国际站,temu测评,补单策略:安全与效能并重,提高账号存活率

测评能够帮助卖家让亚马逊平台更喜欢自己的产品,给予更好排名的同时也让后续进入店铺的买家更容易认可自己的产品。这些真实评价在亚马逊卖家管理系统中被称为Review Feedback。这是进行真实交易后形成的评价,而不是通过机器软件生成,形成虚拟…

SpringData进阶篇-下

SpringData进阶篇 一:故事背景二:自定义操作2.1 JPQL和SQL2.1.1 接口内定义2.1.2 调用2.2.3 SQL 方式查询 2.2 规定方法名2.2.1 普通查询规则2.2.2 修饰查询 2.3 Query By Example2.3.1 Repository继承QueryByExampleExecutor2.3.2 具体使用2.3.2 Exampl…

Aspose.Words功能演示:使用 C# 从 Word 文档中读取宏

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

java-不借用三方程序情况下,使用java自动工具将可执行jar转成exe

一、先新建一个javafx项目 二、配置Artifacts 点击Artifacts,会看到新建的项目会自动创建好了 如果没有的话,可以手动创建如下操作 三、配置 按下图逐一配置即可 四、builde 5、使用java的打包命令打包 PS C:\Users\xx\Downloads\cc\exeex\out\artifacts\JavaFXApp>…

web前端 --- js事件

js事件(event) (js诞生就是基于事件驱动型编程) (1)事件 用户通过各种行为(按键、鼠标点击、鼠标hover......)行为动作,引起相关 js 代码的执行。 事件的三元素&#x…

多篇论文入选ICASSP 2023 火山语音有效解决多类实践问题

近日由IEEE主办、被誉为世界范围内最大规模、也是最全面的信号处理及其应用方面的顶级学术会议ICASSP2023于希腊召开,该会议具有权威、广泛的学界以及工业界影响力,备受AI领域多方关注。会上火山语音多篇论文被接收并发表,内容涵盖众多前沿领…

springboot+vue+java企业车间工位管理系统

。本文介绍了企业级工位管理系统的开发全过程。通过分析企业级工位管理系统管理的不足,创建了一个计算机管理企业级工位管理系统的方案。文章介绍了企业级工位管理系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和…

Vue.js 中的过滤器和计算属性

Vue.js 中的过滤器和计算属性 Vue.js 是一款流行的 JavaScript 框架,它提供了一种简单而灵活的方式来构建交互式 Web 应用程序。在 Vue.js 中,过滤器和计算属性是两个常用的概念。它们可以帮助开发者更方便地处理数据,提高代码的可读性和可维…

【学习日记】操作系统-入门知识-个人学习记录

我的学习笔记链接: MyLinuxProgramming 参考资料 CSAPP操作系统导论OSTEP √APUEhttps://stevens.netmeister.org/631软件调试王道-操作系统操作系统真象还原小林coding-图解系统https://xiaolincoding.com嵌入式软件开发笔试面试指南Linux是怎样工作的2020 南京大…

怎么才能成为一名合法的无线电爱好者?

要想成为一名合法的无线电爱好者,就必须要拥有属于自己的呼号及操作证书。那么具体怎么才能获得这些呢?下面河南宝蓝小编就为大家详细介绍下。 车载电台 一、无线电的呼号是什么? 呼号,是从事无线电操作人员或电台,在…

第12章 并 发

多进程与多线程本质的区别:每个进程都拥有自己的一整套变量,而线程则共享数据。 12.1 什么是线程 将执行这个任务的代码放在一个类的run方法中,这个类要实现Runnable接口。 Runnable接口非常简单,只有一个run方法: …