clear;
clc;
%% 参数
N=16; %阵元数
kuaipai=200; %快拍数
lamda=1; %波长
SNR=0; %dB
SNR_zhi=10.^(SNR/10); %具体值
fangcha=sqrt(1./SNR_zhi);
M=3; %信号个数
jiaodu=[0 2 -10]; %三个角度
jiaodu=jiaodu'*pi/180; %弧度
theta=-90:0.1:90;
changdu=length(theta);
c=3e8;
k0=2*pi*c/lamda;
flag=1;
xishu=0.1;
color={'-b','--m','-.c','-r','--g','-.b','-k','-.y','-m','--c','-.r','-g','--b','-.k'};
color_biao=1;
while(flag)
d=lamda*xishu; %阵元间距
%% 构造信号
theta1=jiaodu(1);
theta2=jiaodu(2);
theta3=jiaodu(3);
time=exp(1j*(jiaodu+k0)*(0:kuaipai-1));
n=0:N-1;
s1=exp(-1j*2*pi.*n.*d*sin(theta1)/lamda);
s2=exp(-1j*2*pi.*n.*d*sin(theta2)/lamda);
s3=exp(-1j*2*pi.*n.*d*sin(theta3)/lamda);
s=[s1;s2;s3]';
z=s*time+fangcha*(randn(N,kuaipai)+1j*randn(N,kuaipai));
%% music
R=z*z'/kuaipai;
[EV,D]=eig(R);
dia=diag(D);
[heng,zong] = sort((dia));
U=EV(:,zong(1:N-M));
for i = 1:length(theta)
a=exp(-1j*2*pi.*n.*d*sin(theta(i)*pi/180)/lamda);
jilu=a*(U*U')*a';
P(i)=abs(1/jilu);
end
P = 10*log10(P); %dB
result=P';
%% 画图
plot(theta,result,color{color_biao});
hold on
xlabel('theta/°');
ylabel('P/dB');
legend('d/lamda=0.1','d/lamda=0.3','d/lamda=0.5','d/lamda=0.7','d/lamda=0.9','d/lamda=1.1','d/lamda=1.3');
xishu=xishu+0.2;
color_biao=color_biao+1;
if xishu>1.3
flag=0;
end
if color_biao>13
color_biao=1;
end
end
- 1
- 2
前往页