【学习笔记】【DOA子空间算法】3 root-MUSIC 算法

这篇具有很好参考价值的文章主要介绍了【学习笔记】【DOA子空间算法】3 root-MUSIC 算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3 root-MUSIC 算法

3.1 算法原理

  root-MUSIC 算法是 MUSIC 算法的一种多项式求根形式,其基本思想是 Pisarenko 分解。相比于 MUSIC 算法,root-MUSIC 算法无须谱峰搜索,降低了复杂度。
  由前面可知,ULA 的方向矢量 a ( θ ) \mathbf{a}(\theta) a(θ) 如下:
a ( θ ) = [ exp ⁡ ( − j 2 π d 1 sin ⁡ θ / λ ) ⋮ exp ⁡ ( − j 2 π d m sin ⁡ θ / λ ) ⋮ exp ⁡ ( − j 2 π d M sin ⁡ θ / λ ) ] \begin{equation*} \mathbf{a}(\mathbf{\theta}) = \begin{bmatrix} \exp(-j2\pi d_1\sin\theta/\lambda) \\ \vdots \\ \exp(-j2\pi d_m\sin\theta/\lambda) \\ \vdots \\ \exp(-j2\pi d_M\sin\theta/\lambda) \end{bmatrix} \end{equation*} a(θ)= exp(j2πd1sinθ/λ)exp(j2πdmsinθ/λ)exp(j2πdMsinθ/λ)
根据 d m = ( m − 1 ) d d_m = (m-1)d dm=(m1)d,此时令 ω = − 2 π d sin ⁡ θ / λ \omega = -2\pi d \sin\theta/\lambda ω=2πdsinθ/λ,则有:
a ( ω ) = [ 1 exp ⁡ ( j ω ) ⋮ exp ⁡ [ j ( M − 1 ) ω ] ] \begin{equation*} \mathbf{a}(\mathbf{\omega}) = \begin{bmatrix} 1 \\ \exp(j\omega) \\ \vdots \\ \exp\left[j(M-1)\omega\right] \end{bmatrix} \end{equation*} a(ω)= 1exp()exp[j(M1)ω]
z = e j ω z = e^{j\omega} z=e,则有:
p ( z ) = [ 1 , z , ⋯   , z M − 1 ] T \begin{equation*} \mathbf{p}(z) = [1, z, \cdots, z^{M-1}]^T \end{equation*} p(z)=[1,z,,zM1]T
  而根据 a ( θ ) H u i = 0 , i = K + 1 , ⋯   , M \mathbf{a}(\theta)^H\mathbf{u}_i = 0, i = K+1, \cdots, M a(θ)Hui=0,i=K+1,,M,可以得到:
p i ( z ) = u i H p ( z ) = 0 , i = K + 1 , ⋯   , M \begin{equation*} p_i(z) = \mathbf{u}_i^H\mathbf{p}(z) = 0, i = K+1, \cdots, M \end{equation*} pi(z)=uiHp(z)=0,i=K+1,,M
  综合以上,可得到:
f ( z ) = p H ( z ) U N U N H p ( z ) \begin{equation*} f(z) = \mathbf{p}^H(z)\mathbf{U}_N\mathbf{U}_N^H \mathbf{p}(z) \end{equation*} f(z)=pH(z)UNUNHp(z)
求得 f ( z ) f(z) f(z) 的根即可得到估计角的信息。然而,上式并不是 z z z 的多项式,因为它还包含了 z ∗ z^* z 的幂次项。由于我们只对单位圆上的 z z z 值感兴趣,所以可以用 p T ( z − 1 ) \mathbf{p}^{T}(z^{-1}) pT(z1) 代替 p H ( z ) \mathbf{p}^{H}(z) pH(z),这就给出了求根 MUSIC 的多项式:
f ( z ) = z M − 1 p T ( z − 1 ) U N U N H p ( z ) \begin{equation*} f(z) = z^{M-1}\mathbf{p}^{T}(z^{-1})\mathbf{U}_N\mathbf{U}_N^H \mathbf{p}(z) \end{equation*} f(z)=zM1pT(z1)UNUNHp(z)
G N = U N U N H \mathbf{G}_N = \mathbf{U}_N\mathbf{U}_N^H GN=UNUNH,则有:
z M − 1 p T ( z − 1 ) G N = [ g [ 1 , 1 ] z M − 1 + ⋯ + g [ M − 1 , 1 ] z + g [ M , 1 ] ⋮ g [ 1 , M ] z M − 1 + ⋯ + g [ M − 1 , M ] z + g [ M , M ] ] T \begin{equation*} z^{M-1}\mathbf{p}^{T}(z^{-1})\mathbf{G}_N = \begin{bmatrix} g_{[1,1]}z^{M-1} + \cdots + g_{[M-1,1]} z + g_{[M,1]} \\ \vdots \\ g_{[1,M]}z^{M-1} + \cdots + g_{[M-1,M]} z + g_{[M,M]} \end{bmatrix}^T \end{equation*} zM1pT(z1)GN= g[1,1]zM1++g[M1,1]z+g[M,1]g[1,M]zM1++g[M1,M]z+g[M,M] T
其中 g [ i , j ] g_{[i,j]} g[i,j] 表示矩阵 G N \mathbf{G}_N GN 的第 ( i , j ) (i,j) (i,j) 元素。此时易得:
f ( z ) = g [ 1 , 1 ] z M − 1 + g [ 2 , 1 ] z M − 2 + ⋯ + g [ M − 1 , 1 ] z + g [ M , 1 ] + g [ 1 , 2 ] z M + g [ 2 , 2 ] z M − 1 + ⋯ + g [ M − 1 , 2 ] z 2 + g [ M , 2 ] z ⋮ + g [ 1 , M ] z 2 M − 2 + g [ 2 , M ] z 2 M − 3 ⋯ + g [ M − 1 , M ] z M + g [ M , M ] z M − 1 \begin{equation*} \begin{aligned} f(z) &= g_{[1,1]}z^{M-1} + g_{[2,1]}z^{M-2} + \cdots + g_{[M-1,1]} z + g_{[M,1]} \\ &+ g_{[1,2]}z^{M} + g_{[2,2]}z^{M-1} + \cdots + g_{[M-1,2]} z^2 + g_{[M,2]} z \\ &\qquad \vdots \\ &+ g_{[1,M]}z^{2M-2} + g_{[2,M]}z^{2M-3}\cdots + g_{[M-1,M]} z^{M} + g_{[M,M]}z^{M-1} \end{aligned} \end{equation*} f(z)=g[1,1]zM1+g[2,1]zM2++g[M1,1]z+g[M,1]+g[1,2]zM+g[2,2]zM1++g[M1,2]z2+g[M,2]z+g[1,M]z2M2+g[2,M]z2M3+g[M1,M]zM+g[M,M]zM1
由此可以看出 f ( z ) f(z) f(z) 中的阶数为 2 M − 2 2M-2 2M2,因此存在 M − 1 M-1 M1 对根,且每对根是相互共轭的关系。在理想情况下有 K K K 个根 z 1 , ⋯   , z K z_1, \cdots, z_K z1,,zK 分布在单位圆上,因此在现实情况中只需要求得上式的 K K K 个接近于单位圆上的根即可。对于 ULA,有:
θ i = arcsin ⁡ ( − λ 2 π d arg ⁡ { z i } ) , i = 1 , ⋯   , K \begin{equation*} \theta_i = \arcsin\left(-\frac{\lambda}{2\pi d} \arg \{ z_i \} \right), i = 1, \cdots, K \end{equation*} θi=arcsin(2πdλarg{zi}),i=1,,K
  在 matlab 代码实现中,需要利用前面步骤求解得到噪声子空间 U N \mathbf{U}_N UN 来构造 G N \mathbf{G}_N GN,然后通过 G N \mathbf{G}_N GN 中的元素来得到多项式 f ( x ) f(x) f(x) 的系数,最后利用 roots 函数对多项式求根,部分代码实现如下:

Gn = Un*Un';
% 提取多项式系数并对多项式求根
coe = zeros(1, 2*M-1);
for i = -(M-1):(M-1)
    coe(-i+M) = sum(diag(Gn,i));
end
r = roots(coe);                                       % 利用roots函数求多项式的根

  补充说明:root-MUSIC 算法与谱搜索方式的 MUSIC 算法原理是一样的,只不过是用关于 z z z 的矢量来代替导向矢量,从而用求根过程代替搜索过程。

3.2 算法步骤

  root-MUSIC 算法步骤如下(输入为阵列接收矩阵 X \mathbf{X} X):文章来源地址https://www.toymoban.com/news/detail-516792.html

  1. 计算协方差矩阵 R = 1 T X X H \mathbf{R} = \frac{1}{T} \mathbf{X}\mathbf{X}^H R=T1XXH
  2. R \mathbf{R} R 进行特征值分解,并对特征值进行排序,然后取得 M − K M-K MK 个较小特征值对应的特征向量来组成噪声子空间 U N \mathbf{U}_N UN
  3. 根据下式定义多项式 f ( z ) f(z) f(z)
    f ( z ) = z M − 1 p T ( z − 1 ) U N U N H p ( z ) \begin{equation*} f(z) = z^{M-1}\mathbf{p}^{T}(z^{-1})\mathbf{U}_N\mathbf{U}_N^H \mathbf{p}(z) \end{equation*} f(z)=zM1pT(z1)UNUNHp(z)
    并且求出多项式 f ( z ) f(z) f(z) 的根 { z i : i = 1 , ⋯   , K } \{z_i:i = 1,\cdots, K\} {zi:i=1,,K}
  4. 利用下式求得角度 { θ i : i = 1 , ⋯   , K } \{\theta_i: i = 1,\cdots, K\} {θi:i=1,,K}
    θ i = arcsin ⁡ ( − λ 2 π d arg ⁡ { z i } ) , i = 1 , ⋯   , K \begin{equation*} \theta_i = \arcsin\left(-\frac{\lambda}{2\pi d} \arg \{ z_i \} \right), i = 1, \cdots, K \end{equation*} θi=arcsin(2πdλarg{zi}),i=1,,K

3.3 代码实现

% root_music.m
clear;
clc;
close all;

%% 参数设定
c = 3e8;                                              % 光速
fc = 500e6;                                           % 载波频率
lambda = c/fc;                                        % 波长
d = lambda/2;                                         % 阵元间距,可设 2*d = lambda
twpi = 2.0*pi;                                        % 2pi
derad = pi/180;                                       % 角度转弧度
theta = [-20, 30]*derad;                              % 待估计角度
idx = 0:1:7; idx = idx';                              % 阵元位置索引

M = length(idx);                                      % 阵元数
K = length(theta);                                    % 信源数
T = 512;                                              % 快拍数
SNR = 0;                                              % 信噪比

%% 信号模型建立
S = randn(K,T) + 1j*randn(K,T);                       % 复信号矩阵S,维度为K*T
% A = exp(-1j*twpi*d*idx*sin(theta)/lambda);          % 方向矢量矩阵A,维度为M*K
A = exp(-1j*pi*idx*sin(theta));                       % 2d = lambda,直接忽略不写
X = A*S;                                              % 接收矩阵X,维度为M*T
X = awgn(X,SNR,'measured');                           % 添加噪声

%% root-MUSIC 算法
% 计算协方差矩阵
R = X*X'/T;
% 特征值分解并取得噪声子空间
[U,D] = eig(R);                                       % 特征值分解
[D,I] = sort(diag(D));                                % 将特征值排序从小到大
U = fliplr(U(:, I));                                  % 对应特征矢量排序,fliplr 之后,较大特征值对应的特征矢量在前面
Un = U(:, K+1:M);                                     % 噪声子空间
Gn = Un*Un';
% 提取多项式系数并对多项式求根
coe = zeros(1, 2*M-1);
for i = -(M-1):(M-1)
    coe(-i+M) = sum(diag(Gn,i));
end
r = roots(coe);                                       % 利用roots函数求多项式的根
r = r(abs(r)<1);                                      % 找出在单位圆里的根
[lamda,I] = sort(abs(abs(r)-1));                      % 挑选出最接近单位圆的K个根
Theta = r(I(1:K));
Theta = asin(-angle(Theta)/pi)/derad;                 % 计算信号到达方向角
Theta = sort(Theta).';
disp('估计结果:');
disp(Theta);

3.4 参考内容

  1. 张小飞,陈华伟,仇小锋.阵列信号处理及MATLAB实现[M].电子工业出版社,2015.
  2. 王永良.空间谱估计理论与算法[M].清华大学出版社,2004.
  3. 【CSDN】root-MUSIC算法
  4. 【CSDN】DOA算法1:MUSIC算法(二)

到了这里,关于【学习笔记】【DOA子空间算法】3 root-MUSIC 算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)

    功率谱:                              功率谱:                              功率谱:                                    由快拍信号 计算协方差矩阵 ,其中 ,为快拍长度;对上述的空间谱公式遍历各个角度,计算对应角度的导向

    2024年04月23日
    浏览(39)
  • 毫米波雷达DOA估计,包含3D-FFT,DBF,music算法三种测角算法原理

      毫米波雷达的目标角度估计,特别是角度分辨率的提高是雷达探测需要解决的核心问题,使用FFT(快速傅里叶变换)或者DBF(数字波束形成技术)做DOA估计是最简单且运算复杂度最低的方法,但是这两方法并不能实现超分辨,其角分辨率受限于阵列的孔径,music算法是实

    2024年02月03日
    浏览(62)
  • DOA估计 基于互质阵列的DOA估计

            传统阵列的配置方式是均匀线阵,该阵列要求相邻阵元的间距为半波长,易产生耦合效应,影响 DOA 估计精度。而稀疏阵列利用协方差矩阵构建差分共阵方式在虚拟域上生成虚拟阵列,并利用虚拟阵列实现波达方向角的估计。由于虚拟阵列的自由度不在局限于阵列

    2024年02月06日
    浏览(41)
  • TTS算法笔记:MusicLM- Generating Music From Text(AI生成音乐)

    摘要: 介绍了一个以文本作为条件,生成高保真、长时间片的音乐音频。比如文本为“由扭曲的吉他重复段伴奏的平静的小提琴旋律”,MusicLM可以可以根据文本条件,生成24kHz采样率,分钟级别的连续音乐音频。 从摘要中可以得知,这篇文章解决的根本问题其实可以非常简

    2024年02月12日
    浏览(52)
  • Apollo星火计划学习笔记——Apollo开放空间规划算法原理与实践

    Apollo星火计划课程链接如下 星火计划2.0基础课:https://apollo.baidu.com/community/online-course/2 星火计划2.0专项课:https://apollo.baidu.com/community/online-course/12     开放空间算法的配置主要在 valet_parking_config.pb.txt 中,分为4个部分: OPEN_SPACE_ROI_DECIDER 、 OPEN_SPACE_TRAJECTORY_PROVIDER 、 OPE

    2023年04月10日
    浏览(37)
  • DOA估计算法——Capon算法

            在理解Capon算法之前,我们有必要先了解波束形成的基本思想以及原理到底是什么。这有助于我们更好的理解Capon算法的思想。 图 1  如图1展示了均匀阵列波束导向的示意图。图中 wm 表示加权值,波速形成(DBF)的基本思想就是将各阵元输出进行加权求和,在一定时

    2024年02月02日
    浏览(43)
  • DOA估计算法——迭代自适应算法(IAA)

            迭代自适应法 (Iterative Adaptive Approach,IAA)估计算法最早由美国的电气工程师和数学家Robert Schmidt和Roy A. Kuc在1986年的一篇论文\\\"Multiple Emitter Location and Signal Parameter Estimation\\\"中首次提出了这一算法, IAA DOA 估计算法是一种用于无线通信和雷达系统中估计信号到达方向的

    2024年01月21日
    浏览(35)
  • unitary MUSIC 算法

      论文 A Unitary Transformation Method for Angle-of-Arrival Estimation 中提出了 unitary MUSIC 的算法,直译就是酉 MUSIC 算法,即酉变换 MUSIC 算法。该算法的目的是简化计算复杂度,将传统 MUSIC 算法中的复数 SVD 和复数网格搜索计算转化为实数计算。在学习 unitary MUSIC 之前需要理解 Hermiti

    2024年02月20日
    浏览(40)
  • 稀疏DOA估计的经典算法——l1-SVD算法

    文献\\\"A Sparse Signal Reconstruction Perspective for Source Localization With Sensor Arrays\\\"提出了一种稀疏表示的DOA定位算法,它属于On-Grid类算法的范畴。其核心要点有二:其一是,通过了奇异值(SVD)分解,把以大量快拍数衡量的信号模型,转换成以信源数衡量的低维信号模型;其二是,以二阶

    2024年02月01日
    浏览(45)
  • 【精选论文 | Capon算法与MUSIC算法性能的比较与分析】

    本文编辑:调皮哥的小助理 【正文】 首先说结论: 当信噪比(SNR)足够大时,Capon算法和MUSIC算法的空间谱非常相似,因此在SNR比较大时它们的性能几乎一样,当不同信号源的入射角度比较接近时,MUSIC算法的性能优于Capon,这也是MUSIC算法(或者说子空间类算法)被称为高分

    2024年02月11日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包