宽带波束形成

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

频域宽带波束形成

对于有MMM个阵元的阵列,将各个阵元接收的原始数据进行分段,可以得到如下结果
x(n)=[x(n)(1)⋯x(n)(l)⋯x(n)(L−1)]=[x1(n)(0)⋯x1(n)(l)⋯x1(n)(L−1)⋮⋯⋮⋯⋮xm(n)(0)⋯xm(n)(l)⋯xm(n)(L−1)⋮⋯⋮⋯⋮xM(n)(0)⋯xM(n)(l)⋯xM(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)(L−1)​]=⎣⎡​x1(n)​(0)⋮xm(n)​(0)⋮xM(n)​(0)​⋯⋯⋯⋯⋯​x1(n)​(l)⋮xm(n)​(l)⋮xM(n)​(l)​⋯⋯⋯⋯⋯​x1(n)​(L−1)⋮xm(n)​(L−1)⋮xM(n)​(L−1)​⎦⎤​​
对上述数据进行FFT,按照频域快拍进行波束形成,其波束形成方法可按照窄带波束形成的方法。

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

时域宽带波束形成

对于有MMM个阵元的阵列,第mmm号阵元接收的数据可以表示为
xm(t)=s0[t−τm(θ0)]+∑k=1Ksk[t−τm(θk)]+nm(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 ,Mxm​(t)=s0​[t−τm​(θ0​)]+k=1∑K​sk​[t−τm​(θk​)]+nm​(t),  m=1,2,⋯,M
其中,{sk(t)}k=0K\left\{ {{s}_{k}}\left( t \right) \right\}_{k=0}^{K}{sk​(t)}k=0K​表示K+1K+1K+1个信号的波形,τm(θk){{\tau }_{m}}\left( {{\theta }_{k}} \right)τm​(θk​)表示第kkk个信号到第mmm个阵元的延时,nm(t){{n}_{m}}\left( t \right)nm​(t)表示第mmm个阵元接收到的噪声。
如果波束主瓣方向θs{{\theta }_{s}}θs​刚好指向期望信号方向θs{{\theta }_{s}}θs​,那么各个阵元的预延时可以表示为
Tm=−τ(θ0){{T}_{m}}=-\tau \left( {{\theta }_{0}} \right)Tm​=−τ(θ0​)
其作用在于使期望方向信号到达各个阵元具有相同的相位。在实际中,由于该延时往往不是采样周期的整数倍,所以经常采用模拟预延时,在进行采样得到数字信号,因此第mmm个阵元的预延时接收数据样本可以表示为
xm(i)=xm(t−Tm)∣t=iTs{{x}_{m}}\left( i \right)={{x}_{m}}\left( t-{{T}_{m}} \right){{|}_{t=i{{T}_{s}}}}xm​(i)=xm​(t−Tm​)∣t=iTs​​
各个阵元通过横向的FIR滤波器,设滤波器的长度为LLL,采样周期为Ts{{T}_{s}}Ts​,各个快拍输入数据可以表示为
xml(i)=xm[i−(l−1)]=xm[t−Tm−(l−1)Ts]∣t=iTsm=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 ,Lxml​(i)=xm​[i−(l−1)]=xm​[t−Tm​−(l−1)Ts​]∣t=iTs​​    m=1,2,⋯,M,l=1,2,⋯,L
对所有数据加权求和就可以得到波束输出的时间序列,对于第mmm号阵元第lll个快拍的权值为hml{{h}_{ml}}hml​,则波束形成输出的时间序列可以表示为
y(i)=∑m=1M∑l=1Lhmlxm[i−(l−1)]=∑m=1M∑l=1Lhmlxml(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=1∑M​l=1∑L​hml​xm​[i−(l−1)]=m=1∑M​l=1∑L​hml​xml​(i)
定义
X(i)=[x11(i)x12(i)⋯x1L(i)x21(i)x22(i)⋯x2L(i)⋮⋮⋱⋮xM1(i)xM2(i)⋯xML(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=[h11h12⋯h1Lh21h22⋯h2L⋮⋮⋱⋮hM1hM2⋯hML]\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=⎣⎡​h11​h21​⋮hM1​​h12​h22​⋮hM2​​⋯⋯⋱⋯​h1L​h2L​⋮hML​​⎦⎤​
令 x(i)=vec(X(i))\mathbf{x}\left( i \right)=vec\left( \mathbf{X}\left( i \right) \right)x(i)=vec(X(i)), h=vec(H)\mathbf{h}=vec\left( \mathbf{H} \right)h=vec(H)
则波束形成器的输出可以表示为
y(i)=hTx(i)y\left( i \right)={{\mathbf{h}}^{T}}\mathbf{x}\left( i \right)y(i)=hTx(i)

FIR滤波器设计

长度为LLL的滤波器的冲激响应为h=[h1,h2,⋯,hL]T\mathbf{h}={{\left[ {{h}_{1}},{{h}_{2}},\cdots ,{{h}_{L}} \right]}^{T}}h=[h1​,h2​,⋯,hL​]T,那么该滤波器的频率响应可以表示为
H(f)=∑l=1Lhle−j2π(l−1)f/fs=eT(f)h=hTe(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=1∑L​hl​e−j2π(l−1)f/fs​=eT(f)h=hTe(f)
其中,e(f)=[1,e−j2πf/fs,⋯,e−j2π(L−1)f/fs]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,e−j2πf/fs​,⋯,e−j2π(L−1)f/fs​]T,fs{{f}_{s}}fs​为采样频率。
可以采用范数约束优化对其进行求解,若采用l2{{l}_{2}}l2​范数进行优化,可以表示为
min⁡h∑k=1K[λk∥eT(fk)h−Hd(fk)∥],fk∈FMLs.t.∥eT(fk)h∥≤ξ0,fk∈FSL\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} ​hmin​k=1∑K​[λk​∥∥​eT(fk​)h−Hd​(fk​)∥∥​],    fk​∈FML​s.t.      ∥∥​eT(fk​)h∥∥​≤ξ0​,    fk​∈FSL​​
其中,Hd(fk){{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
期望信号方向 10∘10^\circ10∘
中心频率 f0=100Hzf_{0}=100Hzf0​=100Hz
采样率 fs=5f0f_{s}=5f_{0}fs​=5f0​
滤波器长度 L=65L=65L=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加权系数,-30dBfor 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_beginvariable h(L)minimize(norm(e_MB.'*h-H(m,:).'));               %旁瓣频率响应约束的条件下subject to                                                    %最小化主瓣频率响应与期望响应的误差max(abs(e_SB.'*h))<=10^(-40/20);            %求出的滤波器响应cvx_endh_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);endfigure(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.

宽带波束形成及MATLAB实现相关推荐

  1. 宽带波束形成 恒定束宽波束形成 学习笔记

        ​​​​​​​ 其他可参见宽带波束形成及MATLAB实现_YHCANDOU的博客-CSDN博客_宽带波束形成宽带波束形成-----恒定波束宽度设计_YHCANDOU的博客-CSDN博客_宽带波 ...

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

    波束宽度 窄带波束形成器的3dB波束宽度(半功率波束宽度)为 BW3dB≈0.886λMd=0.886cMdf\text{B}{{\text{W}}_{3dB}}\approx \frac{0.886 ...

  3. 自适应波束形成(一)——窄带波束形成和宽带波束形成

    在许多波束形成应用中,我们经常需要根据接收到的阵列数据来更新波束形成器系数,以获得不同情境下的最优解决方案.若环境是变化的,系数也要自适应变化,这就是自适应波束形成器. 运用波束形成技术,利用麦克风阵 ...

  4. 波束形成,通过matlab仿真不同参数的波束形成以及旁絆级

    目录 1.算法概述 2.仿真效果预览 3.核心MATLAB代码预览 4.完整MATLAB程序 1.算法概述 波束成形技术(Beam Forming,BF)可分为自适应波束成形.固定波束和切换波束成形技 ...

  5. 延时求和波束形成的MATLAB仿真

    仿真结果如下: 核心代码如下: %------延时求和波束形成------- close all; clear all; clc; %%%%%%基阵的有关参数 c=1500;             ...

  6. 【WSN通信】基于注水算法实现宽带无线通信资源分配附matlab代码

    1 简介 功率分配技术能有效提高认知网络传输链路的信道容量,而注水算法利用凸优化的思想能实现功率分配最优化.针对认知网络中使用注水算法分配信道功率时未考虑邻近认知信道干扰的情况,对认知网络中邻近认知信 ...

  7. 阵列信号处理之常规波束形成基础+matlab仿真(二)

    DOA估计的三种常见方法:CBF.MVDR(CAPON).MUSIC 统计阵列处理理论:入射波包含了期望信号.干扰信号和噪声,它们中的部分或者全部都可以看成空时随机过程的样本函数.利用信号.噪声和干扰 ...

  8. 大规模MIMO通信系统的发射端采用混合波束成形附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  9. 自适应波束形成(三)——频域宽带LCMV波束形成器

    为了将窄带波束形成扩展至宽带,可以使用频域LCMV波束形成器.首先将麦克风阵列各阵元接收到的信号进行时延补偿,做DFT变换到频域,然后在频域内划分子频带,在每个子频带内运用窄带LCVM算法,最后将得到 ...

  10. 频域波束形成matlab,SONAR_code 波束形成技术,包括相移 ,频域 matlab代码,以及相关实验的ppt 263万源代码下载- www.pudn.com...

    文件名称: SONAR_code下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 25848 KB 上传时间: 2015-05-03 下载次数: 21 提 供 ...

最新文章

  1. 链接SQL Server服务器
  2. golang基本数据类型转换
  3. Shovels Shop
  4. IEnumerable接口
  5. 查询数据库中所有表名称
  6. 2011年国外最受欢迎的15个音乐网站
  7. 思科和华为交换机常用命令对比学习
  8. vs 2017 配置 boost 库
  9. 排列组合、伯努利试验
  10. 运行代码到一半不动了
  11. 我的前端“先行”之路
  12. java 判断是不是昨天、今天、明天
  13. 破解百度云限速下载教程
  14. 66W真的比60W充电更快吗?基于Charge pump Charger的快充方案分析
  15. UI设计中按钮如何设计,常见的按钮设计类型
  16. 计算机连接打印机用户数量修改,使用注册表修改对打印机进行设置的方法
  17. 淘系电商再无对手,腾讯为何“资敌”?
  18. echarts y轴数据如果太大就会造成坐标轴显示不完全的问题
  19. INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)的解决
  20. webp转换工具cwebp

热门文章

  1. 【pytest之allure测试报告使用】
  2. Excel模板与Word模板【java】
  3. Mac 软件汉化教程(一)
  4. 数据库设计的基本规范和原则
  5. 【产品人卫朋】华为IPD流程体系:集成产品开发框架
  6. SGD和带momentum的SGD算法
  7. MT4跟单系统如何查询交易品种的合约规格?
  8. 大数据开发离线计算框架知识点总结
  9. Oracle 数据脱敏
  10. 企业级多用户发卡平台源码 源码完全开源 无任何加密