DOA算法1:MUSIC算法(一)
目录
- 一、 经典MUSIC算法
- 1.1 算法介绍(第一阶段)
- 1.2 算法介绍(第二阶段)
- 1.3 对MUSIC算法的几点观察
- 二、现实情况下的MUSIC算法
- 2.1 现实与理论的差距
- 2.2 在现实情况下使用MUSIC算法的步骤
- 参考文献(仅写文章的标题,以做记录)
注:本博文为本人阅读论文、文章后的原创笔记,未经授权不允许任何转载或商用行为,否则一经发现本人保留追责权利。有问题可留言联系,欢迎指摘批评,共同进步!!!
一、 经典MUSIC算法
MUSIC算法全称为:MUltiple Signal Classification.是波达角(DOA)估计问题中使用最广泛的算法之一。
1.1 算法介绍(第一阶段)
模型选用加性噪声模型:
x=Sα+n.S=[s(ϕ1)s(ϕ2)⋯,s(ϕM)],α=[α1,α2⋯αM]T.\begin{aligned} &\bm{x = S \alpha + n}. \\ &\mathbf{S = [s(\phi_1)\ s(\phi_2)\ \cdots,\ s(\phi_M)]}, \\ &\bm{\alpha = [\alpha_1,\ \alpha_2\ \cdots\ \alpha_M]^T}. \end{aligned} x=Sα+n.S=[s(ϕ1) s(ϕ2) ⋯, s(ϕM)],α=[α1, α2 ⋯ αM]T.
- s(ϕi)\mathbf{s(\phi_i)}s(ϕi)是N×1N\times1N×1大小的矩阵:s(ϕi)=[s(ϕi1)s(ϕi2)⋯s(ϕiN)]T\mathbf{s(\phi_i)}=[s(\phi_{i1})\ s(\phi_{i2})\ \cdots\ s(\phi_{iN})]^Ts(ϕi)=[s(ϕi1) s(ϕi2) ⋯ s(ϕiN)]T,代表第i个信号的转向矢量(steering vector),也可理解为第i个信号在接收阵列N个元素上产生的效果。因此矩阵S\mathbf{S}S是N×MN\times MN×M大小的矩阵,表示入射信号;
- αi\bm{\alpha_i}αi是1×N1\times N1×N大小的矩阵:αi=[αi1αi2⋯αiN]\bm{\alpha_i} = [\alpha_{i1}\ \alpha_{i2}\ \cdots\ \alpha_{iN}]αi=[αi1 αi2 ⋯ αiN],代表信道特征。因此矩阵α\bm{\alpha}α是M×NM \times NM×N大小的矩阵.
假设不同信号之间互不相关。计算矩阵x\mathbf{x}x的相关矩阵R\mathbf{R}R:
R=E[xxH],=E[SααHSH]+E[nnH],=SASH+σ2I,=Rs+σ2I,\begin{aligned} \mathbf{R}&=E[\mathbf{xx}^H], \\ &=E[\mathbf{S} \bm{\alpha \alpha}^H \mathbf{S}^H]+E[\mathbf{nn}^H], \\ &= \mathbf{SAS}^H+\sigma^2\mathbf{I}, \\ &=\mathbf{R_s}+\sigma^2 \mathbf{I,} \end{aligned} R=E[xxH],=E[SααHSH]+E[nnH],=SASH+σ2I,=Rs+σ2I,
其中:
Rs=SASHA=ααH=[E[∣α1∣2]0⋯00E[∣α2∣2]⋯000⋯E[∣αM∣2]].\begin{aligned} \mathbf{R_s} &= \mathbf{SAS}^H \\ \mathbf{A} &= \bm{\alpha \alpha}^H \\ &= \begin{bmatrix} E[|\alpha_1|^2]& 0& \cdots& 0\\ 0& E[|\alpha_2|^2]& \cdots& 0\\ 0& 0& \cdots& E[|\alpha_M|^2] \end{bmatrix}. \end{aligned} RsA=SASH=ααH=⎣⎡E[∣α1∣2]000E[∣α2∣2]0⋯⋯⋯00E[∣αM∣2]⎦⎤.
- 矩阵A\mathbf{A}A是一个对角阵,其中的0元素是因为E[αi⋅αj]=0.(i≠j)E[\bm{\alpha_i \cdot \alpha_j}]=0.(i \ne j)E[αi⋅αj]=0.(i=j)表示不同信号之间互不相关。
- S\mathbf{S}S是N×MN \times MN×M大小的矩阵。A\mathbf{A}A是M×MM \times MM×M大小的方阵。由此可以得到,Rs\mathbf{R_s}Rs是N×NN \times NN×N 大小的方阵,且秩为M。
因为Rs\mathbf{R_s}Rs不是满秩的,所以它有(N−M)(N-M)(N−M)个特征向量对应于0特征值。我们就设qm\mathbf{q_m}qm为这样的特征向量之一,qm\mathbf{q_m}qm是N×1N \times 1N×1大小的列矩阵。由此可以得到如下结果:
Rsqm=SASHqm=0,⇒qmHSASHqm=0,⇒SHqm=0\begin{aligned} \mathbf{R_s q_m} &= \mathbf{SAS}^H \mathbf{q_m} = 0, \\ \Rightarrow \mathbf{q_m}^H\mathbf{SAS}^H \mathbf{q_m} &= 0, \\ \Rightarrow \mathbf{S}^H \mathbf{q_m} &= 0 \end{aligned} Rsqm⇒qmHSASHqm⇒SHqm=SASHqm=0,=0,=0
MUSIC算法的基础:
由 SHqm=0\mathbf{S}^H \mathbf{q_m} = 0SHqm=0这一结果可得:矩阵Rs\mathbf{R_s}Rs的所有对应于0特征值的(N−M)(N-M)(N−M)个特征向量(qm\mathbf{q_m}qm)与所有MMM个信号转向矢量(signal steering vector)都正交。
设定:矩阵Qn\mathbf{Q_n}Qn由这些特征向量qm\mathbf{q_m}qm组成,Qn\mathbf{Q_n}Qn就是N×(N−M)N \times (N-M)N×(N−M)大小的矩阵。MUSIC算法所需计算的功率谱表达如下:
PMUSIC(ϕ)=1∑m=1N−M∣sH(ϕ)qm∣2=1sH(ϕ)QnQnHs(ϕ)=1∣∣QnHs(ϕ)∣∣2\begin{aligned} P_{MUSIC}(\phi)&=\frac{1}{\sum_{m=1}^{N-M}|\mathbf{s}^H(\phi) \mathbf{q_m}|^2}\\ &=\frac{1}{\mathbf{s}^H(\phi)\mathbf{Q_nQ_n}^H\mathbf{s(\phi)}} \\ &=\frac{1}{||\bm{Q_n}^H\ s(\phi)||^2} \end{aligned} PMUSIC(ϕ)=∑m=1N−M∣sH(ϕ)qm∣21=sH(ϕ)QnQnHs(ϕ)1=∣∣QnH s(ϕ)∣∣21
注意到,Qn\mathbf{Q_n}Qn是由qm\mathbf{q_m}qm组成的,因此矩阵Qn\mathbf{Q_n}Qn与信号旋转矢量s(ϕ)\mathbf{s(\phi)}s(ϕ)也是正交的,即当ϕ\phiϕ是一个波达角时,QnHs(ϕ)=0\bm{Q_n}^H\ s(\phi)=0QnH s(ϕ)=0,这表现在PMUSICP_{MUSIC}PMUSIC谱线上就是一个波峰(因为分母为0)。因此波达角的估计体现在功率谱上就是M个最大的峰值对应的ϕ\phiϕ.
1.2 算法介绍(第二阶段)
在上述MUSIC算法中有一缺陷:在现实情况下,信号的协方差矩阵Rs\mathbf{R_s}Rs不可知,我们最多可以估计矩阵R\mathbf{R}R(含噪声),此二者的关键联系点就是:特征向量矩阵Qn\mathbf{Q_n}Qn是相同的,下面就证明这一点。
对于任意的qm∈Q\mathbf{q_m}\in\mathbf{Q}qm∈Q (Q\mathbf{Q}Q是矩阵Rs\mathbf{R_s}Rs所有特征向量组成的矩阵,形状是N×NN \times NN×N大小的方阵)我们有:
Rsqm=λqm⇒Rqm=Rsqm+σ2Iqm,=(λm+σ2)qm,\begin{aligned} \mathbf{R_sq_m}&=\mathbf{\lambda q_m} \\ \Rightarrow\ \mathbf{Rq_m} &= \mathbf{R_s q_m}+\sigma^2\mathbf{Iq_m}, \\ &=(\lambda_m+\sigma^2)\mathbf{q_m}, \end{aligned} Rsqm⇒ Rqm=λqm=Rsqm+σ2Iqm,=(λm+σ2)qm,
由此可见,矩阵Rs\mathbf{R_s}Rs的特征向量也同样是矩阵R\mathbf{R}R的特征向量,只不过特征值从原来的λ\lambdaλ变成了(λ+σ2)(\lambda+\sigma^2)(λ+σ2)。注意,如前所述,矩阵Rs\mathbf{R_s}Rs有(N−M)(N-M)(N−M)个对应于0特征值的特征向量,它们的λ=0\lambda=0λ=0,对应到矩阵R\mathbf{R}R中,特征值λ+σ2=σ2\lambda+\sigma^2=\sigma^2λ+σ2=σ2,也一共有(N−M)(N-M)(N−M)个
用矩阵Rs\mathbf{R_s}Rs的NNN个特征向量组成一个N×NN \times NN×N大小的对角阵Λ\bm{\Lambda}Λ,可得:
RsQ=QΛ⇒Rs=QΛQH.\begin{aligned} \mathbf{R_sQ} &= \mathbf{Q \Lambda} \\ \Rightarrow \mathbf{R_s} &= \mathbf{Q \Lambda Q}^H. \end{aligned} RsQ⇒Rs=QΛ=QΛQH.
Λ=[λ10⋯00⋯00λ2⋯00⋯0⋮⋮⋱⋮⋮⋮⋮00⋯λM0⋯000⋯00⋯0⋮⋮⋮⋮⋮⋱⋮00⋯00⋯0]\begin{aligned} \mathbf{\Lambda} &= \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 & 0 & \cdots & 0\\ 0 & \lambda_2 & \cdots & 0 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \vdots\\ 0 & 0 & \cdots & \lambda_M & 0 & \cdots & 0\\ 0 & 0 & \cdots & 0 & 0 & \cdots & 0\\ \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & 0 & 0 & \cdots & 0 \end{bmatrix} \end{aligned} Λ=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡λ10⋮00⋮00λ2⋮00⋮0⋯⋯⋱⋯⋯⋮⋯00⋮λM0⋮000⋮00⋮0⋯⋯⋮⋯⋯⋱⋯00⋮00⋮0⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
同理,对于矩阵R\mathbf{R}R可得:
R=Q[Λ+σ2I]QH=Q[λ1+σ20⋯00⋯00λ2+σ2⋯00⋯0⋮⋮⋱⋮⋮⋮⋮00⋯λM+σ20⋯000⋯0σ2⋯0⋮⋮⋮⋮⋮⋱⋮00⋯00⋯σ2]QH\begin{aligned} \mathbf{R} &= \mathbf{Q[\Lambda} + \sigma^2\mathbf{I]Q}^H \\ &= \mathbf{Q} \begin{bmatrix} \lambda_1+\sigma^2 & 0 & \cdots & 0 & 0 & \cdots & 0\\ 0 & \lambda_2+\sigma^2 & \cdots & 0 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \vdots\\ 0 & 0 & \cdots & \lambda_M+\sigma^2 & 0 & \cdots & 0\\ 0 & 0 & \cdots & 0 & \sigma^2 & \cdots & 0\\ \vdots & \vdots & \vdots & \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \cdots & 0 & 0 & \cdots & \sigma^2 \end{bmatrix} \mathbf{Q}^H \end{aligned} R=Q[Λ+σ2I]QH=Q⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡λ1+σ20⋮00⋮00λ2+σ2⋮00⋮0⋯⋯⋱⋯⋯⋮⋯00⋮λM+σ20⋮000⋮0σ2⋮0⋯⋯⋮⋯⋯⋱⋯00⋮00⋮σ2⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤QH
依据特征分解,我们可以将矩阵Q\mathbf{Q}Q分解成信号矩阵Qs\mathbf{Q_s}Qs(矩阵Q\mathbf{Q}Q的前M列,对应M个信号特征值)和噪声特征向量矩阵Qn\mathbf{Q_n}Qn(矩阵Q\mathbf{Q}Q的后(N−M)(N-M)(N−M)列,对应(N−M)(N-M)(N−M)个噪声特征值σ2\sigma^2σ2)
- 矩阵Qs\mathbf{Q_s}Qs定义了信号子空间
- 矩阵Qn\mathbf{Q_n}Qn定义了噪声子空间
注意到:矩阵Qn\mathbf{Q_n}Qn与矩阵Rs\mathbf{R_s}Rs对应于0特征值的特征向量所组成的矩阵完全相同(就是这个矩阵)。表明,矩阵R\mathbf{R}R和矩阵Rs\mathbf{R_s}Rs有完全相同的特征向量矩阵。
1.3 对MUSIC算法的几点观察
- 在以上理论中,矩阵R\mathbf{R}R的最小的几个特征值都是噪声特征值,等于σ2\sigma^2σ2,这样一来就可以区分信号和噪声特征值了:找出几个小的、相等的特征值,这就是噪声特征值,其余的是信号特征值;
- Qs⊥Qn\mathbf{Q_s}\perp \mathbf{Q_n}Qs⊥Qn
依据上述两点,我们可以得出MUSIC算法的前提/基础:
所有的噪声特征值与信号转向矢量都正交
PMUSIC(ϕ)=1∑m=M+1N∣qms(ϕ)∣2=1sH(ϕ)QnQnHs(ϕ),\begin{aligned} P_{MUSIC}(\phi)&=\frac{1}{\sum_{m=M+1}^{N}|\mathbf{q_m} \mathbf{s(\phi)}|^2}\\ &=\frac{1}{\mathbf{s}^H(\phi)\mathbf{Q_nQ_n}^H\mathbf{s(\phi)}}, \end{aligned} PMUSIC(ϕ)=∑m=M+1N∣qms(ϕ)∣21=sH(ϕ)QnQnHs(ϕ)1,
式中qm\mathbf{q_m}qm是(N−M)(N-M)(N−M)个噪声特征矩阵中的一个。如果ϕ\phiϕ就是信号的DOA之一,那么s(ϕ)⊥qm\mathbf{s(\phi)} \perp \mathbf{q_m}s(ϕ)⊥qm,所以PMUSICP_{MUSIC}PMUSIC的分母就恒等于0。因此,DOA就是PMUSICP_{MUSIC}PMUSIC的几个峰值。
二、现实情况下的MUSIC算法
2.1 现实与理论的差距
难点1:相关矩阵R\mathbf{R}R是未知的,它必须从接收信号中估计得来。而这项估计采用的是在多个数据快照(snapshots of data)中取平均值的方法:
R=1K∑k=1KxkxkH,\mathbf{R} = \frac{1}{K}\sum_{k=1}^{K}{\mathbf{x_k}\mathbf{x_k}^H}, R=K1k=1∑KxkxkH,
在参考文献[2]中,作者表明,快照数量K>2NK>2NK>2N时,信噪比最佳能达到3dB.难点2:使用估计出来的协方差矩阵RRR会使得噪声的特征值不再相等了(原本理想情况下噪声特征值就是σ2\sigma^2σ2)
难点3:在现实情况下,特征值更趋向于一个连续体(continuum),信号和噪声特征值的区分不再明显了。
难点4:如果信号的数量(MMM)未知,那么就不容易确定哪些特征值是相等的(至少在理论上是对应相等的,它们代表噪声空间)
2.2 在现实情况下使用MUSIC算法的步骤
依据式R=1K∑k=1KxkxkH\mathbf{R} = \frac{1}{K}\sum_{k=1}^{K}{\mathbf{x_k}\mathbf{x_k}^H}R=K1∑k=1KxkxkH来估计出相关矩阵R\mathbf{R}R,并找到其特征分解:R=QΛQH\mathbf{R=Q\Lambda Q}^HR=QΛQH
将矩阵Q\mathbf{Q}Q进行分解,得到矩阵Qn\mathbf{Q_n}Qn,它对应于矩阵Q\mathbf{Q}Q的(N−M)(N-M)(N−M)个最小(不一定相等)的特征值,表示噪声空间。
得到PMUSIC(ϕ)P_{MUSIC}(\phi)PMUSIC(ϕ)并绘制图像
MMM个信号角度就是PMUSIC(ϕ)P_{MUSIC}(\phi)PMUSIC(ϕ)函数的MMM个峰值的横坐标值。
参考文献(仅写文章的标题,以做记录)
[1]. Direction of Arrival Estimation
[2]. Rapid convergence rate in adaptive arrays
DOA算法1:MUSIC算法(一)相关推荐
- 波束赋形GOB算法matlab,智能天线波束赋形GOB算法与EBB算法比较
目前比较常用的波束赋形算法有2种:GOB算法和EBB算法.GOB算法是一种固定波束扫描的方法,对于固定位置的用户,其波束指向是固定的,波束宽度也随天 线阵元数目而确定.当用户在小区中移动时,它通过测向 ...
- 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)
声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...
- SURF算法与SIFT算法的性能比较——图像特征点检测与提取算法分析
图像特征点提取算法的算法研究(SURF和SIFT算法) 1. 摘要 计算机视觉中,很大一部分研究集中在图像特征提取和特征生成算法上.对图像的优化,不同于一般数学问题的优化方法,图像的优化是对像素点,在 ...
- 数据结构与算法(5)字符串(BF算法、KMP算法及KMP算法优化)
目录 一.BF算法(暴力算法) 二.KMP算法 三.KMP算法优化 一.BF算法(暴力算法) 一个一个往后匹配,匹配失败继续从母串下一个和头(子串的头)往后继续匹配. 虽然简单,但是需要较多的时间复杂 ...
- 标准K-means算法的缺陷、K-mean++初始化算法、初始化算法步骤、Kmeans++算法实现
标准K-means算法的缺陷.K-mean++初始化算法.初始化算法步骤.Kmeans++算法实现 目录 标准K-means算法的缺陷.K-mean&
- Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法
Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 目录 Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 Apriori算法 FP-Grow ...
- Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector
文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...
- 「AI科技」机器学习算法之K-means算法原理及缺点改进思路
https://www.toutiao.com/a6641916717624721933/ 2019-01-03 08:00:00 K-means算法是使用得最为广泛的一个算法,本文将介绍K-mean ...
- floyd算法_最短路径的算法:Floyd算法
点击箭头处"蓝色字",关注我们哦!! 算法 最短路径的算法-Floyd算法 ● ○ ● Shortest Path Algorithm - Floyd Algorithm ● ○ ...
- 【算法】模拟退火算法解决TSP问题的matlab实现
[算法]模拟退火算法解决TSP问题的matlab实现 参考文章: (1)[算法]模拟退火算法解决TSP问题的matlab实现 (2)https://www.cnblogs.com/wenyehoush ...
最新文章
- 突发!Spring Cloud 爆高危漏洞。。赶紧修复!!
- Android中关于SQLite数据库的一些知识
- C# 多线程并发锁模式-总结
- Python属性简介__name__
- 定间隔字符翻转(Reverse String II)
- SpringMVC解决前台传入的数组或集合类型数据
- 高级网络配置:Bond网络接口、Team网络接口和网桥
- fdisk、parted无损调整普通分区大小
- 麦子学院bootstrap实战项目官网,后台,jquery.singlePageNav.min.js ,wow.min.js,animate.css使用...
- base64图片的String字符串压缩变小
- JZOJ_1222《Kup》——一道劲题
- Uefi ABL读取XBL设置的标志位
- 微信小程序解密失败的可能原因
- 香港服务器还能否备案?
- 极兔一面:10亿级ES海量搜索狂飙10倍,该怎么办?
- dedecms注入漏洞feedback.php,织梦(Dedecms) 5.1 feedback_js.php 注入漏洞
- 腾讯手游助手修改共享目录/缓存目录/Temp文件夹路径
- python爬取qq好友_Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)...
- SOA架构的第三方物流信息系统分析
- MES系统设备管理概述(下)
热门文章
- 如何在CDSN打开Markdown编辑界面
- 64位 mxcomponent_三菱MX Component 4.16S下载
- ibm system x服务器重装系统,IBM X346服务器重装系统_xSeries 346阵列配置
- esp8266接入小度语音,小度音箱控制,附开源app控制
- 阿里巴巴Java开发手册(黄山版)正式亮相,新增11条规约
- 怎样导入mysql驱动包_怎么导入MYSQL的驱动包
- 2.1 InnoDB存储引擎(概述、版本、体系结构)
- 去除CSDN广告的方法
- XLSTransformer导出多sheet页
- 如何调试JavaScript代码