You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于损耗因子计算通信范围及对应实现代码解析

代码功能说明

这段是INET网络仿真框架中MediumLimitCache类的核心方法,作用是根据给定的发射功率、接收灵敏度计算当前无线介质下的理论最大通信距离。

逐行逻辑解释

  • 函数定义:m MediumLimitCache::computeMaxRange(W maxTransmissionPower, W minReceptionPower) const
    输入参数maxTransmissionPower是发射端最大发射功率(单位瓦W),minReceptionPower是接收端可正常解码的最低接收功率(即接收灵敏度,单位瓦W),返回值单位为米(m),对应计算得到的最大通信距离。
  • 第一行逻辑:Hz centerFrequency = Hz(par("centerFrequency"));
    从仿真模块的NED配置参数中读取当前通信使用的中心频率,转换为赫兹(Hz)单位存储。
  • 第二行核心损耗计算:double loss = unit(minReceptionPower / maxTransmissionPower).get() / maxAntennaGain / maxAntennaGain;
    你已知的自由空间路径损耗公式为FSPL = Pt/Pr = (4*pi*d*f/c)^2,其中Pt为发射功率,Pr为接收功率,d为通信距离,f为中心频率,c为电磁波传播速度。
    这里计算的loss参数是允许的路径损耗倒数:
    1. 先计算minReceptionPower / maxTransmissionPower即Pr/Pt,对应无天线增益时的路径损耗倒数
    2. 除以两次maxAntennaGain,是因为收发两端的全向天线各有增益,会分别放大发射功率和接收功率,最终等效于可承受的路径损耗更大,所以要把双向天线增益的影响纳入损耗因子计算
  • 第三行距离计算:return radioMedium->getPathLoss()->computeRange(radioMedium->getPropagation()->getPropagationSpeed(), centerFrequency, loss);
    调用当前仿真配置的路径损耗模型的距离计算接口,传入三个参数:电磁波传播速度(空气环境下默认接近光速)、通信中心频率、上一步计算得到的损耗因子。
    如果你配置的是自由空间路径损耗模型,该接口内部会把你已知的FSPL公式反解求d:d = c/(4πf) * sqrt(Pt*Gt*Gr/Pr),最终返回得到的最大通信距离。如果配置的是其他路径损耗模型(比如对数距离模型、两径模型),则会调用对应模型的公式计算距离,这段代码是通用上层逻辑,不绑定特定路径损耗模型。

内容的提问来源于stack exchange,提问作者128933

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:15:08