Мы работаем над приложением, основанным на платформе Veins, которому необходимо значение RSSI принятого сигнала и расстояние между отправителем и получателем.
Мы ссылались на проект VeReMi, который также рассчитывает значение RSSI и отправляет его на верхний уровень.
Мы сравнили наш результат моделирования (RSSI против расстояния) с набором данных VeReMi, и они выглядят совершенно иначе. Можете ли вы помочь нам объяснить, как рассчитывается RSSI и является ли наш результат нормальным?
В нашем приложении мы получаем расстояние и значение rssi по
auto distance = sender.getPosition().distance(receiverPos);
auto senderRSSI = sender.getRssi();
На нижнем уровне rssi устанавливается в методе Decider80211p :: processSignalEnd (AirFrame * msg), как и в проекте VeReMi.
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>.
Параметры 11p и параметры NIP в файле omnetpp.ini совпадают.
Кроме того, наше моделирование основано на карте Бостона.
Диаграмма рассеяния нашего результата моделирования RSSI_vs_Distance показана на следующем рисунке.
RSSI против расстояния от нашего моделирования показывает, что даже на расстоянии свыше 1000 метров мы все еще принимаем сигнал с сильными значениями RSSI
Для сравнения мы извлекаем данные из набора данных VeReMi и строим график зависимости RSSI от расстояния, как показано на следующем рисунке.
Набор данных VeReMi RSSI против расстояния - это то, что мы ожидали, когда RSSI уменьшается с увеличением расстояния
Можете ли вы помочь нам объяснить, является ли наш результат нормальным и что может вызвать проблему, которую мы имеем сейчас? Спасибо!