简介:这份2020年七月华为天线工程师笔试文档,面向准备应聘天线开发岗位的求职者与通信相关专业学生,用于检验和巩固天线理论基础。内容围绕天线基本原理、增益与阻抗匹配、偶极子与微带及阵列等天线类型、半功率波束宽度与驻波比等关键参数展开,并延伸至无线传播模型、天线设计、MIMO技术、射频前端、天线测试及4G LTE与5G NR等移动通信标准,基本覆盖笔试常见考点。资源包共1个docx文件,约4.34MB,以文字题目与知识点整理为主,便于打印或电子设备上反复查阅。目前已有2390人学习下载,适合作为笔试前的自测与查漏补缺材料,也可帮助读者梳理天线开发岗位所需的知识框架,结合项目经验理解参数设计与测试方法。
1. 华为天线笔试到底在筛什么人:从一份 docx 说起
如果你手里正躺着一份名为「2020七月华为天线笔试.docx」的文件,或者你正在为天线岗位的校招/社招笔试做准备,那这篇内容就是写给你的。天线岗位的笔试不是通信原理的泛泛考察,它筛的是「能不能把电磁场公式落到 PCB 走线和阵列布局上」的人。华为天线相关岗位(基站天线、终端天线、射频前端)的笔试通常覆盖三道主线:电磁场与微波基础、天线参数与阵列综合、工程实现与仿真工具链。很多人栽跟头不是因为不会算,而是因为不知道笔试要的是「工程判断」而不是「推导炫技」。这篇内容会按笔试常见题型拆解知识模块,给出可复现的复习路径、公式速查表、仿真验证方法,以及我当年踩过的坑。适合电子、通信、电磁场专业的应届生,也适合从射频转天线方向的工程师。
2. 电磁场与微波基础:笔试第一道坎考什么
2.1 从麦克斯韦方程组到工程近似的取舍逻辑
笔试里直接让你写麦克斯韦方程组的概率不高,但围绕它的推论几乎年年出现。常见考法有三种:给边界条件求反射系数、给介质参数判断波阻抗、给频率和尺寸判断是否满足远场条件。你需要建立的不是「背公式」的能力,而是「看到题目就知道该用哪个近似」的条件反射。
比如远场判据 ( r > 2D^2/\lambda ),笔试常给一个天线口径 D 和工作频率 f,让你判断某距离是否满足远场。这里有个容易翻车的点:D 是最大物理尺寸,不是有效口径,如果题目给的是阵列,要先把阵元间距和阵元数乘出来。我一般会先把 λ = c/f 算出来,再代入判据,最后和题目给的测试距离比。
波阻抗方面,自由空间 η₀ = 377 Ω 是必记值。如果题目给的是介质基板,η = η₀/√εr。很多人在微带线题目里忘记除以 √εr,导致特性阻抗算错一个量级。下面这段 Python 可以帮你快速验证远场条件和波阻抗:
import math def far_field_check(D, freq_hz, test_distance): """ D: 天线最大物理尺寸 (m) freq_hz: 工作频率 (Hz) test_distance: 测试距离 (m) """ c = 3e8 lam = c / freq_hz far_field_dist = 2 * D**2 / lam print(f"波长 λ = {lam:.4f} m") print(f"远场边界 = {far_field_dist:.4f} m") print(f"测试距离 {test_distance} m {'满足' if test_distance > far_field_dist else '不满足'}远场条件") return far_field_dist def wave_impedance(eps_r): """计算介质中的波阻抗""" eta0 = 377.0 eta = eta0 / math.sqrt(eps_r) print(f"εr = {eps_r}, 波阻抗 η = {eta:.2f} Ω") return eta # 示例:口径 0.3m,2.6GHz,测试距离 5m far_field_check(0.3, 2.6e9, 5) wave_impedance(4.4) # 常见FR4基板这段代码的逻辑很直接:先算波长,再算远场边界,最后判断。参数说明里最关键的是 D 的取值——如果是矩形口径天线,取对角线;如果是阵列,取整个阵面的对角线。FR4 的 εr 通常在 4.2~4.6 之间,笔试如果没给具体值,取 4.4 是安全选择。
2.2 传输线与史密斯圆图的笔试速解套路
史密斯圆图是天线笔试的「后悔药」——很多阻抗匹配题用圆图能三分钟出答案,硬算要十分钟。笔试常见题型:给负载阻抗 ZL 和特性阻抗 Z0,求匹配网络;或者给驻波比,反推反射系数模值。
核心关系必须刻在脑子里:Γ = (ZL - Z0)/(ZL + Z0),VSWR = (1+|Γ|)/(1-|Γ|)。圆图上等 VSWR 圆、等电阻圆、等电抗圆的读法要熟练。我一般会先归一化 ZL/Z0,在圆图上标点,然后判断用串联还是并联匹配。
一个高频考点是四分之一波长变换器:Z_in = Z0²/ZL。笔试常给一个复数负载,让你先串联一段传输线把实部调到 Z0,再用 λ/4 变换器匹配。这里有个坑:λ/4 变换器只能匹配纯电阻负载,如果负载有电抗,必须先抵消。下面用代码演示匹配计算:
import cmath def quarter_wave_match(Z0, ZL_real): """四分之一波长变换器,仅适用于纯电阻负载""" Z_match = math.sqrt(Z0 * ZL_real) print(f"变换器特性阻抗 = {Z_match:.2f} Ω") return Z_match def reflection_coeff(Z0, ZL): """计算反射系数和VSWR""" Gamma = (ZL - Z0) / (ZL + Z0) vswr = (1 + abs(Gamma)) / (1 - abs(Gamma)) print(f"Γ = {Gamma:.4f}, |Γ| = {abs(Gamma):.4f}") print(f"VSWR = {vswr:.2f}") return Gamma, vswr # 示例:Z0=50Ω,负载 100+j50 reflection_coeff(50, complex(100, 50)) # 先串联抵消电抗,再匹配实部 quarter_wave_match(50, 100)参数说明:Z0 通常是 50 Ω 或 75 Ω,华为基站天线以 50 Ω 为主。反射系数是复数,笔试如果只问 VSWR,取模就行。注意 VSWR 是有理数,如果算出 1.0 以下说明计算错误。
2.3 笔试真题风格的边界条件与介质分界面题
这类题在华为天线笔试里出现频率很高,典型问法:平面波从空气垂直入射到介质板,求反射系数和透射系数。公式不复杂,但符号和方向容易搞混。
垂直入射:Γ = (η₂ - η₁)/(η₂ + η₁),τ = 2η₂/(η₂ + η₁)。斜入射要分 TE 和 TM 极化,TE 波的反射系数用 η₂cosθi - η₁cosθt 的形式。笔试如果考斜入射,一般会给入射角和折射角,或者给折射率让你用斯涅尔定律算。
我踩过的坑:把 TE 和 TM 的公式记反。TE 是电场垂直于入射面,TM 是电场平行于入射面。记忆技巧:TE 的 E 是 Transverse(横向),TM 的 M 是 Magnetic(磁场横向)。下面表格整理常见情况:
| 入射方式 | 反射系数公式 | 注意点 |
|---|---|---|
| 垂直入射 | (η₂-η₁)/(η₂+η₁) | η = η₀/√εr |
| TE 斜入射 | (η₂cosθi - η₁cosθt)/(η₂cosθi + η₁cosθt) | 电场垂直入射面 |
| TM 斜入射 | (η₁cosθi - η₂cosθt)/(η₁cosθi + η₂cosθt) | 电场平行入射面 |
布儒斯特角是 TM 波反射为零的角度,笔试偶尔考。公式 tanθB = √(ε₂/ε₁)。如果题目给的是介质板厚度和频率,还可能考半波透射和四分之一波抗反射,本质是薄膜干涉。
3. 天线参数与阵列综合:笔试拉分的主战场
3.1 方向图参数:从半功率波束宽度到前后比
天线参数题是笔试的「送分题」也是「送命题」——概念清楚的人秒答,概念模糊的人每个选项都像对的。必须掌握的参数:增益、方向系数、效率、半功率波束宽度(HPBW)、副瓣电平(SLL)、前后比(F/B)、交叉极化鉴别率(XPD)。
增益 G = η × D,η 是效率,D 是方向系数。笔试常给一个阵列的尺寸和频率,让你估算增益。经验公式:G ≈ 10log₁₀(4πA/λ²),A 是有效口径。如果题目给的是矩形阵面,A 取物理面积的 0.6~0.7 倍。
HPBW 和增益的关系:对于均匀口径,HPBW ≈ 70λ/D(度)。副瓣电平方面,均匀加权的第一副瓣是 -13.2 dB,切比雪夫加权可以做到等副瓣,泰勒加权副瓣递减。笔试如果问「如何降低副瓣」,答案通常是幅度加权(如切比雪夫、泰勒)或密度加权。
下面代码演示用 Python 画均匀线阵方向图并计算 HPBW:
import numpy as np import matplotlib.pyplot as plt def linear_array_pattern(N, d_over_lambda, theta_scan_deg=0): """ N: 阵元数 d_over_lambda: 阵元间距/波长 theta_scan_deg: 扫描角 """ theta = np.linspace(-90, 90, 3601) theta_rad = np.deg2rad(theta) psi = 2 * np.pi * d_over_lambda * np.sin(theta_rad) # 均匀加权阵因子 AF = np.abs(np.sin(N * psi / 2) / (N * np.sin(psi / 2) + 1e-12)) AF_dB = 20 * np.log10(AF + 1e-12) # 找HPBW peak_idx = np.argmax(AF_dB) peak_val = AF_dB[peak_idx] half_power = peak_val - 3 # 简化查找 left = np.where(AF_dB[:peak_idx] <= half_power)[0] right = np.where(AF_dB[peak_idx:] <= half_power)[0] if len(left) and len(right): hpbw = theta[peak_idx + right[0]] - theta[left[-1]] print(f"HPBW ≈ {hpbw:.2f}°") return theta, AF_dB theta, AF_dB = linear_array_pattern(8, 0.5) plt.plot(theta, AF_dB) plt.xlabel('Theta (deg)') plt.ylabel('Normalized Pattern (dB)') plt.title('8-element Uniform Linear Array') plt.grid(True) plt.show()参数说明:d_over_lambda = 0.5 是半波长间距,避免栅瓣。N 越大波束越窄。扫描角改变时,波束宽度会展宽,扫描到 60° 时 HPBW 约展宽 1/cos(60°) = 2 倍。这个代码可以直接用来验证笔试里的阵列题。
3.2 阵列综合:从均匀阵到切比雪夫加权的笔试解法
阵列综合题在华为天线笔试里属于中高难度,常见问法:给副瓣电平要求,求加权系数;或者给阵元数和间距,求扫描时的栅瓣条件。
栅瓣条件:d/λ < 1/(1+|sinθmax|)。如果扫描到 60°,d/λ < 1/(1+0.866) = 0.536。所以半波长间距在扫描 60° 时刚好不出现栅瓣,但余量很小。
切比雪夫加权是最常考的,因为它能给出等副瓣。笔试如果让你手算,一般只考 4 元或 8 元阵。切比雪夫多项式 Tn(x) 的递推关系要记住:T₀=1, T₁=x, Tn=2xT(n-1)-T(n-2)。副瓣电平 R 对应 x₀ = cosh(cosh⁻¹(R)/(N-1))。
下面代码用 scipy 计算切比雪夫加权:
import numpy as np from scipy.special import chebyt def chebyshev_weights(N, sll_dB): """ N: 阵元数 sll_dB: 副瓣电平 (dB), 如 -20 """ R = 10**(-sll_dB/20) # 电压比 x0 = np.cosh(np.arccosh(R) / (N - 1)) # 计算多项式根 weights = np.zeros(N) for k in range(N): # 切比雪夫加权经典公式 s = 0 for m in range(N): # 简化实现,实际用现成库更稳 pass # 这里用近似:均匀阵加窗 from scipy.signal import chebwin w = chebwin(N, at=abs(sll_dB)) print(f"切比雪夫加权系数 (N={N}, SLL={sll_dB}dB):") print(np.round(w, 4)) return w chebyshev_weights(8, -25)参数说明:sll_dB 是目标副瓣电平,-25 dB 是基站天线常见要求。chebwin 的 at 参数就是副瓣衰减。注意加权后增益会略降,因为口径效率降低。笔试如果问「切比雪夫加权的代价」,答案就是主瓣展宽和增益下降。
3.3 天线效率与输入阻抗的工程估算
效率题在笔试里常以「给介质损耗角正切和导体电导率,估算效率」的形式出现。天线效率 η = Rr/(Rr + Rl),Rr 是辐射电阻,Rl 是损耗电阻。微带天线的损耗包括导体损耗、介质损耗和辐射损耗。
输入阻抗方面,微带贴片天线的谐振电阻经验公式:Rin ≈ 90 × εr²/(εr - 1) × (L/W)²,这个公式在笔试里如果给尺寸可以直接用。更常见的是给 S11 曲线让你读谐振频率和带宽。
我一般会记住几个典型值:半波振子辐射电阻 73 Ω,微带贴片 50~300 Ω 取决于馈点位置,喇叭天线 50 Ω 左右。笔试如果问匹配,先看阻抗实部离 50 Ω 多远。
4. 工程实现与仿真工具链:笔试里的实操题
4.1 HFSS/CST 笔试常考的建模与边界设置
华为天线笔试的实操部分通常不让你真的跑仿真,而是给一个仿真场景让你判断设置是否正确。常见考点:辐射边界距离、端口类型、网格收敛、扫频设置。
辐射边界(Radiation Boundary)距离应大于 λ/4,通常设 λ/4 到 λ/2。如果题目说「边界设在 λ/10」,那就是错的。端口方面,微带天线用集总端口(Lumped Port)或波端口(Wave Port),波端口需要设置积分线。
网格收敛:自适应网格的 ΔS 通常设 0.02,最大迭代次数 6~10。扫频用插值扫频(Interpolating)快但精度低,离散扫频(Discrete)慢但准。笔试如果问「如何加快仿真」,答案通常是利用对称面、降低网格密度、用插值扫频。
下面表格整理 HFSS 常见设置:
| 设置项 | 推荐值 | 错误示范 |
|---|---|---|
| 辐射边界距离 | λ/4 ~ λ/2 | λ/10 |
| 自适应 ΔS | 0.02 | 0.1 |
| 最大迭代 | 6~10 | 20 |
| 扫频类型 | 插值/离散 | 快速但忽略谐振 |
4.2 微带贴片天线的尺寸计算与仿真验证
微带贴片天线的笔试常考尺寸计算。给定频率 f、基板 εr、厚度 h,计算贴片宽度 W 和长度 L。
W = c/(2f) × √(2/(εr+1)),L = c/(2f√εeff) - 2ΔL。εeff = (εr+1)/2 + (εr-1)/2 × (1+12h/W)^(-0.5)。ΔL 是边缘效应修正。
下面代码完整实现:
import math def microstrip_patch(freq_hz, eps_r, h_m): """ freq_hz: 谐振频率 eps_r: 基板介电常数 h_m: 基板厚度 (m) """ c = 3e8 W = c / (2 * freq_hz) * math.sqrt(2 / (eps_r + 1)) eps_eff = (eps_r + 1)/2 + (eps_r - 1)/2 * (1 + 12*h_m/W)**(-0.5) dL = 0.412 * h_m * ((eps_eff + 0.3)*(W/h_m + 0.264)) / ((eps_eff - 0.258)*(W/h_m + 0.8)) L = c / (2 * freq_hz * math.sqrt(eps_eff)) - 2*dL print(f"贴片宽度 W = {W*1000:.2f} mm") print(f"有效介电常数 εeff = {eps_eff:.3f}") print(f"长度修正 ΔL = {dL*1000:.4f} mm") print(f"贴片长度 L = {L*1000:.2f} mm") return W, L # 示例:2.45GHz,FR4 (εr=4.4),1.6mm microstrip_patch(2.45e9, 4.4, 0.0016)参数说明:h 单位是米,输出转毫米。FR4 的 εr 随频率略变,2.45GHz 取 4.4 合理。算出的 W 和 L 是理论值,实际仿真要微调,因为馈电点位置影响谐振。笔试如果给馈点位置,还要算输入阻抗。
4.3 馈电网络与阻抗匹配的工程实现
馈电网络是天线工程的核心。笔试常考:并联馈电和串联馈电的区别、威尔金森功分器的设计、阻抗变换器的级联。
并联馈电各阵元独立,带宽宽但馈线长;串联馈电馈线短但带宽窄、相位累积误差大。威尔金森功分器隔离度高,但需要隔离电阻。笔试如果问「四路功分器需要几个隔离电阻」,答案是 3 个(每级一个)。
微带线阻抗计算:给定 W/h 和 εr,算 Z0。或者反过来。下面代码用近似公式:
def microstrip_z0(W_over_h, eps_r): """微带线特性阻抗近似""" if W_over_h < 1: Z0 = 60 / math.sqrt(eps_r) * math.log(8/W_over_h + W_over_h/4) else: Z0 = 120 * math.pi / (math.sqrt(eps_r) * (W_over_h + 1.393 + 0.667*math.log(W_over_h + 1.444))) print(f"W/h = {W_over_h:.3f}, Z0 = {Z0:.2f} Ω") return Z0 microstrip_z0(1.9, 4.4) # 50Ω 在FR4上的典型W/h参数说明:W_over_h 是线宽除以基板厚度。50 Ω 在 FR4 上 W/h 约 1.9,即 1.6mm 板厚对应 3mm 线宽。笔试如果给线宽和板厚,直接代入。
5. 避坑与常见问题:笔试现场的血泪经验
5.1 单位换算翻车:GHz 和 mm 的陷阱
现象:算出天线尺寸是 0.03,选项里没有,或者选了 30mm 但实际是 3mm。原因:频率用 GHz 代入,光速用 3e8,结果单位混乱。解决:统一用国际单位制,频率用 Hz,长度用 m,最后转 mm。我习惯在草稿纸第一行写「c=3e8, f=2.6e9, λ=115mm」,后面所有计算都对照这个。
5.2 方向图题看错坐标系
现象:题目给的是 θ 从 0 到 180,你按 -90 到 90 读,HPBW 算错一倍。原因:球坐标系 θ 是极角,线阵常用 θ 从 -90 到 90 表示偏离法线方向。解决:先看题目定义,如果给的是极坐标图,注意 0° 在哪。我一般会在图上标出法线方向再读。
5.3 匹配题忘记电抗抵消
现象:负载是 100+j50,直接套 λ/4 变换器公式,结果不对。原因:λ/4 变换器只匹配纯电阻。解决:先串联一段传输线或用电感/电容抵消电抗,再匹配实部。笔试如果给的是复数负载,第一步永远是「去电抗」。
5.4 阵列栅瓣条件记反
现象:扫描 60° 时 d/λ 取 0.7,算出有栅瓣但不确定。原因:栅瓣条件 d/λ < 1/(1+|sinθ|) 记成 d/λ < 1/(1-|sinθ|)。解决:记住极端情况——扫描 90° 时 d/λ < 0.5,所以半波长是极限。扫描角越大,间距要越小。
5.5 仿真设置题忽略对称面
现象:题目问「如何减少仿真时间」,你答「降低网格」,但标准答案是「用对称面」。原因:对称面能减半或减四分之三计算量。解决:如果天线结构对称且激励也对称,用理想电壁(PEC)或理想磁壁(PMC)对称面。笔试如果考 HFSS 优化,对称面是首选答案。
6. 从笔试到面试:用仿真复现一道阵列题
笔试过了只是第一步,面试官往往会让你现场解释一道题的物理意义。我习惯用仿真把笔试里的阵列题跑一遍,这样面试时能说出「我验证过」。以 8 元均匀线阵、半波长间距、扫描 30° 为例,用 Python 画方向图并计算增益下降。
import numpy as np import matplotlib.pyplot as plt def array_scan(N, d_over_lambda, scan_deg): theta = np.linspace(-90, 90, 3601) theta_rad = np.deg2rad(theta) scan_rad = np.deg2rad(scan_deg) psi = 2 * np.pi * d_over_lambda * (np.sin(theta_rad) - np.sin(scan_rad)) AF = np.abs(np.sin(N * psi / 2) / (N * np.sin(psi / 2) + 1e-12)) AF_dB = 20 * np.log10(AF + 1e-12) # 计算扫描后的HPBW peak_idx = np.argmax(AF_dB) half_power = AF_dB[peak_idx] - 3 left = np.where(AF_dB[:peak_idx] <= half_power)[0] right = np.where(AF_dB[peak_idx:] <= half_power)[0] if len(left) and len(right): hpbw = theta[peak_idx + right[0]] - theta[left[-1]] print(f"扫描 {scan_deg}° 时 HPBW = {hpbw:.2f}°") return theta, AF_dB theta, AF_dB = array_scan(8, 0.5, 30) plt.plot(theta, AF_dB) plt.xlabel('Theta (deg)') plt.ylabel('Normalized Pattern (dB)') plt.title('8-element Array, Scan 30 deg') plt.grid(True) plt.show()跑完你会发现,扫描 30° 时 HPBW 从法线的约 12.8° 展宽到约 14.8°,增益下降约 0.5 dB。这个数字面试时能说出来,比背公式有说服力。参数说明:d_over_lambda=0.5 是半波长,scan_deg 是扫描角。如果扫描到 60°,HPBW 会到约 25°,增益下降约 3 dB。
我一般还会把 SLL 读出来,均匀阵的第一副瓣在 -13.2 dB 左右,扫描后会略升。面试如果问「怎么降副瓣」,就答切比雪夫加权,并说代价是主瓣展宽。这套「笔试公式 + 仿真验证 + 面试话术」的闭环,是我当年从笔试翻车到面试翻盘的关键。希望帮到你。
本文还有配套的精品资源,点击获取