简介:《人对矩形隧道中电磁波传输特性的影响》是一份学术文献,文件格式为PDF。该文献面向从事有限空间无线通信、电磁场与微波技术研究的工程师、科研人员及高校师生,可作为技术开发与论文写作的重要参考文献。文献采用三维有限元方法,将煤矿巷道、地铁隧道等视为矩形波导,人体视作有耗介质,系统分析了工作频率与人体电特性参数对反射系数、透射系数及损耗的影响,揭示了频率升高会使反射增强、透射下降、人体内损耗比例增加,但超过一定阈值后趋势减弱;同时人体电参数变化对整体传输特性影响不显著。全文涵盖引言、模型建立、数值结果与结论等完整内容,可帮助读者快速掌握人体障碍物场景下的电磁波传播分析框架。资源为单个文件,容量仅144KB,便于快速下载与离线研读。目前已有73人学习下载,尤其适合需要深入理解人体遮挡对隧道内无线信号传播影响的读者,可从中获取有限元建模思路与关键结论,为通信链路预算、覆盖优化等实际工作提供理论依据。
1. 矩形隧道里的电磁波,为什么一有人就变了
某矿井的井下通信系统验收时链路余量给得很足,可一到交接班时段,巷道里人员密集走动,同一频点的信号就开始频繁掉线。这个现象背后,正是“人对矩形隧道中电磁波传输特性的影响”这个课题要解决的问题:人在矩形隧道里不是一面普通挡板,而是一个会吸收、散射,并改变多模电磁波叠加关系的活动变量。它要回答的,是隧道这类受限空间中覆盖设计余量该怎么定、人多人少时信道为什么会剧烈波动,以及如何把“人”这个变量量化进链路预算。这篇文章适合正在做矿井通信、地下管廊无线覆盖以及电磁仿真验证的工程师。
2. 人体在矩形隧道里改变了什么:多模干涉、体吸收与绕射补偿
2.1 矩形隧道为什么不是“自由空间”:模式数与截止条件
矩形隧道内部的电磁场分布,和开阔地带的自由空间传播有本质区别。隧道四壁构成一种介质波导,电磁波在截面内以驻波形式存在,沿隧道轴向传播。只有当频率高于某个模式的截止频率时,该模式才能在隧道中传播。这个截止条件可以写成:
λc = 2 / sqrt((m/a)² + (n/b)²)
其中 a、b 分别是隧道截面的宽和高,m、n 是模式阶数。只有满足 λ < λc 的模式才能低损耗传播。随着频率升高,可传播的模式数量迅速增加,近似可以按两倍极化数量估算,即 N ≈ 2ab/λ²。这个数字很关键:模式数量越多,场分布的空间起伏就越剧烈,接收点只要移动零点几个波长,信号幅度就可能出现明显摆动。
所以做这个方向时,我习惯先问一句:你在哪个频段?同样是矩形隧道,433 MHz 下可能只有几十个传播模式,900 MHz 下会有约两百个模式量级,2.4 GHz 下直接涨到上千个。模式数量级不同,人体扰动信道的机制就不一样:低频段以整体场结构改变为主,高频段则以局部遮挡和多径重构为主。后面所有仿真和实测工作,都离不开这个基础判断。
2.2 人体模型:高含水组织、等效介电常数与极化耦合
人体在这个频段里,本质是一块高介电常数、有一定电导率的损耗介质。人体组织含水率高,肌肉、皮肤、内脏的相对介电常数通常在 45 到 60 之间,电导率随频率升高而增大。给一个工程估算用的量级表:
| 频段 | 相对介电常数(量级) | 电导率(S/m,量级) | 说明 |
|---|---|---|---|
| 433 MHz | 55 | 0.7 | 吸收较强,绕射明显 |
| 900 MHz | 55 | 0.9 | 井下通信常用频段 |
| 2.4 GHz | 52 | 1.8 | 人体吸收更集中 |
| 5.8 GHz | 48 | 4 | 趋肤效应显著 |
这些数值不需要像医疗仿真那样精细分层,做隧道覆盖估算时,按体积加权取一组等效参数就够了。人体站在隧道里,会把入射电磁波的一部分能量转化为热量,形成真实的功率损耗;另一部分能量在人体边缘发生绕射,绕过人体继续传播。绕射的存在意味着,人体造成的附加损耗不是简单的“遮挡即全黑”,而是吸收和绕射竞争的结果。
极化耦合也值得单独说。人体站立时,身体长轴与隧道轴向平行,对垂直极化波的遮挡和吸收作用比对水平极化波更明显。实测中经常能看到,同样一个人站在同一个位置,垂直极化天线的链路损耗变化 5 dB,水平极化天线只变化 2 dB。做仿真对照时,两种极化必须分开观察,不能混在一起给结论。
2.3 加入人体后的三个变化:吸收、绕射、多径重构
把空隧道和有人隧道放在一起对比,变化可以拆成三个维度:
| 维度 | 空隧道 | 加入人体后 | 工程影响 |
|---|---|---|---|
| 直射与反射路径损耗 | 以壁面反射和多模叠加为主 | 人体吸收附加损耗,路径损耗整体抬升 | 链路余量不足 |
| 绕射补偿 | 不存在人体绕射 | 人体边缘产生绕射,部分补偿阴影区 | 附加损耗不会无限增大 |
| 多径时延扩展 | 模式间时延差较小 | 人体散射产生新的多条路径,时延扩展变大 | 码间干扰、吞吐率波动 |
从机制上看,人体对传输特性的影响首先是一个功率问题:人体吸收了本来可以到达接收端的能量,路径损耗增加。但它不完全是功率问题,因为人体同时改变了隧道内的散射环境,让接收点的多径结构发生重构。某些频率上,多条反射路径叠加后出现深衰落;另一些频率上,人体反而把能量散射到原本的阴影区,造成局部信号增强。这就是为什么隧道中“人越多信号越差”这句话只在统计意义上成立,具体到某个位置、某个频点,结果可能完全相反。
理解了这三个维度,就能明白为什么单纯加大发射功率不是好办法:加大功率抬高了整体底数,但多径干涉造成的深度衰落依然存在,而且人体移动会让衰落点不断漂移。正确的做法是,把人体造成的附加损耗量化出来,作为一项独立的修正因子写进链路预算,这也是后面几章要展开的内容。
3. 仿真建模:把人体作为独立变量放进矩形隧道参数
3.1 先定频段与隧道尺寸:场景参数决定建模边界
仿真建模的第一步不是打开软件画模型,而是把场景参数固定下来。隧道截面尺寸、壁面材料、工作频段,这三个参数直接决定模式数量和传播特性,也是后续所有对照实验的基准。常见做法是先把这些参数列成一张表:
| 场景 | 截面尺寸(宽×高,量级) | 常用频段 | 壁面材料特征 |
|---|---|---|---|
| 矿井巷道 | 4 m × 3 m | 433 MHz / 900 MHz | 岩壁或混凝土,有一定粗糙度 |
| 综合管廊 | 3 m × 2.5 m | 900 MHz / 2.4 GHz | 混凝土壁面,钢筋密集 |
| 地铁区间隧道 | 5 m × 4.5 m | 2.4 GHz / 5.8 GHz | 混凝土加金属管线 |
我一般会先用解析公式快速估算一下模式数量,而不是直接跑全波仿真。这样做的意义有两个:一是判断该频段下射线类模型是否适用,二是帮助设置仿真频率范围和网格密度。模式数量极少时,全波算法可以精确捕捉驻波结构;模式数量上千时,全波仿真的内存和时间开销会迅速膨胀,射线追踪类方法往往更实用。这个判断做在前面,能省下大量无效计算时间。
3.2 人体等效模型怎么建:几何与材料参数取舍
人体建模不需要做到解剖级精细。做隧道覆盖估算时,把人体简化成圆柱体或长方体就够用,关键在于等效介电常数和电导率要取对。常见做法是按人体组织的体积占比做一个加权平均,肌肉和皮肤占比高,脂肪占比低,最终等效参数落在之前表格给出的量级区间内。
几何尺寸要按实际工况分档。站立成年人可以近似为一个高 1.7 m、等效体半径 0.25 m 的圆柱体;蹲姿或检修姿态则要压扁拉宽,等效成一个更贴近地面的扁平体。这两种姿态对人体附加损耗的影响差异很大,因为遮挡截面积和绕射边缘位置都变了。仿真中应该把姿态作为独立的变量分组建模,而不是只做一种“标准人”。
人体朝向也必须参数化。面朝发射端、背对发射端、侧身站立这三种朝向,对垂直极化波的散射效果差别明显。侧身时人体的投影面积最小,绕射更强,附加损耗相对偏低;正对时投影面积最大,吸收路径上的能量更多。仿真里要把朝向和站位都做成可配置项,后续实测才能对上。
3.3 仿真流程:空隧道与有人隧道两组的对照思路
仿真设计的核心原则是控制变量:除了人体是否存在,其他所有设置保持一致。完整的流程可以按下面六步走:
- 建立矩形隧道几何模型,设置壁面材料、电导率和粗糙度参数;
- 设置频段和扫频范围,至少要覆盖中心频点前后各 20 MHz;
- 在隧道一端布置发射天线,在另一端布置接收天线,固定位置;
- 先跑一遍空隧道模型,记录接收点的 S21 或场强值,作为基线;
- 加入人体模型,按站位网格逐个计算,记录每组结果;
- 对每一组有人隧道的结果,减去基线,得到人体附加损耗。
在跑全波仿真之前,我还是会先用一段脚本快速估算各频段下的模式数量,以此决定后续用全波还是射线类方法。这里给一个用 MATLAB 做快速估算的参考脚本:
% 矩形隧道截面与频率参数 a = 4; % 隧道宽度,单位 m b = 3; % 隧道高度,单位 m freq_list = [433e6, 900e6, 2400e6]; c = 3e8; for f = freq_list lambda = c / f; M = floor(2 * a / lambda); N = floor(2 * b / lambda); total = 0; for m = 1:M for n = 1:N % 传播条件:波长小于该模式截止波长 if (m / (2 * a))^2 + (n / (2 * b))^2 < (1 / lambda)^2 total = total + 2; % 两个极化 end end end fprintf('%d MHz: 约 %d 个传播模式\n', f / 1e6, total); end这段脚本里,M 和 N 分别代表截面方向能存在的最大模式阶数,total 是满足传播条件的模式总数,乘以 2 是因为每个模式都有垂直和水平两种极化。跑出来的数量级会很清楚:433 MHz 大概几十个模式,900 MHz 两百个左右,2.4 GHz 直接上千个。如果对应频段的模式数已经上千,我建议优先用射线追踪方法;如果只有几十个模式,时域有限差分类全波仿真更合适。
提示:仿真频率范围不要只设一个频点。矩形隧道中窄带频率选择性很强,单频点结果随机性大,扫频后取中值或分位数才有工程意义。
3.4 附加损耗的提取:数据后处理的三个实用习惯
仿真跑完后,每个站位会得到一组随频率变化的 S21 数据。提取人体附加损耗的公式很简单:
ΔL(f) = L_person(f) - L_empty(f)
也就是有人隧道与空隧道在同频点上的损耗差。真正的坑在后处理:直接对全频段取算术平均,会因为少数深衰落频点把结果拉低,造成附加损耗被高估。我一般用三个习惯来处理:
第一,取中位数而不是平均值,因为中位数对深衰落点不敏感,更能代表典型附加损耗;第二,同时保存 P10 和 P90 分位数,P10 代表人体几乎不遮挡时的最好情况,P90 代表遮挡严重时的最差情况,链路预算要用 P90 而不是中位数;第三,把附加损耗按站位绘制成热力图,观察损耗是否随人体位置连续变化,如果出现异常跳变,先检查是不是仿真边界条件问题。
下面这段脚本演示了从仿真数据中提取附加损耗的基本流程:
import numpy as np # s21: 形状为 (站位数量, 频点数量),单位 dB # 每一行代表人体在某一个站位时的 S21 曲线 baseline_empty = np.array([...]) # 空隧道 S21,单位 dB s21_person = np.array([...]) # 有人隧道 S21,单位 dB delta = baseline_empty - s21_person # 附加损耗 median_delta = np.median(delta, axis=1) # 每个站位取中值 p90_delta = np.percentile(delta, 90, axis=1) # 最差情况 for i, (med, p90) in enumerate(zip(median_delta, p90_delta)): print(f"站位{i}: 中值 {med:.2f} dB, P90 {p90:.2f} dB")代码中 baseline_empty 和 s21_person 的行数必须一致,每个站位对应一行。中值和 P90 分别服务于不同的工程目的:中值用来评估平均链路质量,P90 用来抗最差情况。仿真阶段就按这个口径输出数据,到了实测阶段才能直接对齐。
4. 实测验证:从 S21 数据里剥离人体附加损耗
4.1 现场布局:基线测量、收发位置与人员站位矩阵
实测的核心思路和仿真一致:先测空隧道基线,再测有人隧道,最后做差。天线布置上,收发天线高度应该与人体躯干中心大致齐平,极化方式保持一致,发射端固定,接收端沿隧道轴向按距离设置若干个采集点。每个采集点都要先做空隧道测量,记录 S21 基线,再组织人员在规定站位上测量。
人员站位矩阵要覆盖三个轴向位置和三个横向位置。轴向位置通常取接收端与发射端之间的 1/3 处、1/2 处、2/3 处;横向位置取隧道中心线、离左壁 0.5 m、离左壁 1 m。组合起来就是一张 3×3 的测量矩阵:
| 轴向位置 | 中心线 | 离壁 0.5 m | 离壁 1 m |
|---|---|---|---|
| 1/3 处 | 站位 P11 | 站位 P12 | 站位 P13 |
| 1/2 处 | 站位 P21 | 站位 P22 | 站位 P23 |
| 2/3 处 | 站位 P31 | 站位 P32 | 站位 P33 |
每个站位还要记录人体朝向。同一个站位,面朝发射端和侧身站立,附加损耗可以差出 2 到 4 dB。测量时把朝向作为单独字段记录,不要混在一起。如果测试条件允许,最好加一组多人排队的数据,人员间隔 1 m 排列,模拟实际人流场景。
4.2 扫频采集:带宽、步进、重复次数和数据记录
实测中最容易出问题的是测量设置。我建议用矢量网络分析仪做 S21 测量,测量前先做全双端口校准,把线缆和接头损耗剥离开。扫频设置上,带宽至少 20 MHz,步进不超过 1 MHz,保证频点数量不少于 201 个。带宽太窄,频率选择性特征看不出来;步进太大,深衰落点容易被漏掉。
重复次数方面,每个站位至少测 3 轮,每轮测量前让人员离开站位再重新进入。这个动作看似多余,但非常必要:人体姿态不可能每次完全一致,3 轮数据能看到附加损耗的离散程度。数据记录格式建议直接用 CSV,每一行包含:站位编号、人体朝向、频点、基线 S21、有人 S21。原始的 S1P 或 S2P 文件也保留一份,避免后期需要重新计算时延参数却没有原始数据。
提示:实测前先看一遍空隧道基线的平坦度。如果基线在带内出现超过 3 dB 的波动,先检查天线周围有没有金属物体或人员停留,排除环境因素后再开始正式采集。
4.3 后处理:计算附加损耗与多径时延的三个要点
实测数据的后处理比仿真多两个步骤:一是频率对齐,二是时延谱提取。频率对齐解决的是两次扫描起始频率不完全一致的问题,后处理时先按频点插值到统一网格,再计算差值。时延谱提取可以用逆傅里叶变换,把频域 S21 变换到时域,观察人体散射是否造成了明显的尾部拖尾。
import numpy as np # complex_s21: 实测得到的复频域 S21,已按频点对齐 h = np.fft.ifft(np.fft.ifftshift(complex_s21)) # 冲激响应 power = np.abs(h) ** 2 power = power / power.max() # 归一化 # 找到峰值以外的多径簇,估算时延扩展 threshold = 0.1 # 低于峰值 10 dB 视为噪声 significant = power > threshold delay_spread = np.sum(significant) # 简化估算这段代码里,ifftshift 保证频域数据从负频段开始做逆变换,得到的冲激响应对应物理可实现的时延顺序;threshold 用来剔除噪声底。需要说明的是,这里的 delay_spread 只是一个粗略值,严谨的 RMS 时延扩展需要用功率时延谱的矩来计算,但对工程判断已经够用:人体加入后,significant 对应的时延范围明显展宽,说明多径尾部的能量变强了。这个变化直接关系到接收机均衡器的抗多径能力。
多径时延的处理上,我习惯把实测结果和仿真结果放在同一张图里对比,横轴是频率,纵轴是附加损耗。两者在趋势上一致、在绝对值上有偏差,是正常现象;如果趋势都对不上,先回头查仿真中的人员朝向和站位是否和实测一致,这比直接怀疑数据更高效。
5. 隧道人体效应排查与避坑:五个实测翻车记录
5.1 现象一:仿真算出的损耗比实测大一倍
某次仿真里,单个人体在 900 MHz 下造成的附加损耗算出了 7 dB,实测只有 3 dB 左右。原因是仿真里把人体模型处理成了完全吸收的黑体,所有入射到人体表面的能量全部被吞掉,忽略了人体边缘的绕射补偿。隧道本身是封闭波导结构,能量可以从人体上方和两侧绕过去,实际损耗远小于纯遮挡模型。
解决方法是给人体模型加上更合理的边缘绕射特性,或者降低等效电导率取值。更简单的做法是直接用实测数据修正仿真参数,让仿真损耗和实测在中值口径上对齐,后续的多人场景和站位变化才有参考价值。纯仿真的绝对值可以差很多,相对变化趋势才是可信的。
5.2 现象二:人靠近天线时信号反而上跳
测试中让人员从接收天线附近走过,附加损耗没有变成正的,反而出现 2 dB 左右的信号增强。原因不是人体在“发电”,而是人体靠近天线时作为寄生反射体改变了天线近场的匹配条件,相当于把天线的方向图拉向隧道轴向,接收到的反射能量变多了。这时 S21 的变化反映的是天线失配加近场耦合的混合效果,不是真实的传播路径损耗。
解决这个问题,要在数据采集时同步记录 S11。如果人员靠近时 S11 明显变差,说明问题出在天线匹配上,这段数据应该剔除,或者把人员站位的最小距离限制在一个波长以上。隧道测试空间有限,这个限制条件必须在测量矩阵里提前写清楚。
5.3 现象三:单频点测三次,三次结果都对不上
同一站位、同一朝向、同一频点,三次测量的附加损耗分别是 2 dB、6 dB、4 dB,波动幅度远超设备误差。根因是矩形隧道中多模干涉造成的频率选择性:在某个窄带内,接收点的场结构对边界条件极其敏感,人体姿态的微小变化就可能导致深衰落点漂移。
解决方式是在后处理时明确放弃单频点比较,改用 20 MHz 扫频带宽内统计量。中值、P10、P90 三个口径分别对应平均、最好、最差情况。报告结论时,只写“该站位附加损耗 P90 为 6 dB”,而不是“该频点损耗增加 6 dB”,这样数据才有可复现性。
5.4 现象四:同一站位,站着测和走着测是两个结果
静态测试时人体连续占据固定位置,遮挡区域稳定,附加损耗的变化有规律可循;行走时人体姿态和位置随时间变化,散射体在隧道中移动,接收点的多径结构持续重排,附加损耗呈现时间随机性,瞬时波动可以比静态中值再高出 3 dB 以上。
处理方式是分场景建模:静态工况用站位矩阵测出的 P90 作为修正值;移动工况用时间平均后的附加损耗加上一个衰落余量。两者不能混用。做覆盖规划时,移动工况的下行链路余量通常要在静态基础上多压 3 dB,否则人员一走动,掉线问题立刻暴露。
5.5 现象五:边界条件设置太理想,人体影响被夸大
仿真时如果隧道壁面设置成理想导体,入射能量被完全反射,隧道内的多模干涉会非常尖锐,人体吸收造成的阴影区对比被过度放大。实测中混凝土壁面有一定损耗,粗糙度还会引起散射,空隧道的频率选择性本来就没那么剧烈,人体附加损耗的绝对值自然偏低。
解决方法是给壁面设置实测的有限电导率,并加一个表面粗糙度参数。如果没有实测电导率数据,至少要在论文或者报告中声明边界条件,并且以“相对变化量”作为主要结论,不要报绝对场强值。边界理想化会让仿真变成自洽但是偏离现实的黑匣子,这个坑早踩早填。
6. 进阶用法:人体附加损耗如何写进隧道覆盖的链路预算
6.1 修正因子的写法:把附加损耗放进链路余量
仿真和实测得到的附加损耗,最终要落进链路预算里才有工程价值。我习惯把链路余量写成这样的形式:
L_margin = P_tx - P_rx_min - L_cable - L_tunnel - ΔL_person - M_fade
其中 L_tunnel 是空隧道的传播损耗,ΔL_person 是人体附加损耗,M_fade 是留给多径和移动工况的衰弱余量。ΔL_person 的取值按工况分成三档:单人静态取中值,多人排队取 P90,人员移动工况在 P90 基础上再叠加一个余量。参考量级大致是单人 2 到 4 dB,多人队列 5 到 8 dB,移动工况再加 3 dB 左右,但实际数字一定要用自己场景里的实测标定结果,不能直接套用。
具体落到代码里,链路预算计算可以这样组织:
tx_power = 20 # 发射功率,dBm rx_min = -90 # 接收灵敏度,dBm cable_loss = 2 # 馈线及接头损耗,dB tunnel_loss = 55 # 空隧道场景损耗,dB delta_person = 6 # 人体附加损耗 P90,dB fade_margin = 3 # 移动衰落余量,dB margin = tx_power - rx_min - cable_loss - tunnel_loss - delta_person - fade_margin print(f"链路余量: {margin:.1f} dB")这段脚本把人体附加损耗作为独立项列出,方便对比不同人流密度下的余量变化。实际做覆盖规划时,我会把 ΔL_person 设成可配置参数,分别计算单人、多人、移动三种工况,链路余量全部为正才算设计通过。还有一个习惯:把每个站位的 P90 附加损耗叠加到空隧道场强图上,生成一张“人员密集时的覆盖预测图”,比单看链路预算数字直观得多。
6.2 验证修正是否有效:看规律而不是看单点
修正因子写入模型后,需要验证它是不是真的反映物理规律。我最常用两个判据:一是看中值附加损耗是否随人体数量近似线性增加。如果是,说明吸收损耗占主导,修正因子可信;如果增加到某个数量后出现平台期,说明绕射和多径重构开始补偿吸收,再增加人数影响也不大了。二是看 P90 与中值的差值是否稳定。如果两者差值过大且没有规律,说明当前频段或站型下多径干涉主导,仅仅加大功率和余量都不够,应该考虑改用分集接收或跳频方案。
这类标定工作做完后,我保留了一个习惯:把每次测试的站位拍照、基线数据、人员朝向都归档在同一份记录里。表面看是多花了半小时,实际上遇到数据异常时,这些记录是最低保命的后悔药。做隧道测试,数据本身不会说谎,变量没控制住才最容易说谎。希望帮到你。
本文还有配套的精品资源,点击获取