毫米波雷达阵列天线设计综合1(MATLAB仿真)

1 天线设计目标

       毫米波雷达探测目标的距离、速度和角度,其中距离和角度和天线设计相关性较强。天线增益越高,则根据雷达方程可知探测距离越远;天线波束越窄,则角度分辨率越高;天线副瓣/旁瓣越低,则干扰越少,虚假目标越少。

       天线的性能直接影响雷达性能,现代的毫米波雷达几乎都使用阵列天线。阵列天线是根据电磁波在空间相互干涉的原理,把具有相同结构、相同尺寸的基本天线单元按照一定规律排列在一起组成的。

综合来看,毫米波雷达使用阵列天线的目标是获得增益高、波束窄、旁瓣低的空间方向图,比较理想的天线辐射方向图如下图1-1所示,而图1-2所示的方向图则比较一般,因为出现较高的旁瓣和栅瓣。

图1-1 理想方向图

图1-2 一般的方向图

       因此,阵列天线设计的目标是通过空间布局、激励幅度、激励相位的优化设计,获得理想的辐射特性,包括阵列天线方向图、半功率波束宽度、增益和效率、旁瓣电平等。

2 均匀间距阵列

       阵列天线最容易想到的就是均匀排布,比如均匀直线排布、均匀平面排布等。空间上均匀排布的阵列天线旁瓣较高,可以通过调整每个阵元的激励幅度来获得低旁瓣。经典的激励幅度(馈电)分布有二项式分布、高斯分布、切比雪夫分布和泰勒分布等。

2.1 均匀间距直线阵列

       32阵元均匀间距直线阵列使用不同的馈电分布的结果如下,资料可以参考《阵列天线理论与工程应用》。

图2-1 不同的馈电分布

图2-2 不同馈电分布的接收波束形成

       图2-1和2-2是32阵元等间距排布,但激励幅度(馈电)分布不同的仿真结果,可以看到,相比馈电均匀分布的情况,图2-1中的四种馈电分布形成的波束旁瓣均有明显的降低。

       图2-1中二项式分布和高斯分布部分阵元馈电幅度较小,不适合实际使用;另外,图2-2中二项式分布和高斯分布的主瓣波束展宽较多,亦不适合实际使用,综上,切比雪夫和泰勒综合是较优的激励幅度优化方法,但只适用于均匀阵列

2.2 均匀间距平面阵列

平面阵列也可以通过阵元的幅度控制,获得更好的增益和旁瓣水平。除了均匀分布馈电,这里使用了高斯分布、切比雪夫分布和泰勒分布等。下面使用24×24的二维平面阵列天线进行仿真,给出不同馈电的分布和不同馈电分布下的波束形成结果。

2.2.1 不同馈电分布仿真结果

       这里使用MATLAB仿真了均匀分布、高斯分布、切比雪夫分布和泰勒分布的馈电结果,格子的大小和颜色代表了强度,每张图的右侧是相应的尺度。

图2-3 均匀分布平面阵列馈电

图2-4 高斯分布平面阵列馈电

图2-5 切比雪夫分布平面阵列馈电

图2-6 泰勒分布平面阵列馈电

2.2.2 不同馈电分布方向图

       不同馈电分布的平面阵列天线三维空间波束和俯视图的MATLAB仿真结果如下,可以看到相比于均匀分布,高斯分布、切比雪夫分布、泰勒分布的主瓣波束均有不同程度展宽,旁瓣也有明显降低。

图2-7 不同馈电分布的平面阵列波束方向图

图2-8 不同馈电分布的平面阵列波束方向图俯视图

2.2.3 不同馈电分布主瓣和旁瓣

       在方位和俯仰0°方向做切面,可以得到俯仰面和方位面的方向图,MATLAB仿真结果如下,可以看到,图2-9和图2-10中,高斯分布、切比雪夫分布和泰勒分布的旁瓣均明显降低,同时主瓣略有展宽。

图2-9 不同馈电分布的俯仰切面方向图

图2-10 不同馈电分布的方位切面方向图

3 非均匀间距阵列

实际的毫米波雷达通常使用非等间距的稀疏阵列天线,这样可以显著降低硬件成本,同时对毫米波雷达探测性能的影响很小。

特斯拉的4D雷达天线如下图所示,发射和接收使用了不同的疏状天线,如果把疏状天线看成一个子阵,方向图函数为FS(θ,φ),那么二维平面阵列的方向图可以看作N个子阵方向图的叠加:

Fθ,φ=i=1NFS(θ,φ)

       在接收时,可以对所有通道的数据做幅相加权合成不同的接收波束,则上式可以写为

Fθ,φ=i=1NWi*FS(θ,φ)

       其中,Wi是不同通道的幅相加权系数。

图3-1 特斯拉4D雷达天线

每个子阵中,疏状天线的方向图由M个阵元的方向图叠加得到,可以用公式表示如下

FS(θ,φ)=i=1MIi*fθ,φ

       其中fθ,φ是单个阵元的方向图,Ii是不同阵元的激励,设计不同的激励可以得到不同的方向图,如下图3-2和图3-3所示。

    

图3-2 典型疏状天线

(a)E面方向图

(b) H面方向图

图3-3 疏状天线方向图

       阵列天线的布局和激励强度分布对方向图、旁瓣等均有较大影响,解析式的方法已经不适用,可以考虑智能搜索算法进行优化,比如遗传算法、模拟退火算法、粒子群优化算法等,这些内容将在后续博文介绍。

4 参考代码

        直线阵列的馈电分布和方向图仿真的MATLAB代码如下,平面阵列的仿真代码量较大,博文不作分享,如有需要可私信交流。

% 均匀线阵波束形成
% 使用不同的激励权重仿真
clear; clc; close all;% 构造阵列和信号
N = 32;                                 % 线阵长度
array_uni = 0:1:N-1;                    % 同样孔径下的均匀阵列
theta = 0;                              % 目标角度
d = 0.5;                                % 阵列均匀间隔d
A_uni = exp(-1i*2*pi*d*sind(theta).*array_uni.');          % 导向矢量
x_uni = A_uni;                          % 无噪声
% snr = 20;                               % 信噪比
% x_uni = awgn(A_uni,snr);                % 添加噪声% 构造不同馈电的分布
bino_distri = GetBinoDistri(N);                 % 二项式分布,需要保证N>1
sigma = 4;
gauss_distri = GetGaussDistri(N,sigma);         % 高斯分布,需要保证N>1
psll = -20;
cheb_distri = chebwin(N,-psll)';                % N是阵列单元个数,psll即我们希望的副瓣电平 
cheb_distri = cheb_distri/max(cheb_distri);
taylor_distri = taylorwin(N,2,psll)';            
taylor_distri = taylor_distri/max(taylor_distri);figure;
plot(bino_distri,'o');hold on;
plot(gauss_distri,'o');hold on;
plot(cheb_distri,'o');hold on;
plot(taylor_distri,'o');hold on;
legend('二项式分布','高斯分布','切比雪夫','泰勒综合');
title('归一化馈电分布');% 使用dbf扫描
thetascan = linspace(-90,90,1024);
a_uni  = exp(1i*2*pi*d*sind(thetascan).'*array_uni);           
p_uni = x_uni.'*a_uni.';  
p_uni = 20*log10(abs(p_uni)./max(abs(p_uni)));
% 实际波束指向角度和理论偏差,这里不太关注
% [max_value,index] = max(p_uni);
% theta_est = thetascan(index);
% est_error = abs(theta_est - theta);
% 二项式分布
p_uni_bino = bino_distri.*x_uni.'*a_uni.';
p_uni_bino = 20*log10(abs(p_uni_bino)./max(abs(p_uni_bino)));
% 高斯分布
p_uni_gauss = gauss_distri.*x_uni.'*a_uni.';
p_uni_gauss = 20*log10(abs(p_uni_gauss)./max(abs(p_uni_gauss)));
% 高斯分布
p_uni_cheb = cheb_distri.*x_uni.'*a_uni.';
p_uni_cheb = 20*log10(abs(p_uni_cheb)./max(abs(p_uni_cheb)));
% 高斯分布
p_uni_taylor = taylor_distri.*x_uni.'*a_uni.';
p_uni_taylor = 20*log10(abs(p_uni_taylor)./max(abs(p_uni_taylor)));figure;
plot(thetascan,p_uni);hold on;
plot(thetascan,p_uni_bino);hold on;
plot(thetascan,p_uni_gauss);hold on;
plot(thetascan,p_uni_cheb);hold on;
plot(thetascan,p_uni_taylor);hold on;
plot([theta,theta],ylim,'m-.');
legend('均匀分布','二项式分布','高斯分布','切比雪夫','泰勒综合','波束指向');
ylim([-60,0]);
xlabel('theta/°');ylabel('amplitude/dB');
title('DBF结果');
% title(['DBF结果 SNR = ' num2str(snr)]);% 计算二项式分布幅度
function bino_distri = GetBinoDistri(N)bino_distri = zeros(1,N);for k = 1:1:Nbino_distri(k) = factorial(N)/(factorial(k)*factorial(N-k));        % 根据公式计算endbino_distri = bino_distri/max(bino_distri);                             % 归一化
end% 计算二项式分布幅度
function gauss_distri = GetGaussDistri(N,sigma)gauss_distri = zeros(1,N);u = (1+N)/2;const1 = 1/(sigma*sqrt(2*pi));const2 = (2*sigma^2);for k = 1:1:Ngauss_distri(k) = const1*exp(-(k-u)^2/const2);                          % 根据公式计算endgauss_distri = gauss_distri/max(gauss_distri);                              % 归一化
end

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

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

相关文章

Kibana的使用

在学习elasticsearch时,可以使用Kibana自带的开发工具,来提高效率, 浏览器打开Kibana,在左侧菜单栏中找到Dev Tools 该工具提供代码提示和代码格式化功能,非常有用,

C++笔记(1)

1. C语言和C的区别? C语言作为一种过程性语言,侧重于通过算法描述来指导计算机执行,将复杂程序分解为简单、可管理的模块。 C语言支持模块化编程,每个模块作为独立的单元。C融合了3中不同的编程方式:C语言、面向对象…

【已解决】记录Vue2.x中npm install下载依赖报错:python2 Error: not found: python2问题(具体操作步骤)

项目场景: 项目场景:在项目开发中,升级了本地node版本后,重新npm install下载依赖报错找不到python环境 not found: python2 npm ERR! gyp verb check python checking for Python executable “python2” in the PATH 在尝试了各…

Codeforces Round 950 (Div. 3)(A~F2)

G题只会暴力..不会数据结构 A - 问题 Generator 暴力模拟即可 // Problem: A. Problem Generator // Contest: Codeforces - Codeforces Round 950 (Div. 3) // URL: https://codeforces.com/contest/1980/problem/A // Memory Limit: 256 MB // Time Limit: 1000 ms // //…

哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码

一:哈夫曼树的构造 ①权值,带权路径长度。 ②一组确定权值的叶子节点可以构造多个不同的二叉树,但是带权路径长度min的是哈夫曼树 ③算法基本思想及其实操图片演示 注:存储结构和伪代码 1 初始化: 构造2n-1棵只有一个根节点的二叉树,parent=rchild=lchild=-1; 其中…

构造一个高效的哈希表:从基本思路到最终实现

哈希表是计算机科学中常用的数据结构之一,它提供了快速的查找、插入和删除操作。在本篇博客中,我们将探讨如何构造一个高效的哈希表,从最基本的思路逐步完善,直至最终实现。 1. 初始思路:使用布尔数组存储 我们最初的…

AIGC 全面介绍

随着人工智能技术的不断进步,生成式人工智能(AI Generated Content, AIGC)成为了一个日益热门的话题。AIGC 指利用人工智能技术生成各类内容,包括文本、图像、音频、视频等。与传统的内容生成方法相比,AIGC 具有速度快…

谷歌创新框架:从非结构化数据,实现多模态学习

看、听、说的多模态已成为主流大模型的重要功能之一。但在数据爆炸时代,大模型学习文本类的结构化数据相对还好一些,但要去学习视频、音频、图片等非结构化数据非常困难。 目前,从结构化和非结构化数据实现多模态学习,会随着模态…

RK3588 VOP图层分配介绍

RK3588 VOP图层分配介绍 RK3588图层介绍 RK3588有8个图层,分别是Custer 0/1/2/3 和Esmart 0/1/2/3,两种图层的能力不一样,具体如下: Custer 分辨率:最大分辨率包括两种合并集群和单集群,分别为7680x432…

QT_UI设计

mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE //命名空间 namespace Ui { class MainWindow; } //ui_MainWindow文件里定义的类&#xff0c;外部声明 QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_O…

AccessibilityEvent的生成和处理

在 Android 框架层&#xff0c;AccessibilityEvent 的生成和处理是通过系统的 UI 框架和辅助功能服务框架密切协作来实现的。这个机制涉及几个关键的部分&#xff1a;UI 组件、辅助功能服务、事件监听和事件分发。以下是对这些部分和它们如何协同工作的详细解释&#xff1a; 1…

httprunner接口自动化测试框架使用说明【保姆级教程】

背景介绍&#xff1a; httprunner是国内开源的一个接口自动化框架&#xff0c;已经有部分公司开始使用这种框架来完成自己公司的接口自动化编写&#xff0c;本文主要是从简单的流程上去讲解咋使用的&#xff08;PS&#xff1a;开发者本尊的官网教程写的是真的烂。。。&#xf…

JVM调优实战

如果老年代能回收掉大部分&#xff0c;说明年轻代太小了&#xff0c;放不下 OOM 1数据量一次性申请的内存过多&#xff0c;比如数据库查询返回值大多&#xff0c;所以做个分页 2.并发过高的情况下&#xff0c;一些连接未释放 3.堆内存不够

DP-Kmaens密度峰值聚类算法

我有个问题 关于 [密度值>密度阈值] 的判定这里&#xff0c;新进来的新数据怎么确定他的密度值&#xff1f;密度阈值又是怎样确定的呢&#xff1f;

正则表达式 0.1v

正则表达式 扩展 --> :% s/\///g //文件里面所有的 / 去掉 * 通配符 \ //转义&#xff0c;让字符变成原本的意思 ^ //行首 $ //行尾 [0-9] //数字 [a-z] //小写字母 [A-Z] //大写字母 把文件的小写字母替换为大写字母&#xff1f; 固定写法 :% s/[a-…

Vscode git 插件

超好用的git记录 软件 安装之后&#xff0c;鼠标在哪一行就可以看最新一次是谁提交的&#xff0c;真的超好用&#xff01;&#xff01;&#xff01;

43页 | 2024年企业级BI平台白皮书(免费下载)

【1】关注本公众号&#xff0c;转发当前文章到微信朋友圈 【2】私信发送 2024年企业级BI平台白皮书 【3】获取本方案PDF下载链接&#xff0c;直接下载即可。 诚挚邀请您微信扫码加入以下方案驿站知识星球&#xff0c;获取上万份PPT/WORD解决方案&#xff01;&#xff01;&…

【NOI】C++程序结构入门之循环结构二-for循环

文章目录 前言一、for循环1.导入2.语法3.使用场景4.条件控制5.小结 二、例题讲解问题&#xff1a;1264 - 4位反序数问题&#xff1a;1085 - 寻找雷劈数问题&#xff1a;1057 - 能被5整除且至少有一位数字是5的所有整数的个数问题&#xff1a;1392 - 回文偶数&#xff1f;问题&a…

Linux命令 netstat -anp | grep 的用法

文章目录 1、第一种解释2、第二种解释3、第三种解释4、第四种解释5、第五种解释6、netstat --help 在Windows中&#xff0c;杀死端口占用的博客链接 1、第一种解释 在Unix和Linux系统中&#xff0c;netstat -anp 命令用于显示所有的网络连接&#xff08; -a 表示所有&#xff…

文件md5加密

使用场景&#xff1a;为了避免上传资源空间的浪费&#xff0c;通过对文件进行md5摘要加密获取唯一的值&#xff0c;从数据库中查询是否已有该md5码存在&#xff0c;不存在的就上传&#xff0c;存在的话使用之前已存储的文件信息。 如何加密 下载插件browser-md5-file 【之前有…