波束宽度
窄带波束形成器的3dB波束宽度(半功率波束宽度)为
B
W
3
d
B
≈
0.886
λ
M
d
=
0.886
c
M
d
f
\text{B}{{\text{W}}_{3dB}}\approx \frac{0.886\lambda }{Md}\text{=}\frac{0.886c}{Mdf}
BW3dB≈Md0.886λ=Mdf0.886c
其中,
M
M
M为阵元数,
d
d
d为阵元间距。
但是对于宽带波束形成来说,每个子带对应的频率不一样,导致波束宽度不一致,即频率越高,波束宽度越窄,这就是宽带波束形成器频率偏移性。
下面给出一个简单的仿真结果,其仿真参数为
仿真参数 | 参数值 |
---|---|
阵元数目 | 10 |
期望信号方向 | 0 ∘ 0^\circ 0∘ |
中心频率 | f 0 = 1000 H z f_{0}=1000Hz f0=1000Hz |
采样率 | f s = 10 f 0 f_{s}=10f_{0} fs=10f0 |
从图中可以看出,随着频率的增加波束的宽度在变窄,这也与上述分析一致。其三维方向图为
只有当信号从主瓣方向入射时,才能保证信号通过波束形成器后,输出的频谱保持不变;当信号从其他方向入射时,信号的频谱就会发生畸变,类似于低通滤波。所以就要求宽带波束形成器在阵列整个视场中的响应相对于频率保持恒定,这就需要设计出具有恒定波束宽度的宽带波束形成器。
恒定波束宽度设计
一般来说,设计恒定波束宽度的波束形成器都需要设计到优化的问题,具体来说,可以分为以下步骤:
1、将频带划分为
K
K
K个子带,子带对应的中心频率为
f
k
∈
[
f
l
,
f
u
]
{{f}_{k}}\in \left[ {{f}_{l}},{{f}_{u}} \right]
fk∈[fl,fu], 其中
f
l
{{f}_{l}}
fl和
f
u
{{f}_{u}}
fu表示频率的上下界
2、构造期望波束响应
p
d
(
θ
)
{{p}_{d}}\left( \theta \right)
pd(θ),期望波束响应的选择可以是根据某一频率对应的常规波束响应,当然该频率可以不是
K
K
K个子带的频率;也可以选择根据某种优化准则设计的波束响应。
3、对于每个子带,采用范数约束的方法设计加权系数,使得得到的波束响应
p
d
(
f
k
,
θ
)
{{p}_{d}}\left( {{f}_{k}},\theta \right)
pd(fk,θ)与期望波束响应
p
d
(
θ
)
{{p}_{d}}\left( \theta \right)
pd(θ)的误差最小,基于该准则设计出的各个子带的波束形成器具有恒定波束宽度的主瓣响应。
4、根据各个子带的加权向量,可以得到宽带波束形成后的结果。
旁瓣控制主瓣最小误差准则
采用设计波束响应与期望波束响应的均方误差进行度量,旁瓣控制主瓣最小误差逼近的波束优化可以表示为
min
w
∑
j
=
1
N
M
L
[
λ
j
∣
w
H
a
(
θ
j
)
−
p
d
(
θ
j
)
∣
2
]
θ
j
∈
Θ
M
L
,
j
=
1
,
2
,
⋯
,
N
M
L
s
.
t
.
∣
w
H
a
(
θ
i
)
∣
≤
ξ
0
i
,
θ
i
∈
Θ
S
L
,
i
=
1
,
2
,
⋯
,
N
S
L
∥
w
∥
≤
ζ
0
w
H
a
0
=
1
\begin{aligned} & \underset{\mathbf{w}}{\mathop{\min }}\,\ \ \ \sum\limits_{j=1}^{{{N}_{ML}}}{\left[ {{\lambda }_{j}}{{\left| {{\mathbf{w}}^{H}}\mathbf{a}\left( {{\theta }_{j}} \right)-{{p}_{d}}\left( {{\theta }_{j}} \right) \right|}^{2}} \right]}\ \ \ \ \ \ {{\theta }_{j}}\in {{\Theta }_{ML}},\ \ \ j=1,2,\cdots ,{{N}_{ML}} \\ & s.t.\ \ \ \ \ \left| {{\mathbf{w}}^{H}}\mathbf{a}\left( {{\theta }_{i}} \right) \right|\le {{\xi }_{0i}},\ \ \ \ {{\theta }_{i}}\in {{\Theta }_{SL}},\ \ i=1,2,\cdots ,{{N}_{SL}} \\ & \ \ \ \ \ \ \ \ \ \left\| \mathbf{w} \right\|\le {{\zeta }_{0}} \\ & \ \ \ \ \ \ \ \ \ {{\mathbf{w}}^{H}}{{\mathbf{a}}_{0}}\text{=}1 \\ \end{aligned}
wmin j=1∑NML[λj∣∣wHa(θj)−pd(θj)∣∣2] θj∈ΘML, j=1,2,⋯,NMLs.t. ∣∣wHa(θi)∣∣≤ξ0i, θi∈ΘSL, i=1,2,⋯,NSL ∥w∥≤ζ0 wHa0=1
其中,
p
d
(
θ
j
)
{{p}_{d}}\left( {{\theta }_{j}} \right)
pd(θj)表示期望的主瓣响应,
ξ
0
i
{{\xi }_{0i}}
ξ0i表示设置的旁瓣值大小,
ζ
0
≥
1
/
M
{{\zeta }_{0}}\ge 1/M
ζ0≥1/M通过控制波束加权向量范数,提高稳健性,其值越小越稳健;
λ
j
{{\lambda }_{j}}
λj表示误差加权系数,一般取
λ
j
=
1
{{\lambda }_{j}}\text{=}1
λj=1。
从上式中可以看出,设计的波束响应在主瓣内以最小均方误差逼近期望信号波束,同时采用了混合范数代替单一范数设计,使得其具有更好的效果。
当然还可以采用主瓣精度约束最低旁瓣等准则,这里就不再介绍。
仿真结果
相同仿真参数下,可以得到如下结果
可以看出,经过优化后的方向图,具有恒定的波束宽度,也与上面的分析一致,其三维方向图如下:
具有恒定波束宽度宽度的波束形成器能够让从主扇面区域入射的信号,在工作频带范围内的频谱不发生畸变,具有更好的实际应用效果。
代码如下:
clear
clc
close all;
warning off;
c = 340; %声音速度
Fs = 1e4; %采样率
theta0 = 0; %期望信号角度
f_range = [700:100:1300]; %频率变化范围
f0 = 1000; %中心频率
M = 10; %阵元数
dd= (0:1:M-1) * (c/f0/2); %阵元位置
p_all=[];
for nf =1 :length(f_range)
freq = f_range(nf);
a0 = exp(-1i * 2 * pi * freq /c *dd.'*sind(theta0)); %计算期望导向矢量
step = 1;
scan_angle = [-90:step:90]; %扫描角度范围
a_all =[];
for i_1 = 1:length(scan_angle)
as = exp(-1i * 2 * pi * freq /c *dd.'*sind(scan_angle(i_1)));
a_all= [a_all as];
end
p = 20*log10(abs(a_all'*a0)/max(abs(a_all'*a0))); %计算方向图
if freq == f0
angle_ml = -12:1:12;
angle_sl1 = [-90:1:-12];
angle_sl2 = [12:1:90];
angle_sl =[angle_sl1 angle_sl2];
a_all_ref = a_all;
p_ref = p;
index_ml = find(scan_angle>=angle_ml(1) & scan_angle<=angle_ml(end));
a_ml = a_all(:,index_ml);%主瓣导向向量
p_ml = p(index_ml); %主瓣期望响应
index_s1 = find(scan_angle>=angle_sl1(1) & scan_angle<=angle_sl1(end));
a_sl1 = a_all(:,index_s1); %旁瓣导向矢量
index_s2 = find(scan_angle>=angle_sl2(1) & scan_angle<=angle_sl2(end));
a_sl2 = a_all(:,index_s2); %旁瓣导向矢量
index_sl = [index_s1 index_s2];
a_sl = [a_sl1 a_sl2]; %总的旁瓣导向向量
p_sl = p(index_sl); %旁瓣的响应
end
figure(1)
plot(scan_angle , p,'-.','linewidth', 3)
hold on; grid on;
ylim([-90 0]);xlim([-90 90]);
xlabel('角度/\circ','fontsize',14);
ylabel('波束响应/dB','fontsize',14);
p_all = [p_all p];
end
legend({num2str(f_range(1)),num2str(f_range(2)),num2str(f_range(3)),...
num2str(f_range(4)),num2str(f_range(5)),num2str(f_range(6)),...
num2str(f_range(7))},'fontsize',14,'Location','best')
figure(2)
[ff,sacn_angle]=meshgrid(f_range,scan_angle);
p_all(p_all<-90) = -90;
surf(sacn_angle,ff,p_all);
set(gca,'view',[135 45])
zlim([-90 0]);
xlim([-90 90]);
xlabel('角度/\circ','fontsize',14);
ylabel('频率/Hz','fontsize',14);
zlabel('波束响应/dB','fontsize',14);
p_all_opt=[];
for nf =1 :length(f_range)
freq = f_range(nf);
a0 = exp(-1i * 2 * pi * freq /c *dd.'*sind(theta0)); %计算期望导向矢量
step = 1;
scan_angle = [-90:step:90]; %扫描角度范围
a_all =[];
for i_1 = 1:length(scan_angle)
as = exp(-1i * 2 * pi * freq /c *dd.'*sind(scan_angle(i_1)));
a_all= [a_all as];
end
p = 20*log10(abs(a_all'*a0)/max(abs(a_all'*a0))); %计算方向图
%% 旁瓣控制主瓣最小误差
max_sl = -10; %%%
max_sl=10.^(max_sl/20);
p_ml = 10.^(p_ml/20); %%%期望主瓣响应
cvx_begin quiet
variable w_msl(M) complex
p_temp=(w_msl' * a_all); %所有的乘积
p_temp_ml=p_temp(index_ml); %选出对应的主瓣
p_temp_ml=p_temp_ml(:);
p_ml=p_ml(:); %期望主瓣响应
p_temp_sl=p_temp(index_sl); %选出对应的旁瓣
minimize(norm(p_temp_ml-p_ml,2)) %最小化2范数
subject to
abs(p_temp_sl) <= max_sl;
w_msl'*a0 == 1;
norm(w_msl,2) <=M;
cvx_end
p_opt = 20*log10(abs(w_msl' * a_all)/max(abs(w_msl' * a_all)));
%% 绘图
figure(3)
plot(scan_angle, p_opt,'-.','linewidth', 3);
grid on; hold on;
ylim([-60 0]); xlim([-90 90])
xlabel('角度/^o','fontsize',14);
ylabel('波束响应/dB','fontsize',14);
p_all_opt = [p_all_opt p_opt.'];
end
legend({num2str(f_range(1)),num2str(f_range(2)),num2str(f_range(3)),...
num2str(f_range(4)),num2str(f_range(5)),num2str(f_range(6)),...
num2str(f_range(7))},'fontsize',14,'Location','best')
figure
[sacn_angle,ff]=meshgrid(f_range,scan_angle);
p_all_opt(p_all_opt<-90) = -90;
surf(ff,sacn_angle,p_all_opt);
set(gca,'view',[135 45])
zlim([-60 0])
xlim([-90 90])
xlabel('角度/^o','fontsize',14)
ylabel('频率/Hz','fontsize',14)
zlabel('波束响应/dB','fontsize',14)
参考文献:
[1]鄢社锋, 马远良. 传感器阵列波束优化设计及应用[M]. 科学出版社, 2009.