阵列信号处理(一)常规波束形成算法
1、问题描述
\qquad 阵列信号处理在雷达、声呐、无线通信、医学成像、地质勘探、射电天文学等多种领域具有广泛的应用。波束形成是阵列信号处理的一个重要的任务。常规波束形成算法(Conventional Beamforming, CBF)又称为时延求和(Delay And Sum, DAS)波束形成,其对各阵元数据通过简单的延迟求和以达到空间滤波的效果,具有最好的稳健性。
2、窄带时域快拍模型
\qquad
考虑单平面波输入的情况,假设在参考点接收的窄带信号
s
(
t
)
=
s
ˉ
(
t
)
e
j
ω
t
s(t) = \bar{s}(t)e^{j\omega t}
s(t)=sˉ(t)ejωt其中,
s
ˉ
(
t
)
\bar{s}(t)
sˉ(t) 为接收信号的复包络,
ω
\omega
ω 为载波角频率。在第
m
m
m 个阵元接收的窄带信号表示为
s
m
(
t
)
=
s
ˉ
m
(
t
)
e
j
ω
t
s_m(t) = \bar{s}_m(t)e^{j\omega t}
sm(t)=sˉm(t)ejωt显然,第
m
m
m 个阵元接收信号
s
m
(
t
)
s_m(t)
sm(t) 是参考点信号
s
(
t
)
s(t)
s(t) 经过时间
τ
m
\tau_m
τm 延迟得到的。因此,
s
m
(
t
)
=
s
(
t
−
τ
m
)
=
s
ˉ
(
t
−
τ
m
)
e
j
ω
(
t
−
τ
m
)
s_m(t) = s(t-\tau_m) = \bar{s}(t-\tau_m)e^{j\omega (t-\tau_m)}
sm(t)=s(t−τm)=sˉ(t−τm)ejω(t−τm)在窄带假设条件下,有
s
ˉ
(
t
−
τ
m
)
≈
s
ˉ
(
t
)
\bar{s}(t-\tau_m) \approx \bar{s}(t)
sˉ(t−τm)≈sˉ(t)则
s
m
(
t
)
=
s
ˉ
(
t
)
e
j
ω
(
t
−
τ
m
)
=
s
(
t
)
e
−
j
ω
τ
m
s_m(t) = \bar{s}(t)e^{j\omega (t-\tau_m)} = s(t)e^{-j\omega \tau_m}
sm(t)=sˉ(t)ejω(t−τm)=s(t)e−jωτm
\qquad
对于标准均匀线阵,时延
τ
m
\tau_m
τm 可表示为
τ
m
=
m
d
s
i
n
(
θ
)
c
,
m
=
0
,
1
,
⋯
,
M
\tau_m = \frac{mdsin(\theta)}{c},m=0,1,\cdots,M
τm=cmdsin(θ),m=0,1,⋯,M其中,
M
M
M 为阵元个数,
d
d
d 为阵元间距,
θ
\theta
θ 为入射角度,
c
c
c 为信号传播速度。此时,第
m
m
m 个阵元接收信号
s
m
(
t
)
s_m(t)
sm(t) 可表示为
s
m
(
t
)
=
s
(
t
)
e
−
j
ω
m
d
s
i
n
(
θ
)
c
=
s
(
t
)
e
−
j
2
π
f
m
d
s
i
n
(
θ
)
c
s_m(t) = s(t)e^{-j\omega \frac{mdsin(\theta)}{c}} = s(t)e^{-j2\pi f \frac{mdsin(\theta)}{c}}
sm(t)=s(t)e−jωcmdsin(θ)=s(t)e−j2πfcmdsin(θ)其中,
f
f
f 为载波频率(
ω
=
2
π
f
\omega = 2\pi f
ω=2πf)。
\qquad
将所有
M
M
M 个阵元在
t
t
t 时刻接收的信号排列成一个列矢量,
x
(
t
)
=
s
(
t
)
[
1
,
e
−
j
2
π
f
d
s
i
n
(
θ
)
c
,
⋯
,
e
−
j
2
π
f
(
M
−
1
)
d
s
i
n
(
θ
)
c
]
T
+
n
(
t
)
=
s
(
t
)
a
(
θ
)
+
n
(
t
)
\mathbf{x}(t) = s(t)[1, e^{-j2\pi f \frac{dsin(\theta)}{c}}, \cdots, e^{-j2\pi f \frac{(M-1)dsin(\theta)}{c}}]^{T} + \mathbf{n}(t) = s(t)\mathbf{a}(\theta)+ \mathbf{n}(t)
x(t)=s(t)[1,e−j2πfcdsin(θ),⋯,e−j2πfc(M−1)dsin(θ)]T+n(t)=s(t)a(θ)+n(t)其中,
a
(
θ
)
a(\theta)
a(θ) 称为阵列流形向量,
n
(
t
)
=
[
n
1
(
t
)
,
⋯
,
n
M
(
t
)
]
T
\mathbf{n}(t)=[n_1(t),\cdots,n_M(t)]^T
n(t)=[n1(t),⋯,nM(t)]T 为基阵接收的
M
×
1
M\times 1
M×1 维的噪声向量。
\qquad
对上式进行采样获得时域快拍模型,即
x
(
n
)
=
s
(
n
)
a
(
θ
)
+
n
(
n
)
,
n
=
1
,
⋯
,
N
\mathbf{x}(n) = s(n)\mathbf{a}(\theta)+ \mathbf{n}(n),n=1,\cdots,N
x(n)=s(n)a(θ)+n(n),n=1,⋯,N式中,
N
N
N 为数据快拍长度。
3、算法描述
\qquad
波束形成一般指的是对基阵各阵元采集数据进行线性时不变滤波再求和,得到波束输出。在窄带情况下,可以采用一个复数加权代替线性时不变滤波。对窄带快拍数据进行加权求和,得到波束形成器得输出快拍为
y
(
n
)
=
w
H
x
(
n
)
y(n) = \mathbf{w}^{H}\mathbf{x}(n)
y(n)=wHx(n)其中,
w
=
[
w
1
,
w
2
,
⋯
,
w
M
]
T
∈
C
M
\mathbf{w} = [w_1,w_2,\cdots,w_M]^T\in\mathbb{C}^M
w=[w1,w2,⋯,wM]T∈CM。常规波束形成算法的加权向量为
w
=
a
(
θ
)
/
M
\mathbf{w} = \mathbf{a}(\theta)/M
w=a(θ)/M
\qquad
下面再介绍两个性能指标,分别是波束响应和方位谱。波束响应指的是波束形成器对某方位单位功率平面波信号的响应,其只与加权向量有关,而与该方向是否存在信号无关。其定义如下:
p
(
θ
)
=
w
H
a
(
θ
)
,
θ
∈
Θ
p(\theta) = \mathbf{w}^Ha(\theta), \theta \in \Theta
p(θ)=wHa(θ),θ∈Θ其中,
Θ
\Theta
Θ 为所有可能的信号到达方位的集合。对于标准均匀线阵,
Θ
=
[
−
9
0
∘
,
9
0
∘
]
\Theta = [-90^{\circ}, 90^{\circ}]
Θ=[−90∘,90∘]。
\qquad
根据波束响应能量相对于方位的函数,即
20
lg
∣
p
(
θ
)
∣
20\text{lg}|p(\theta)|
20lg∣p(θ)∣,便可得到波束形成器的指向性图,也称为波束图。波束图反映的是基阵对不同方位到达信号响应情况,可以用来评估其他方向干扰与噪声对感兴趣方向信号产生的影响大小。
\qquad
方位谱也称为波束扫描方位谱,指的是波束观察方向扫描得到的波束输出功率相对于方位的函数。其定义为
P
(
θ
)
=
w
H
(
θ
)
R
x
w
(
θ
)
,
θ
∈
Θ
P(\theta) = \mathbf{w}^H(\theta)\mathbf{R}_x\mathbf{w}(\theta), \theta \in \Theta
P(θ)=wH(θ)Rxw(θ),θ∈Θ其中,
R
x
\mathbf{R}_x
Rx 为数据协方差矩阵。在实际中,协方差矩阵是未知的,可以由一段数据快拍样本的空间相关矩阵来估计,即
R
x
=
1
N
∑
n
=
1
N
[
x
(
n
)
x
H
(
n
)
]
\mathbf{R}_x=\frac{1}{N}\sum_{n=1}^{N}[\mathbf{x}(n)\mathbf{x}^H(n)]
Rx=N1n=1∑N[x(n)xH(n)]其中,
N
N
N 为数据快拍长度。
\qquad
根据方位谱可以绘制方位谱图,一般对方位谱取对数,即
10
lg
∣
P
(
θ
)
∣
10\text{lg}|P(\theta)|
10lg∣P(θ)∣。方位谱图可以作为信号到达方位的估计值,体现的是某一信号源对其他方位输出功率的影响。
4、仿真结果
\qquad
假设一个均匀线阵有 256 个阵元,阵元间距为 0.5 m。取 6000 个快拍长度,源信号信号从
1
0
∘
10^{\circ}
10∘ 方向入射基阵,信号传播速度为1500 m/s,频率为 500 HZ。利用常规波束形成算法可以得到下列波束图和方位谱图。
5、matlab 代码
clc
clear all
close all
simpleFrequency = 6e3;
t = 1/simpleFrequency:1/simpleFrequency:1;
snapNums = 6e3;
expectAngle = [10];
arrayNums = 256;
frequency = 500;
speed = 1500;
arraySpace = 0.5;
steeringVector = exp(-1i*2*pi*frequency*arraySpace*(0:arrayNums-1)'*sind(expectAngle)/speed);
Signal = exp(1j*2*pi*frequency*t);
snapData = steeringVector*Signal;
noise = 1/sqrt(2)*(randn(arrayNums, snapNums) + 1j*randn(arrayNums, snapNums));
snapData = snapData + noise;
R = snapData*snapData'./snapNums;
theta = [-90:1:90];
steerMatrix = exp(-1j*2*pi*arraySpace*frequency/speed*(0:arrayNums-1)'*sind(theta));
% 绘制CBF波束响应
beamResponse = steeringVector'*steerMatrix./arrayNums;
figure(1)
plot(theta,20*log10(abs(beamResponse)),'k')
title('波束图')
xlabel('角度/degree')
ylabel('波束/dB')
xlim([-90 90])
xticks([-90 -60 -30 0 30 60 90])
grid on
% 绘制CBF空间谱
Pcbf = zeros(1,length(theta));
for ii = 1:length(theta)
Pcbf(ii) = steerMatrix(:,ii)'*R*steerMatrix(:,ii)/(arrayNums*arrayNums);
end
figure(2)
plot(theta,20*log10(abs(Pcbf)),'k')
title('方位谱图')
xlabel('角度/degree')
ylabel('方位谱/dB')
xlim([-90 90])
xticks([-90 -60 -30 0 30 60 90])
grid on
参考资料
[1] 鄢社锋,马远良.传感器阵列波束优化设计及应用[M].科学出版社,2009.