传统的单脉冲测向方法主要有3种,分别是半阵法、加权法和和差比幅法。其实这3种方法都需要形成和波束和差波束,只是波束形成的方法不同,进一步来说,就是和波束、差波束的权值计算的方法不同。有关半阵法的原理及仿真可以参考博文链接: 单脉冲测角-半阵法。在了解单脉冲测向之前,首先要知道普通波束形成,普通波束形成就是设计一组权值,使得对各个阵元接收到的信号进行加权求和之后,形成一种空间滤波,选择性的接收期望方向的信号而抑制其他方向的信号。在实际情况中,前端处理得到的波束指向角 φ 0 \varphi_0 φ0不一定等于 φ s \varphi_s φs,但真实角度一般出于波束的3dB带宽以内。因此我们就需要一种方法在已知确知波束指向角的情况下测量期望信号的真实方向。单脉冲测角就是用于解决该问题。通常情况下,单脉冲测角需要在阵列的输出端分别形成和波束和差波束,其中和波束要求在波束指向处形成主瓣增益,而差波束则要求在波束指向处形成零陷。然后利用单脉冲比即和差比估计出期望信号方向与波束指向间的插值 Δ φ \Delta_\varphi Δφ。
半阵法和加权法最大的局限性在于,它们都需要依赖于阵列的特殊结构。半阵法要求阵列排布具有对称性,加权法只能用于规则阵列,这两种方法都不具有普适性,不同阵列的权向量的表达式形式可能会大相径庭。
下面介绍和差比幅法的原理。
对于均匀线阵,俯仰角 φ \varphi φ的定义域通常为 φ ∈ ( − 9 0 ∘ , 9 0 ∘ ) \varphi \in (-90^{\circ},90^{\circ}) φ∈(−90∘,90∘)。设阵列参考点为 ο \omicron ο,即左起第一个阵元。由几何关系我们可以知道,第 m m m个阵元相对于参考点的波程差为 ( m − 1 ) d s i n φ (m-1)d\rm{sin}\varphi (m−1)dsinφ,因此我们可以得到第 m m m个阵元相对于参考点的时延 τ m \tau_m τm。
τ m = ( m − 1 ) d s i n φ c \tau_m=\frac{(m-1)d\rm{sin}\varphi}{c} τm=c(m−1)dsinφ
利用上式,均匀线阵的导向矢量可以表示为:
a ( φ ) = [ 1 , e j 2 π d s i n φ λ , . . . , e j 2 π ( M − 1 ) d s i n φ λ ] T \bm{a}(\varphi)=[1,e^{j\frac{2\pi d\rm{sin}\varphi}{\lambda}},...,e^{j\frac{2\pi (M-1)d\rm{sin}\varphi}{\lambda}}]^{T} a(φ)=[1,ejλ2πdsinφ,...,ejλ2π(M−1)dsinφ]T
在均匀线性阵中,要求相邻阵元间距 d ≤ λ / 2 d\leq \lambda/2 d≤λ/2,否则会造成相位混叠,进而影响单脉冲测角。
由导向矢量,可以得到来波方向为 φ \varphi φ的信号 s ( t ) s(t) s(t)的阵列输出为:
y = a ( φ ) s ( t ) y=\bm{a}(\varphi)s(t) y=a(φ)s(t)
这里采用常见的均匀线性阵为例来解析和差比幅侧向的一般过程。如上图所示,首先考虑一个 M M M阵元的均匀线性阵,阵元间距为半波长 1 / 2 λ 1/2\lambda 1/2λ,阵列波束指向为 φ 0 \varphi_0 φ0。我们首先构造一个和波束,和波束要求波束指向处形成主瓣增益,因此我们取波束指向 φ 0 \varphi_0 φ0处的导向向量为和波束权,即
w Σ = a ( φ 0 ) w_{\Sigma}=a(\varphi_0) wΣ=a(φ0)
和波束得到的信息可以用于测距。差波束要求在波束指向处形成零陷,这里采用的方法是:首先以波束指向 φ 0 \varphi_0 φ0为中心,关于 φ 0 \varphi_0 φ0分别取两个角度 φ l \varphi_l φl和 φ r \varphi_r φr,这两个角度的选取也是有讲究的,不能够太大,一般情况下,我们选择和波束主瓣的3dB截止角度作为 φ l \varphi_l φl和 φ r \varphi_r φr的值。假设3dB主瓣宽度为 θ m b s \theta_{mbs} θmbs,则:
φ l = φ 0 − 1 2 θ m b s , φ r = φ 0 + 1 2 θ m b s \varphi_l=\varphi_0-\frac{1}{2}\theta_{mbs},\varphi_r=\varphi_0+\frac{1}{2}\theta_{mbs} φl=φ0−21θmbs,φr=φ0+21θmbs
3dB主瓣宽度为 θ m b s \theta_{mbs} θmbs的计算公式为:
θ m b s = = 50.7 λ N d c o s φ 0 ( ∘ ) \theta_{mbs}==\frac{50.7\lambda }{ Ndcos\varphi_0}(^\circ) θmbs==Ndcosφ050.7λ(∘)
具体的计算过程可以参考博文波束形成中的主瓣宽度 。
差波束构造为两个波束的差:
Δ ( φ ) = ∣ a H ( φ l ) a ( φ ) ∣ − ∣ a H ( φ r ) a ( φ ) ∣ \Delta(\varphi)=\left| a^H(\varphi_l)a(\varphi) \right|-\left| a^H(\varphi_r)a(\varphi) \right| Δ(φ)= aH(φl)a(φ) − aH(φr)a(φ)
同理,比幅法也需要将和波束处理为幅度值,即
Σ ( φ ) = ∣ w Σ H a ( φ ) ∣ \Sigma(\varphi)=\left| w^H_{\Sigma}a(\varphi)\right| Σ(φ)= wΣHa(φ)
因此,可以得到和差波束比幅法的单脉冲比MRC为:
M R C = Δ ( φ ) Σ ( φ ) = ∣ a H ( φ l ) a ( φ ) ∣ − ∣ a H ( φ r ) a ( φ ) ∣ ∣ w Σ H a ( φ ) ∣ MRC=\frac{\Delta(\varphi)}{\Sigma(\varphi)}=\frac{\left| a^H(\varphi_l)a(\varphi) \right|-\left| a^H(\varphi_r)a(\varphi) \right|}{\left| w^H_{\Sigma}a(\varphi)\right|} MRC=Σ(φ)Δ(φ)= wΣHa(φ) aH(φl)a(φ) − aH(φr)a(φ)
比幅测向顾名思义,就是以差波束和和波束的幅度比作为单脉冲比,实际上利用了左右波束的对称性,而不局限于阵列本身几何结构的特殊性,因此可以用于共形阵。但是该方法容易受到波束特性的影响,比如阵列的主瓣过宽时,可能会导致测向结果较差。
纸上得来终觉浅,绝知此事要躬行。光看懂还不行,自己动手做一些仿真,才能真正的掌握其原理。
考虑一个8阵元结构的均匀线性阵,阵元间距为半波长,波束指向为0°,可以计算得主波束宽度为 θ m b s = 12.68 ° \theta_{mbs}=12.68° θmbs=12.68°,我们暂且取 φ l = − 5 ° \varphi_l=-5° φl=−5°和 φ r = 5 ° \varphi_r=5° φr=5°,左右两个波束的角度差可以小一点,后面的分析将会看到,这个角度越小,和差比和角度的线性度越高。
下图是绘制的和差波束
可以看到,与半阵法类似,比幅法和波束在期望方向形成了主瓣增益,而差波束在期望方向形成零陷。下面我们绘制单脉冲比MRC曲线。
比幅法的单脉冲比MRC不存在一个显式子表达式,因此只能通过曲线拟合处斜率,然后在单脉冲测向系统种用于测向。在一些文献中看到有人说可以通过查表得方法,我个人觉得也是可行的,首先我们仿真出来大量的点,例如上图中,不同的角度对应不同的比值,取得点越多,角度分辨率越高,得到的表格也越大。实际测角的时候,获取和差波束下信号的幅度,然后计算两者的比值,拿到这个比值后去表格中查找。实际计算除的比值一定是一个浮点数,通过四舍五入的方法取一定的位数,找到表格中相同的值。曲线拟合的话,可以得到一条类似于 y = k x + b y=kx+b y=kx+b的一次函数,将和差比值代进去得到角度。
matlab仿真代码如下:
% 单脉冲测角-和差比幅法仿真
% Author:huasir 2023.11.16 @Beijing
clear all;close all;clc;
N = 8; %阵元数
theta = (-90:0.1:90); %观测角度范围
theta0 = 0; %波形形成的方向
thetaL = -5; %用于构造差波束的波束1
thetaR = 5; %用于构造差波束的波束2
theta0 = theta0*pi/180; %弧度换算为角度
theta = theta*pi/180; %弧度换算为角度
thetaL = thetaL*pi/180; %弧度换算为角度
thetaR = thetaR*pi/180; %弧度换算为角度
d_lembda = 1/2; %阵元间距比波长,一般采用半波长
%% 构造和差波束
a = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta)); %导向矢量
wSigma = exp(j*2*pi*d_lembda*(0:N-1)'*sin(theta0)); %和波束权向量
wDeltaL = exp(j*2*pi*d_lembda*(0:N-1)'*sin(thetaL)); %用于构造差波束的波束1的权向量
wDeltaR = exp(j*2*pi*d_lembda*(0:N-1)'*sin(thetaR)); %用于构造差波束的波束2的权向量
ySigma = abs(wSigma'*a); %和波束
yDelta = abs(wDeltaL'*a)-abs(wDeltaR'*a); %差波束
figure;
plot(theta*180/pi,20*log10(ySigma/max(ySigma)),'linewidth',1); %绘制和波束
hold on;
plot(theta*180/pi,20*log10(yDelta/max(yDelta)),'linewidth',1); %绘制差波束
legend('和波束','差波束');
xlabel('方位角/°');ylabel('归一化功率方向图/dB');
axis tight;% axistight 使得图形框图靠近数据
grid on; %添加栅格线
ylim([-30, 0]); % 为了限制y值范围,使得图像显示的更加合理
title(sprintf('阵元数:%d,波束方向:%.0f°',N,theta0))%添加图题
%% 提取主瓣区域附近的和差波束,并计算单脉冲比
m1 = (-5-(-90))/0.1+1; %截取主瓣内部分区域对应的下标
m2 = (5-(-90))/0.1+1; %截取主瓣内部分区域对应的下标
MRC = yDelta(m1:m2)./ySigma(m1:m2); %%计算单脉冲比
%% 绘制单脉冲比曲线
figure;
plot((-5:0.1:5),MRC,'linewidth',1);
set(gca,'XTick',[-5:1:5]); %设置要显示的坐标轴的刻度
xlabel('角度(°)');ylabel('和差比幅');
axis tight;% axistight 使得图形框图靠近数据
grid on; %添加栅格线
title('和差波束图');