水声方位估计 - MUSIC算法

算法基本思想

算法的基本思想是对任意阵列输出数据的协方差矩阵进行特征值分解,从而得到与信号分量相对应的信号子空间和与信号分量相正交的噪声子空间,然后利用这两个子空间的正交性构造空间谱函数,通过峰值搜素,估测信号的角度。

基于 MUSIC 算法的 MATLAB 仿真

% DOA estimation by MUSIC 
clear all
close all
derad = pi/180;             % deg -> rad
radeg = 180/pi;
twpi = 2*pi;
kelm = 8;                   % 阵列数量
dd = 0.5;                   % space 
d=0:dd:(kelm-1)*dd;         % 
iwave = 3;                  % number of DOA
theta = [10 30 90];         % 角度
snr = 10;                   % input SNR (dB)
n = 500;                    % 
A=exp(-j*twpi*d.'*sin(theta*derad));%%%% direction matrix
S=randn(iwave,n);
X=A*S;
X1=awgn(X,snr,'measured');
Rxx=X1*X1'/n;
InvS=inv(Rxx); 
[EV,D]=eig(Rxx);
EVA=diag(D)';
[EVA,I]=sort(EVA);
EVA=fliplr(EVA);
EV=fliplr(EV(:,I));

% MUSIC
for iang = 1:361
        angle(iang)=(iang-181)/2;
        phim=derad*angle(iang);
        a=exp(-j*twpi*d*sin(phim)).';
        L=iwave;    
        En=EV(:,L+1:kelm);
        SP(iang)=(a'*a)/(a'*En*En'*a);
end
   
figure()
SP=abs(SP);
SPmax=max(SP);
SP=10*log10(SP/SPmax);
h=plot(angle,SP);
set(h,'Linewidth',2)
xlabel('angle (degree)')
ylabel('magnitude (dB)')
axis([-90 90 -60 0])
set(gca, 'XTick',[-90:30:90])
grid on  

结果

请添加图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值