宽带波束形成及MATLAB实现

宽带波束形成

宽带波形形成主要分两类,一类是基于频域的宽带波束形成,一类是基于时域的宽带波束形成。

频域宽带波束形成

对于有 M M M个阵元的阵列,将各个阵元接收的原始数据进行分段,可以得到如下结果
x ( n ) = [ x ( n ) ( 1 ) ⋯ x ( n ) ( l ) ⋯ x ( n ) ( L − 1 ) ] = [ x 1 ( n ) ( 0 ) ⋯ x 1 ( n ) ( l ) ⋯ x 1 ( n ) ( L − 1 ) ⋮ ⋯ ⋮ ⋯ ⋮ x m ( n ) ( 0 ) ⋯ x m ( n ) ( l ) ⋯ x m ( n ) ( L − 1 ) ⋮ ⋯ ⋮ ⋯ ⋮ x M ( n ) ( 0 ) ⋯ x M ( n ) ( l ) ⋯ x M ( n ) ( L − 1 ) ] \begin{aligned} & {{x}^{\left( n \right)}}=\left[ \begin{matrix} {{x}^{\left( n \right)}}\left( 1 \right) & \cdots & {{x}^{\left( n \right)}}\left( l \right) & \cdots & {{x}^{\left( n \right)}}\left( L-1 \right) \\ \end{matrix} \right] \\ & =\left[ \begin{matrix} x_{1}^{\left( n \right)}\left( 0 \right) & \cdots & x_{1}^{\left( n \right)}\left( l \right) & \cdots & x_{1}^{\left( n \right)}\left( L-1 \right) \\ \vdots & \cdots & \vdots & \cdots & \vdots \\ x_{m}^{\left( n \right)}\left( 0 \right) & \cdots & x_{m}^{\left( n \right)}\left( l \right) & \cdots & x_{m}^{\left( n \right)}\left( L-1 \right) \\ \vdots & \cdots & \vdots & \cdots & \vdots \\ x_{M}^{\left( n \right)}\left( 0 \right) & \cdots & x_{M}^{\left( n \right)}\left( l \right) & \cdots & x_{M}^{\left( n \right)}\left( L-1 \right) \\ \end{matrix} \right] \end{aligned} x(n)=[x(n)(1)x(n)(l)x(n)(L1)]= x1(n)(0)xm(n)(0)xM(n)(0)x1(n)(l)xm(n)(l)xM(n)(l)x1(n)(L1)xm(n)(L1)xM(n)(L1)
对上述数据进行FFT,按照频域快拍进行波束形成,其波束形成方法可按照窄带波束形成的方法。

在将时域数据变换到频域的过程中,由于有限长度的数据变换到频域上面对应的频谱应该是无限宽的,而进行波束形成的时候只取了有限个子频带,相当于在频域上进行了滤波,同时由于滤波并不是理想滤波,会存在滤波器的建立时间问题,这样就会导致在不同数据块之间获得的波束输出序列与理想的波束输出序列存在畸变,即会出现不连续的输出结果。这也是频域波束形成存在的问题。此外,频域波束形成需要现将阵列接收的数据进行缓存,也就意味着存在着实时性的问题。

时域宽带波束形成

对于有 M M M个阵元的阵列,第 m m m号阵元接收的数据可以表示为
x m ( t ) = s 0 [ t − τ m ( θ 0 ) ] + ∑ k = 1 K s k [ t − τ m ( θ k ) ] + n m ( t ) ,    m = 1 , 2 , ⋯   , M {{x}_{m}}\left( t \right)={{s}_{0}}\left[ t-{{\tau }_{m}}\left( {{\theta }_{0}} \right) \right]+\sum\limits_{k=1}^{K}{{{s}_{k}}\left[ t-{{\tau }_{m}}\left( {{\theta }_{k}} \right) \right]}+{{n}_{m}}\left( t \right),\ \ m=1,2,\cdots ,M xm(t)=s0[tτm(θ0)]+k=1Ksk[tτm(θk)]+nm(t),  m=1,2,,M
其中, { s k ( t ) } k = 0 K \left\{ {{s}_{k}}\left( t \right) \right\}_{k=0}^{K} {sk(t)}k=0K表示 K + 1 K+1 K+1个信号的波形, τ m ( θ k ) {{\tau }_{m}}\left( {{\theta }_{k}} \right) τm(θk)表示第 k k k个信号到第 m m m个阵元的延时, n m ( t ) {{n}_{m}}\left( t \right) nm(t)表示第 m m m个阵元接收到的噪声。
如果波束主瓣方向 θ s {{\theta }_{s}} θs刚好指向期望信号方向 θ s {{\theta }_{s}} θs,那么各个阵元的预延时可以表示为
T m = − τ ( θ 0 ) {{T}_{m}}=-\tau \left( {{\theta }_{0}} \right) Tm=τ(θ0)
其作用在于使期望方向信号到达各个阵元具有相同的相位。在实际中,由于该延时往往不是采样周期的整数倍,所以经常采用模拟预延时,在进行采样得到数字信号,因此第 m m m个阵元的预延时接收数据样本可以表示为
x m ( i ) = x m ( t − T m ) ∣ t = i T s {{x}_{m}}\left( i \right)={{x}_{m}}\left( t-{{T}_{m}} \right){{|}_{t=i{{T}_{s}}}} xm(i)=xm(tTm)t=iTs
各个阵元通过横向的FIR滤波器,设滤波器的长度为 L L L,采样周期为 T s {{T}_{s}} Ts,各个快拍输入数据可以表示为
x m l ( i ) = x m [ i − ( l − 1 ) ] = x m [ t − T m − ( l − 1 ) T s ] ∣ t = i T s      m = 1 , 2 , ⋯   , M , l = 1 , 2 , ⋯   , L {{x}_{ml}}\left( i \right)={{x}_{m}}\left[ i-\left( l-1 \right) \right]={{x}_{m}}\left[ t-{{T}_{m}}-\left( l-1 \right){{T}_{s}} \right]{{|}_{t=i{{T}_{s}}}}\ \ \ \ m=1,2,\cdots ,M,l=1,2,\cdots ,L xml(i)=xm[i(l1)]=xm[tTm(l1)Ts]t=iTs    m=1,2,,M,l=1,2,,L
对所有数据加权求和就可以得到波束输出的时间序列,对于第 m m m号阵元第 l l l个快拍的权值为 h m l {{h}_{ml}} hml,则波束形成输出的时间序列可以表示为
y ( i ) = ∑ m = 1 M ∑ l = 1 L h m l x m [ i − ( l − 1 ) ] = ∑ m = 1 M ∑ l = 1 L h m l x m l ( i ) y\left( i \right)=\sum\limits_{m=1}^{M}{\sum\limits_{l=1}^{L}{{{h}_{ml}}{{x}_{m}}\left[ i-\left( l-1 \right) \right]}=\sum\limits_{m=1}^{M}{\sum\limits_{l=1}^{L}{{{h}_{ml}}{{x}_{ml}}\left( i \right)}}} y(i)=m=1Ml=1Lhmlxm[i(l1)]=m=1Ml=1Lhmlxml(i)
定义
X ( i ) = [ x 11 ( i ) x 12 ( i ) ⋯ x 1 L ( i ) x 21 ( i ) x 22 ( i ) ⋯ x 2 L ( i ) ⋮ ⋮ ⋱ ⋮ x M 1 ( i ) x M 2 ( i ) ⋯ x M L ( i ) ] \mathbf{X}\left( i \right)=\left[ \begin{matrix} {{x}_{11}}\left( i \right) & {{x}_{12}}\left( i \right) & \cdots & {{x}_{1L}}\left( i \right) \\ {{x}_{21}}\left( i \right) & {{x}_{22}}\left( i \right) & \cdots & {{x}_{2L}}\left( i \right) \\ \vdots & \vdots & \ddots & \vdots \\ {{x}_{M1}}\left( i \right) & {{x}_{M2}}\left( i \right) & \cdots & {{x}_{ML}}\left( i \right) \\ \end{matrix} \right] X(i)= x11(i)x21(i)xM1(i)x12(i)x22(i)xM2(i)x1L(i)x2L(i)xML(i)
H = [ h 11 h 12 ⋯ h 1 L h 21 h 22 ⋯ h 2 L ⋮ ⋮ ⋱ ⋮ h M 1 h M 2 ⋯ h M L ] \mathbf{H}=\left[ \begin{matrix} {{h}_{11}} & {{h}_{12}} & \cdots & {{h}_{1L}} \\ {{h}_{21}} & {{h}_{22}} & \cdots & {{h}_{2L}} \\ \vdots & \vdots & \ddots & \vdots \\ {{h}_{M1}} & {{h}_{M2}} & \cdots & {{h}_{ML}} \\ \end{matrix} \right] H= h11h21hM1h12h22hM2h1Lh2LhML
x ( i ) = v e c ( X ( i ) ) \mathbf{x}\left( i \right)=vec\left( \mathbf{X}\left( i \right) \right) x(i)=vec(X(i)) h = v e c ( H ) \mathbf{h}=vec\left( \mathbf{H} \right) h=vec(H)
则波束形成器的输出可以表示为
y ( i ) = h T x ( i ) y\left( i \right)={{\mathbf{h}}^{T}}\mathbf{x}\left( i \right) y(i)=hTx(i)

FIR滤波器设计

长度为 L L L的滤波器的冲激响应为 h = [ h 1 , h 2 , ⋯   , h L ] T \mathbf{h}={{\left[ {{h}_{1}},{{h}_{2}},\cdots ,{{h}_{L}} \right]}^{T}} h=[h1,h2,,hL]T,那么该滤波器的频率响应可以表示为
H ( f ) = ∑ l = 1 L h l e − j 2 π ( l − 1 ) f / f s = e T ( f ) h = h T e ( f ) H\left( f \right)=\sum\limits_{l=1}^{L}{{{h}_{l}}{{e}^{-j2\pi \left( l-1 \right)f/{{f}_{s}}}}}={{\mathbf{e}}^{T}}\left( f \right)\mathbf{h}={{\mathbf{h}}^{T}}\mathbf{e}\left( f \right) H(f)=l=1Lhlej2π(l1)f/fs=eT(f)h=hTe(f)
其中, e ( f ) = [ 1 , e − j 2 π f / f s , ⋯   , e − j 2 π ( L − 1 ) f / f s ] T \mathbf{e}\left( f \right)={{\left[ 1,{{e}^{-j2\pi f/{{f}_{s}}}},\cdots ,{{e}^{-j2\pi \left( L-1 \right)f/{{f}_{s}}}} \right]}^{T}} e(f)=[1,ej2πf/fs,,ej2π(L1)f/fs]T f s {{f}_{s}} fs为采样频率。
可以采用范数约束优化对其进行求解,若采用 l 2 {{l}_{2}} l2范数进行优化,可以表示为
min ⁡ h   ∑ k = 1 K [ λ k ∥ e T ( f k ) h − H d ( f k ) ∥ ] ,      f k ∈ F M L s . t .        ∥ e T ( f k ) h ∥ ≤ ξ 0 ,      f k ∈ F S L \begin{aligned} & \underset{\mathbf{h}}{\mathop{\min }}\,\sum\limits_{k=1}^{K}{\left[ {{\lambda }_{k}}\left\| {{\mathbf{e}}^{T}}\left( {{f}_{k}} \right)\mathbf{h}-{{H}_{d}}\left( {{f}_{k}} \right) \right\| \right]},\ \ \ \ {{f}_{k}}\in {{F}_{ML}} \\ & s.t.\ \ \ \ \ \ \left\| {{\mathbf{e}}^{T}}\left( {{f}_{k}} \right)\mathbf{h} \right\|\le {{\xi }_{0}},\ \ \ \ {{f}_{k}}\in {{F}_{SL}} \\ \end{aligned} hmink=1K[λk eT(fk)hHd(fk) ],    fkFMLs.t.       eT(fk)h ξ0,    fkFSL
其中, H d ( f k ) {{H}_{d}}\left( {{f}_{k}} \right) Hd(fk)表示期望的主瓣响应, ξ 0 {{\xi }_{0}} ξ0表示设置的旁瓣值大小, ζ 0 {{\zeta }_{0}} ζ0通过控制波束加权向量范数,提高稳健性,其值越小越稳健; λ k {{\lambda }_{k}} λk表示误差加权系数,一般取 λ j = 1 {{\lambda }_{j}}\text{=}1 λj=1
时域与空域的对应关系如下:

时域空域
时域滤波空域滤波
FIR滤波器波束形成器
频率响应 H ( f ) H(f) H(f)波束响应 p ( θ ) p(\theta) p(θ)
滤波器系数 h \mathbf{h} h权系数 w \mathbf{w} w
频率响应向量 e ( f ) \mathbf{e}(f) e(f)导向矢量 a ( θ ) \mathbf{a}(\theta) a(θ)
滤波器设计波束形成器设计
谱估计空间谱估计

仿真结果

下面给出一个时域宽带波束形成的具体的仿真结果,仿真参数如下

仿真参数参数值
阵元数目20
期望信号方向 1 0 ∘ 10^\circ 10
中心频率 f 0 = 100 H z f_{0}=100Hz f0=100Hz
采样率 f s = 5 f 0 f_{s}=5f_{0} fs=5f0
滤波器长度 L = 65 L=65 L=65

仿真结果如下:
在这里插入图片描述
从图中可以看出,基于FIR滤波器设计的宽带波束方向图,能够在主瓣方向形成最大增益,在其他方向形成抑制,也达到了波束形成器的功能,但是从图中也可以看出,不同频率对应的波束宽度也不一样。使用切比雪夫加权,可以得到等旁瓣的波束方向图,结果如下:

在这里插入图片描述
这样能更清晰的看出波束方向图的频率偏移性,解决这种问题可以采用凸优化的方法,这里就不再叙述,具体请参考宽带波束形成-----恒定波束宽度设计。三维方向图如下所示:
在这里插入图片描述
代码如下:

clear;
close all;
clc;
warning off;

%% 参数设置
M=20;     %阵元数
f0=100;   %中心频率
c=340;     %速度
lamda=c/f0;    %波长
d=lamda/2;     %阵元间距
theta0=[10];     %期望信号方向
fl=f0/2;             %信号的最低频率
fh=2*f0;            %信号的最高频率
fs=5*f0;             %采样率
N=512;              %信号点数
T=512/fs;           %信号周期
t=(0:N-1)/fs;       %时间轴
s=sin(2*pi*(fl+(fh-fl)/(2*T)*t).*t);      %产生宽带信号源

%% 时域FIR滤波器
L=65;                 %滤波器长度
D=(L-1)/2;          %预延迟
tao=(0:M-1).'*d*sind(theta0(1))/c;         %信号延时
f_delta=(fh-fl)/40;         %频率间隔
fd=(fl:f_delta:fh)./fs;             %归一化频率范围
w_win=chebwin(M,30);  %chebwin加权系数,-30dB

for m=1:M
    %% 期望滤波器的响应
    H(m,:)=w_win(m)/sum(w_win)*exp(-1i*2*pi*fd*(D+round(tao(m)*fs)-tao(m)*fs));     %预延迟与小数延迟后的总延迟求得的期望
    %频率响应
    MB=(fl:f_delta:fh)./fs;                                                                %归一化主瓣范围(工作频带范围)
    SB=[(0:f_delta:fl-8*f_delta)./fs (fh+8*f_delta)/fs:f_delta/fs:0.5];    %归一化旁瓣范围
    e_MB=exp(-1i*2*pi*(0:L-1)'*MB);                 %主瓣频率响应向量
    e_SB=exp(-1i*2*pi*(0:L-1)'*SB);                    %旁瓣频率响应向量
    
    %% 优化求解滤波器系数
    cvx_begin
    variable h(L)
    minimize(norm(e_MB.'*h-H(m,:).'));               %旁瓣频率响应约束的条件下
    subject to                                                    %最小化主瓣频率响应与期望响应的误差
    max(abs(e_SB.'*h))<=10^(-40/20);            %求出的滤波器响应
    cvx_end
    h_get(:,m)=h;
end

%% 波束方向图
theta_range=-90:90;           %扫描角度范围
T = -round(tao*fs + D)/fs;   %时间轴
p_total=[];
for i=1:length(MB)
    for j=1:length(theta_range)
        U=exp(-1i*2*pi*MB(i)*fs*((T+(0:M-1).'*d*sind(theta_range(j))/c)*ones(1,L)+ones(M,1)*(0:L-1)/fs));
        P(i,j)=vec(h_get.').'*vec(U);
    end
    figure(1);
    plot(theta_range,20*log10(abs(P(i,:))),'b','linewidth',1);
    hold on;
    ylim([-100 10]);
    xlabel('\theta(\circ)','fontsize',10);
    ylabel('Beampattern/dB','fontsize',10);
    p_total=[p_total;P(i,:)];
end
%% 三维方向图
figure(2);
[x,y]=meshgrid(theta_range,MB);
surf(x,y,20*log10(abs(p_total)));
xlabel('\theta(\circ)','fontsize',10)
ylabel('Normalized frequency','fontsize',10)
zlabel('Beampattern/dB','fontsize',10)
% colorbar;
zlim([-100 10]);

参考文献:
[1]鄢社锋, 马远良. 传感器阵列波束优化设计及应用[M]. 科学出版社, 2009.
[2]Yan S, Ma Y. A unified framework for designing FIR filters with arbitrary magnitude and phase response[J]. Digital Signal Processing, 2004, 14(6): 510-522.

  • 39
    点赞
  • 252
    收藏
    觉得还不错? 一键收藏
  • 47
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值