Как изменить уровень мощности между двумя узлами? - PullRequest
1 голос
/ 09 октября 2019

Как уменьшить потери за счет увеличения уровня мощности?

Вот код, который я использую: https://github.com/maibewakoofhu/Unet

Я меняю уровень мощности с помощью:

 phy[1].powerLevel = -20.dB;

При уровне шума 68dB, уровень мощности = -20dB все DatagramReq успешно отправлены.

При уровне шума 70dB, уровень мощности = -20dB DatagramReq не удается.

Теперь при увеличении уровня мощности до 125 дБ все равно DatagramReq не выполняется.

1 Ответ

0 голосов
/ 13 октября 2019

Я создал более простую версию вашего моделирования для проверки отношения SNR и потери пакетов:

import org.arl.fjage.RealTimePlatform
import org.arl.unet.sim.channels.BasicAcousticChannel

platform = RealTimePlatform

channel = [
  model:                BasicAcousticChannel,
  carrierFrequency:     25.kHz,
  bandwidth:            4096.Hz,
  spreading:            2,
  temperature:          25.C,
  salinity:             35.ppt,
  noiseLevel:           73.dB,
  waterDepth:           1120.m
]

simulate {
    node 'C', address: 31, location: [180.m, 0, -1000.m], web: 8101
    node 'A', address: 21, location: [0.m, 0.m, 0.m], web: 8102
}

Записи web: позволяют нам взаимодействовать с каждым из узлов, чтобы исследовать происходящее. Я подключаюсь к каждому из узлов (http://localhost:8101/shell.html и http://localhost:8102/shell.html) и subscribe phy, чтобы увидеть все события физического уровня.

Теперь, с узла A, я пытаюсь передать кадры, чтобы увидеть(на разных уровнях мощности), если узел C получает их:

> plvl -20
OK
> phy << new TxFrameReq()
AGREE

На узле C вы увидите приемы, если они успешны:

phy >> RxFrameStartNtf:INFORM[type:CONTROL rxTime:3380134843]
phy >> RxFrameNtf:INFORM[type:CONTROL from:21 rxTime:3380134843]

или плохие кадры, если нет:

phy >> RxFrameStartNtf:INFORM[type:CONTROL rxTime:3389688843]
phy >> BadFrameNtf:INFORM[type:CONTROL rxTime:3389688843]

Наблюдения: - При plvl -20 дБ сбиваются почти все кадры. - При plvl -10 дБ почти все кадры успешны. - При plvl -16 дБ я получаю потерю около 19 кадров. %.

Ожидается, что переход между всеми неудачными кадрами во всех последовательных кадрах будет довольно резким, что типично в действительности для стационарного шума, поскольку производительность FEC, как правило, весьма нелинейна. большие различия в частоте потери кадров вокруг переходной области (в этом примере около -16 дБ).

Также обратите внимание, что plvl 125 дБ недопустим (диапазон plvl определяется как *От 1030 * до phy.maxPowerLevel, от -96 дБ до 0 дБ по умолчанию). Поэтому настройка, которая не сработала бы:

> plvl 125
phy[1]: WARNING: Parameter powerLevel set to 0.0
phy[2]: WARNING: Parameter powerLevel set to 0.0
phy[3]: WARNING: Parameter powerLevel set to 0.0
phy: WARNING: Parameter signalPowerLevel set to 0.0
...