该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
clc;
clear all ;
close all;
ima=sqrt(-1);
element_num=8; %阵元数
d_lamda=1/2; %阵元间距与波长的关系
theta=-90:0.5:90-0.3; %搜索范围
theta0=0; %三个信号源的来波方向
theta1=30;
theta2=60;
L=512; %采样单元数
for i=1:L;
amp0=1000*randn(1);
amp1=100*randn(1);
amp2=100*randn(1);
ampn=1;
x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...
amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...
amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...
ampn*(randn(element_num,1)+ima*randn(element_num,1));
end
Rx=1/L*x* x';
steer1=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')
steer2=exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')
steer3=exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')
C=[steer1 steer2 steer3];
F=[1 0 0]'; %把三个方向都作为来波方向
w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;
for j=1:length(theta);
a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');
f(j)=w'*a;
p(j)=1/(a'*inv(Rx)*a);
end
f=10*log10(abs(f)/(max(max(abs(f)))));
figure(1)
subplot(121)
plot(theta,f),grid on,hold on
plot(theta0,-20:0,'.')
plot(theta1,-20:0,'.')
plot(theta2,-20:0,'.')
xlabel('theta/o');
ylabel('F/dB');
title('Capon beamforming方向图')
axis([-90 90 -20 0]);%可为x轴和y轴设置一个极限范围
P=10*log10(abs(p)/(max(max(abs(p)))));
subplot(122)
plot(theta,P),grid on,hold on
plot(theta0,-20:0,'.')
plot(theta1,-20:0,'.')
plot(theta2,-20:0,'.')
xlabel('theta/o');
ylabel('功率/dB');
title('Capon beamforming功率谱')