目录
- 一、雷达测角原理
- 1.1 测角研究历史和现状
- 1.2 测角方法总结
- 1.3 3DFFT测角
- 1.3.1 基本原理
- 1.2.2 测角性能
- 二、MATLAB仿真案例
- 参考文献
一、雷达测角原理
1.1 测角研究历史和现状
(1)早期采用窄波束对准目标,目标的角度对应于天线的角度读数,这种使得波束中目标回波的信号强度最大的方法并不能满足所需精度要求。
(2)1937 年一种称为波束切换的技术,首次在美军通信兵SCR-268雷达的原型机上得到演示。这种雷达专门为引导防空火力而设计,并且成为首批成功采用波束切换技术将天线对准目标的成品雷达。
(3)搜索照射技术是利用反射体天线在观测空间的俯仰维上产生窄的笔形波束,以机械扫描的方式对准待观测目标方向或者接近观测目标方向,从而确定待观测目标的空间俯仰角。
(4)点头式雷达广泛应用于雷达系统中的俯仰角测量之中,它通过利用雷达天线摆动或“点头”的方法,在俯仰维上使用窄垂直波束宽度的扇状水平波束进行扫描。
(5)相控阵雷达是一种自适应能力很强的雷达探测系统, 其阵元天线利用阵元间信号的相位关系,根据设定的观测角度快速的形成波束指向,同时可以有效的设定波束形状,不需要使用机械扫描方法。
(6)阵列天线的优势在于可以通过调节行馈源输出端的移相器实现俯仰维扫描或控制笔形窄波束。这种方法在 3D 雷达测高技术中应用广泛,能充分利用频带,并使波形和波束位置相互完全独立。
(7)在精密跟踪测量领域中,单脉冲测角技术是一种工程中较为实用的测角技术,它具有方法简单、计算量小的特点, 在雷达角度测量领域得到广泛应用。
(8)堆积波束雷达将同时形成的接收波束在俯仰维上垂直堆积起来,并在方位维机械旋转,以实现目标的检测和三坐标测量。
1.2 测角方法总结
测角方法分为相位法测角和振幅法测角
相位法测角: 通过比较两天线接收信号的相位信息来确定目标角度的方法。
振幅法测角: 利用目标回波的幅度来定向并利用幅度鉴别器确定目标角度的方法。振幅法测角可以分为最大信号法和等信号法两种。
对于毫米波雷达,通常采用波达方向估计(Direction of Arrival,DOA)进行测角,这类方法利用多个阵列接收的回波信号之间存在的相位变化关系进行计算,包括
F
F
T
FFT
FFT 、
D
B
F
DBF
DBF 以及超分辨测角方法。
1.3 3DFFT测角
以一维均匀线阵为例,X波段甚至频率更高的毫米波雷达,其接收阵元的间距为厘米级,对于几米外的目标可视为远场目标,该目标到达各个阵元的回波均相互平行。回波到达相邻两个阵元之间的相位差相同,如图1所示。
对于 LFMCW 雷达的多个接收阵元,做空间
F
F
T
FFT
FFT 运算可求得目标反射波在不同天线阵列的相位变化规律,因此可以计算出目标的角度信息。
1.3.1 基本原理
如图1所示,设该雷达系统的天线为1发8收的均匀线阵,接收阵元的间距为
d
d
d,
d
=
λ
/
2
d=λ/2
d=λ/2,
λ
为波长
λ为波长
λ为波长,目标相对于天线法线方向的夹角为
θ
θ
θ,则相邻阵元之间接收信号的波程差为
d
s
i
n
θ
dsinθ
dsinθ,由此得到对应的相位差为:
w
=
2
π
d
s
i
n
θ
λ
(
1
−
1
)
w=\frac{2πdsinθ}{λ} (1-1)
w=λ2πdsinθ(1−1)
式(1-1)描述了相邻接收阵元的相位差与目标角度的关系,即通过测量出相邻阵元之间的相位差来间接解算出目标相对雷达的角度。
图1 一维均匀线阵信号接收示意图
对所有接收阵元的回波信号进行
N
f
f
t
N_{fft}
Nfft 点
F
F
T
FFT
FFT 处理,设获取峰值对应的下标为
k
k
k ,
k
∈
[
−
N
f
f
t
/
2
,
N
f
f
t
/
2
−
1
]
k∈[-N_{fft}/2,N_{fft}/2-1]
k∈[−Nfft/2,Nfft/2−1],则根据
F
F
T
FFT
FFT 频谱分析的原理可知
w
=
2
π
k
N
f
f
t
w=\frac{2πk}{N_{fft}}
w=Nfft2πk,得到
w
w
w 后,并根据式(1-1)可计算得到目标角度信息:
θ
=
a
r
c
s
i
n
(
w
λ
2
π
d
)
=
a
r
c
s
i
n
(
k
λ
N
f
f
t
d
)
=
a
r
c
s
i
n
(
2
k
N
f
f
t
)
(
1
−
2
)
θ=arcsin(\frac{wλ}{2πd})=arcsin(\frac{kλ}{N_{fft}d})=arcsin(\frac{2k}{N_{fft}})(1-2)
θ=arcsin(2πdwλ)=arcsin(Nfftdkλ)=arcsin(Nfft2k)(1−2)
由式(1-2)知,使用
F
F
T
FFT
FFT 的方法来进行DOA估计时,采用更多的
F
F
T
FFT
FFT 点数有利于提高角度计算精度。
1.2.2 测角性能
(1)测量精度
根据式(1-1)可知,相位差
w
w
w 与目标角度
θ
θ
θ 是一种非线性的关系。如图2所示,
s
i
n
θ
sinθ
sinθ 随着
θ
θ
θ 的增大而逐渐缓慢变化,即该曲线的斜率减小。因此,当
θ
θ
θ 为0°时,相位差
w
w
w 对目标角度
θ
θ
θ 的变化最敏感,此时角度测量的精度最高,
w
w
w 对目标角度
θ
θ
θ 的灵敏度会随着
θ
θ
θ 的增加而降低,直到
θ
θ
θ 为90°时,相位差
w
=
0
w=0
w=0,测角精度大大降低。
图2 正弦曲线示意图
(2)最大不模糊角度
雷达的最大视场角由估计的最大到达角(Angle of Arrival,AOA)决定。当相位差
w
>
0
w>0
w>0 时,目标在雷达的左侧;当相位差
w
<
0
w<0
w<0 时,目标在雷达的由侧;但当相位差
w
>
π
w>π
w>π 时,就无法确定目标在雷达的哪一侧,这便产生了角度模糊。因此为了测角无模糊,需要满足以下条件:
w
=
2
π
d
s
i
n
θ
λ
<
π
,即
θ
=
a
r
c
s
i
n
(
λ
2
d
)
(
1
−
3
)
w=\frac{2πdsinθ}{λ}<π,即θ=arcsin(\frac{λ}{2d})(1-3)
w=λ2πdsinθ<π,即θ=arcsin(2dλ)(1−3)
因此,对于间距为
d
d
d 的两个阵元可提供的最大不模糊角度为
θ
m
a
x
=
a
r
c
s
i
n
(
λ
2
d
)
θ_{max}=arcsin(\frac{λ}{2d})
θmax=arcsin(2dλ) ,当阵元间距满足
d
=
λ
/
2
d=λ/2
d=λ/2 时,
θ
m
a
x
=
±
90
°
θ_{max}=±90°
θmax=±90°。
(3)角度分辨率
角度分辨率反映了雷达对角度相近目标的分辨能力,在3DFFT的计算中则表现为两个目标频谱的峰值相靠近直至成一个单峰。
如下图所示,随着到达角的增加,雷达对目标的角度分辨力下降。
对于两个目标,其分辨率的计算方法推导如下:
Δ
ω
=
2
π
d
λ
(
s
i
n
(
θ
+
Δ
θ
)
−
s
i
n
(
θ
)
)
≈
2
π
d
λ
c
o
s
(
θ
)
Δ
θ
(
1
−
4
)
Δω =\frac {2πd}{λ}(sin(θ + Δθ) − sin (θ)) ≈ \frac{2πd}{λ}cos(θ) Δθ(1-4)
Δω=λ2πd(sin(θ+Δθ)−sin(θ))≈λ2πdcos(θ)Δθ(1−4)
式(4-1)利用了导数的概念:
s
i
n
(
θ
+
Δ
θ
)
−
s
i
n
(
θ
)
Δ
θ
=
c
o
s
(
θ
)
\frac{sin(θ + Δθ) − sin (θ)}{Δθ}=cos(θ)
Δθsin(θ+Δθ)−sin(θ)=cos(θ)
又因为,
Δ
ω
>
2
π
N
(
1
−
5
)
又因为,Δω >\frac{2π}{N}(1-5)
又因为,Δω>N2π(1−5)
由式(1-4)和式(1-5),可以得到:
2
π
d
λ
c
o
s
(
θ
)
Δ
θ
>
2
π
N
⇒
Δ
θ
>
λ
N
d
c
o
s
(
θ
)
\frac{2πd}{λ}cos(θ) Δθ >\frac{2π}{N} ⇒ Δθ >\frac{λ}{Ndcos(θ)}
λ2πdcos(θ)Δθ>N2π⇒Δθ>Ndcos(θ)λ
因此,角度分辨率
θ
r
e
s
=
λ
N
d
c
o
s
(
θ
)
θ_{res}=\frac{λ}{Ndcos(θ)}
θres=Ndcos(θ)λ
通常认为
d
=
λ
/
2
,
θ
=
0
d=λ/2,θ=0
d=λ/2,θ=0,所以最终的角度分辨率为:
θ
r
e
s
=
2
N
θ_{res}=\frac{2}{N}
θres=N2
二、MATLAB仿真案例
有关测角的代码(不完整)如下:
1)该程序首先建立1发8收的雷达系统模型,对目标回波进行处理,得到8个通道的距离-多普勒二维数据;
2)其次,对8个通道的距离-多普勒二维数据进行通道间的非相干积累,进而分别在多普勒维和距离维进行不同类型的CFAR检测,得到目标的距离维、速度维下标;
3)最后,提取目标在8个通道的距离维、速度维下标的对应数据,进行空间FFT,获取目标的角度维下标;
4)最终计算出目标的距离、速度和角度等信息,与仿真设置的目标参数保持一致。
clc;
clear;
close all;
%% 雷达系统仿真模型
setParameter(); % 设置雷达系统参数
cancel_On = 0; % 对消开启或者关闭
chioce = 1; % 选择均值类CFAR器的类型
global para;
% 设置目标参数
set_TarInfo.tarNum = 5;
set_TarInfo.tar_R0 = [500,1000,1500,2000,2500]; % 目标距离
set_TarInfo.tar_V0 = [5,1,-8,-1,8]; % 目标速度
set_TarInfo.tar_Ag = [-20,-10,0,10,20]; % 目标角度
set_TarInfo.Rcs = [0.1,1,5,1,5]; % 目标rcs
set_TarInfo.SNR = 10; % 信噪比
% 雷达发射和接收信号模型
para.Tx_Num = 1; % 发射阵元数目
para.Rx_Num = 8; % 接收阵元数目
rawData = RadarSigModel_MultiCh(set_TarInfo);
figure(101);plot(abs(rawData(:,1,1)));
xlabel('采样点');ylabel('幅度/mV');title('ADC输入信号');
%% 雷达信号处理
global NumADC;
global NumChirp;
fs = para.fs;
u = para.u;
PRT = para.PRT;
c = para.c;
B = para.B;
Lambda = para.Lambda;
Rx_Num = para.Rx_Num;
Nfft1 = 2^ceil(log2(NumADC)); % 距离维FFT点数
Nfft2 = 2^ceil(log2(NumChirp)); % 速度维FFT点数
Nfft3 = 64; % 通道间FFT点数
R_point = (fs/Nfft1)*c/(2*u); % 距离点精度
delta_R = c/(2*B); % 距离分辨率
V_point = Lambda/(2*PRT*Nfft2); % 速度点精度
delta_V = Lambda/(2*PRT*NumChirp); % 速度分辨率
Ag_point = 2/Nfft3*180/pi;
delta_Ag = 2/Rx_Num*180/pi; % 角度分辨率为delta_Ag=Lambda/(N*d),单位rad。其中N为阵元数目,d为阵元间距,所以要转换为角度
win1 = hamming(NumADC); % 加汉明窗
fft_Data = zeros(Nfft1,NumChirp);
fft2D_Data = zeros(Nfft1,Nfft2,Rx_Num);
cfarData_In = 0;
for Ch_Num = 1:Rx_Num
% 距离维FFT
for ii = 1:NumChirp
fft_Data(:,ii) = fft(rawData(:,ii,Ch_Num).*win1,Nfft1);
end
if cancel_On == 1
% 二次对消
H_coef = [1,-1]; % 对消器系数
Cancel_Data = Cancellation(fft_Data,H_coef);
else
Cancel_Data = fft_Data;
end
% 速度维FFT
fft_tempData = MTD(Cancel_Data);
fft2D_Data(:,:,Ch_Num) = fft_tempData;
% 通道间的非相干积累
cfarData_In = cfarData_In+abs(fft_tempData);
end
figure(201);
for Ch_Num = 1:Rx_Num
subplot(2,4,Ch_Num);
mesh(mag2db(abs(fft2D_Data(:,:,Ch_Num))));
xlabel('速度维');ylabel('距离维');zlabel('信号功率(dB)');title(['通道',num2str(Ch_Num),'-MTD']);
view([0 90]);
end
figure(301);
mesh(mag2db(cfarData_In));
xlabel('速度维');ylabel('距离维');zlabel('信号功率(dB)');title('各通道积累结果');
view([0 90]);
% 计算平均底噪
noiseData = calcu_Noise(cfarData_In);
% 目标CFAR检测
global sensitive;
global P_fa;
global referWin;
global guradWin;
global os_ReferWin;
global os_GuardWin;
sensitive = 1; % 灵敏度
P_fa = 1e-6; % 虚警概率
referWin = 8; % 参考窗大小
guradWin = 5; % 保护窗大小
os_ReferWin = 8; % os-cfar参考窗
os_GuardWin = 3; % os-cfar保护窗
global CA_MaxNum;
CA_MaxNum = 128; % 速度维CFAR最大检测目标数
% 速度维CFAR
T_start = tic;
cfarData = ML_CFAR(cfarData_In,chioce);
count1_Time = toc(T_start);
disp(['速度维CFAR用时t1=',num2str(count1_Time),'s']);
figure(401);
mesh(cfarData);xlabel('速度维');ylabel('距离维');title('CA-CFAR');
view([0 90]);
% 距离维CFAR
T_start = tic;
Os_cfarOut = OS_CFAR(cfarData_In,cfarData);
count2_Time = toc(T_start);
disp(['速度维CFAR用时t2=',num2str(count2_Time),'s']);
figure(402);
mesh(Os_cfarOut);xlabel('速度维');ylabel('距离维');title('OS-CFAR');
view([0 90]);
% 获取目标位置等参数
global get_TarInfo;
[Rpos,Vpos] = find(Os_cfarOut==1);
[Rpos,I] = sort(Rpos); % 按距离从近到远排序
Vpos = Vpos(I);
TarNum = length(Rpos);
TargetA = zeros(1,TarNum);
fft3D_Data = zeros(TarNum,Nfft3); % 用于获取fft测角数据
win3 = hamming(Rx_Num);
for num = 1:TarNum
Data_temp = zeros(1,Rx_Num);
for Ch_Num = 1:Rx_Num
Data_temp(Ch_Num) = fft2D_Data(Rpos(num),Vpos(num),Ch_Num);
end
deltaPha = mean(phase(Data_temp(2:end)./Data_temp(1:end-1))); % 求相邻两通道见的相位差,再取平均
TargetA(num) = -asind(deltaPha/pi); % 公式法计算目标角度
fft3D_Data(num,:) = abs(fft(Data_temp.*win3',Nfft3)); % 获取3DFFT后取模值
% 计算目标角度所在下标
[~,Ag_Pos] = max(fft3D_Data(num,:));
% 获取目标测量结果
get_TarInfo.Range(num) = (Rpos(num)-1)*R_point;
if Vpos(num)<=(NumChirp/2)
get_TarInfo.Velocity(num) = (Vpos(num)-1)*V_point;
else
get_TarInfo.Velocity(num) = -(NumChirp-Vpos(num))*V_point;
end
if Ag_Pos<=(Nfft3/2)
get_TarInfo.Azimu(num) = -(Ag_Pos-1)*Ag_point;
else
get_TarInfo.Azimu(num) = (Nfft3-Ag_Pos)*Ag_point;
end
get_TarInfo.Energy(num) = db(cfarData_In(Rpos(num),Vpos(num))); % 获取目标峰值能量
get_TarInfo.SNR(num) = get_TarInfo.Energy(num) - noiseData;
disp(['目标',num2str(num),':距离R=',num2str(get_TarInfo.Range(num)),',速度V=',num2str(get_TarInfo.Velocity(num)),',角度A=',num2str(get_TarInfo.Azimu(num))]);
disp(['能量:',num2str(get_TarInfo.Energy(num)),',信噪比:',num2str(get_TarInfo.SNR(num))]);
end
get_TarInfo.TarNum = TarNum;
计算结果如下:
目标1:距离R=500.63,速度V=4.977,角度A=-19.6954
能量:79.9525,信噪比:61.125
目标2:距离R=1001.26,速度V=1.0247,角度A=-10.743
能量:76.3724,信噪比:57.5449
目标3:距离R=1496.6202,速度V=-7.9047,角度A=0
能量:75.7472,信噪比:56.9197
目标4:距离R=1997.2501,速度V=-0.95149,角度A=8.9525
能量:51.3515,信噪比:32.524
目标5:距离R=2503.1499,速度V=7.9779,角度A=17.9049
能量:57.9947,信噪比:39.1672
参考文献
[1] Introduction to mmwave Sensing:FMCW Radars.
[2] 许成洋. 相控阵LFMCW雷达信号处理方法及实现[D].西安电子科技大学,2021.
[3] 王成海. 雷达测角方法研究[D].西安电子科技大学,2014.
[4] 雷达测角原理、测角精度、测角分辨率以及3DFFT角度估计算法汇总