【雷达原理】数字波束形成(DBF)
news/2026/6/22 23:38:40/文章来源:https://blog.csdn.net/weixin_45317919/article/details/140062618
目录 一、数字波束形成1.1 DBF原理1.2 工程应用实现方式1.2.1 预先存储权矢量1.2.2 利用DFT/FFT实现DBF 二、DBF应用2.1 通道间相干积累2.2 测量目标角度 三、MATLAB代码
一、数字波束形成
数字波束形成(Digital Beam Forming,DBF) 技术,是针对阵列天线,利用阵列天线的孔径,通过数字信号处理在期望的方向形成接收波束。 DBF的物理意义:虽然单个天线的方向图是全向的,但对阵列多个接收通道的信号,利用数字处理方法,对某一方向的入射信号,补偿由于传感器在空间位置不同而引起的传播波程差导致的相位差,实现同相叠加,从而实现该方向的最大能量接收,完成该方向上的波束形成,来接收有用的期望信号,这种把阵列接收的方向增益聚集在一个指定的方向上,相当于形成了一个“波束”。 可以通过改变权值,使得波束指向不同的方向,并实现波束的扫描。通过多通道的并行处理也可以同时形成多个波束,还可以选择合适的窗函数来降低副瓣电平。
1.1 DBF原理
对于 N N N 个间距为 d d d 的阵元组成的接收阵列,考虑 p p p 个远场的窄带信号入射到该阵列上,假设阵元数和通道数相等,即各阵元接收到信号后经过各自的传输信道送到信号处理器,则接收信号矢量可表示为: X ( t ) = A ⋅ S ( t ) + N ( t ) ( 1 − 1 ) X(t)=A·S(t)+N(t) (1-1) X(t)=A⋅S(t)+N(t)(1−1) 其中, X ( t ) = [ x 1 ( t ) , x 2 ( t ) , . . . . . . , x N ( t ) ] T X(t)=[x_{1}(t),x_{2}(t),......,x_{N}(t)]^T X(t)=[x1(t),x2(t),......,xN(t)]T ,为 N × 1 N×1 N×1 维阵列接收快拍信号矢量,; S ( t ) = [ s 1 ( t ) , s 2 ( t ) , . . . . . . , s p ( t ) ] T S(t)=[s_{1}(t),s_{2}(t),......,s_{p}(t)]^T S(t)=[s1(t),s2(t),......,sp(t)]T ,为 p × 1 p×1 p×1 维信号矢量; N ( t ) N(t) N(t) 为 N × 1 N×1 N×1 维噪声信号矢量; A = [ a ( θ 1 ) , a ( θ 2 ) , . . . . . . , a ( θ p ) ] A=[a(θ_{1}),a(θ_{2}),......,a(θ_{p})] A=[a(θ1),a(θ2),......,a(θp)] 为 N × p N×p N×p 维导向矢量矩阵。
第 i i i 个信号的导向矢量为: a ( θ i ) = [ 1 , e j 2 π d s i n θ i / λ , . . . , e j 2 π ( N − 1 ) d s i n θ i / λ ] T a(θ_{i})=[1,e^{j2πdsinθ_{i}/λ},...,e^{j2π(N-1)dsinθ_{i}/λ}]^T a(θi)=[1,ej2πdsinθi/λ,...,ej2π(N−1)dsinθi/λ]T 在DBF过程中,假设信号的到达方向为 θ θ θ ,则在该方向的导向矢量为: a ( θ ) = [ 1 , e j 2 π d s i n θ / λ , . . . , e j 2 π ( N − 1 ) d s i n θ / λ ] T a(θ)=[1,e^{j2πdsinθ/λ},...,e^{j2π(N-1)dsinθ/λ}]^T a(θ)=[1,ej2πdsinθ/λ,...,ej2π(N−1)dsinθ/λ]T 由式(1-1)知,对于单一信号源,有 X ( t ) = A ⋅ S ( t ) + N ( t ) X(t)=A·S(t)+N(t) X(t)=A⋅S(t)+N(t),波束形成技术与时间滤波类似,即对采样数据 X ( t ) X(t) X(t) 进行加权求和,加权后的输出信号为: y ( t ) = W H ⋅ X ( t ) = W H ⋅ a ( θ ) ⋅ s ( t ) + W H ⋅ N ( t ) ( 1 − 2 ) y(t)=W^{H}·X(t)=W^{H}·a(θ)·s(t)+W^{H}·N(t) (1-2) y(t)=WH⋅X(t)=WH⋅a(θ)⋅s(t)+WH⋅N(t)(1−2) 式中, W = [ W 1 , W 2 , , . . . , W N ] T W=[W_{1},W_{2},,...,W_{N}]^T W=[W1,W2,,...,WN]T ,为DBF的权矢量。
当 W = a ( θ 0 ) W=a(θ_{0}) W=a(θ0) ,即对方向为 θ 0 θ_{0} θ0 的信号进行同相相加时,输出 y ( t ) y(t) y(t) 的模值最大。该过程就是利用了波束形成技术实现对方向为 θ 0 θ_{0} θ0 的选择,即空域滤波。
等距线阵空域滤波的结构如图1所示, 图1 等距线阵空域滤波结构图 对一个阵元数 N = 16 N=16 N=16 等距线阵,阵元间距为半波长,假设波束指向分别为-30°,0°,30°,经过DBF处理后,在指定的方向形成主瓣,其余方向形成旁瓣,数字波束形成方向图如图2所示。 图2 数字波束形成方向图 由图2可看出,未加窗时,阵列的波束形成方向图的副瓣电平为-13.15dB,采用对权矢量进行加窗处理,可以降低副瓣电平,例如加泰勒窗后,副瓣电平降低为-30.06dB,但其主瓣的3dB宽度为8.2°,相比未加窗处理的主瓣展宽了1.8°。
接收天线的阵元数不同,数字波束形成方向图也有较大区别,以波束指向为0°,未加窗处理为例,取阵元数分别为 N = 8 、 N = 16 、 N = 32 N=8、N=16、N=32 N=8、N=16、N=32 时,得到数字波束形成方向图如图3所示。 由图3可以看出,当阵元数成倍数增加时,其方向图的3dB宽度成倍数减小;旁瓣数量会随着阵元数的增加而增加;副瓣电平均相同。
1.2 工程应用实现方式
1.2.1 预先存储权矢量
采用公式(1-2)进行DBF处理需要 N 2 N^2 N2 次复数乘法运算,当波束扫描的角度间隔较小,即波位数量较多时,计算量是极大的,不利于实时计算。 因此实际工程应用时,要设置合理的波束扫描间隔,并充分挖掘硬件的性能(并行计算),可以通过提前计算出权矢量的数值,预先存储在文件中,在使用时进行导入即可计算。
1.2.2 利用DFT/FFT实现DBF
在不同的方向进行DBF处理时需要采用不同的权矢量,对方向 θ θ θ 的权矢量为: W ( θ ) = [ 1 , e − j 2 π d s i n θ / λ , . . . , e − j 2 π d s i n θ ( N − 1 ) / λ ] T ( 1 − 3 ) W(θ)=[1,e^{-j2πdsinθ/λ},...,e^{-j2πdsinθ(N-1)/λ}]^T(1-3) W(θ)=[1,e−j2πdsinθ/λ,...,e−j2πdsinθ(N−1)/λ]T(1−3) 将DBF处理搜索的波位的角度按下式进行量化: s i n θ k = λ k N d , k = 0 , 1 , . . . , N − 1 ( 1 − 4 ) sinθ_{k}=\frac{λk}{Nd},k=0,1,...,N-1(1-4) sinθk=Ndλk,k=0,1,...,N−1(1−4) 则得到的权矢量为 W ( θ k ) W(θ_{k}) W(θk) : W ( θ k ) = [ 1 , e − j 2 π N k , . . . , e − j 2 π N ( N − 1 ) k ] T ( 1 − 3 ) W(θ_{k})=[1,e^{-j\frac{2π}{N}k},...,e^{-j\frac{2π}{N}(N-1)k}]^T(1-3) W(θk)=[1,e−jN2πk,...,e−jN2π(N−1)k]T(1−3) 由式(1-3)可知,DBF的权矢量 W ( θ k ) W(θ_{k}) W(θk) 为离散傅里叶变换(DFT)的旋转因子 W N n k W_{N}^{nk} WNnk ,因此可以利用DFT或者FFT实现DBF处理,同时得到N个波位的DBF结果。
采用快速傅里叶变换(FFT)可以减少DFT的计算时间复杂度,其复数乘法的运算次数为 ( N / 2 ) l o g N (N/2)logN (N/2)logN
案例: 设有32个阵元组成间距为半波长的等距线阵,同一距离单元的两个目标的方位角分别为-20°和30°,对接收信号利用128点FFT进行DBF处理,得到的结果如下: x坐标代表角度维,每个点的角度精度为Ag_point =0.8952,仿真计算得到的目标角度为:A1=-Ag_point *(23-1)=-19.6954°,A2=Ag_point *(128-97) =27.75°。与实际设定角度存在一定范围的差异,由角度分辨率有关。
二、DBF应用
2.1 通道间相干积累
2.2 测量目标角度
三、MATLAB代码
1.DBF方向图
clc;
clear;
close all;%% DBF方向图
N = 16;
d_lambda = 0.5;
theta = (-90:0.1:90);% 1、不同波束指向
theta0 = -30;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
figure;
plot(theta,20*log10(pattern/max(pattern)),'b-');
hold on;theta0 = 0;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
plot(theta,20*log10(pattern/max(pattern)),'r-.');
theta0 = 30;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
plot(theta,20*log10(pattern/max(pattern)),'m--');
xlabel('方位/°');ylabel('归一化方向图/dB');xlim([-90 90]);ylim([-50 0]);
legend('\theta=-30','\theta=0','\theta=30');
title(['阵元数N=',num2str(N)]);% 2、固定波束指向时,对比加窗前后效果
theta0 = 0;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
figure;
plot(theta,20*log10(pattern/max(pattern)),'b-');
hold on;select = 3;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta,select);
plot(theta,20*log10(pattern/max(pattern)),'k--');
xlabel('方位/°');ylabel('归一化方向图/dB');xlim([-90 90]);ylim([-50 0]);
legend('未加窗','加泰勒窗');
title(['阵元数N=',num2str(N)]);% 3、固定波束指向时,对比不同阵元数的波束形成方向图
theta0 = 0;
N = 8;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
figure;
plot(theta,20*log10(pattern/max(pattern)),'b-');
hold on;N = 16;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
plot(theta,20*log10(pattern/max(pattern)),'r-.');
N = 32;
pattern = Antenna_Pattern(N,d_lambda,theta0,theta);
plot(theta,20*log10(pattern/max(pattern)),'k--');
xlabel('方位/°');ylabel('归一化方向图/dB');xlim([-90 90]);ylim([-50 0]);
legend('N = 8','N = 16','N = 32');
title('波束指向0度,未加窗');
2.雷达系统仿真模型
clc;
clear;
close all;%% 雷达系统仿真模型
setParameter(); % 设置雷达系统参数global para;
% 设置目标参数
set_TarInfo.tarNum = 2;
set_TarInfo.tar_R0 = [500,500]; % 目标距离
set_TarInfo.tar_V0 = [0,0]; % 目标速度
set_TarInfo.tar_Ag = [-20,30]; % 目标角度
set_TarInfo.Rcs = [1,5]; % 目标rcs
set_TarInfo.SNR = 10; % 信噪比% 雷达发射和接收信号模型
para.Tx_Num = 1; % 发射阵元数目
para.Rx_Num = 32; % 接收阵元数目
global NumChirp;
NumChirp = 1;
rawData = RadarSigModel_MultiCh(set_TarInfo);%% 雷达信号处理
global NumADC;fs = para.fs;
u = para.u;
c = para.c;
Rx_Num = para.Rx_Num;Nfft1 = 2^ceil(log2(NumADC)); % 距离维FFT点数
Nfft3 = 128; % 通道间FFT点数
R_point = (fs/Nfft1)*c/(2*u); % 距离点精度
Ag_point = 2/Nfft3*180/pi; % 距离维FFT
win1 = hamming(NumADC); % 加汉明窗
fft_Data = zeros(Nfft1,Rx_Num);
for ii = 1:Rx_Numfft_Data(:,ii) = fft(rawData(:,:,ii).*win1,Nfft1);
end% 角度维FFT
win3 = hamming(Rx_Num); % 加汉明窗
fft3_Data = zeros(Nfft1,Nfft3);
for jj = 1:Nfft1fft3_Data(jj,:) = fft(fft_Data(jj,:).*win3',Nfft3);
endfigure;
mesh(mag2db(abs(fft3_Data)));xlabel('角度维');ylabel('距离维');
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/869971.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/869971.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!
相关文章
使用Python绘制气泡图
使用Python绘制气泡图 气泡图效果代码 气泡图
气泡图通过气泡的大小表示数据的一个维度,用于展示三个维度的数据。例如,可以展示城市的人口、面积和GDP。
效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mjj27sP7-1720…
阅读更多...
PDF 分割拆分 API 数据接口
PDF 分割拆分 API 数据接口
文件处理,PDF 高效的 PDF 分割工具,高效处理,可永久存储。 1. 产品功能
高效处理大文件;支持多语言字符识别;支持 formdata 格式 PDF 文件流传参;支持设置每个 PDF 文件的页数…
阅读更多...
Docker核心知识手册
Docker核心知识手册 文章目录 Docker核心知识手册1 安装Docker1.1 环境说明1.2 安装1.3 修改配置1.4 启动 2 Docker基础命令2.1 查看Docker相关信息2.2 配置Docker镜像加速 3 Docker镜像相关命令3.1 搜索官方镜像3.2 获取镜像3.3 查看当前主机镜像列表3.4 导出镜像3.5 删除镜像…
阅读更多...
java.time.ZonedDateTime介绍
java.time.ZonedDateTime 是 Java 8 引入的新日期时间 API 的一部分,用于表示带有时区的日期和时间。它结合了日期、时间和时区信息,使得处理跨时区的日期时间变得更加简单和直观。
主要特性 表示日期和时间,并包括时区。提供了一系列方法来操作和格式化日期时间。支持从其…
阅读更多...
三、CoInitialize是以单线程的方式创建com对象是什么意思
CoInitialize函数是COM(Component Object Model)编程中的一个关键API,用于初始化COM库并为当前线程创建一个“公寓”(Apartment)。当提到CoInitialize是以单线程的方式创建COM对象时,这是指它准备当前线程以…
阅读更多...
电脑压缩视频怎么压缩,电脑压缩视频大小
随着科技的进步,我们越来越喜欢用视频记录生活中的点点滴滴。但随之而来的问题就是,视频文件体积庞大,给我们的存储和分享带来了不小的困扰。那么,有没有什么方法能够轻松解决这个问题呢?答案当然是肯定的!…
阅读更多...
SpringSecurity认证逻辑源码分析
SpringSecurity源码分析-认证逻辑
1. Spring-security-core包中的三个重要类
SecurityContext 这个类中就两个方法getAuthentication()和setAuthentication()这个类用来存储Authentication对象 public interface SecurityContext extends Serializable {Authentication getAu…
阅读更多...
element 如何实现文件上传下载导出
上传:
前端:
阅读更多...
如何保证Redis缓存和数据库的数据一致性
前言 如果项目业务处于起步阶段,流量非常小,那无论是读请求还是写请求,直接操作数据库即可,这时架构模型是这样的: 但随着业务量的增长,项目业务请求量越来越大,这时如果每次都从数据库中读数据…
阅读更多...
【Redis】简单了解Redis中常用的命令与数据结构
希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Redis的特点和适用场景三、Redis的数据类型和使用3.1字符串(String&…
阅读更多...
QT界面动画呼吸框实现
#include #include
Q_OBJECT //自定义属性 对应的参数作用为 // 类型 属性名 获取值的函数 设置属函数(其中READ、WRITE为其格式) Q_PROPERTY(int opacity READ opacity WRITE setOpacity) public: int opacity() const; //获取值 void setOpacity(in…
阅读更多...
LabVIEW电容器充放电监测系统
概述
为了对车用超级电容器的特性进行研究,确保其在工作时稳定可靠并有效发挥性能优势,设计了一套车用超级电容器充放电监测系统。该系统通过利用传感器、USB数据采集卡、可调直流稳压电源、电子负载以及信号调理电路,完成对各信号的采集和超…
阅读更多...
企业数字化转型怎么干?
目录
企业数字化转型是什么?
企业数字化转型为什么?
企业数字化转型怎么干? 企业数字化转型是什么?
先看一下案例,华为经历了多次战略转型,它是如何在危机中成长,涅槃重生?
199…
阅读更多...
springboot中通过jwt令牌校验以及前端token请求头进行登录拦截实战
前言
大家从b站大学学习的项目侧重点好像都在基础功能的实现上,反而一个项目最根本的登录拦截请求接口都不会写,怎么拦截?为什么拦截?只知道用户登录时我后端会返回一个token,这个token是怎么生成的,我把它…
阅读更多...
软设之桥接模式
桥接模式的意图是:将抽象部分与它的实现部分分离,使它们都可以独立变化。
比如说汽车是一个抽象的概念,但汽车有不同品牌和型号,这些汽车有不同的驱动方式,比如烧油或者电动。假如用传统的方式,每增加一个…
阅读更多...
底软基础 | 嵌入式程序员编程必看的525钟C/C++ 安全编程问题
《360 安全规则集合》简称《安规集》,是一套详细的 C/C 安全编程指南,由 360 集团质量工程部编著,将编程时需要注意的问题总结成若干规则,可为制定编程规范提供依据,也可为代码审计或相关培训提供指导意见,…
阅读更多...
VBA即用型代码手册:根据预定义的文本条件删除行
我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。
作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建…
阅读更多...
Spring Boot 事件监听机制实战【自定义 Spring Boot 事件监听】
前言:
上一篇我们分析了 Spring Boot 事件监听的原理,本篇我们来自定义实现自己的监听器。
Spring Boot 系列文章传送门
Spring Boot 启动流程源码分析(2)
Spring Boot 启动流程源码分析(2)
Spring Bo…
阅读更多...
LINUX命令行界面常用指令
目录
1. 命令行交互
2. 常用命令
2.1 打开命令行界面
2.2 打印当前目录的绝对路径
2.3 查询文件目录
2.4 了解命令结果 2.5 查看功能命令
2.6 清屏
2.7 切换路径
2.8 创建目录 1. 命令行交互
进入命令行交互界面:CTRLaltF2;
退出命令行交互…
阅读更多...
怎么做好菲律宾TikTok直播带货?
TikTok目前是全球最受欢迎的APP之一,菲律宾TikTok直播已成为品牌出海的新趋势。作为一种新兴的引流渠道,出海电商卖家正通过直播带货模式实现流量变现。 在进行菲律宾TikTok直播时,关键在于能否吸引和留住消费者并促成购买。因此,…
阅读更多...