阵列方向图及MATLAB 仿真1、线阵的方向图2()22cos(cos )R φψπφ=+-MATLAB 程序如下(2元):clear;a=0:0.1:2*pi;y=sqrt(2+2*cos(pi-pi*cos(a)));polar(a,y); 图形如下:若阵元间距为半波长的M 个阵元的输出用方向向量权重11(,,)M j j M g eg e φφ⋅⋅⋅加以组合的话,阵列的方向图为 [(1)cos()]1()m Mj m m m R g e ψπφφ--==∑MATLAB 程序如下(10个阵元):clear;f=3e10;lamda=(3e8)/f;beta=2.*pi/lamda;n=10;t=0:0.01:2*pi;d=lamda/4;W=beta.*d.*cos(t);z1=((n/2).*W)-n/2*beta* d;z2=((1/2).*W)-1/2*beta* d;F1=sin(z1)./(n.*sin(z2));iK1=abs(F1) ;polar(t,K1);方向图如下:2、圆阵方向图程序如下:clc;clear all;close all;M = 16; % 行阵元数k = 0.8090; % k = r/lambdaDOA_theta = 90; % 方位角DOA_fi = 0; % 俯仰角% 形成方位角为theta,俯仰角位fi的波束的权值m = [0 : M-1];w = exp(-j*2*pi*k*cos(2*pi*m'/M-DOA_theta*pi/180)*cos(DOA_fi*pi/180));% w = exp(-j*2*pi*k*(cos(2*pi*m'/M)*cos(DOA_theta*pi/180)*cos(DOA_fi*pi/180)+sin(2*pi*m'/M)*si n(DOA_fi*pi/180))); % 竖直放置% w = chebwin(M, 20) .* w; % 行加切比雪夫权% 绘制水平面放置的均匀圆阵的方向图theta = linspace(0,180,360);fi = linspace(0,90,180);for i_theta = 1 : length(theta)for i_fi = 1 : length(fi)a = exp(-j*2*pi*k*cos(2*pi*m'/M-theta(i_theta)*pi/180)*cos(fi(i_fi)*pi/180));%a=exp(-j*2*pi*k*(cos(2*pi*m'/M)*cos(theta(i_theta)*pi/180)*cos(fi(i_fi)*pi/180)+sin(2*pi*m'/ M)*sin(fi(i_fi)*pi/180))); % 竖直放置Y(i_theta,i_fi) = w'*a;endendY= abs(Y); Y = Y/max(max(Y));Y = 20*log10(Y);% Y = (Y+20) .* ((Y+20)>0) - 20; % 切图Z = Y + 20;Z = Z .* (Z > 0);Y = Z - 20;figure; mesh(fi, theta, Y); view([66, 33]);title('水平放置时的均匀圆阵方向图');% title('竖面放置时的均匀圆阵方向图'); % 竖直放置axis([0 90 0 180 -20 0]);xlabel('俯仰角/(\circ)'); ylabel('方位角/(\circ)'); zlabel('P/dB');figure; contour(fi, theta, Y);方向图如下:3、平面阵方向图:clc;clear all;close all;Row_N = 16; % 行阵元数Col_N = 16; % 列阵元数k = 0.5; % k = d/lambdaDOA_theta = 90; % 方位角DOA_fi = 0; % 俯仰角% 形成方位角为theta,俯仰角位fi的波束的权值Row_n = [0 : Row_N-1]; Col_n = [0 : Col_N-1];W_Row = exp(-j*2*pi*k*Row_n'*cos(DOA_theta*pi/180)*cos(DOA_fi*pi/180)); W_Col = exp(-j*2*pi*k*Col_n'*sin(DOA_theta*pi/180)*cos(DOA_fi*pi/180)); % W_Col = exp(-j*2*pi*k*Col_n'*sin(DOA_fi*pi/180)); % 竖直放置W_Row = chebwin(Row_N, 20) .* W_Row; % 行加切比雪夫权W_Col = chebwin(Col_N, 30) .* W_Col; % 列加切比雪夫权W = kron(W_Row, W_Col); % 合成的权值N*N x 1% 绘制水平面放置的平面阵的方向图theta = linspace(0,180,180);fi = linspace(0,90,90);for i_theta = 1 : length(theta)for i_fi = 1 : length(fi)row_temp = exp(-j*2*pi*k*Row_n'*cos(theta(i_theta)*pi/180)*cos(fi(i_fi)*pi/180)); % 行导向矢量N x 1col_temp = exp(-j*2*pi*k*Col_n'*sin(theta(i_theta)*pi/180)*cos(fi(i_fi)*pi/180)); % 列导向矢量N x 1% col_temp = exp(-j*2*pi*k*Col_n'*sin(fi(i_fi)*pi/180)); % 竖直放置Y(i_theta,i_fi) = W'*kron(row_temp, col_temp); % 合成的导向矢量N*N x 1 endendY= abs(Y); Y = Y/max(max(Y));Y = 20*log10(Y);Y = (Y+60) .* ((Y+60)>0) - 60; % 切图% Z = Y + 60;% Z = Z .* (Z > 0);% Y = Z - 60;figure; mesh(fi, theta, Y); view([66, 33]);title('水平面放置时的面阵方向图');axis([0 90 0 180 -60 0]);xlabel('俯仰角/(\circ)'); ylabel('方位角(\circ)'); zlabel('P/dB');figure; contour(fi, theta, Y);方向图如下:4、CAPON方法波束形成MATLAB程序如下(阵元16,信号源3,快拍数1024):clear alli=sqrt(-1);j=i;M=16; %均匀线阵列数目P=3; %信号源数目f0=10;f1=50;f2=100;%信号频率nn=1024; %快拍数angle1=-15;angle2=15;angle3=30;%the signal angleth=[angle1;angle2;angle3]';SN1=10;SN2=10;SN3=10;%信噪比sn=[SN1;SN2;SN3];degrad=pi/180;tt=0:.001:1024;x0=exp(-j*2*pi*f0*tt); %3个信号x0、x1、x2x1=exp(-j*2*pi*f1*tt); %x2=exp(-j*2*pi*f2*tt); %t=1:nn;S=[x0(t);x1(t);x2(t)];nr=randn(M,nn);ni=randn(M,nn);u=nr+j*ni; %复高斯白噪声Ps=S*S'./nn; %信号能量ps=diag(Ps);refp=2*10.^(sn/10);tmp=sqrt(refp./ps);S2=diag(tmp)*S; %加入噪声tmp=-j*pi*sin(th*degrad);tmp2=[0:M-1]';a2=tmp2*tmp;A=exp(a2);X=A*S2+.1*u; %接收到的信号Rxx=X*X'./nn; %相关矩阵invRxx=inv(Rxx);%搜寻信号th2=[-90:90]';tmp=-j*pi*sin(th2'*degrad);tmp2=[0:M-1]';a2=tmp2*tmp;A2=exp(a2);den=A2'*invRxx*A2;doa=1./den;semilogy(th2,doa,'r');title('spectrum'); xlabel('angle'); ylabel('spectrum'); axis([-90 90 1e1 1e5]); grid;。