Giter Site home page Giter Site logo

ml-eec-decoder's Introduction

Bi-LSTM Decoder for Convolutional Codes

A proof of concept Bi-LSTM decoder for convolutional codes on bursty binary channels.

Overview

This project contains implementation for convolutional code encoders, decoders and several different channels. The channels are as follows:

  1. Binary Symmetric Channel
  2. Definite Binary Symmetric Channel
  3. Bursty Binary Symmetric Channel

This project also contains scripts to build and train Bi-LSTM convolutional code decoders.

Installation

Git

This project requires a Git installation. See here for details on installing Git.

Python

This project requires Python 3.9.6. See here for details on installing Python 3.9.6.

Python Dependencies

The majority of the Python dependencies are listed in requirements.txt. Installation instructions for these dependcies are given below.

Navigate to the root directory of the project and execute the following commands.

pip install -r requirements.txt

The project does not have a standalone Viterbi decoder implementation. The decoder class relies on a modified version of the scikit-dsp-comm package. Installation instructions for the modified package are given below.

Navigate to the root directory of the project and execute the following commands.

git clone https://github.com/SupurCalvinHiggins/scikit-dsp-comm.git
cd scikit_dsp_comm
pip install -e .

After executed the commands, the modified version of the package should be installed. The motivation behind the modified package is provided below.

The decoder in the default scikit-dsp-comm package is a "streaming" convolutional code decoder. That is, the decoder assumes that a continuous stream of symbols will be received and will wait to decode symbols until a certain number of subsequent symbols have been received. This prevents establishing baseline performance metrics because the decoder will refuse to decode the entire message. The modified version of the scikit-dsp-comm package ensures that the decoder will finish decoding the entire message.

Testing

This project has partial smoke test coverage using the pytest framework.

Executing Tests

Navigate to the root directory of the project and execute the following commands.

pytest .

A lack of errors does not indicate that the project is working properly. However, the presence of errors DOES indicate that project is NOT working properly.

Benchmarking

This project has partial benchmark coverage. Benchmarks can be executed directly with Python.

ml-eec-decoder's People

Contributors

supurcalvinhiggins avatar

Stargazers

Tuyetlinh Nguyen avatar

Watchers

 avatar

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.