(c)代码如下:
close all;
clear all;
clc;
M=6;
L=8000;
N=2;
len=1;
d=len/2;
sigma=0.04;
angle=[pi/6,-pi/6];
A1=exp(1i*2*pi/len*((0:M-1)*d)*sin(angle(1)))';
A2=exp(1i*2*pi/len*((0:M-1)*d)*sin(angle(2)))';
A=[A1,A2];
S=[1*sin(pi/6*(1:L));1*sin(pi/3*(1:L))];
X=A*S+sqrt(sigma)*(randn(M,L)+1i*randn(M,L))/sqrt(2);
R=(X*X'*L);
[U,V]=eig(R);
[t,num]=sort(diag(V));
Pn=U(:,num(1:N));
theta=-pi*85/180:0.001:pi*85/180;
for i=1:length(theta)
a=exp(-1j*2*pi/len*((0:M-1)*d)*sin(theta(i)))';
W=a'*(Pn*Pn')*a;
Pmusic(i)=abs(1/W);
end
Pmusic=10*log10(Pmusic/max(Pmusic));
plot(theta*180/pi,Pmusic);
grid on;
axis([-85 85 -65 5]);
title('DOA估计');
xlabel('DOA');
ylabel('空间谱/dB');
运行结果如下: