Skip to content

Sciroccogti/LDPC-with-SIMD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LDPC-with-SIMD

LDPC with SIMD.

⚠️ Just a experiment project, currently it's not using SIMD, and may not work properly.

Environment

Functions

Binary LDPC

  • Encode
  • Modulate(BPSK)
  • Channel(AWGN)
  • Demodulate(BPSK)
  • Decode(NMS/SPA)

NonBinary LDPC

  • Encode
  • Modulate(BPSK)
  • Channel(AWGN)
  • Demodulate(BPSK)
  • Decode(EMS)

Tools

  • Draw Tanner
  • Type in Alist

Install Conan

sudo apt install python3-pip
pip3 install conan

Install Python3-dev

sudo apt install python3-dev

How to use

1 Simulation

mkdir build
cd build
conan install .. --build=yaml-cpp
conan profile update settings.compiler.libcxx=libstdc++11 default
cmake -DBUILD_SHARED_LIBS=ON ..
cmake --build .
../bin/LDPC-with-SIMD --dec-h-path ../example/H.alist

2 Tools

2-1 Draw Tanner

python3 script/tanner.py --dec-h-path example/H.alist

2-1 Type in Alist

python3 script/makeAlist.py
# nRow is: 4
# nCol is: 6
# 1 1 0 1 0 0 
# 0 1 1 0 1 0
# 1 0 0 0 1 1
# 0 0 1 1 0 1
# filename is: aaa.alist

References

Binary LDPC and Basic

Nonbinary LDPC

C++ tutorial