自适应波束形成与Matlab程序代码注解讲诉.docx

上传人:b****4 文档编号:5965541 上传时间:2023-05-09 格式:DOCX 页数:29 大小:408.37KB
下载 相关 举报
自适应波束形成与Matlab程序代码注解讲诉.docx_第1页
第1页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第2页
第2页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第3页
第3页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第4页
第4页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第5页
第5页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第6页
第6页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第7页
第7页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第8页
第8页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第9页
第9页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第10页
第10页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第11页
第11页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第12页
第12页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第13页
第13页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第14页
第14页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第15页
第15页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第16页
第16页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第17页
第17页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第18页
第18页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第19页
第19页 / 共29页
自适应波束形成与Matlab程序代码注解讲诉.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自适应波束形成与Matlab程序代码注解讲诉.docx

《自适应波束形成与Matlab程序代码注解讲诉.docx》由会员分享,可在线阅读,更多相关《自适应波束形成与Matlab程序代码注解讲诉.docx(29页珍藏版)》请在冰点文库上搜索。

自适应波束形成与Matlab程序代码注解讲诉.docx

自适应波束形成与Matlab程序代码注解讲诉

1.均匀线阵方向图

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=32;%阵元数为8

d_lamda=1/2;%阵元间距d与波长lamda的关系

theta=linspace(-pi/2,pi/2,200);

theta0=0;%来波方向

w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:

element_num-1]');

forj=1:

length(theta)

a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:

element_num-1]');

p(j)=w'*a;

end

patternmag=abs(p);

patternmagnorm=patternmag/max(max(patternmag));

patterndB=20*log10(patternmag);

patterndBnorm=20*log10(patternmagnorm);

figure

(1)

plot(theta*180/pi,patternmag);

gridon;

xlabel('theta/radian')

ylabel('amplitude/dB')

title([num2str(element_num)'阵元均匀线阵方向图','来波方向为'num2str(theta0*180/pi)'度']);

holdon;

figure

(2)

plot(theta,patterndBnorm,'r');

gridon;

xlabel('theta/radian')

ylabel('amplitude/dB')

title([num2str(element_num)'阵元均匀线阵方向图','来波方向为'num2str(theta0*180/pi)'度']);

axis([-1.51.5-500]);

 

(2)仿真结果

A.来波方向为0°

不归一化

归一化

B.来波方向为45°

不归一化

归一化

 

C.随着阵元数的增加,波束宽度变窄,分辨力提高,仿真图如下:

非归一化

归一化

不归一化

归一化

 

2.波束宽度与波达方向及阵元数的关系

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num1=16;

element_num2=128;

element_num3=1024;

lambda=0.1;

d=0.5*lambda;

theta=0:

0.5:

90;

forj=1:

length(theta)

fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lambda/(element_num1*d));

psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lambda/(element_num2*d));

beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lambda/(element_num3*d));

end

figure

plot(theta,fai,'r',theta,psi,'b',theta,beta,'g');

gridon;

xlabel('theta');

ylabel('widthinradians');

title('波束宽度与达波方向及阵元数目的关系');

legend('N=16','N=128','N=1024');

(2)仿真结果

结果

3.当阵元间距

时,会出现栅瓣,导致空间模糊

(1)仿真结果

非归一化

归一化

 

4.类似于时域滤波,天线方向图是最优权的傅立叶变换

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=32;

source_num=1;

d_lambda=0.5;

theta=linspace(-pi/2,pi/2,200);

theta0=0;

w=exp(imag*2*pi*d_lambda*sin(theta0)*[0:

element_num-1]');

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*sin(theta(j))*[0:

element_num-1]');

p(j)=w'*a;

end

patternmag=abs(p);

patternmagnorm=patternmag/max(max(patternmag));

patterndB=20*log10(patternmag);

patterndBnorm=20*log10(patternmagnorm);

figure

(1)

subplot(1,2,1);

plot(theta,patterndBnorm);

gridon;

xlabel('theta/radian');

ylabel('amplitude/dB');

axis([-2.02.0-500]);

subplot(1,2,2);

pfft=fftshift(fft(w,256));

pfftmag=abs(pfft);

pfftmagnorm=pfftmag/max(max(pfftmag));

pfftdB=20*log10(pfftmagnorm);

pfftdBnorm=20*log10(pfftmagnorm);

plot(linspace(-pi/2,pi/2,256),pfftdBnorm);

gridon;

xlabel('theta/radian');

ylabel('FFT_amplitude/dB');

axis([-2.02.0-500]);

 

(2)仿真结果

 

5.最大信噪比准则方向图和功率谱

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=8;%阵元数为8

d_lambda=0.5;%间距为半波长

theta=-90:

0.5:

90;%扫描范围

theta0=0;%来波方位

theta1=20;%干扰方向

L=512;%采样点数

fori=1:

L

amp0=10*randn

(1);

amp1=200*randn

(1);

ampn=1;s(:

i)=amp0*exp(imag*2*pi*0.5*sin(theta0*pi/180)*[0:

element_num-1]');j(:

i)=amp1*exp(imag*2*pi*0.5*sin(theta1*pi/180)*[0:

element_num-1]');n(:

i)=ampn*exp(randn(element_num,1)+imag*randn(element_num,1));

end

Rs=1/L*s*s';%信号自相关矩阵

Rnj=1/L*(j*j'+n*n');%干扰+噪声的自相关矩阵

[V,D]=eig(Rs,Rnj);%(Rs,Rnj)的广义特征值和特征向量

[D,I]=sort(diag(D));%特征向量排序

Wopt=V(:

I(8));%最优权矢量

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*sin(theta(j)*pi/180)*[0:

element_num-1]');

f(j)=Wopt'*a;

p(j)=a'*Rs*a+a'*Rnj*a;

end

F=20*log10(abs(f)/max(max(abs(f))));

P=20*log10(abs(p)/max(max(abs(p))));

subplot(1,2,1)

plot(theta,F);

gridon;

holdon;

plot(theta0,-80:

0,'.');

plot(theta1,-80:

0,'.');

xlabel('theta/0');

ylabel('FindB');

title('max-SNR方向图');

axis([-9090-800]);

holdon;

subplot(1,2,2);

plot(theta,P,'r');

gridon;

xlabel('theta/0');

ylabel('功率indB');

title('max-SNR功率谱');

gridon;

axis([-9090-800]);

(2)仿真结果

 

6.ASC旁瓣相消----MSE准则

(1)matlab程序

clc;

closeall;

clearall;

imag=sqrt(-1);

M=32;%辅助天线数目

d_lambda=0.5;%阵元间距

theta0=-30;%来波方向

theta1=60;%干扰方向

L=512;%采样单元数

s=zeros(1,512);%预划分一个区域

forii=1:

L

amp0=1*randn

(1);%信号的幅度随机产生,保证信号之间是不相关的

amp1=200*randn

(1);

ampn=1;

jam(:

ii)=amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

M-1]')+ampn*(randn(M,1)+imag*randn(M,1));%干扰+噪声

s(ii)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180))+amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180))+ampn*(randn(1,1)+imag*randn(1,1));%接收信号(信号+干扰+噪声)

s0(ii)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180));

end

Rx=1/L*jam*jam';

r_xd=1/L*jam*s';

Wopt=pinv(Rx)*r_xd;

delta=s0-(s-Wopt'*jam);

delta1=abs(mean(delta.^2)-(mean(delta)).^2);

theta=linspace(-pi/2,pi/2,200);

forjj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*sin(theta(jj))*[0:

M-1]');

f(jj)=Wopt'*a;

end

F=20*log10(abs(f)/max(max(abs(f))));

figure

(1)

plot(theta*180/pi,F);

gridon;

holdon;

plot(theta0,-50:

0,'.');

plot(theta1,-50:

0,'.');

xlabel('theta/°');

ylabel('F/dB');

title('MSE准则下的方向图');

axis([-9090-500]);

(2)仿真结果

 

7.线性约束最小方差(LCMV)准则

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=8;%阵元数

d_lambda=0.5;%阵元间距与波长的关系

theta=-90:

0.5:

90;%搜索范围

theta0=0;%三个信号源的来波方向

theta1=30;

theta2=60;

L=512;%采样单元数

fori=1:

L

amp0=10*randn

(1);

amp1=100*randn

(1);

amp2=10*randn

(1);

ampn=10;

x(:

i)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]')+amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]')+amp2*exp(imag*2*pi*d_lambda*sin(theta2*pi/180)*[0:

element_num-1]')+ampn*(randn(element_num,1)+imag*randn(element_num,1));

end

Rx=1/L*x*x';

steer1=exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]');

steer2=exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]');

steer3=exp(imag*2*pi*d_lambda*sin(theta2*pi/180)*[0:

element_num-1]');

C=[steer1steer2steer3];

F=[101]';%把三个方向都作为来波方向

w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*sin(theta(j)*pi/180)*[0:

element_num-1]');

f(j)=w'*a;

p(j)=1/(a'*inv(Rx)*a);

end

F=20*log10(abs(f)/(max(max(abs(f)))));

subplot(1,2,1)

plot(theta,F);

gridon;

holdon;

plot(theta0,-20:

0,'.');

plot(theta1,-20:

0,'.');

plot(theta2,-20:

0,'.');

xlabel('theta/°');

ylabel('F/dB');

title('Caponbeamforming方向图');

axis([-9090-200]);

P=20*log10(abs(p)/(max(max(abs(p)))));

subplot(1,2,2)

plot(theta,P);

gridon;

holdon;

plot(theta0,-20:

0,'.');

plot(theta1,-20:

0,'.');

plot(theta2,-20:

0,'.');

xlabel('theta/°');

ylabel('P/dB');

title('Caponbeamforming功率谱');

axis([-9090-200]);

(2)仿真结果

 

8.Caponbeamforming

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=8;%阵元数

d_lambda=0.5;%阵元间距与波长的关系

theta=-90:

0.5:

90;%搜索范围

theta0=0;%三个信号源的来波方向

theta1=20;

theta2=60;

L=1000;%采样单元数

fori=1:

L

amp0=10*randn

(1);

amp1=200*randn

(1);

amp2=200*randn

(1);

ampn=3;x(:

i)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]')+amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]')+amp2*exp(imag*2*pi*d_lambda*sin(theta2*pi/180)*[0:

element_num-1]')+ampn*(randn(element_num,1)+imag*randn(element_num,1));

end

Rx=1/L*x*x';

R=inv(Rx);

steer=exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]');

w=R*steer/(steer'*R*steer);%最优权矢量

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*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)))));

subplot(1,2,1)

plot(theta,F);

gridon;

holdon;

plot(theta0,-50:

0,'.');

plot(theta1,-50:

0,'.');

plot(theta2,-50:

0,'.');

xlabel('theta/°');

ylabel('F/dB');

title('Caponbeamforming方向图');

axis([-9090-500]);

P=20*log10(abs(p)/(max(max(abs(p)))));

subplot(1,2,2)

plot(theta,P);

gridon;

holdon;

xlabel('theta/°');

ylabel('P/dB');

title('Caponbeamforming功率谱');

axis([-9090-900]);

(2)仿真结果

 

9.不同方法估计协方差矩阵的Capon波束形成

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=8;%阵元数为8

d_lambda=0.5;%间距为半波长

theta=-90:

0.5:

90;%扫描范围

theta0=0;%来波方向

theta1=50;%干扰方向

L=1024;%采样单元数

fori=1:

L

amp0=10*randn

(1);

amp1=50*randn

(1);

ampn=0.5;

s(:

i)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]');

j(:

i)=amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]');

n(:

i)=ampn*exp(imag*2*pi*randn

(1)*[0:

element_num-1]');

end

Rx=1/L*(s+j+n)*(s+j+n)';%接收信号自相关矩阵

Rnj=1/L*(j+n)*(j+n)';%%干拢+噪声的自相关矩阵

e=exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]');

Wopt_Rx=inv(Rx)*e/(e'*inv(Rx)*e);%采用接收信号的权矢量

Wopt_Rnj=inv(Rnj)*e/(e'*inv(Rnj)*e);%采用干拢+噪声信号的权矢量

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*sin(theta(j)*pi/180)*[0:

element_num-1]');

f1(j)=Wopt_Rx'*a;

f2(j)=Wopt_Rnj'*a;

end

F1=20*log10(abs(f1)/max(max(abs(f1))));

F2=20*log10(abs(f2/max(max(abs(f2)))));

figure;

plot(theta,F1,theta,F2,'r');

gridon;

holdon;

plot(theta0,-50:

0,'.');

plot(theta1,-50:

0,'.');

xlabel('theta/°');

ylabel('F(1,2)/dB');

title('不同方法估计协方差矩阵的Capon波束形成');

axis([-9090-600]);

(2)仿真结果

 

10.多点约束的Capon波束形成和方向图

(1)matlab程序

clc;

clearall;

closeall;

imag=sqrt(-1);

element_num=8;

d_lambda=0.5;

theta=-90:

0.3:

90;

theta0=0;

theta1=20;

theta2=50;

L=512;

Rx=zeros(element_num,element_num);%产生协方差矩阵

fori=1:

L

amp0=10*randn

(1);

amp1=10*randn

(1);

amp2=50*randn

(1);

ampn=0.5*randn

(1);%噪声的幅度随机产生,保证噪声与信号之间是不相关的

j(:

i)=amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]')+amp2*exp(imag*2*pi*d_lambda*sin(theta2*pi/180)*[0:

element_num-1]')+ampn*exp(imag*2*pi*randn

(1)*[0:

element_num-1]');

x(:

i)=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]')+j(:

i);%表示接收信号

end

Rx=1/L*x*x';

R=inv(Rx);

w=amp0*exp(imag*2*pi*d_lambda*sin(theta0*pi/180)*[0:

element_num-1]')+amp1*exp(imag*2*pi*d_lambda*sin(theta1*pi/180)*[0:

element_num-1]')+amp2*exp(imag*2*pi*d_lambda*sin(theta2*pi/180)*[0:

element_num-1]');

forj=1:

length(theta)

a=exp(imag*2*pi*d_lambda*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*log1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2