波束形成 Matlab程序

7. %线性约束最小方差(LCMV)准则 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=10*randn(1); amp1=100*randn(1); amp2=10*randn(1); ampn=10;

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 1]'; %把三个方向都作为来波方向 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功率谱') 仿真图如下:

8. êpon beamforming Clc;

clear all ; close all; ima=sqrt(-1);

element_num=8; %阵元数

d_lamda=1/2; %阵元间距与波长的关系 theta=-90:0.5:90; %范围 theta0=0; %来波方向 theta1=20; %干扰方向 theta2=60; %干扰方向 L=1000; %采样单元数

for i=1:L;

amp0=10*randn(1);%信号的幅度随机产生,保证信号之间是不相关的 amp1=200*randn(1); amp2=200*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]')+... 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);êpon最优权矢量 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(max(abs(f)))));

P=20*log10(abs(p)/(max(max(abs(p)))));%此处是功率的对数形式 Figure;

subplot(121)

plot(theta,F),grid on,hold on plot(theta0,-50:0,'.') plot(theta1,-50:0,'.') plot(theta2,-50:0,'.') xlabel('theta/o'); ylabel('F/dB');

title('Capon beamforming方向图') axis([-90 90 -50 0]); subplot(122)

plot(theta,P),grid on xlabel('theta/o'); ylabel('功率/dB');

title('Capon beamforming功率谱') 仿真图如下:

联系客服:779662525#qq.com(#替换为@)