Skip to content
NTUxuxiaoli edited this page Jun 3, 2014 · 1 revision

Welcome to the simbats wiki!

Batched sparse codes (BATS) [1][2][3] are proposed for transmitting a file through a network with packet loss. A BATS code consists of an inner code and an outer code over a finite field. The outer code is a matrix generalization of a fountain code, which encodes the file to be transmitted into batches of size M. Then linear network coding is performed within the same batch and it forms the inner code of BATS.

Simbats is a C++ implementation of BATS containing the following files:

MersenneTwister.h --- It is an algorithm generating random numbers.

Utilities.h --- It contains some small functions that may be frequently called, such as getting the ID of a packet and sampling a given distribution.

FiniteField.h --- It declares the class and some functions which are defined in FiniteField.cpp.

FiniteField.cpp --- It defines the operations in finite field of order 2^m, where m=1, 2…8, such as finding the rank of a matrix and solving a set of linear equations using Gaussian Elimination.

BatsBasic.h --- It sets the parameters and declares the functions used in Raptor precoding.

simBats.cpp --- It is the file where the main function is defined, BATS encoding and decoding are called, and the simulation output is printed.

BatchEnc.h --- It declares the class and some functions which are defined in BatchEnc.cpp.

BatchEnc.cpp --- It defines the functions used in generating the batch from the input packets. The generated batches will be sent through the erasure channel.

simRecoder.h --- It simulates the channel with packet loss based on an input channel rank distribution.

BatchDec.h --- It declares the class and the functions defined in BatchDec.cpp.

BatchDec.cpp --- It defines the belief-propagation decoding for BATS, with inactivation decoding enabled.

simDegreeK1600M32m8.txt --- It contains the optimal degree distribution used for transmitting a file with 1600 packets and with batch size 32 in GF(2^8).

simRankDistM32m8.txt --- It contain the rank distribution of the channel with packet loss when the batch size is 32.

[1] S. Yang and R. W. Yeung, “Coding for a network coded fountain”, IEEE International Smposium on Information Theory, (ST. Petersburg), pp. 2647-2651, Jul. 2011.

[2] S. Yang and R. W. Yeung, “Batched Sparse Codes”, submitted to IEEE Transactions on Information Theory, available online http://arxiv.org/abs/1206.5365.

[3] T. C. Ng and S. Yang, “Finite-length analysis of BATS codes”, International Symposium on Network Coding (NetCode)”, (Calgary, AB), pp. 1-6, Jun. 2013.

Clone this wiki locally