目录

  • 一、 经典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.​

  1. 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大小的矩阵,表示入射信号;
  2. α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} Rs​A​=SASH=ααH=⎣⎡​E[∣α1​∣2]00​0E[∣α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} Rs​qm​⇒qm​HSASHqm​⇒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(ϕ)Qn​Qn​Hs(ϕ)1​=∣∣Qn​H 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)=0Qn​H 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} Rs​qm​⇒ Rqm​​=λqm​=Rs​qm​+σ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} Rs​Q⇒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} Λ​=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​λ1​0⋮00⋮0​0λ2​⋮00⋮0​⋯⋯⋱⋯⋯⋮⋯​00⋮λM​0⋮0​00⋮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⋮0​0λ2​+σ2⋮00⋮0​⋯⋯⋱⋯⋯⋮⋯​00⋮λM​+σ20⋮0​00⋮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)

  1. 矩阵Qs\mathbf{Q_s}Qs​定义了信号子空间
  2. 矩阵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算法的几点观察

  1. 在以上理论中,矩阵R\mathbf{R}R的最小的几个特征值都是噪声特征值,等于σ2\sigma^2σ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​∣qm​s(ϕ)∣21​=sH(ϕ)Qn​Qn​Hs(ϕ)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=K1​k=1∑K​xk​xk​H,
    在参考文献[2]中,作者表明,快照数量K>2NK>2NK>2N时,信噪比最佳能达到3dB.

  • 难点2:使用估计出来的协方差矩阵RRR会使得噪声的特征值不再相等了(原本理想情况下噪声特征值就是σ2\sigma^2σ2)

  • 难点3:在现实情况下,特征值更趋向于一个连续体(continuum),信号和噪声特征值的区分不再明显了

  • 难点4:如果信号的数量(MMM)未知,那么就不容易确定哪些特征值是相等的(至少在理论上是对应相等的,它们代表噪声空间)

2.2 在现实情况下使用MUSIC算法的步骤

  1. 依据式R=1K∑k=1KxkxkH\mathbf{R} = \frac{1}{K}\sum_{k=1}^{K}{\mathbf{x_k}\mathbf{x_k}^H}R=K1​∑k=1K​xk​xk​H来估计出相关矩阵R\mathbf{R}R,并找到其特征分解:R=QΛQH\mathbf{R=Q\Lambda Q}^HR=QΛQH

  2. 将矩阵Q\mathbf{Q}Q进行分解,得到矩阵Qn\mathbf{Q_n}Qn​,它对应于矩阵Q\mathbf{Q}Q的(N−M)(N-M)(N−M)个最小(不一定相等)的特征值,表示噪声空间。

  3. 得到PMUSIC(ϕ)P_{MUSIC}(\phi)PMUSIC​(ϕ)并绘制图像

  4. MMM个信号角度就是PMUSIC(ϕ)P_{MUSIC}(\phi)PMUSIC​(ϕ)函数的MMM个峰值的横坐标值

参考文献(仅写文章的标题,以做记录)

[1]. Direction of Arrival Estimation
[2]. Rapid convergence rate in adaptive arrays

DOA算法1:MUSIC算法(一)相关推荐

  1. 波束赋形GOB算法matlab,智能天线波束赋形GOB算法与EBB算法比较

    目前比较常用的波束赋形算法有2种:GOB算法和EBB算法.GOB算法是一种固定波束扫描的方法,对于固定位置的用户,其波束指向是固定的,波束宽度也随天 线阵元数目而确定.当用户在小区中移动时,它通过测向 ...

  2. 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  3. SURF算法与SIFT算法的性能比较——图像特征点检测与提取算法分析

    图像特征点提取算法的算法研究(SURF和SIFT算法) 1. 摘要 计算机视觉中,很大一部分研究集中在图像特征提取和特征生成算法上.对图像的优化,不同于一般数学问题的优化方法,图像的优化是对像素点,在 ...

  4. 数据结构与算法(5)字符串(BF算法、KMP算法及KMP算法优化)

    目录 一.BF算法(暴力算法) 二.KMP算法 三.KMP算法优化 一.BF算法(暴力算法) 一个一个往后匹配,匹配失败继续从母串下一个和头(子串的头)往后继续匹配. 虽然简单,但是需要较多的时间复杂 ...

  5. 标准K-means算法的缺陷、K-mean++初始化算法、初始化算法步骤、Kmeans++算法实现

    标准K-means算法的缺陷.K-mean++初始化算法.初始化算法步骤.Kmeans++算法实现 目录 标准K-means算法的缺陷.K-mean&

  6. Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法

    Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 目录 Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 Apriori算法 FP-Grow ...

  7. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  8. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路

    https://www.toutiao.com/a6641916717624721933/ 2019-01-03 08:00:00 K-means算法是使用得最为广泛的一个算法,本文将介绍K-mean ...

  9. floyd算法_最短路径的算法:Floyd算法

    点击箭头处"蓝色字",关注我们哦!! 算法 最短路径的算法-Floyd算法 ● ○ ● Shortest Path Algorithm - Floyd Algorithm ● ○ ...

  10. 【算法】模拟退火算法解决TSP问题的matlab实现

    [算法]模拟退火算法解决TSP问题的matlab实现 参考文章: (1)[算法]模拟退火算法解决TSP问题的matlab实现 (2)https://www.cnblogs.com/wenyehoush ...

最新文章

  1. 突发!Spring Cloud 爆高危漏洞。。赶紧修复!!
  2. Android中关于SQLite数据库的一些知识
  3. C# 多线程并发锁模式-总结
  4. Python属性简介__name__
  5. 定间隔字符翻转(Reverse String II)
  6. SpringMVC解决前台传入的数组或集合类型数据
  7. 高级网络配置:Bond网络接口、Team网络接口和网桥
  8. fdisk、parted无损调整普通分区大小
  9. 麦子学院bootstrap实战项目官网,后台,jquery.singlePageNav.min.js ,wow.min.js,animate.css使用...
  10. base64图片的String字符串压缩变小
  11. JZOJ_1222《Kup》——一道劲题
  12. Uefi ABL读取XBL设置的标志位
  13. 微信小程序解密失败的可能原因
  14. 香港服务器还能否备案?
  15. 极兔一面:10亿级ES海量搜索狂飙10倍,该怎么办?
  16. dedecms注入漏洞feedback.php,织梦(Dedecms) 5.1 feedback_js.php 注入漏洞
  17. 腾讯手游助手修改共享目录/缓存目录/Temp文件夹路径
  18. python爬取qq好友_Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)...
  19. SOA架构的第三方物流信息系统分析
  20. MES系统设备管理概述(下)

热门文章

  1. 如何在CDSN打开Markdown编辑界面
  2. 64位 mxcomponent_三菱MX Component 4.16S下载
  3. ibm system x服务器重装系统,IBM X346服务器重装系统_xSeries 346阵列配置
  4. esp8266接入小度语音,小度音箱控制,附开源app控制
  5. 阿里巴巴Java开发手册(黄山版)正式亮相,新增11条规约
  6. 怎样导入mysql驱动包_怎么导入MYSQL的驱动包
  7. 2.1 InnoDB存储引擎(概述、版本、体系结构)
  8. 去除CSDN广告的方法
  9. XLSTransformer导出多sheet页
  10. 如何调试JavaScript代码