在简单路径损耗模型中,静脉如何计算RSSI?

时间:2019-01-17 15:08:53

标签: veins rssi sumo

我们正在研究基于Veins框架的应用程序,该应用程序需要接收信号的RSSI值以及发送方和接收方之间的距离。

我们提到了VeReMi项目,该项目还计算RSSI值并将其发送到更高级别。

我们将仿真结果(RSSI与距离)与VeReMi数据集进行了比较,它们看起来截然不同。您能否帮助我们解释RSSI的计算方式以及我们的结果是否正常?

在我们的应用程序中,我们通过以下方式获得距离和rssi值

auto distance = sender.getPosition().distance(receiverPos);
auto senderRSSI = sender.getRssi(); 

在较低级别中,如同在VeReMi项目中一样,在Decider80211p :: processSignalEnd(AirFrame * msg)方法中设置rssi。

if (result->isSignalCorrect()) {
    DBG_D11P << "packet was received correctly, it is now handed to upper layer...\n";
    // go on with processing this AirFrame, send it to the Mac-Layer

    WaveShortMessage* decap = dynamic_cast<WaveShortMessage*>(static_cast<Mac80211Pkt*>(frame->decapsulate())->decapsulate());

    simtime_t start = frame->getSignal().getReceptionStart();
    simtime_t end = frame->getSignal().getReceptionEnd();
    double rssiValue = calcChannelSenseRSSI(start, end);
    decap->setRSSI(rssiValue);

    phy->sendUp(frame, result);
}

关于模拟配置,我们的config.xml与VeReMi不同,在我们的案例中没有以下几行。

<AnalogueModel type="VehicleObstacleShadowing">
        <parameter name="carrierFrequency" type="double" value="5.890e+9"/>
</AnalogueModel>.

omnetpp.ini中的11p特定参数和NIP设置相同。

此外,我们的模拟是基于波士顿地图。

我们的RSSI_vs_Distance模拟结果的散点图如下图所示。

RSSI vs Distance from our simulation shows that even at distance beyond 1000 meters we still have received signal with strong RSSI values

相比之下,我们从VeReMi数据集中提取数据,并绘制RSSI与距离的关系图,如下图所示。

VeReMi dataset RSSI vs Distance is what we were expecting where RSSI decreases as distance increases

您能帮我们解释一下我们的结果是否正常,什么可能导致我们现在遇到的问题?谢谢!

1 个答案:

答案 0 :(得分:1)

我对VeReMi project并不熟悉,所以我不知道在接收到帧时它指的是“ RSSI”的值。随附的ArXiV paper论文仅提及在帧接收中记录“接收器的RSSI”这一细节。

code for logging the dataset you mentioned进行的定期检查表明,每接收到一帧,就会将方法称为sums up the power levels of all transmissions currently present at the receiver

由此看来,(a)帧到达接收器时所经过的距离与(b)接收器此时所经历的总功率几乎没有关系。

如果您对接收到的每个帧的接收信号强度(RSS)感兴趣,则可以遵循一条更简单的路径:以Veins版本5 alpha 1为例,您的应用层可以访问帧的ControlInfo。以及从那里开始的RSS,例如,如下所示: check_and_cast<DeciderResult80211*>(check_and_cast<PhyToMacControlInfo*>(wsm->getControlInfo())->getDeciderResult())->getRecvPower_dBm()。同样的方法也适用于Veins 4.6(我相信您所指的VeReMi数据集基于它)。

在仅使用SimplePathlossModel(自由空间路径损耗模型的静脉版本)的模拟中,这将产生熟悉的曲线:

enter image description here