Как вены рассчитывают RSSI в простой модели потери пути? - PullRequest
0 голосов
/ 17 января 2019

Мы работаем над приложением, основанным на платформе 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 уменьшается с увеличением расстояния

Можете ли вы помочь нам объяснить, является ли наш результат нормальным и что может вызвать проблему, которую мы имеем сейчас? Спасибо!

1 Ответ

0 голосов
/ 19 января 2019

Я не знаком с проектом VeReMi , поэтому я не знаю, какое значение он называет "RSSI" при получении кадра. На прилагаемой бумаге ArXiV упоминается не более подробной информации, чем то, что "RSSI приемника" регистрируется при приеме кадров.

Беглый осмотр кода для регистрации упомянутого вами набора данных показывает, что при каждом приеме кадра вызывается метод, который суммирует уровни мощности всех передач, присутствующих в настоящее время на приемник .

Исходя из этого, довольно просто выяснить, что (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, версию Veins модели потерь в свободном пространстве, это приведет к знакомой кривой:

enter image description here

...