波束形成Matlab程序0314195429.docx
《波束形成Matlab程序0314195429.docx》由会员分享,可在线阅读,更多相关《波束形成Matlab程序0314195429.docx(23页珍藏版)》请在冰豆网上搜索。
波束形成Matlab程序0314195429
1•均匀线阵方向图
%8阵元均匀线阵方向图,来波方向为0度
clc;
clearall;
closeall;
imag=sqrt(_1);
element_num=8;%阵元数为8
d」amda=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*dl_lamda*sin(theta(j))*[0:
element_num-1]');p(j)=w'*a;
end
figure;
plot(theta,abs(p)),gridon
xlabel('theta/radian')
ylabel('amplitude')
title('8阵元均匀线阵方向图')
8阵元均匀线阵方向图
Bpn一一-dluE
Ii!
I一・T
-1-0.500511.52
theta/radian
E3阵元均匀线阵为向團・求液方向为找度
当来波方向为45度时,仿真图如下:
8阵元均匀线阵方向图如下,来波方向为0度,20log(dB)
□阵元均勺线阵方向图“来披方同为0度
40
30
20
10
0
随着阵元数的增加,波束宽度变窄,分辨力提高:
仿真图如下:
N=
liA4IIIl>VF
|i»4fi|4
l<1kri
11V4
*■・■!
1114
L••
r八…一…f…厂*■”*■*"]
III
・■
I|>1
1・F
[1■K
■|I4
・
11II
■I■1
I»1I
If
11ll
1V1
丄■■■■■」■・L■■■■■■■■It—■■■■■■L■■■■■■■「
iT7
M114
idii4
1114
1114
L■■■■■■*■lL■■■■■■■■it■■■■■■■■丄
i|i
ItIj
»t4
*•*
■i
1JL9Ii|
»Jii■i
lii
246*1*06005115
theta^radian
*
2.波束宽度与波达方向及阵元数的关系
clc
clearall
closeall
ima=sqrt(-1);
element_num1=16;%阵元数
element_num2=128;
element_num3=1024;
lamda=0.03;%波长为0.03米
d=1/2*lamda;%阵元间距与波长的关系theta=0:
0.5:
90;
forj=1:
length(theta);fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num1*d));psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num2*d));beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num3*d));
end
figure;plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),gridonxlabel('theta');
ylabel('Widthinradians')
title('波束宽度与波达方向及阵元数的关系')仿真图如下:
波束宽度与波达方向及阵元数的关系
0.7
1
06
匸J
o.
3-0
20
50
3eth
4
70
60
90
3.当阵元间距
d/2
时,会出现栅瓣,导致空间模糊。
仿真图如下:
8P£apj三CEe
lamda为"2液长
-1012
theta/radian
lamda为09咅波长
4.类似于时域滤波,天线方向图是最优权的傅立叶变换
仿真程序和仿真图如下:
clcclearall
closeall
ima=sqrt(-1);
element_num=32;%阵元数
source_num=1;%信源数
d_lamda=1/2;%阵元间距与波长的关系
theta=linspace(-pi/2,pi/2,200);
thetaO=O;%来波方向
w=exp(ima*2*pi*d_lamda*sin(theta0)*[0:
element_num-1]');forj=1:
length(theta);
a=exp(ima*2*pi*d_lamda*sin(theta(j))*[0:
element_num-1]');p(j)=w'*a;
end
figure;
subplot(1,2,1)
plot(theta,abs(p)),gridonxlabel('theta/radian')ylabel('amplitude')title('按定义的方向图')pfft=fftshift(fft(w,128));
subplot(1,2,2)
plot(linspace(-pi/2,pi/2,128),abs(pfft)),gridonxlabel('theta/radian')ylabel('FFT_amplitude')title('最优权的傅里叶变换')
抿定史的方向图
35
30
最优权的傅里叶变摄
a
>i
a
.……J…….j
iii
1I
[I
1:
£3*
4
i
q
4
i
[|
4
■1
ci
4
4
■Z1J
15
"-1=
4
■I
4
1i
■I
4
'■"'■■"""■I"
4
ii
4
!
l
H
■1
»
i
■
>ii
4
■i
LI
!
i
4
10
c
*
w[|
4
1-i
0
2-1□12
5.%最大信噪比准则方向图和功率谱
clc;clearall;closeall;ima=sqrt(-1);
element_num=8;
d_lamda=1/2;
theta=-90:
0.5:
90;
theta0=0;
%阵元数为8
%间距为半波长%范围%来波方向
theta1=20;
%干扰方向
L=512;%采样单元数
fori=1:
L
amp0=10*randn
(1);
amp1=200*randn
(1);
ampn=1;
s(:
i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:
element_num-1]');
j(:
i)=amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:
element_num-1]');n(:
i)=ampn*(randn(element_num,1)+ima*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(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:
element_num-1]');f(j)=Wopt'*a;
p(j)=a'*Rs*a+a'*Rnj*a;
endF=20*log10(abs(f)/max(max(abs(f))));P=20*log10(abs(p)/max(max(abs(p))));
subplot(121)plot(theta,F);gridon;holdonplot(theta0,-50:
0,'.');plot(theta1,-50:
0,'.')xlabel('theta/0');ylabel('FindB');
title('max-SNR方向图');
axis([-9090-500]);
holdon
subplot(122)plot(theta,P,'r');gridon
xlabel('theta/O');ylabel('功率indB');
title('max-SNR功率谱')
仿真图如下:
0
-10
-20
-30
轻-4Q
B©
-so
*70
-80
-90
-100-50flSO100
the?
l屮口
6.
%ASC旁瓣相消----
MSE准则
clc;closeall;clearall
ima=sqrt(-1);
M=32;
%辅助天线的数目
d_lamda=.5;
theta0=-30;
%来波方向
theta仁60;
%干扰方向
L=512;
%米样单兀数
s=zeros(1,512);
%预划分一个区域
forii=1:
L;
ampO=1*randn
(1);%信号的幅度随机产生,保证信号之间是不相关的
amp1=200*randn
(1);
ampn=1;
jam(:
ii)=amp1*exp(ima*2*pi*0.5*sin(theta1*pi/180)*[0:
M-1]')+ampn*(randn(M,1)
+ima*randn(M,1));%干扰+噪声
s(ii)=amp0*exp(ima*2*pi*0.5*sin(theta0*pi/180))+amp1*exp(ima*2*pi*0.5*sin(theta1*pi/180))+ampn*(randn(1,1)+ima*randn(1,1));%接收信号(信号+干扰+噪声)
s0(ii)=amp0*exp(ima*2*pi*0.5*sin(theta0*pi/180));
end
%噪声自相关矩阵,相当于X(t)
Rx=1/L*jam*jam';
r_xd=1/L*jam*s';
Wopt=pinv(Rx)*r_xd;
delta=s0-(s-Wopt'*jam);
delta仁abs(mean(delta42)-(mean(delta)).A2)%方差
theta=linspace(-pi/2,pi/2,200);
forjj=1:
length(theta)a=exp(ima*2*pi*5*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/o');
ylabel('F/dB');
title('MSE准则下的方向图')
axis([-9090-500]);%可为x轴和y轴设置一个极限范围
仿真图如下:
「胎E准则下的方向图
theta/c
7.%线性约束最小方差(LCMV)准则clc;
clearall;
closeall;
ima=sqrt(-1);
element_num=8;
%阵元数
theta=-90:
0.5:
90-0.3;%搜索范围
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(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=[steer1steer2steer3];
F=[101]';%把三个方向都作为来波方向
w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;
forj=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),gridon,holdon
plot(theta0,-20:
0,'.')
plot(theta1,-20:
0,'.')
plot(theta2,-20:
0,'.')
xlabel('theta/o');
ylabel('F/dB');
title('Caponbeamforming方向图')
axis([-9090-200]);%可为x轴和y轴设置一个极限范围
P=10*log10(abs(p)/(max(max(abs(p)))));subplot(122)
plot(theta,P),gridon,holdonplot(theta0,-20:
0,'.')plot(theta1,-20:
0,'.')plot(theta2,-20:
0,'.')xlabel('theta/o');
ylabel('功率/dB');
title('Caponbeamforming功率谱')
仿真图如下:
0
4
theta/o
6
-8
-10
■12
■14
■16
-ie
-S
C叩onbeamfiornning功率谱
0
9询百
-30
-100-600
theta/g
8.%CaponbeamformingClc;
clearall;
closeall;
ima=sqrt(-1);
element_num=8;
%阵元数
d_lamda=1/2;
%阵元间距与波长的关系
theta=-9O:
O.5:
9O;
%范围
thetaO=O;
%来波方向
theta1=2O;
%干扰方向
theta2=6O;
%干扰方向
L=1000;%采样单元数
fori=1:
L;
ampO=1O*randn⑴;%信号的幅度随机产生,保证信号之间是不相关的
amp1=200*randn
(1);
amp2=2OO*randn
(1);
ampn=3;
x(:
i)=ampO*exp(ima*2*pi*1/2*sin(thetaO*pi/18O)*[O:
element_num-1]')+...
amp1*exp(ima*2*pi*1/2*sin(theta1*pi/18O)*[O:
element_num-1]')+...
amp2*exp(ima*2*pi*1/2*sin(theta2*pi/18O)*[O:
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(thetaO*pi/18O)*[O:
element_num-1]');
w=R*steer/(steer'*R*steer);%Capon最优权矢量
forj=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),gridon,holdon
plot(theta0,-50:
0,'.')
plot(theta1,-50:
0,'.')
plot(theta2,-50:
0,'.')
xlabel('theta/o');
ylabel('F/dB');
title('Caponbeamforming方向图')
axis([-9090-500]);
subplot(122)
plot(theta,P),gridon
xlabel('theta/o');
ylabel('功率/dB');
title('Caponbeamforming功率谱')
仿真图如下:
Capoilb-eamforming方向冒
5005C
th&ta/o
Caponb朋nifoiming功率4普
theta/o
9.%不同方法估计协方差矩阵的Capon波束形成clc;
clearall;closeall;ima=sqrt(-1);
element_num=8;%阵元数为8
theta=-90:
0.5:
90;
%范围
theta0=0;%来波方向
theta1=50;%干扰方向
L=512;%采样单元数
fori=1:
L
amp0=10*randn
(1);
amp1=50*randn
(1);
ampn=0.5;
s(:
i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:
element_num-1]');
j(:
i)=amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:
element_num-1]');n(:
i)=ampn*exp(ima*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(ima*2*pi*d_lamda*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(ima*2*pi*d_lamda*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/0');ylabel('F(1,2)/dB');
title('不同方法估计协方差矩阵的Capon波束形成');
axis([-9090-500]);
仿真图如下:
theia'J
10.%多点约束的
clc;
clearall;closeall;
Capon波束形成和方向图
ima=sqrt(-1);
element_num=8;
%阵元数
d_lamda=1/2;
%阵元间距与波长的关系
theta=-90:
0.3:
90;
%搜索范围
theta0=0;
%来波方向
theta1=20;
%干扰方向
theta2=50;
%干扰方向
L=512;
%米样单兀数
Rx=zeros(element_num,element_num);%P生协方差矩阵fori=1:
L;
amp0=10*randn
(1);
amp1=10*randn
(1);
amp2=50*randn
(1);
namp=0.5*randn
(1);%噪声的幅度随机产生,保证噪声与信号之间是不相关的
J(:
i)=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]')+...
namp*exp(ima*2*pi*randn
(1)*[0:
element_num-1]');x(:
i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:
element_num-1]')+...
J(:
i);%表示接收信号
end
Rx=Rx+1/L*x*x';
R=inv(Rx);
w=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:
element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi