Capon 波束形成matlab仿真(附源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Capon波束形成
阵列N=16,信号
0-30
θ︒
=,干扰为
160
θ︒=,
219
θ︒
=,
345
θ︒
=,干扰功率分别为:40dB,35dB,50dB。Capon波束形成后的方向图和功率谱如下:
为了比较接收数据直接估计噪声协方差矩阵和利用干扰+噪声估计协方差矩阵的Capon 波束形成的差异,进行如下仿真:
可以看出利用干扰+噪声估计协方差矩阵的方向图性能较优于接收数据直接估计噪声协方差矩阵的方向图。
代码:
clc;
clear all ;
close all;
ima=sqrt(-1);
element_num=8; %阵元数
d_lamda=1/2; %阵元间距与波长的关系
theta=-90:0.5:90; %范围
theta0=-30; %来波方向
theta1=60; %干扰方向1
theta2=19; %干扰方向2
theta3=45; %干扰方向3
L=1000; %采样单元数
for i=1:L;
amp0=10*randn(1);%信号的幅度随机产生,保证信号之间是不相关的amp1=100*randn(1);%输入阵列的噪声
amp2=sqrt(10^3.5)*randn(1);%输入阵列的噪声
amp3=sqrt(10^5)*randn(1);%输入阵列的噪声
ampn=3;%噪声
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]')+...
amp3*exp(ima*2*pi*1/2*sin(theta3*pi/180)*[0:element_num-1]')+...
ampn*(randn(element_num,1)+ima*randn(element_num,1));
end
Rx=1/L*x* x';
R=inv(Rx);
steer=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]');
w=R*steer/(steer'*R*steer);%Capon最优权矢量
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'*R*a);
end
F=20*log10(abs(f)/(max(abs(f))));
P=20*log10(abs(p)/(max(abs(p))));%此处是功率的对数形式
figure;
% subplot(121)
plot(theta,F),grid on,hold on
plot(theta0,-80:0,'.')
plot(theta1,-80:0,'.')
plot(theta2,-80:0,'.')
plot(theta3,-80:0,'.')
xlabel('theta/o');
ylabel('F/dB');
title('Capon beamforming方向图') % axis([-90 90 -50 0]);
% subplot(122)
figure;
plot(theta,P),grid on
xlabel('theta/o');
ylabel('功率/dB');
title('Capon beamforming功率谱')