Custom Way to Calculate Interference Between 802.11, 802.15.4 and 802.15.1 devices

33 views
Skip to first unread message

digus....@gmail.com

unread,
Apr 10, 2018, 6:40:24 AM4/10/18
to INET Framework Contributors
Hello everyone,

I've developed an interference model that can be used to calculate the interference between two devices that use the 2.4GHz ISM band. My goal is to reduce interference in smart home scenarios, which contains many devices that use the 802.11, 802.15.4, and 802.15.1 standards.


The formula which a use to calculate the interference is:



Where:


  • The interference is calculated between device i using channel z and device j using channel m;

  • w is the ratio of overlapped frequency of channels z and m. If the channels are overlapping w = 1, if not w = 0;

  • P is the nominal power (dBm) that device j emits its wireless signal by channel m;


And PL is calculated as follows:



My problem is that I don’t know where I’m supposed to implement this behavior. I know that I can implement a custom Path Loss model and pass it as a parameter to:


*.radioMedium.pathLossType


And that the Medium calculates the Interference and passes that value to the Receiver. But I don’t know what files I can edit in order to make the Interference act similar to my formula.


Based on the showcases/wireless/coexistence example, I have created a scenario using AdhocHost which a configure various parameters to make them act like Wi-Fi and Zigbee devices (not working with Bluetooth yet). My ned and ini files are in the annex.


Any help in this regard will be highly appreciated.


Best Regards,

Rodrigo Parente

network.ned
omnetpp.ini

Levente Mészáros

unread,
Apr 11, 2018, 4:05:14 AM4/11/18
to inetframew...@googlegroups.com
Hi,

This is certainly an interesting example for the customization of the transmission medium and physical layer models of INET. I'm not entirely sure, but based on your description, I believe that it can be done with reasonable effort right now.

I think the medium module's path loss module is not what you are looking for. Its main purpose is to compute the reduction in power density of a signal as it propagates through space. There's no way to combine the interfering signals there.

Take a look at the medium module's analog model instead. This is the part which is responsible to combine all effects on the signal analog representation into one. The result is then given to the receiver to decide whether if the reception is possible or not, attempted or not, and finally succesful or not.

For more details, see the IAnalogModel and its implementations, and more specifically see ScalarAnalogModelBase::computeNoise and ScalarAnalogModelBase::computeSNIR for a start.

Best regards,
levy


--
You received this message because you are subscribed to the Google Groups "INET Framework Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to inetframework-contrib+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Rodrigo Parente

unread,
Apr 14, 2018, 3:56:23 PM4/14/18
to inetframew...@googlegroups.com
Hi! Sorry to bother again...

As you suggested, I'm trying to edit the computeNoise() to calculate the interference between the devices according to my formula. I'm editing the following function:

const INoise *DimensionalAnalogModelBase::computeNoise(const IListening *listening, const IInterference *interference)


But I'm stuck, because I don't know how to get the channel that the devices are using to communicate. My question is... Is there any way for me to get the device channel from IListening and IReception?

I tried casting the cChannel to Ieee80211Channel, but the simulation just crash...

const Ieee80211Channel *receiverChannel = dynamic_cast<const Ieee80211Channel *>(listening->getReceiver()->getRadioGate()->getChannel());

Thanks for the time.

Best Regards,
Rodrigo Parente

To unsubscribe from this group and stop receiving emails from it, send an email to inetframework-contrib+unsubscri...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "INET Framework Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email to inetframework-contrib+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Francisco Rodrigo Parente
------------------------------------------------------
Master's degree student at Universidade Estadual do Ceará

Levente Mészáros

unread,
Apr 16, 2018, 9:50:52 AM4/16/18
to inetframew...@googlegroups.com
The channel of the radio gate is an OMNeT++ abstraction for wired communication. INET uses a completely different infrastructure for wireless communication.

The transmission returned by reception->getTransmission() is supposed to be an instance of Ieee80211ScalarTransmission. This transmission object carries the 802.11 mode (IIeee80211Mode) and channel (Ieee80211Channel). They describe the properties of the transmitted signal, which may be different than the ones what you can find on the transmitter. The reason is that by the time the signal arrives at a receiver, the transmitter may have already switched to another channel.

Best regards,
levy

--
Francisco Rodrigo Parente
------------------------------------------------------
Master's degree student at Universidade Estadual do Ceará

--
Reply all
Reply to author
Forward
0 new messages