不同坐标系下MATLAB绘制阵列的方向图
不同坐标系下MATLAB绘制阵列的方向图
球坐标系,极坐标系、直角坐标系
文章目录
- 前言
- 一、极坐标系
- 二、球坐标系
- 三、直角坐标系
- 总结
前言
\;\;\;\;\; 在阵列信号处理和天线设计中,方向图(Pattern)是描述波束形成性能的关键工具,能够直观展示波束的主瓣、旁瓣和零点特性。然而,方向图的绘制方式因其坐标系的选择而呈现不同的特点,极坐标系能清晰呈现俯仰角的增益分布,球坐标系能清晰呈现方位角和俯仰角的增益分布,而直角坐标系适合展示三维空间中的增益分布。极坐标系适合一维阵列,球坐标系和直角坐标系适合二维阵列。本文将介绍如何在MATLAB中实现球坐标系、极坐标系和直角坐标系下的方向图绘制,欣赏不同坐标系下的阵列方向图。
提示:文章系笔者原创,侵权必究!对您有用的话请一键三连支持一下!
一、极坐标系
\;\;\;\;\; 极坐标系是一种以原点(极点)和极轴为基础,通过距离和角度来描述点的位置的二维坐标系统。在极坐标系中,一个点的位置由以下两个量确定:
r r r:点到原点的距离(径向距离)
θ θ θ:点与极轴之间的夹角(极角,单位通常为弧度或度)
直角坐标与极坐标的转换,有如下规则,若极坐标为 ( r , θ ) (r, θ) (r,θ),其直角坐标为 ( x , y ) (x, y) (x,y),则
{ x = r ⋅ cos θ y = r ⋅ sin θ \begin{cases}x=r\cdot\cos\theta\\y=r\cdot\sin\theta\end{cases} {x=r⋅cosθy=r⋅sinθ { r = x 2 + y 2 θ = arctan y x \begin{cases}r=\sqrt{x^2+y^2}\\\theta=\arctan\frac{y}{x}\end{cases} {r=x2+y2θ=arctanxy
以下画的是8阵元均匀线阵的极坐标下的方向图。MATLAB中使用polarplot画极坐标图。如果已经获得了theta和B,可使用以下代码绘制
figure;
polarplot(theta*pi/180,B,“-r”,“linewidth”,2);grid on;
ax = gca;
ax.ThetaZeroLocation = ‘top’; % 将 0° 放到顶部(即逆时针旋转 90°)
ax.ThetaDir = ‘clockwise’; % 顺时针方向递增(使左边为 -90°)
rlim([-80,0]);thetalim([-90,90]);
二、球坐标系
\;\;\;\;\; 如果已知球坐标系中的方位角 ϕ \phi ϕ 和俯仰角 θ \theta θ 以及方向图 B B B,则可以画出球坐标系下的方向图,即横轴和纵轴表示的角度。
球坐标到直角(笛卡尔)坐标的转换为
{ x = B ⋅ sin θ ⋅ cos ϕ y = B ⋅ sin θ ⋅ sin ϕ z = B ⋅ cos θ \begin{cases} x=B\cdot\sin\theta\cdot\cos\phi \\ y=B\cdot\sin\theta\cdot\sin\phi \\ z=B\cdot\cos\theta & \end{cases} ⎩ ⎨ ⎧x=B⋅sinθ⋅cosϕy=B⋅sinθ⋅sinϕz=B⋅cosθ 注意这个公式里面方位角表示在 x y xy xy 平面 内从 + x +x +x 轴 逆时针旋转的角度,通常范围是 [ 0 , 2 π ] [0, 2π] [0,2π]。俯仰角表示从 + z +z +z 轴向下测量的角度,通常范围是 [ 0 , π ] [0, π] [0,π]。
这一步也可以直接调用MATLAB的sph2cart函数完成,不过调用sph2cart函数时需要注意sph2cart函数中俯仰角的定义是从 x y xy xy 平面向 + z +z +z 轴转为正,向 − z -z −z 轴转为负,具体可参见下图。
以下画的是7阵元带心均匀圆阵的球坐标下的方向图。MATLAB中用mesh函数或meshc函数绘制。
figure(1);
mesh(phi,theta,norm_B);
xlabel(‘方位角/(°)’);ylabel(‘俯仰角/(°)’);zlabel(‘功率/(dB)’);
三、直角坐标系
\;\;\;\;\; 二维直角坐标系适合画线阵的方向图,三维直角坐标系适合画面阵,圆阵等二维阵列的方向图。
以下画的是7阵元带心均匀圆阵的直角坐标系下的方向图。MATLAB中用surf函数绘制。
总结
以上就是今天介绍的内容,介绍了如何在MATLAB中实现球坐标系、极坐标系和直角坐标系下的方向图绘制。