Code Monkey home page Code Monkey logo

channel-quality-prediction's Introduction

Graphical Abstract

Our paper has been published in the IEEE Sensors journal, 2021!

Farahmand, Mohammad, and Nabi, Majid. "Channel Quality Prediction for TSCH Blacklisting in Highly Dynamic Networks: A Self-Supervised Deep Learning Approach." IEEE Sensors Journal 21, no. 18 (2021): 21059-21068.

Abstract

Cross-Technology Interference (CTI) is a severe issue for wireless networks operating in the license-free ISM bands. In particular, CTI can significantly affect the performance of low-power wireless links used in the Internet-of-Things (IoT). The IEEE 802.15.4 standard adopts a channel hopping scheme in its Time-Slotted Channel Hopping (TSCH) mode as a means to mitigating the adverse effect of CTI. However, the indiscriminate procedure by which TSCH nodes hop over different channels can suffer from severe interference in specific channels. Adaptive channel blacklisting is a technique to alleviate this issue by leaving out low-quality channels from the hopping list. To enable an effective blacklisting, especially in highly varying networks, an accurate real-time prediction of the quality of all available channels is of paramount importance. Previous studies rely on the past records of the channels as an indication of their quality in near future. Evidently, such approaches cannot extend to highly dynamic environments. This paper present a self-supervised approach for training deep neural networks capable of predicting the future behaviour of the frequency channels. The trained models can then substitute the quality assessment approaches in blacklisting schemas. Considering in-vehicle wireless networks as a target application, we evaluate this idea using a real-world experimental dataset, consisting of three measurement scenarios inside a moving vehicle. The experimental results show that using the proposed technique for TSCH blacklisting significantly improves the reliability of networks experiencing such highly dynamic interference and performs at least as good as the existing channel assessment methods in low-interference conditions.

Results

In highly stochastic environments, our solution performs significantly better than previous approaches, bringing down the energy consumption of the devices considerably.

Reception Probabilities

Power Consumption

Data

Data

Please refer to the dedicated webpage in order to download the dataset, Interference in In-vehicle Networks. You will have to convert the MATLAB files into PyTorch tensors and save them in the data directory, with the .pt extension. The scripts expect three sets of measurements: apartments, downtown, and suburb.

Simulation

Run simulation.py to simulate the IEEE 802.15.4 protocol on the available measurements. We expect the results to closely resemble those reported in the paper that originally introduced the dataset.

Training

You must run main.py to train the model. You have to pass in the name of a measurement set, which will then used for training and testing, according to the schema discussed in the paper. The optional arguments for this script are as follows:

  --train               if not passed, loads saved model and performs evaluation only.
  --train-split         in seconds. default is 240.
  --eval-limit          in seconds. default is 300.
  --sample-rate         dataset sample rate. default is 2000.
  --target-rate         sample rate of the data fed to the network. default is 10.
  --power               tran. power in dBm. default is -10.
  --alpha               path-loss exponent. default is 3.5.
  --distance            assumed to be 3 in Eqn. 5
  --packet-length       in bytes. default is 133.
  --past-window         denoted as t_p in the paper. default is 5 seconds.
  --future-window       denoted as t_f in the paper. default is 5 seconds.
  --layers              number of recurrent layers. refer to the paper.
  --neurons             number of recurrent neurons. refer to the paper.
  --iterations          number of iterations to train for. default is 1000.
  --batch-size          training batch size. default is 32.

Analysis

Run analysis.py in order to generate the figures shown in the paper. You can limit the measurements and models considered by passing their names as arguments. For more details, refer to the script.

channel-quality-prediction's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.