📄 mdoa.m
字号:
clear;
M=16;%number of Array;
Snapshots=200;
Doa=[0 14 28 35];%Source's Doa
lambda=0.1;% Wavelength of Sources
d=0.5*lambda;%Spacing Sensor
S_x=[0:M-1]*d;%Sensor position of ULA
S_num=length(Doa);%number of Source
A=exp(-j*2*pi/lambda*S_x'*sin(Doa*pi/180));
snr=10;
n=1:Snapshots;
s1=0.015; % 四信号的频率
s2=0.05;
s3=0.02;
s4=0.035;
Sig=[1.3*cos(s1*n);1*sin(s2*n);1*sin(s3*n);1*sin(s4*n)];;%输入信号矢量
X=A*Sig;
X=awgn(X,snr,'measured');
R=X*X'/Snapshots;
[U,S,V]=svd(R);
subnoise=U(:,S_num+1:M);
R1=inv(R)*inv(1);
theta=[-90:0.1:90]*pi/180;
for t=1:length(theta)
Alf=exp(-j*2*pi/lambda*S_x'*sin(theta(t)));
P_music(t)=abs(1/(Alf'*subnoise*subnoise'*Alf));
P_capon(t)=1/(Alf'*R1*Alf);
Pbf(t)=Alf'*R*Alf/(Alf'*Alf);
end
h=[-90:0.1:90];
subplot(311)
plot(h,10*log10(P_music/max(P_music)));
axis([-100 100 -50 10]);
xlabel('入射角/(度)','fontsize',10)
ylabel('Pmusic/(db)','fontsize',10)
title('music算法')
grid on
subplot(312)
plot(h,10*log10(P_capon/max(P_capon)));
axis([-100 100 -50 10]);
xlabel('入射角/(度)','fontsize',10)
ylabel('Pcapon/(db)','fontsize',10)
title('capon算法')
grid on
subplot(313)
plot(h,10*log10(Pbf/max(Pbf)));
axis([-100 100 -50 10]);
xlabel('入射角/(度)','fontsize',10)
ylabel('Pbf/(db)','fontsize',10)
title('bartlett算法')
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -