您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 波束形成-Matlab程序
1.均匀线阵方向图%8阵元均匀线阵方向图,来波方向为0度clc;clearall;closeall;imag=sqrt(-1);element_num=8;%阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=linspace(-pi/2,pi/2,200);theta0=45/180*pi;%来波方向(我觉得应该是天线阵的指向)%theta0=0;%来波方向w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:element_num-1]');forj=1:length(theta)%(我认为是入射角度,即来波方向,计算阵列流形矩阵A)a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]');p(j)=w'*a;%(matlab中的'默认为共轭转置,如果要计算转置为w.'*a)endfigure;plot(theta,abs(p)),gridonxlabel('theta/radian')ylabel('amplitude')title('8阵元均匀线阵方向图')见张小飞的书《阵列信号处理的理论和应用2.3.4节阵列的方向图》当来波方向为45度时,仿真图如下:8阵元均匀线阵方向图如下,来波方向为0度,20log(dB)随着阵元数的增加,波束宽度变窄,分辨力提高:仿真图如下:2.波束宽度与波达方向及阵元数的关系clcclearallcloseallima=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));endfigure;plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),gridonxlabel('theta');ylabel('Widthinradians')title('波束宽度与波达方向及阵元数的关系')仿真图如下:3.当阵元间距时,会出现栅瓣,导致空间模糊。仿真图如下:/2d4.类似于时域滤波,天线方向图是最优权的傅立叶变换仿真程序和仿真图如下:clcclearallcloseallima=sqrt(-1);element_num=32;%阵元数source_num=1;%信源数d_lamda=1/2;%阵元间距与波长的关系theta=linspace(-pi/2,pi/2,200);theta0=0;%来波方向(ayy应该是阵列指向方向)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;endfigure;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('最优权的傅里叶变换')5.%最大信噪比准则方向图和功率谱clc;clearall;closeall;ima=sqrt(-1);element_num=8;%阵元数为8d_lamda=1/2;%间距为半波长theta=-90:0.5:90;%范围theta0=0;%来波方向theta1=20;%干扰方向L=512;%采样单元数fori=1:Lamp0=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));endRs=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]);holdonsubplot(122)plot(theta,P,'r');gridonxlabel('theta/0');ylabel('功率indB');title('max-SNR功率谱')仿真图如下:6.%ASC旁瓣相消----MSE准则clc;closeall;clearallima=sqrt(-1);M=32;%辅助天线的数目d_lamda=.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(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));endRx=1/L*jam*jam';%噪声自相关矩阵,相当于X(t)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(ima*2*pi*.5*sin(theta(jj))*[0:M-1]');f(jj)=Wopt'*a;endF=20*log10(abs(f)/(max(max(abs(f)))));figure(1)plot(theta*180/pi,F),gridon,holdonplot(theta0,-50:0,'.')plot(theta1,-50:0,'.')xlabel('theta/o');ylabel('F/dB');title('MSE准则下的方向图')axis([-9090-500]);%可为x轴和y轴设置一个极限范围仿真图如下:7.%线性约束最小方差(LCMV)准则clc;clearall;closeall;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;%采样单元数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));endRx=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);endf=10*log10(abs(f)/(max(max(abs(f)))));figure(1)subplot(121)plot(theta,f),gridon,holdonplot(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,'.'
本文标题:波束形成-Matlab程序
链接地址:https://www.777doc.com/doc-3017915 .html