atiana 发表于 2012-5-10 23:10
吧条件改下吧,下载不了啊,楼主
原创版的资源下载是需要技术分的。您可以多回答问题或者参与讨论来获得技术分。
本帖最后由 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取值较大的时候。
00d44 发表于 2012-5-11 08:58
支持下原创,欢迎更多原创性文章交流
OK,下了一些论坛的资料,自己也传点,互相交流~~