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

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

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

到达方向(DOA)估计是许多应用中的重要问题。实际上,由于相干信号的发生和/或当可用快照的数量较小时,准确地找到DOA是一个挑战。此问题通过新的增强的模态分析主奇异矢量利用(EPUMA)DOA估计方法重新审视,该方法通过首先为$ K $源生成$(P + K)$ DOA候选对象来提高阈值性能,其中$ Pgeq K $,然后明智地从中选择$ K $。从理论上推导了EPUMA的渐近方差,并提供了数值结果来验证渐进分析并说明EPUMA的实际优点。

⛄ 部分代码

clc;clear;close all;


%% If you find the code useful, please cite our paper

% 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.

% C. Qian, L. Huang, N. D. Sidiropoulos and H. C. So, "Enhanced PUMA for direction-of-arrival estimation and its performance analysis," IEEE Transactions on Signal Processing, vol.64, no.16, pp.4127-4137, 2016.

%%


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');

⛄ 运行结果

⛄ 参考文献

% 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.

% C. Qian, L. Huang, N. D. Sidiropoulos and H. C. So, "Enhanced PUMA for direction-of-arrival estimation and its performance analysis," IEEE Transactions on Signal Processing, vol.64, no.16, pp.4127-4137, 2016.

[1]钱诚. 相干信源波达方向估计中的若干问题研究[D]. 哈尔滨工业大学.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
7天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
7天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
87 14
|
7天前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
|
9天前
|
算法 计算机视觉
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
|
9天前
|
编解码 人工智能 算法
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
|
9天前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
|
9天前
|
机器学习/深度学习 传感器 边缘计算
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
|
9天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
9天前
|
运维 算法
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
|
7天前
|
机器学习/深度学习 传感器 算法
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)
【裂纹检测】检测和标记图片中的裂缝(Matlab代码实现)

热门文章

最新文章