不同坐标系下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中实现球坐标系、极坐标系和直角坐标系下的方向图绘制。