PUMA:DOA估计模式的改进实现(Matlab代码实现)

简介: PUMA:DOA估计模式的改进实现(Matlab代码实现)

💥1 概述

文献来源:

下载链接:PUMA: An Improved Realization of MODE for DOA Estimation | IEEE Journals & Magazine | IEEE Xplore

方向估计(MODE)方法具有吸引人的优势,例如渐近效率,计算复杂度适中,并且在处理相干信号方面具有出色的性能,这是传统的基于子空间的方法所不具备的。然而,MODE对根多项式系数的对称性采用了额外的假设和约束,这可能会导致在低信噪比/小样本量的情况下严重的性能下降,因为任何估计误差都会因对称性而放大两次。此外,MODE 的标准实现没有用于更新其估计值的封闭式解决方案。本文证明了MODE的优化问题等价于模态分析的主特征向量利用(PUMA)算法。我们表明,具有闭式解的PUMA,不依赖于对系数的任何额外假设和约束,是最小化相同成本函数的比MODE更好的替代项。我们进行了广泛的仿真结果来支持我们的观点。


到达方向(DOA)估计是许多应用的基本阵列处理问题,例如: 雷达[1]、声纳[2]和无线 通信[3],[4]。它一直是 在过去的四十年中进行了很好的研究,产生了许多高效和准确的算法[5]-[22]。


其中,最大似然(ML)[5]方法能够提供 有效的DOA估计,但以巨大的复杂性为代价,这主要是由于多维搜索。 尽管可以应用牛顿方法等优化替代方法来避免搜索步骤,但全局 由于 ML 目标函数是非凸的,因此不能保证收敛性。基于子空间的DOA估计算法 可以在分辨率和计算复杂度之间提供良好的权衡,并已被广泛研究。 特别是,多重信号分类(MUSIC)[6]和估计 通过旋转不变性技术(ESPRIT)[7]AS的信号参数 亚空间方法的代表因其简单性和高精度而引起了极大的兴趣,并且 他们的许多变体[8]-[18]后来被开发出来。例如 MUSIC算法的计算效率修改已被设计[14]-[18]。 然而,当出现相干/高相关信号时,这些算法的性能会下降,因此需要 退相干技术,例如空间平滑(SS)[19]或 向前-后向SS(FBSS)[20],但代价是丢失阵列 孔径。特别是,已经提出了一个实值版本的root-MUSIC,它被命名为单一的root-MUSIC[18]。该算法利用了制服的中心埃尔米特性质 线性阵列 (ULA) 将复值数据转换为真实空间。此过程等效于执行 一步向前-向后平滑到样本协方差矩阵,因此它最多可以处理两个相干信号。 但是,当有两个以上的相干信号时,酉根音乐算法无法正常工作。


与MUSIC和ESPRIT相比,方向估计(MODE)[21]-[22]的方法非常有趣,因为它比MUSIC具有吸引人的优势 和ESPRIT。其中包括以下内容。


📚2 运行结果

部分代码:

M = 10;
N = 50;
DOA = [-5, 2, 12];
K = length(DOA);
SNR = linspace(-10,6,11);
nT = 100;
for iS = 1:length(SNR)
    snr = SNR(iS);
    for iT = 1:nT
        if rem(iT,nT/2) == 0
            fprintf( 'n = %d, Trials = %d, total = %d\n',...
                iS, iT, (iS-1)*nT+iT );
        end
        x = StatSigGenerate(M, N, DOA, snr*ones(1,K));
        doa1(:,iT) = EPUMA(x, K, K, 3);
        doa2(:,iT) = EPUMA(x, K, K+1, 3);
        doa3(:,iT) = rMUSIC(x, K, 'FBSS', 2);
        [doa4(:,iT),doa5(:,iT)] = MODEX(x, K);
    end
    RMSE1(iS) = rmse(doa1, DOA);
    RMSE2(iS) = rmse(doa2, DOA);
    RMSE3(iS) = rmse(doa3, DOA);
    RMSE4(iS) = rmse(doa4, DOA);
    RMSE5(iS) = rmse(doa5, DOA);
    [x, A, R_idl, Rs] = StatSigGenerate(M, N, DOA, snr*ones(1,K));
    CRB(iS) = crbdet_w(A,R_idl,Rs,DOA,N,1)*(180/pi)^2;
end
mz = 8;
lw = 2;
figure
semilogy(SNR, RMSE1.^0.5, '-p', 'markersize', mz, 'linewidth', 2); hold on;
semilogy(SNR, RMSE2.^0.5, '-o', 'markersize', mz, 'linewidth', 2); 
semilogy(SNR, RMSE3.^0.5, '->', 'markersize', mz, 'linewidth', 2);
semilogy(SNR, RMSE4.^0.5, '-*', 'markersize', mz, 'linewidth', 2)
semilogy(SNR, RMSE5.^0.5, '-*', 'markersize', mz, 'linewidth', 2)
semilogy(SNR, CRB.^0.5, 'k', 'linewidth', 2)
xlabel('SNR (dB)'); ylabel('RMSE (degree)');
legend('PUMA', 'EPUMA', 'root-MUSIC', 'MODEX', 'MODE', 'CRB');
M = 10;
N = 50;
DOA = [-5, 2, 12];
K = length(DOA);
SNR = linspace(-10,6,11);
nT = 100;
for iS = 1:length(SNR)
    snr = SNR(iS);
    for iT = 1:nT
        if rem(iT,nT/2) == 0
            fprintf( 'n = %d, Trials = %d, total = %d\n',...
                iS, iT, (iS-1)*nT+iT );
        end
        x = StatSigGenerate(M, N, DOA, snr*ones(1,K));
        doa1(:,iT) = EPUMA(x, K, K, 3);
        doa2(:,iT) = EPUMA(x, K, K+1, 3);
        doa3(:,iT) = rMUSIC(x, K, 'FBSS', 2);
        [doa4(:,iT),doa5(:,iT)] = MODEX(x, K);
    end
    RMSE1(iS) = rmse(doa1, DOA);
    RMSE2(iS) = rmse(doa2, DOA);
    RMSE3(iS) = rmse(doa3, DOA);
    RMSE4(iS) = rmse(doa4, DOA);
    RMSE5(iS) = rmse(doa5, DOA);
    [x, A, R_idl, Rs] = StatSigGenerate(M, N, DOA, snr*ones(1,K));
    CRB(iS) = crbdet_w(A,R_idl,Rs,DOA,N,1)*(180/pi)^2;
end
mz = 8;
lw = 2;
figure
semilogy(SNR, RMSE1.^0.5, '-p', 'markersize', mz, 'linewidth', 2); hold on;
semilogy(SNR, RMSE2.^0.5, '-o', 'markersize', mz, 'linewidth', 2); 
semilogy(SNR, RMSE3.^0.5, '->', 'markersize', mz, 'linewidth', 2);
semilogy(SNR, RMSE4.^0.5, '-*', 'markersize', mz, 'linewidth', 2)
semilogy(SNR, RMSE5.^0.5, '-*', 'markersize', mz, 'linewidth', 2)
semilogy(SNR, CRB.^0.5, 'k', 'linewidth', 2)
xlabel('SNR (dB)'); ylabel('RMSE (degree)');
legend('PUMA', 'EPUMA', 'root-MUSIC', 'MODEX', 'MODE', 'CRB');


🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]C. Qian, L. Huang, M. Cao, H. C. So and J. Xie, "PUMA: An improved realization of MODE for DOA estimation," IEEE Transactions on Aerospace and Electronic Systems, vol. 53, no. 5, pp. 2128-2139, 2017.

[2]The code compares two algorithms, i.e., MODE and PUMA, for DOA estimation. It shows that PUMA and MODE are two different solvers for the same optimization problem, but PUMA works much better than MODE. MODE even does not work for a single-source DOA.  

相关文章
|
3月前
|
编解码 算法 数据挖掘
基于MUSIC算法的六阵元圆阵DOA估计matlab仿真
该程序使用MATLAB 2022a版本实现基于MUSIC算法的六阵元圆阵DOA估计仿真。MUSIC算法通过区分信号和噪声子空间,利用协方差矩阵的特征向量估计信号到达方向。程序计算了不同角度下的MUSIC谱,并绘制了三维谱图及对数谱图,展示了高分辨率的DOA估计结果。适用于各种形状的麦克风阵列,尤其在声源定位中表现出色。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
247 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
146 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
116 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
算法 安全 数据库
基于结点电压法的配电网状态估计算法matlab仿真
**摘要** 该程序实现了基于结点电压法的配电网状态估计算法,旨在提升数据的准确性和可靠性。在MATLAB2022a中运行,显示了状态估计过程中的电压和相位估计值,以及误差随迭代变化的图表。算法通过迭代计算雅可比矩阵,结合基尔霍夫定律解决线性方程组,估算网络节点电压。状态估计过程中应用了高斯-牛顿或莱文贝格-马夸尔特法,处理量测数据并考虑约束条件,以提高估计精度。程序结果以图形形式展示电压幅值和角度估计的比较,以及估计误差的演变,体现了算法在处理配电网状态估计问题的有效性。
|
7月前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
128 8
|
5月前
【光波电子学】MATLAB绘制光纤中线性偏振模式LP之单模光纤的电场分布(光斑)
该文章介绍了如何使用MATLAB绘制单模光纤中线性偏振模式LP₀₁的电场分布,并提供了相关的数学公式和参数用于模拟光纤中的光斑分布。
60 0
|
7月前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
74 0
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章