阵列信号DOA估计系列(二).导向矢量与空间FFT

阵列信号DOA估计系列(二).导向矢量

在DOA估计里面,经常会看到导向矢量这个名词,也有的地方叫方向矢量方向矩阵,基本上都是array steering vector 的翻译。

本文首先对均匀线阵(ULA,uniform linear array)的导向矢量做一个推导说明,然后介绍一个最基本的DOA估计方法——空间FFT。

1.导向矢量

在上一篇文章中( 阵列信号DOA估计系列(一).概述.),已经对空间相位差做出了详细说明,下面在空间相位差的基础上,引出均匀线阵的导向矢量

依然来看这样一个阵列:在一条直线上,均匀排布着 M M M 个阵元
在这里插入图片描述假设远场信号为 s ( t ) s(t) s(t),阵列以第一个阵元(上图编号为0)为参考,则整个阵列接收到的信号为 x ( n ) = [ s ( t ) , s ( t ) e − j 2 π f 0 d s i n ( θ ) c , s ( t ) e − j 2 π f 0 2 d s i n ( θ ) c , s ( t ) e − j 2 π f 0 3 d s i n ( θ ) c , ⋯   , s ( t ) e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] \mathbf{x}(n) = [s(t),s(t)e^{-j2\pi f_0\frac{dsin(\theta)}{c}},s(t)e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},s(t)e^{-j2\pi f_0\frac{3dsin(\theta)}{c}},\cdots,s(t)e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}] x(n)=[s(t),s(t)ej2πf0cdsin(θ),s(t)ej2πf0c2dsin(θ),s(t)ej2πf0c3dsin(θ),,s(t)ej2πf0c(M1)dsin(θ)]稍作变形,即可得到 x ( n ) = [ 1 , e − j 2 π f 0 d s i n ( θ ) c , e − j 2 π f 0 2 d s i n ( θ ) c , e − j 2 π f 0 3 d s i n ( θ ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] s ( n ) \mathbf{x}(n) = [1,e^{-j2\pi f_0\frac{dsin(\theta)}{c}},e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},e^{-j2\pi f_0\frac{3dsin(\theta)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}]s(n) x(n)=[1,ej2πf0cdsin(θ),ej2πf0c2dsin(θ),ej2πf0c3dsin(θ),,ej2πf0c(M1)dsin(θ)]s(n)
可以看到,接收到的信号向量 x ( n ) \mathbf{x}(n) x(n)是一个向量 [ 1 , e − j 2 π f 0 d s i n ( θ ) c , e − j 2 π f 0 2 d s i n ( θ ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] [1,e^{-j2\pi f_0\frac{dsin(\theta)}{c}},e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}] [1,ej2πf0cdsin(θ),ej2πf0c2dsin(θ),,ej2πf0c(M1)dsin(θ)] 乘以一个标量 s ( n ) s(n) s(n),且此向量是信号来波方向 θ \theta θ 的函数。

做如下定义: a ( θ ) ≜ [ 1 , e − j 2 π f 0 d s i n ( θ ) c , e − j 2 π f 0 2 d s i n ( θ ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] \mathbf{a(\theta)}\triangleq[1,e^{-j2\pi f_0\frac{dsin(\theta)}{c}},e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}] a(θ)[1,ej2πf0cdsin(θ),ej2πf0c2dsin(θ),,ej2πf0c(M1)dsin(θ)]
于是,接收到的信号可以表示为 x ( n ) = a ( θ ) s ( n ) \mathbf{x}(n) = \mathbf{a(\theta)}s(n) x(n)=a(θ)s(n)可见,向量 a ( θ ) \mathbf{a(\theta)} a(θ)阵列信号DOA估计系列(一).概述 所述空间相位查全部包含在内,即包含了信号 s ( n ) s(n) s(n) 的角度信息。这就是我们常说的导向矢量

这里,可以看到以下几点信息:

  1. 导向矢量的本质是描述空间相位差的;
  2. 导向矢量的结构,和阵元之间的相对位置有关系。上面所写的导向矢量是Vandermonde结构,这是ULA的特点。对于其他几何形状的阵列,导向矢量的结构将会有所不同;
  3. 导向矢量的值,是来波方向的函数,若方向 θ \theta θ 不同,则导向矢量的值会有所不同;
  4. 对于同一方向(如 30 ° 30\degree 30°),若选取的参考点不同,那么导向矢量的值也会不同。但是阵元之间的相对相位查不会变化。
    图中,当信号方向如图所示时,若选取第一个阵元为参考点,导向矢量为 a ( θ ) = [ 1 , e − j 2 π f 0 d s i n ( θ ) c , e − j 2 π f 0 2 d s i n ( θ ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] \mathbf{a(\theta)}=[1,e^{-j2\pi f_0\frac{dsin(\theta)}{c}},e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}] a(θ)=[1,ej2πf0cdsin(θ),ej2πf0c2dsin(θ),,ej2πf0c(M1)dsin(θ)]若选取最后一个阵元为参考点时,导向矢量为 a ( θ ) = [ e j 2 π f 0 ( M − 1 ) d s i n ( θ ) c , e j 2 π f 0 ( M − 2 ) d s i n ( θ ) c , ⋯   , e j 2 π f 0 2 d s i n ( θ ) c , e j π f 0 2 d s i n ( θ ) c , 1 ] \mathbf{a(\theta)}=[e^{j2\pi f_0\frac{(M-1)dsin(\theta)}{c}},e^{j2\pi f_0\frac{(M-2)dsin(\theta)}{c}},\cdots,e^{j2\pi f_0\frac{2dsin(\theta)}{c}},e^{j\pi f_0\frac{2dsin(\theta)}{c}},1] a(θ)=[ej2πf0c(M1)dsin(θ),ej2πf0c(M2)dsin(θ),,ej2πf0c2dsin(θ),ef0c2dsin(θ),1]要理解其中的差别,首先要抓住导向矢量的本质:描述空间相位差

2.接收信号的矩阵表示

为方便描述,后面的文章中,均以第一个阵元为参考,并把导向矢量和接收信号写为列向量
同时,为帮助读者理解,本节的向量和矩阵均标注了维数

当有一个信号 s ( n ) s(n) s(n) θ \theta θ 方向入射到阵列时,接收信号可以表述为
x ( n ) M × 1 = a ( θ ) M × 1 s ( n ) \mathbf{x}(n) _{_{M\times 1}}= \mathbf{a(\theta)_{_{M\times 1}}}s(n) x(n)M×1=a(θ)M×1s(n)

当有 N N N 个信号 s 1 ( n ) , s 2 ( n ) , ⋯   , s N ( n ) s_{_1}(n),s_{_2}(n),\cdots,s_{_N}(n) s1(n),s2(n),,sN(n) 分别从 θ 1 , θ 2 , ⋯   , θ N \theta_1,\theta_2,\cdots,\theta_N θ1,θ2,,θN 入射到阵列时,按照叠加的思维,收信号可以表述为
x ( n ) M × 1 = a ( θ 1 ) s 1 ( n ) + a ( θ 2 ) s 2 ( n ) + ⋯ + a ( θ N ) s N ( n ) \mathbf{x}(n)_{_{M\times 1}} = \mathbf{a(\theta_1)}s_{_1}(n)+ \mathbf{a(\theta_2)}s_{_2}(n)+\cdots+ \mathbf{a(\theta_N)}s_{_N}(n) x(n)M×1=a(θ1)s1(n)+a(θ2)s2(n)++a(θN)sN(n)利用小学二年级学过的矩阵知识:),可以整理为 x ( n ) M × 1 = [ a ( θ 1 ) , a ( θ 2 ) , ⋯   , a ( θ N ) ] M × N × [ s 1 ( n ) , s 2 ( n ) , ⋯   , s N ( n ) ] 1 × N T ≜ A M × N s N × 1 \mathbf{x}(n) _{_{M\times 1}}= [\mathbf{a(\theta_1)},\mathbf{a(\theta_2)},\cdots,\mathbf{a(\theta_N)}]_{_{M\times N}}\times [s_{_1}(n), s_{_2}(n),\cdots, s_{_N}(n)]^T_{_{1\times N}}\triangleq\mathbf{A_{_{M\times N}}s_{_{N\times 1}}} x(n)M×1=[a(θ1),a(θ2),,a(θN)]M×N×[s1(n),s2(n),,sN(n)]1×NTAM×NsN×1 A M × N \mathbf{A}_{M\times N} AM×N也称为方向矩阵、导向矩阵等等。和导向矢量是一个意思,以后统称为导向矢量。

这里 A M × N \mathbf{A}_{M\times N} AM×N的维度值得关注:

  1. 行数 M M M 是阵列中阵元的个数;
  2. 列数 N N N 是信号的个数。若只有一个信号,则退化成一个信号 x ( n ) = a ( θ ) s ( n ) \mathbf{x}(n) = \mathbf{a(\theta)}s(n) x(n)=a(θ)s(n) 的形式。

3 .最简单的DOA估计:空间傅里叶变换

3.1 算法推导

注意到接收信号的形式 x ( n ) = [ 1 , e − j 2 π f 0 d s i n ( θ ) c , e − j 2 π f 0 2 d s i n ( θ ) c , e − j 2 π f 0 3 d s i n ( θ ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( θ ) c ] s ( n ) \mathbf{x}(n) = [1,e^{-j2\pi f_0\frac{dsin(\theta)}{c}},e^{-j2\pi f_0\frac{2dsin(\theta)}{c}},e^{-j2\pi f_0\frac{3dsin(\theta)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\theta)}{c}}]s(n) x(n)=[1,ej2πf0cdsin(θ),ej2πf0c2dsin(θ),ej2πf0c3dsin(θ),,ej2πf0c(M1)dsin(θ)]s(n)虽然信号的角度我们不知道,但还是对于给定的阵列,其导向矢量的数学形式是知道的。比如对于ULA,肯定是Vandermonde结构的。就凭这一点,我们就有了一种DOA估计的方法。

具体而言,我们可以构造出一个导向矢量来,其中的角度任意给定(盲猜,不妨设为 α \alpha α),那么就可以构造出一个来波方向为 α \alpha α的导向矢量为 a ( α ) = [ 1 , e − j 2 π f 0 d s i n ( α ) c , e − j 2 π f 0 2 d s i n ( α ) c , e − j 2 π f 0 3 d s i n ( α ) c , ⋯   , e − j 2 π f 0 ( M − 1 ) d s i n ( a l p h a ) c ] \mathbf{a(\alpha)}=[1,e^{-j2\pi f_0\frac{dsin(\alpha)}{c}},e^{-j2\pi f_0\frac{2dsin(\alpha)}{c}},e^{-j2\pi f_0\frac{3dsin(\alpha)}{c}},\cdots,e^{-j2\pi f_0\frac{(M-1)dsin(\\alpha)}{c}}] a(α)=[1,ej2πf0cdsin(α),ej2πf0c2dsin(α),ej2πf0c3dsin(α),,ej2πf0c(M1)dsin(alpha)]用我们盲猜的这个导向矢量 a ( α ) \mathbf{a(\alpha)} a(α)和接收信号做向量内积,即 y = a H ( α ) ⋅ x ( n ) = a H ( α ) a ( θ ) s ( n ) y=\mathbf{a^H(\alpha)}\cdot\mathbf{x}(n)=\mathbf{a^H(\alpha)}\mathbf{a(\theta)}s(n) y=aH(α)x(n)=aH(α)a(θ)s(n)结果应该是一个标量。简单计算一下可以得到 y = [ 1 + e j 2 π f 0 d s i n ( α ) − s i n ( θ ) c + e j 2 π f 0 d 2 [ s i n ( α ) − s i n ( θ ) ] c + ⋯ + e j 2 π f 0 d ( M − 1 ) [ s i n ( α ) − s i n ( θ ) ] c ] s ( n ) ≤ M s ( n ) y=[1+e^{j2\pi f_0d\frac{sin(\alpha)-sin(\theta)}{c}}+e^{j2\pi f_0d\frac{2[sin(\alpha)-sin(\theta)]}{c}}+\cdots+e^{j2\pi f_0d\frac{(M-1)[sin(\alpha)-sin(\theta)]}{c}}]s(n)\leq Ms(n) y=[1+ej2πf0dcsin(α)sin(θ)+ej2πf0dc2[sin(α)sin(θ)]++ej2πf0dc(M1)[sin(α)sin(θ)]]s(n)Ms(n)等号在 α = θ \alpha=\theta α=θ 处取得。

通过这个不等式可知,如果我们盲猜对了,即 α = θ \alpha=\theta α=θ,那么得到的结果是一个最大值。
因此,我们可以把所有的角度都猜一遍,找出那么结果结果最大的,其对应的角度就是我们DOA估计的结果。

这里就可以引出一个DOA估计的方法:

for: θ \theta θ from − 90 ° -90\degree 90° to − 90 ° -90\degree 90°
caculate y α = a H ( α ) ⋅ x ( n ) y_{_\alpha}=\mathbf{a^H(\alpha)}\cdot\mathbf{x}(n) yα=aH(α)x(n);
end for
θ = max ⁡ α y α \theta= \max\limits_{\alpha} y_{_\alpha} θ=αmaxyα

3.2 算法仿真实例

实例1:假设只有一个目标位于 θ 1 = 5 ° \theta_1=5\degree θ1=的地方,得到的结果为单目标
实例2:假设两个目标分别位于 θ 1 = 5 ° , θ 2 = 10 ° \theta_1=5\degree,\theta_2=10\degree θ1=,θ2=10°,采用上述方法得到的结果为在这里插入图片描述实例3:假设两个目标分别位于 θ 1 = 5 ° , θ 2 = 30 ° \theta_1=5\degree,\theta_2=30\degree θ1=,θ2=30°,采用上述方法得到的结果为在这里插入图片描述

4 .思考

从三个仿真实例可以看出,单目标没有问题,但是当两目标过于靠近时,此DOA算法不能分辨两个目标。这就带来了几个思考:

  1. 本算法的分辨力到底如何?目标靠的多近时就不能分辨了?
  2. 有没有什么算法分辨率高一些?代价是什么?

这些问题以后会慢慢说明。

PS:原创,纯手敲。如有错误、建议等,请留言或私信,大家共同进步。

  • 153
    点赞
  • 534
    收藏
    觉得还不错? 一键收藏
  • 69
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值