信号DOA估计方法
1.空间谱与DOA估计
信号空间谱估计基于信号的空间傅氏变换:
$$X(\Phi) = \sum_{m=0}^{M-1}x_{m}(n)e^{jm \Phi}\quad(1)$$
上式中 $x_{m}(n)$为单个阵元的接收信号:
$$x_{m}(n) = s_{1}(n)e^{-jm\Phi_1}\quad m=0,1,\cdots,M-1\quad(2)$$
将(2)式代入(1)式并对(1)式取模平方得:
$$|X(\Phi)|^{2} =|s_{1}(n)|^{2} \left | \frac{sin\left( \frac{M}{2}(\Phi-\Phi_1) \right)}{sin\left( \frac{1}{2}(\Phi-\Phi_1) \right)} \right |^{2} \quad(3)$$
$|X(\Phi)|^{2}$为空间谱,由上式可知$\Phi = \Phi_{1}$时$|X(\Phi)|^{2}$取极大值,故空间谱峰值所在的角度就是信号源方向。
空间傅氏变换法所得到的空间谱分辨率不高,当两个角度相近的信号入射到接收阵列时,主瓣就会发生重叠,这时就无法实现对信号角度的有效估计。
对比功率谱估计的思想,将功率谱估计的一些方法移植到信号的DOA估计,这些方法比空间傅氏变换法有更高的分辨率,所以被称为超分辨率估计。
2.算例
采用10阵元间距为二分之一波长的均匀线阵,估计两个不相干的信号源的波达方向,假设信号源分别来自-10°和40°方向,信噪比分别为10dB和20dB。假设样本数为100。
- 用MUSIC算法实现DOA估计。
- 用ROOT-MUSIC算法实现DOA估计。
- 用ESPRIT算法实现DOA估计。
- 用MVDR算法实现DOA估计。
3.$MUSIC$与$ROOT-MUSIC$算法用于信号$DOA$估计
之前介绍过$MUSIC$与$ROOT-MUSIC$算法如何用于信号频率估计,具体请移步信号频率估计—MUSIC & ROOT-MUSIC算法(附Matlab代码)。
在信号$DOA$估计上使用$MUSIC$与$ROOT-MUSIC$算法与信号频率估计类似,只是将频率变成了角度。
图1 $MUSIC$算法
图2 $ROOT-MUSIC$算法
4.$ESPRIT$算法用于信号$DOA$估计
$ESPRIT$算法在信号$DOA$估计方面不同于信号频率估计,算法具体步骤如下:
- 利用特征值分解得到信号的空间相关矩阵$\hat{R}$的特征向量与特征值,并用最大的$K$个特征值对应的特征向量构成矩阵$S$。
- 记$S$的前$M-1$行和后$M-1$行分别为$S_{1}$,$S_{2}$。
- 定义矩阵$\Psi=S_{1}^{-1}S_{2}$,对$\Psi$做特征值分解得到特征值$e^{-j\phi_{k}}$。
- 利用$\phi_{k}=2\pid*sin\theta_{k}/\lambda \quad k=1,2,\cdots,K$得到信号入射角度$\theta_{k}$。
图3 ESPRIT算法
5.$MVDR$算法用于信号$DOA$估计
之前已经介绍过将MVDR算法用于信号频率估计,具体可以移步MVDR频率估计方法及其Matlab代码实现。
将$MVDR$算法用于信号$DOA$估计和用于信号频率估计类似,只是将频率变成了角度。
图4 MVDR算法
6.$Matlab$代码实现
需要代码的同学可以点此下载源码。
Tagged Matlab, RLS算法, 信号处理, 随机信号