veins - 静脉如何计算简单路径损耗模型中的 RSSI?

标签 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设置是一样的。

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

我们对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

您能帮我们解释一下我们的结果是否正常以及可能导致我们现在出现问题的原因是什么?谢谢!

最佳答案

我不熟悉 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 version 5 alpha 1 为例,您的应用层可以访问帧的 ControlInfo并且,从那里,它的 RSS,例如,如下: check_and_cast<DeciderResult80211*>(check_and_cast<PhyToMacControlInfo*>(wsm->getControlInfo())->getDeciderResult())->getRecvPower_dBm() .同样的方法也适用于 Veins 4.6(我相信,您所指的 VeReMi 数据集是基于它的)。

在仅使用 SimplePathlossModel 的模拟中, Veins 版本的自由空间路径损耗模型,这将导致熟悉的曲线:

enter image description here

关于veins - 静脉如何计算简单路径损耗模型中的 RSSI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238799/

相关文章:

omnet++ - 为什么模拟中计算的 CO2 排放值与 .sca 文件中存储的值不同?

omnet++ - 在 Veins 的 MAC 层中实现的 ECDA 中的 WSM 优先级

veins - 如何在 SuMO 中禁用变道?

android - 更快的 WiFi 扫描速率以获得 rssi 更改 android

Android 蓝牙读取RSSI信号强度

sumo - 如何在输出文件 sumo 中生成每辆车的位置、速度和加速度

omnet++ - 有没有办法将多个 TraCI 模块连接到 OMNet++/静脉模拟?

Android:从特定的蓝牙设备获取蓝牙 RSSI 值

ubuntu - 卸载相扑 0.22

c++ - 动脉(静脉扩展)示例不起作用