毫米波雷达测角原理_小七自学笔记

8 篇文章 11 订阅
6 篇文章 0 订阅

毫米波雷达测角原理

角度分辨率

当估算角度分辨率最少需要两个RX天线,利用的是物体相对每个天线的差分距离。

两个接收天线接收的信号的相位差为:

image-20210528145527452

因为image-20210528145627782,所以

image-20210528145655996

当存在多目标时,则接收天线之间的相位差为

image-20210528154809615

因为image-20210528154830280,所以角度分辨率:

image-20210528145744033 image-20210528154911703
DBF数字波束形成

数字波束合成可以等效的理解为让发射波束按照指定方向来发射电磁波,实际操作过程中的数字波束是通过回波信号FFT之后的峰值点在通过一个阵列流来改变波束的指向来实现的。

假设雷达前方有k个反射信号,雷达阵列天线n个阵元组成,阵元数可以等效为通道数,所以n个阵元接收到反射信号之后,分别经过各自的传输通道,所以最终可以得到来自n个通道的反射信号的数据。

image-20210531195859467

假设阵元共有N个,阵元间的间距为d,来来波方向偏离法线角度为θ。来波信号为窄带高频信号,其信号的形式为:

image-20210531195436273

以阵元1为参考,来波信号到达阵元2的时间相对于阵元1的时间超前τ = dsin(θ)/c,以此类推,来波到达阵元N的时间相较阵元1超前(N-1)τ。在窄带条件下,接收到的阵列信号为:

image-20210531195717333

其中

image-20210531195805336

接收到的阵列信号为:

image-20210531200027088

忽略阵元间由于波形差造成的包络差别,即认为an(t) = a(t),n = 1,2,3…N,则有:

image-20210531200134271

接下来进行接收信号的加权处理,加权处理的目的是使天线阵列波束发射到同一个方向上,这个方向为我们所期望的方向

第n个阵元接收到的信号形式为:

image-20210531200928561

各阵元接收到的信号加权矩阵为:

image-20210531200959566

在实际操作中,为FFT的峰值点阵列,需要人为设置。

经过加权处理之后得到的总输出为:

image-20210531201050190

若希望接受波束的指向与法线方向夹角为θ,则应该在y(θ)=θ=θ_ 0时达到最大。其中 ϕ_n为:

image-20210531201445608

此时系统的输出响应为:

image-20210531201521484
clc;
close all;
clear all;
%% 雷达参数定义
fc = 77e9;%雷达载频
fs = 15e6;%采样频率
c = 3e8;%光速
B = 300e6;%信号带宽
Tp = 100e-6;%脉冲宽度
Tr = 108e-6;%脉冲重复周期
N = 256;%脉冲数【也即FFT点数】
N_array = 32;%接收阵元数
K=B/Tp;%调频斜率
Num_PRF=round(fs*Tp);%一个PRF采样点个数
Fr=1/Tr;%PRF
Lambda=c/fc;%波长
array_dis=Lambda/2;%阵元间距
%坐标参数
dis_label=(0:1:Num_PRF-1)*c/2/B;%(不模糊测距区间)【距离门范围】
vel_label=(-N/2:1:N/2-1)/N*Fr*Lambda/2;%(不模糊测速区间)
%% 目标参数
Azimuth_Target=[15]./180*pi;%方位角(目标来波方向)
%% 接收端数字波束合成
d_lamda=0.5;%阵元间距d与波长lamda的关系 一般都是0.5
delta=0.1;%角度间隔
theta=(-90:delta:90)/180*pi;%权向量矩阵w的匹配角度间隔和范围
for i=1:length(theta)
    a(:,i)=exp(1i*2*pi*d_lamda*sin(theta(i))*(0:N_array-1)');%接收信号
end
p=zeros(1,length(theta));%预置空间
w=exp(1i*2*pi*d_lamda*sin(Azimuth_Target)*[0:N_array-1]');%权系数
p=w'*a; %(matlab中的'默认为共轭转置,如果要计算转置为w.'*a)//空域匹配输出
figure();
plot(theta*180/pi,abs(p),'b.-'),grid on;axis tight ;
figure();
plot(theta*180/pi,20*log10(abs(p)/max(abs(p))),'b.-'),grid on;axis tight ;
ylim([-50 0])
  • 32阵列
image-20210531203338152
  • 64阵列
image-20210531203435678

其中,方向图随着阵元个数的增加主波束宽度变窄,分辨率提高

ADBF 自适应数字波束形成技术

其基本思想是依据不同的最优化准则,通过自适应算法,**对各阵元输出加权求和,使阵列的输出对不同空间方向的信号产生不同的响应。**从而使得天线阵列波束指向期望的方法的同时,在干扰方向形成“零点”,即通过空域滤波达到抑制干扰。

自适应波束形成就是对阵列接收信号加权求和,即
y ( t ) = W H X ( t ) y(t) = W^HX(t) y(t)=WHX(t)
对于平稳随机信号,阵列输出信号功率为:
E [ ∣ y ( t ) ∣ 2 ] = W H R x W E[|y(t)|^2] = W^HRxW E[y(t)2]=WHRxW
Rx为阵列协方差,它包含了阵列信号的二阶统计信息。

function[pattern1,pattern0,W] = MMSE(N,M,a_lamda,theta0,thetaj,theta,JNR,Ns)
% 最小均方误差准则
% N 主天线阵元数
% M 辅天线数
% a_lamda 阵元间隔与波长比
% theta0 波束指向
% thetaj 干扰方向
% theta 方向图扫描的角度
% JNR 干燥比
% Ns采样数
nj = length(thetaj);
j = sqrt(-1);
Vs = exp(j*2*pi*a_lamda*(0:(N-1))'*sin(theta *pi /180));
Vs0 = exp(j*2*pi*a_lamda*(0:(N-1))'*sin(theta0 *pi /180));
Vsj = exp(j*2*pi*a_lamda*(0:(N-1))'*sin(thetaj *pi /180));
AJ = 10^(JNR/20)*0.707*(randn(nj,Ns)+j*randn(nj,Ns)); %噪声
noise = 0.707 *(randn(N,Ns)) + j *randn(N,Ns);
Xs = Vsj *AJ + noise; %主天线接受的干扰信号
Xj = Xs(1:M,:); %辅天线接收的干扰信号
D = Vs0'*Xs; %%合成天线
R11 = Xj*Xj'/Ns;
r01 = Xj*D'/Ns;
W = inv(R11)*r01;
pattern1 = abs(Vs0'*Vs - W'*Vs(1:M,:)); %自适应动态方向图
pattern1 = 20*log10(pattern1/max(pattern1));
pattern0 = abs(Vs0'*Vs); % 静态方向图
pattern0 = 20*log10(pattern0/max(pattern0));
plot(theta,pattern0,'r--',theta,pattern1);
grid on ;
xlabel('方位角/\circ');
ylabel('增益/db')

function[pattern1,pattern0,W] = MSNR(N,a_lamda,theta0,thetaj,theta,SNR,JNR,Ns)
% 最大信噪比准则
% N 主天线阵元数
% M 辅天线数
% a_lamda 阵元间隔与波长比
% theta0 波束指向
% thetaj 干扰方向
% theta 方向图扫描的角度
% SNR 信噪比
% JNR 干燥比
% Ns 采样数
nj = length(thetaj);
j = sqrt(-1);
as0 = exp(j*2*pi*a_lamda*[0:N-1]'*sin(theta0*pi/180));
noise = 0.707*(randn(N,Ns)+1i*randn(N,Ns));
amp_j = 10^(JNR/20)*0.707*(randn(nj,Ns)+j*randn(nj,Ns));
aj = exp(j*2*pi*a_lamda*(0:(N-1))'*sin(thetaj *pi /180));
xs = as0 +noise;
xj = aj*amp_j +noise;
Rin = 1/Ns*(xj*xj');
Rs = 1/Ns*(xs*xs');
Rin_inv = inv(Rin);
[A B] = eig(Rs,Rin);
[a b] = max(diag(B));
W = A(:,b);
atheta = exp(j*2*pi*a_lamda*[0:N-1]'*sin(theta*pi/180));
pattern1 = abs(W'*atheta); 
pattern0 = abs(as0'*atheta);
pattern1 = 20*log10(pattern1/max(pattern1));
pattern0 = 20*log10(pattern0/max(pattern0));
plot(theta,pattern0,'r--',theta,pattern1,'b');
function[pattern1,pattern0,W] = LCMV(N,a_lamda,theta0,thetaj,theta,SNR,JNR,Ns)
nj = length(thetaj);
j = sqrt(-1);
as0 = exp(j*2*pi*a_lamda*[0:N-1]'*sin(theta0*pi/180));
noise = 0.707*(randn(N,Ns)+1i*randn(N,Ns));
amp_j = 10^(JNR/20)*0.707*(randn(nj,Ns)+j*randn(nj,Ns));
aj = exp(j*2*pi*a_lamda*(0:(N-1))'*sin(thetaj *pi /180));
xj = aj*amp_j +noise;
Rin = 1/Ns*(xj*xj');
Rin_inv = inv(Rin);
W = Rin_inv*as0;
atheta = exp(j*2*pi*a_lamda*[0:N-1]'*sin(theta*pi/180));
pattern1 = abs(W'*atheta); 
pattern0 = abs(as0'*atheta);
pattern1 = 20*log10(pattern1/max(pattern1));
pattern0 = 20*log10(pattern0/max(pattern0));
plot(theta,pattern0,'r--',theta,pattern1,'b');
  • 1
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小七rrrrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值