matlab仿真程序,基于均匀线阵的music算法。随这snr的变化rsme情况

clear all
clc
tic
%%%%参数设定
M=8;
N=128;
doa=[0 20 40]/180*pi;
P=length(doa);
f0=1000;
c=1500;
lambda=c/f0;d=lambda/2;
snr=-10:2:30;
PP=zeros(length(snr),361);
%%%%%%%阵列流型A %%%%%%%
for k=1:P
A(:,k)=exp(-j*2*pi*d*[0:M-1]'*sin(doa(k))/lambda);
end
for jj=1:length(snr)
%信源模型建立
for k=1:P
S(k,:)=sqrt(10.^(snr(jj)/10))*(randn(1,N)+j*randn(1,N));
end
%接收信号模型建立
X=A*S+1/sqrt(2)*(randn(M,N)+j*randn(M,N));
%协方差矩阵特征值分解得到噪声子空间
R=X*X'/N;
[V,D]=eig(R);
UN=V(:,1:M-P);
%%%%%%%谱峰搜索%%%%%%%
theta=-90:0.5:90;
for iii=1:length(theta)
a=exp(-j*2*pi*d*(0:M-1)'*sin(theta(iii)/180*pi)/lambda);
Pmusic(iii)=abs(1/(a'*UN*UN'*a));
end
Pmusic=10*log10(Pmusic/(max(Pmusic)+eps));
PP(jj,:)=Pmusic;
end
figure(1)
mesh(theta,snr,PP)
xlabel('theta/degree')
ylabel('snr/dB')
zlabel('Pmusic/dB')
title('spectrum')
grid on
toc
上面这段代码是一个music算法,要做出怎么样的修改?
计算得到的实际波达角是多少啊?

对谱函数Pmusic进行排序,并前P个最大值的原索引,找到对应的角度值

MUSIC算法是通过谱峰搜索,即一个for循环的方式对角度进行估计的,也可以看成对一个范围的遍历,极大值点就是入射角度