宽带波束形成-----恒定波束宽度设计

波束宽度

窄带波束形成器的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} BW3dBMd0.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=1NML[λjwHa(θ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 ζ01/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.

评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值