我是参考天线方向图的形成原理及用MATLAB画出天线方向图这篇博客的MATLAB代码,然后使用python画的图,代码如下:

def test04():
    np.seterr(divide='ignore', invalid='ignore')  # 忽视除0的错误

    n = 8  # 阵列天线数量
    t = np.arange(0, 2 * np.pi, 0.01)
    lambd = 0.01  # 波长
    beta = (2 * np.pi)/lambd
    d = lambd/4  # 天线阵的单元间距
    W = beta*d*np.cos(t)
    z1 = ((n/2)*W) - n/2*beta*d
    z2 = ((1/2)*W) - 1/2*beta*d
    f = abs(np.sin(z1)/(n*np.sin(z2)))

    ax = plt.subplot(111, polar=True)
    ax.set_thetagrids(np.arange(0.0, 360.0, 10.0))  # 用于设置极坐标角度网格线显示
    ax.set_theta_zero_location('N')  # 用于设置极坐标0°位置,其值可为'N','NW','W','SW','S','SE','E','NE'
    ax.set_theta_direction(-1)  # 用于设置极坐标的正方向,参数为-1时为顺时针方向
    plt.plot(t, f, color=[0, 0, 1], lw=2)  # lw表示线宽
    plt.show()

if __name__ == '__main__':
    test04()

运行效果:

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐