- 日志
- 相册
- 记录
- 好友
- 听众
- 收听
- 微元
-
- 在线时间
- 小时
- 阅读权限
- 50
- 注册时间
- 2012-5-10
- 最后登录
- 1970-1-1
|
发表于
2012-5-17 19:54:47
|
显示全部楼层
本帖最后由 j921y 于 2012-5-17 20:57 编辑
嗯,程序没有考虑元因子方向性,认为是由全向天线组成的阵列,由方向图乘法原理可以得有向阵元阵列方向图。
程序我没有加注释,大家看起来可能有点费劲,这主要是防止大家不加吸收直接拿来做论文,呵呵。。
有兴趣可以研究下,程序里面主要是分为3个部分:
1、参数设置(更改Nr可以得到更大阵元数量的圆孔径阵列;d是阵元间最小间距)
2、圆孔径阵面形成(里面是圆阵排布的核心,方法有很多中,个人认为这样编程显得简单)
3、方向图的计算及显示
如果大家要看3D的方向图,需要更改phi的范围,将phi改成数组。显示命令用mesh即可。
使用mesh要将theta、phi由向量变成矩阵。
比如在程序第一部分,theta(范围0~pi/2)是1x900,phi(范围0~2*pi)是1x3600长度的向量,需将theta变成900x3600,phi也变成900x3600的矩阵形式。
最简洁的matlab语句是:
theta = theta';
THETA = theta(:,ones(1,3600));
PHI = phi(ones(900,1),:);
mesh(THETA,PHI,AF);
zlim([-80 0]);
xlabel('\theta :rad');
ylabel('\phi :rad');
zlabel('旁瓣电平:dB');
就可以了显示3D方向图了。(这几行代码是加在画图部分的)
下图是低精度的示意图,不是按照900x3600仿真的
当然你也可以使用以下语句来绘制3D方向图:
首先在第4、29行更改:
phi = 0:0.01:2*pi;
theta = 0:0.01:pi/2;
最后绘图用:
U = sin(theta)'*cos(phi);
V = sin(theta)'*sin(phi);
mesh(U,V,AF);
zlim([-80 0]);
xlabel('U');
ylabel('V');
zlabel('旁瓣电平:dB');
如果你的计算机CPU不是4核的推荐使用低精度的theta、phi画3D方向图,
900x3600的数据量会计算一定时间,尤其是当Nr取值较大的时候。
|
|