GithubHelp home page GithubHelp logo

darcamo / pyphysim Goto Github PK

View Code? Open in Web Editor NEW
148.0 7.0 56.0 63.41 MB

Simulation of Digital Communication (physical layer) in Python.

License: GNU General Public License v2.0

Emacs Lisp 0.01% Python 75.64% Shell 0.10% Makefile 0.12% Jupyter Notebook 24.14%
python simulation physical-layer channel mimo ofdm wireless-communication modulation modulation-techniques linear

pyphysim's Introduction

Testing Coverage Status Documentation Status pre-commit

PyPhysim

Simulation of Digital Communication (physical layer) in Python.

This includes classes related to digital modulation (M-QAM, M-PSK, etc), AWGN channel, Rayleigh and tapped delay line channel models, channel estimation, MIMO, OFDM, etc.. It also includes classes related to multiuser transmission, such as block diagonalization, interference alignment, etc., as well as classes representing access nodes and users for easily creating physical layer simulations.

Furthermore, a framework for implementing Monte Carlo simulations is also implemented (see the pyphysim.simulations package) to help with creating simulators that run many independent realizations and average the results.

Installation

Pyphysim is available in Pypi and can be installed with pip or similar tools. If you want to install from the git repository, then install poetry first, clone the repository, and run the command poetry install from the cloned folder to install pyphysim and its dependencies in a virtual environment (created by poetry). After that, just use poetry shell to activate the environment and you should be able to import pyphysim from python started in that shell.

Examples

There are a few notebooks in the notebooks folder in the GitHub repository. A list of some of the notebooks with a small description is shown below for quick access.

pyphysim's People

Contributors

darcamo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyphysim's Issues

32QAM

Hi, Thank you for your great repo. My question is when will 32-QAM (and other square powers of 2) be available on pyphysim?

Using another Channel transfer matrix in Ofdm module

Hello everyone,

I want to use an H matrix that is generated by another module in the OFDM module but I don't know how I can connect this one with pyphysim.modulators.ofdm.OfdmOneTapEqualizer. Do you a way to connect this together:

https://pyphysim.readthedocs.io/en/latest/pyphysim.modulators.html?highlight=ofdm#pyphysim.modulators.ofdm.OfdmOneTapEqualizer.equalize_data

this function will pass the signal through a channel I want to something like this:

equalize_data(data: numpy.ndarray, impulse_response: pyphysim.channels.fading.TdlImpulseResponse)

I want to place an impulse_response with a matrix that I already have from another module. Would you please give me a solution for this issue? I really appreciate it.
Best Regards

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.