PUMA:DOA估计模式的改进实现附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电子书和数学建模资料

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值