Skip to content

Command line simulator built using Python to demonstrate various deployment setups of LTE and WiFi

License

Notifications You must be signed in to change notification settings

chimms1/LTE-WiFi-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT License Contributors

Stargazers

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Information on git branches
  5. License
  6. Developed by
  7. Acknowledgments

About The Project

A Simulator built from scratch in Python to demonstrate various coexistence scenarios for LTE and WiFi topologies in unlicensed spectrum

Built With

Python Shell Script

(back to top)

Getting Started

Instructions to set up the project locally

Prerequisites

  • Python version 3.9+

Installation

  1. Install Python from official website
  2. Clone the repo
    git clone https://github.com/chimms1/LTE-WiFi-Simulator.git
  3. Install Python packages (project dependencies)
    pip install numpy pandas matplotlib seaborn tqdm openpyxl

(back to top)

Usage

Classes and Files

All the entities are modeled into various classes

  1. Main class Simulator/main-latest-all.py: this is the main file that runs the simulation
  2. Service class Simulator/running/ServiceClass.py: contains all the methods used to perform operations such as creating users, calculating resources, etc.
  3. Params class Simulator/running/ConstantParams.py: contains the parameters set by the user
  4. Verbose class Simulator/running/Print.py: contains the flags to print specific information and plot graphs.
  5. BaseStation class Simulator/entities/BaseStation.py: contains the class definition for LTE BS and Wi-Fi AP.
  6. UserEquipment class Simulator/entities/UserEquipment.py: contains the class definition for LTE and Wi-Fi User equipment
  7. Learning class Simulator/Qlearning/learning.py: contains the class definition for Q-learning (reward function, QTable operation, Actions, etc)

How to execute

  1. Set the desired number of users, Number of iterations, Noise, pTx, datarate profile, etc in ConstantParams.py
  2. Set exploration-exploitation iterations accordingly in learning.py
  3. Set flags in Print.py to print information.
  4. Do additional configurations if required.
  5. Run main-latest-all.py
python main-latest-all.py <seed-value>
  1. Setting a seed value will help in recreating UE deployments.

NOTE

  1. Currently, only a single LTE BS and WiFi AP can be used.
  2. As of now load can be varied only once.
  3. Increasing users to more than 30 may cause a decrease in SINR.
  4. Exceptions are not handled in many cases.
  5. Internal code may lack documentation in a few places.
  6. Complete research work done in this project is yet to be released

(back to top)

Branch Info

  1. main: has contents of rl-dfs
  2. rl-dfs: Contains algorithm with 7 states for Dynamic Frame Selection based on Q-Learning
  3. Power-State: Contains algorithm with 21 states for energy efficient Dynamic Frame Selection based on Q-Learning
  4. dyna-q: Contains algorithm with 21 states for energy efficient Dynamic Frame Selection based on Dyna-Q+
  5. CSMA/CA: Development branch used to test implementation of CSMA/CA algorithm present in main file.
  6. dev-y: Development branch, used for implementation and testing

License

Distributed under the LGPL-2.1 License. See LICENSE.txt for more information.

Developed by

  • Yash Deshpande
  • Shreyas Joshi
  • Ramita Commi
  • Gurkirat Singh

Acknowledgments

Resources that we found helpful

(back to top)

About

Command line simulator built using Python to demonstrate various deployment setups of LTE and WiFi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published