天线发射方向的C编写与gnuplot绘制

一、用MATLAB画出天线方向图

设计原理
1、阵列天线:阵列天线是一类由不少于两个天线单元规则或随机排列并通过当激励获得预定辐射特性的特殊天线。
2、 阵列天线的辐射电磁场是组成该天线阵各单元辐射场的总和一矢量和由于各单元的位置和馈电电流的振幅和相位均可以独立调整,这就使阵列天线具有各种不同的功能,这些功能是单个天线无法实现的。
3、本次设计中,讨论的是匀直线阵天线。均匀直线阵是等间距,各振源流幅度相等,而相位依次递增或递减的直线阵。均匀直线阵的方向图函数依据向图乘积定理,等于元因子和阵因子的乘积。
4、二元阵辐射场:
天线发射方向的C编写与gnuplot绘制
5、这里有两种情况最为重要:
(1)边射阵,即最大辐射方向垂直于阵轴方,此 时φ_m=±π/2,在垂直于阵轴的方向上,各元观察点没有波程差,所以各元电流不需要有相位差。
(2)端射振,计最大辐射方向在阵轴方向上,此时φ_m=0或π,也就是说阵的各元电流沿阵轴方向依次超前或滞后kd。

设计过程
本次设计的天线为10元均匀直线阵天线,天线的参数为:d=λ/2,N=10相位滞后的端射振天线。基于MATLAB可实现天线阵二维方向图和三维方向图的图形分析。
(一)天线方向2D图代码如下:

a=linspace(0,pi); //产生0-π间的随机数
b=linspace(0,2*pi); //产生0-2π间的随机数
f=sin((cos(a).sin(b)-1)(10/2)*pi)./(sin((cos(a).*sin(b)-1)*pi/2)*10);
polar(a,f.*sin(b));
title(‘10元蝶型二维图’);

运行结果:
天线发射方向的C编写与gnuplot绘制
(二)天线方向3D图代码如下:

a=linspace(0,pi);
b=linspace(0,2*pi);
f=sin((cos(a).sin(b)-1)(10/2)*pi)./(sin((cos(a).*sin(b)-1)*pi/2)*10);
y1=(f.*sin(a))’*cos(b);
z1=(f.*sin(a))’*sin(b);
x1=(f.*cos(a))’*ones(size(b));
surf(x1,y1,z1); //matlab产生三维图
axis equal;
title(‘10元端射式三维图’)

运行结果:
天线发射方向的C编写与gnuplot绘制

二、用C语言实现同样计算,将数据与MATLAB结果进行对比

(一)天线方向C语言代码如下:

#include <stdio.h>
#include <math.h>
#define pi 3.1415926
int main(int argc, char const argv[])
{
double a,b,c,d,x,y,z;
int i,j,n;
scanf("%d",&n); //输入n元天线阵列
FILE fp2=fopen(“2D.dat”,“w”);
FILE fp3=fopen(“3D.dat”,“w”);
for(i=0;i<100;i++)
{
a=pi
i/99; //0-pi取100个样点
for(j=0;j<100;j++)
{
b=2
pi
j/99; //0-2pi取100个样点
c=sin((cos(a)sin(b)-1)(n/2)*pi)/(sin((cos(a)*sin(b)-1)pi/2)n);
d=c
sin(b);
fprintf(fp2,"%f %f\n",a,d);
y=(c
sin(a))cos(b);
z=(c
sin(a))sin(b);
x=(c
cos(a))*b;
fprintf(fp3,"%f %f %f\n",x,y,z);
}
}
return 0;
}

(二)用gnuplot画出天线方向图如下:
天线发射方向的C编写与gnuplot绘制
天线发射方向的C编写与gnuplot绘制