
简介面向无线通信天线设计与阵列信号处理学习者资源包聚焦十六元阵列天线方向图的可视化分析。压缩包体积仅2KB内共两个m脚本无需额外数据文件在Matlab中直接运行即可建立十六元线阵模型通过设置阵元间距、馈电相位等关键参数快速得到阵列方向图并观察主瓣、旁瓣与波束指向变化。对于天线阵列理论学习、课程实验或初步工程验证该工具轻量直观能帮助读者将抽象公式转化为可视化图形。目前已有183人学习下载适合配合天线与电波传播、阵列信号处理等课程进行实践也适合工程人员快速评估参数影响。脚本结构简洁便于二次修改和扩展可根据需要替换阵元数或排列方式进一步提升学习与研究效率。1. 16元阵列到底改了什么从全向辐射到波束成形在点对点微波链路或5G室内分布场景里单个天线单元的方向图往往宽得惊人——一个普通贴片天线的半功率波束宽度动辄60°到90°能量被摊开在一个巨大扇形里真正送到目标方向的可能只有很小一部分。而16元均匀直线阵通过控制16个阵元的馈电相位可以把主瓣压缩到不到10°。这就是阵列天线和单天线最本质的区别它不改变载波频率而是重新分配能量在空间中的位置。FangXiangTu16.zip里的FangXiangTu16.m脚本做的正是这件事——把16个单元的复加权系数逐点合成画出一张可读的极坐标方向图。它非常适合需要快速验证波束指向、观察旁瓣结构、或者刚刚开始做阵列综合的工程师作为第一版参考。2. 阵列方向图合成的数学基础与MATLAB实现思路2.1 方向图乘积定理决定你能做什么一个阵列的远场方向图是所有阵元辐射场的复叠加。当阵元都是同一种天线、且单元间互耦可忽略时阵列总方向图可以拆成单元方向图和阵因子的乘积F_total(θ) F_element(θ) × AF(θ)这里的 AF(θ) 是阵因子它完全由阵元的空间排列、激励幅度和激励相位决定。对于沿 x 轴排列的 N 元均匀直线阵取 θ 为与阵列法线的夹角阵因子的离散形式为AF(θ) Σ_{n0}^{N-1} w_n · exp( j · (n · k · d · cosθ φ_n) )其中 k 2π/λ 是波数d 是相邻阵元间距φ_n 是第 n 个阵元的附加馈电相位w_n 是幅度加权。FangXiangTu16.m 的核心工作就是对这个求和式做数值计算。在实际工程里主瓣指向由 φ_n 控制主瓣宽度主要由 N·d 也就是阵列口径决定旁瓣电平主要被 w_n 分布影响。因此只要你把幅度向量、相位向量和间距波长比这三个变量拆开后面几乎所有的阵列优化都会回到对这三组参数的调整上。2.2 用复平面叠加法写核心循环MATLAB 脚本 F_XiangTu16.m 中最核心的一段几乎必然包含下面的双层循环。外层遍历观察角度内层累加每个阵元在该方向上的复贡献。% FangXiangTu16 风格的核心阵因子计算 N 16; % 阵元数量 lambda 0.1; % 工作波长单位 m对应 3GHz d 0.5 * lambda; % 间距取半波长 theta linspace(0, 360, 721); % 全向扫描步进 0.5 度 phase_shift 0.0; % 相邻阵元附加相位差单位弧度 AF zeros(size(theta)); % 预分配阵因子复数结果 for idx 1:length(theta) deg theta(idx) * pi / 180; % 转弧度 acc 0; % 复数累加器 for n 0:N-1 % 空间相位差 馈电相位差 psi n * (2*pi*d/lambda) * cos(deg) n * phase_shift; acc acc exp(1i * psi); % 默认等幅激励 w_n 1 end AF(idx) abs(acc); % 取模得到幅度方向图 end AF AF / max(AF); % 归一化到最大值 1外层循环遍历观察角度内层循环遍历 16 个阵元。psi表达式里第一项是几何路径差引起的空间相位第二项是馈电网络附加的相位当phase_shift为零时各阵元同相相加主瓣指向阵列法线方向。取模后归一化得到 01 之间的阵因子。这样写能直观看到每个阵元对远场的贡献是如何在复数平面上旋转并叠加的。这里有一个值得注意的细节如果把phase_shift改成非零值主瓣就会整体偏移。这为后续的波束扫描埋下了伏笔。脚本把方向图计算和绘图分离你可以只改phase_shift重新运行方向图段落不需要动绘图代码。2.3 为什么FangXiangTu16.m用阵列而非单个天线单个天线的方向图在加工完成后基本不可调而16元阵列有三个可调维度幅度、相位、间距。FangXiangTu16.m的价值在于把这三个维度全部暴露成参数。你可以在脚本开头集中定义N、d、phase_shift甚至准备一个w向量来替代默认的等幅激励。很多初学者会把“方向图”直接理解成某个函数生成的固定曲线但在这里方向图是从 16 路复信号相干叠加中实时算出来的。一次修改、一次运行就能看见波束形状如何变化这就是阵列天线设计中“参数化分析”的起点。3. FangXiangTu16.m 核心参数拆解与脚本结构3.1 阵元间距与工作频率的换算在16元阵列的仿真脚本里d/lambda是最后一个该拍板的值。它决定了阵列能否无歧义地指向期望方向也决定了主瓣宽度和栅瓣位置。下表是常用取值对应的实际效果间距 d特征适用场景0.3 λ无栅瓣阵元互耦强口径小紧凑设备尺寸优先0.5 λ无栅瓣主瓣宽度适中基站、雷达首选配置0.8 λ主瓣变窄但可能出现栅瓣需要更高分辨率需配合单元方向图抑制1.2 λ栅瓣明显出现仅用于特殊稀疏阵列研究FangXiangTu16.m 默认采用 0.5λ 间距的原因很实际在可见空间内只保留一个主瓣同时阵列总长度达到 8λ。对于16元均匀等幅阵理论半功率波束宽度约为 50.8° / (N·d/λ) 50.8/8 ≈ 6.35°。如果你把d改成 1.2λ脚本算出的方向图上就会在arccos(1/1.2) ≈ 33.6°方向附近冒出一个幅度与主瓣几乎相当的栅瓣这在实际系统里会把能量漏到错误方向是阵列设计中的经典陷阱。3.2 馈电相位的逐单元设置相位的设置方式决定了波束指向。FangXiangTu16.m 中常见的做法是给第 n 个阵元加上n * alpha的相位其中alpha是相邻阵元之间的固定相位差。当alpha 0时主瓣指向阵列法线方向当alpha -k · d · cos(θ0)时主瓣会指向 θ0 方向。% 波束指向 theta0 时的相位分布计算 N 16; d_lam 0.5; % 间距与波长之比 theta0 60; % 期望波束指向单位 度 alpha -2*pi*d_lam*cosd(theta0); % 相邻阵元相位差 phase_vector (0:N-1) * alpha; % 16个阵元的附加相位 % 将 phase_vector 代入 2.2 节的 psi 中即可这里cosd直接用角度计算避免来回转换。phase_vector的相位值最终会体现在馈电网络上——真实系统中移相器的位数会量化这个相位比如5位移相器步进为11.25°而仿真脚本里默认是连续值。你可以试着把phase_vector按11.25°取整观察量化误差对主瓣指向造成约1°左右的偏移这个误差在FangXiangTu16.m的当前版本里不会自动呈现需要自己手动加一行量化代码。3.3 幅度加权与旁瓣控制等幅激励的16元均匀阵第一旁瓣电平固定约为 -13.3dB。这在高密度城区环境下往往不够因为旁瓣会接收来自地面反射或相邻小区的干扰。要压低旁瓣最直接的做法是给边缘阵元降幅。% 余弦幅度加权示例 w_amp cos(pi * (0:N-1) / N); % 边缘幅度低中间高 w_amp w_amp / sum(w_amp); % 归一化保持总功率不变将w_amp代入阵因子累加式替换原来的常数 1旁瓣可以降到 -23dB 以下但主瓣会展宽到约 8.5°增益损失 0.91.2dB。FangXiangTu16.m 的脚本结构里应当把w_amp定义成独立变量不要和内层循环耦合在一起。这样你在评估加权方案时只需要改这一行然后看方向图和增益是否满足链路预算。注意幅度加权不是越低越好——当边缘阵元幅度过低时阵列的有效口径变小波束分辨率会退步到接近12元甚至8元阵列的水平得不偿失。4. 从脚本到极坐标图方向图绘制与性能指标判读4.1 极坐标与直角坐标绘图切换FangXiangTu16.m 一般使用polarplot输出极坐标方向图因为极坐标能直观呈现空间覆盖形状。但在调试旁瓣细节时我会先切到直角坐标用 dB 刻度放大低电平区域。% 将幅度数组转换为 dB并限制动态范围 AF_db 20 * log10(AF eps); AF_db(AF_db -40) -40; % 极坐标图 figure(Color, white); polarplot(theta * pi/180, AF_db, b-, LineWidth, 1.5); ax gca; ax.ThetaZeroLocation top; % 0° 指向正上方 ax.ThetaDir clockwise; % 顺时针为正 ax.RLim [-40 0]; % 固定显示下限便于对比 title(16元均匀直线阵方向图); % 直角坐标辅助观察 figure; plot(theta, AF_db, k-, LineWidth, 1.2); xlabel(角度 / deg); ylabel(归一化幅度 / dB); grid on; ylim([-40 0]);转 dB 后等幅阵的 -13.3dB 第一旁瓣在极坐标图上会形成一个明显的凸环如果你不限制RLim当动态范围很大时远旁瓣会被压进图中心变成一片黑斑。在实测外场数据里测量塔的动态范围通常只有 35dB 左右所以把图的下限固定在 -40dB既能看清主旁瓣也符合仪器可观测范围。4.2 主瓣宽度、旁瓣电平和前后比的读取方向图画出来以后要从曲线上读三个关键指标半功率波束宽度、第一旁瓣电平、前后比。对应的读取方法如下表指标定义在脚本中的定位方法HPBW主瓣峰值下降3dB时的角度跨距找AF_db -3的角度范围第一旁瓣电平主瓣旁边第一个峰值的高度findpeaks后排除主瓣前后比主瓣峰值与±30°后向最大值的差考察 θ150°210° 区间下面是一段直接可用的判读代码% 提取半功率波束宽度 mask3 AF_db -3; hpbw_deg max(theta(mask3)) - min(theta(mask3)); fprintf(HPBW %.2f deg\n, hpbw_deg); % 用findpeaks提取所有局部峰值 [peak_vals, peak_locs] findpeaks(AF_db, MinPeakHeight, -20); % 排除主瓣最大峰值剩余峰值中的最大值即第一旁瓣 [main_val, main_idx] max(peak_vals); peak_vals(main_idx) []; sll_db max(peak_vals); fprintf(第一旁瓣电平 %.2f dB\n, sll_db);findpeaks返回的peak_locs是theta数组的索引不是角度本身。如果你用 0360° 扫描主瓣两侧各有一个第一旁瓣脚本里要记得都读进来再取最大值。另外MinPeakHeight要根据你的动态范围调整如果设太高低旁瓣会被漏掉设太低噪声产生的毛刺会被当成旁瓣。一般取 -20dB 作为起点比较合理。读懂这三个指标后你就能回答“16元阵列到底比单天线好多少”这个问题。比如 HPBW 从单天线的 90° 变成 6.35°意味着同等发射功率下目标方向上的功率密度增大了十几倍旁瓣从 0dB全向压到 -13.3dB意味着从非目标方向进入的干扰信号被显著衰减。这正好对应到FangXiangTu16.m在仿真验证中的作用它不是让你拿一个现成方向图去交差而是通过调节参数理解波束合成中每个自由度带来的工程后果。5. 让16元阵列动起来主瓣扫描与权值优化的两个实用技巧5.1 用相位递推实现波束扫描波束扫描不需要移动天线只需要让phase_vector随时间或需求变化。基于 3.2 节的公式可以做一个小循环模拟扫描过程。for theta0 20:5:70 alpha -2 * pi * d_lam * cosd(theta0); phase_vector (0:N-1) * alpha; % 使用 phase_vector 重新计算阵因子并绘制 % 此处省略重复的 AF 计算代码 end这个循环的边界值要谨慎选择。当theta0接近 0°端射方向时主瓣会明显展宽因为阵列在端射方向的有效口径投影变小当theta0接近 90° 时相位差接近零主瓣回到法线方向。一般16元直线阵的扫描范围建议控制在 ±60° 以内超出后主瓣畸变严重还不如换平面阵。你可以在脚本里加一个警告条件如果theta0小于20°或大于160°打印一条提示提醒自己当前结果已偏离最佳工作区。5.2 切比雪夫加权把旁瓣拉到-30dB当系统要求低于 -25dB 的旁瓣时余弦加权的压瓣能力不够。工程上更常用 Dolph-Chebyshev 综合法它能用等旁瓣波纹实现最窄主瓣。MATLAB 在 Phased Array System Toolbox 里提供了chebwin函数但如果没有授权也可以手动计算切比雪夫级数来得到权值。% 若使用工具箱直接生成 16 元切比雪夫权值 N 16; SLL_dB -30; % 目标旁瓣电平 w_cheb chebwin(N, -SLL_dB); % 注意chebwin参数为正数把w_cheb带入阵因子累加式后第一旁瓣会被压到 -30dB 以下但主瓣会展宽到约 8.2°增益损失约 0.9dB。这里有个实际工程坑切比雪夫权值在边缘阵元上往往会出现较大的反相电流这对移相器和功率放大器的线性范围提出了额外要求。如果边缘阵元振幅超过功放可支持的功率回退实际方向图会比理论值恶化。所以拿到加权结果后要顺手检查max(abs(w_cheb)) / min(abs(w_cheb))确认动态比在 10dB 以内否则需要牺牲部分旁瓣指标换取可实现性。完成调整后把最终的AF_db数据和参数一起导出到文件作为仿真与实测对照的基线。本文还有配套的精品资源点击获取