Skip to content

This project aims to analyze the age of information in wireless networks that utilize deep learning techniques

License

Notifications You must be signed in to change notification settings

cahthuranag/DeepAoI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT Code style: black

DeepAoI

A Python 3.8 implementation of the System Model estimates the average AoI (AAoI) in a deep learning-aided multi-hop wireless communication system over the AWGN channels.

The DeepAoI contains several functions that can be used to study the Age of Information (AoI) in a multi-hop wireless network. These functions include:

  • main: This function takes input parameters such as the number of nodes, active probability, block size, message size, and transmission power. It simulates the communication system by generating arrival and departure timestamps for events, considering factors like noise power, distance, and signal-to-noise ratio (SNR). The function also utilizes external functions from modules av_age, snr, and deepencoder. Finally, it returns the simulated AAoI

  • deepencoder : this function is a deep learning-based encoder designed for an AWGN channel. It takes the number of bits in a block (n), the number of bits in a message (k), and the SNR as inputs. This function builds and trains a deep neural network model using Keras and TensorFlow. The model consists of an encoder and a decoder, which are trained to minimize the categorical cross-entropy loss. It encodes messages, adds noise based on the SNR, and decodes the noisy signals to compute the Block Error Rate (BER). The function provides a BER value as the output, indicating the accuracy of the encoding and decoding process in the presence of AWGN.

  • average_age_of_information_fn: This function calculates the average age of information based on destination times, generation times, and arrival rate. It uses a time step to generate a time array and calculates the age at each time step by subtracting the offset. The average age is then computed by integrating the age versus time curve.

  • compare_ber: This function is designed to compare the performance of a deep encoder and uncoded BPS scheme in terms of Block Error Rate (BER).

Result

import numpy as np
snr_range = np.arange(1, 10, 1)  
compare_ber(8, 4, snr_range)

This figure illustrates BER vs. SNR for both the deep learning-based encoder and the uncoded BPSK BER.

BER.

This figure illustrates AAoI vs. Transmission power for both learning-based encoder and the uncoded BPSK

plot_av_age_simulation(2, 0.5, 8, 4, np.concatenate([np.arange(0.05, 0.1, 0.01),np.arange(0.1, 1, 0.1), np.arange(1, 10, 1)]),10)

AAoI

Requirements

The implementation requires Python 3.8+ to run. The following libraries are also required:

  • numpy
  • matplotlib
  • pandas
  • argparse
  • itertools
  • math
  • scipy
  • random
  • tensorflow
  • keras

How to install

From PyPI

pip install 

From source/GitHub

Directly using pip:

pip install 

Or each step at a time:

git clone  https://github.com/cahthuranag/DeepAoI.git
cd 
pip install .

Installing for development and/or improving the package

git clone hhttps://github.com/cahthuranag/DeepAoI.git
cd 
pip install -e .[dev]

This way, the package is installed in development mode. As a result, the pytest dependencies/plugins are also installed.

License

MIT License

About

This project aims to analyze the age of information in wireless networks that utilize deep learning techniques

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages