news 2026/4/18 7:25:42

雷达天线图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
雷达天线图

(Antenna Radiation Pattern)。

1. 什么是天线方向图?

它是用来描述天线在空间各个方向上发射或接收电磁波能力的图形。简单来说,它告诉我们这个雷达/天线主要往哪个方向“看”,以及它的“视力”范围形状是怎样的。

2. 核心组成部分

专业的雷达天线图通常包含以下几个关键部分(形似花瓣):

  • 主瓣 (Main Lobe):能量最集中的区域,也是雷达主要探测或通信的方向。主瓣越窄,方向性越好,探测越精准。

  • 旁瓣/副瓣 (Side Lobes):主瓣旁边的小波瓣。这是不需要的能量泄漏,旁瓣过大容易造成干扰或被敌方侦测,通常设计时要尽量压低。

  • 后瓣 (Back Lobe):指向天线后方的辐射瓣,通常也是希望消除的。

  • 零点 (Nulls):辐射极弱甚至为零的方向,用于隔离干扰信号。

代码部分

import numpy as np import matplotlib.pyplot as plt import matplotlib import os def configure_chinese_font(): """ 配置Matplotlib的中文字体,尝试适配不同操作系统。 """ # 常见的中文字体列表 (Windows, Linux, macOS) font_candidates = [ 'SimHei', # Windows 黑体 'Microsoft YaHei', # Windows 微软雅黑 'Heiti TC', # macOS 黑体 'WenQuanYi Micro Hei', # Linux 文泉驿 'SimSun', # 宋体 'Arial Unicode MS' # 通用后备 ] # 找到第一个系统中存在的字体 found_font = None for font in font_candidates: try: # 尝试通过名字获取字体路径来验证字体是否存在 matplotlib.font_manager.findfont(font, fallback_to_default=False) found_font = font break except: continue if found_font: print(f"检测到可用中文字体: {found_font}") plt.rcParams['font.sans-serif'] = [found_font] plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题 else: print("未检测到常用中文字体,将使用默认字体(中文可能无法显示)。") # 这种情况下通常建议手动安装 SimHei.ttf def generate_antenna_pattern(): # 1. 设置数据 # theta: 角度范围,从 -pi 到 pi theta = np.linspace(-np.pi, np.pi, 1000) # 模拟一个 8 阵元的均匀线性阵列 (ULA) N = 8 # 阵元数量 d_lambda = 0.5 # 阵元间距(波长的一半) # 相位差 psi psi = 2 * np.pi * d_lambda * np.sin(theta) # 阵列因子 (Array Factor) 公式,并进行归一化 # 使用 np.errstate 忽略除以 0 的警告 with np.errstate(divide='ignore', invalid='ignore'): gain = np.abs(np.sin(N * psi / 2) / (N * np.sin(psi / 2))) # 修正 NaN 值 gain = np.nan_to_num(gain, nan=1.0) # 2. 创建极坐标图 # 稍微增加一点画布高度 plt.figure(figsize=(10, 9), dpi=150) ax = plt.subplot(111, projection='polar') # 3. 绘制图形 ax.plot(theta, gain, color='red', linewidth=2, label='辐射强度 (归一化)') # 4. 美化图表 ax.set_theta_zero_location('N') ax.set_theta_direction(-1) ax.fill(theta, gain, color='red', alpha=0.1) # 移除极径轴的刻度标签(0.2, 0.4等),让图更清爽 ax.set_yticklabels([]) # 5. 添加标注 (Annotation) # 标注主瓣 (Main Lobe) - 调整了 xytext,稍微往下移了一点 (1.3 -> 1.2) ax.annotate('主瓣 (Main Lobe)\n能量最集中,用于探测', xy=(0, 1.0), xytext=(0, 1.2), # 位置下调,防止超出边界 arrowprops=dict(facecolor='black', shrink=0.05), horizontalalignment='center', fontsize=12, color='blue') # 标注旁瓣 (Side Lobe) side_lobe_angle = np.arcsin(1.5 / (N * d_lambda)) ax.annotate('旁瓣 (Side Lobe)\n能量泄漏,易受干扰', xy=(side_lobe_angle, 0.25), xytext=(side_lobe_angle + 0.3, 0.6), arrowprops=dict(facecolor='green', shrink=0.05), fontsize=10, color='green') # 标注零点 (Null) null_angle = np.arcsin(1.0 / (N * d_lambda)) ax.annotate('零点 (Null)\n无辐射区域', xy=(null_angle, 0.0), xytext=(null_angle + 0.2, 0.3), arrowprops=dict(facecolor='gray', arrowstyle='->'), fontsize=10, color='gray') # 设置标题,稍微减小 padding plt.title(f'雷达天线辐射方向图 (Antenna Pattern)\nN={N} 阵元均匀阵列模拟', va='bottom', fontsize=14, pad=15) # 6. 保存到本地 save_path = 'radar_antenna_pattern.png' # 关键:使用 tight_layout 自动调整布局,确保内容不被裁剪 plt.tight_layout() # 保持 bbox_inches='tight' 作为双重保险 plt.savefig(save_path, bbox_inches='tight') print(f"图像已成功生成并保存为: {os.path.abspath(save_path)}") # 显示图形 plt.show() if __name__ == "__main__": configure_chinese_font() generate_antenna_pattern()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 8:52:20

25、技术探索:从数据查询到包管理的全面指南

技术探索:从数据查询到包管理的全面指南 在软件开发和系统管理的领域中,数据查询和包管理是两个至关重要的方面。下面我们将深入探讨这两个领域的相关内容。 数据查询与路由 在数据处理中,从数据存储中获取特定记录是常见操作。以下是一段用于从数据存储中获取最后 10 条…

作者头像 李华
网站建设 2026/4/18 5:42:36

高频高速 PCB 能不能量产,打样阶段就能看出来吗?

本文基于深圳市充裕科技有限公司在高频高速 PCB 项目中的实际打样与量产经验整理。 很多高频高速 PCB 项目,在打样阶段都会经历一个“虚假的安全感”: 首版就过测试阻抗、插损数据漂亮项目推进顺利 但当项目进入量产后,却开始陆续出现&…

作者头像 李华
网站建设 2026/4/17 20:33:35

Go 语言未来会取代 Java 吗?

Go 语言(Golang)不会完全取代 Java,至少在可预见的未来(包括 2025 年及以后)不会。两者在编程领域有重叠,但各自的优势领域不同,Java 的庞大生态、遗留系统和企业主导地位让它难以被彻底取代&am…

作者头像 李华
网站建设 2026/4/17 7:44:34

1分钟原型:用快马快速验证Vue3生命周期想法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个极简原型:1.单文件组件包含所有生命周期钩子;2.每个钩子触发时在界面显示阶段名称和时间戳;3.添加强制重新渲染按钮。要求:1…

作者头像 李华
网站建设 2026/4/12 12:18:50

AI一键配置:用快马自动下载安装MinGW-w64环境

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个自动化脚本,能够自动检测操作系统类型(Windows 10/11),从官网下载最新版MinGW-w64安装包(64位),自动完成安装并配置系统环境变量PATH。要…

作者头像 李华
网站建设 2026/4/4 4:57:36

8、Puppet编程:变量、表达式与系统信息的运用

Puppet编程:变量、表达式与系统信息的运用 1. Puppet资源创建与更新 在Puppet中,若将字符串数组作为资源的标题,Puppet会创建多个除标题外完全相同的资源。这种方式不仅适用于软件包,还适用于文件、用户等任何类型的资源。 在应用Puppet清单之前,通常会运行 sudo apt-…

作者头像 李华