Git Product home page Git Product logo

5g-nr-ldpc's Introduction

5g-nr-ldpc

This library implements a basic version of the 5G NR LDPC code as specified in TS38.212. The decoder implements the sum-product algorithm and is based on [1].

Quick start

The file ldpcExample.m provides a minimal working example of encoding and decoding.

Features

So far the implementation supports the block lengths N=[264, 544, 1056, 2176, 4224, 8448] and code rates R=[1/3, 1/2, 2/3, 3/4, 5/6]. Note that the development is not finished. Extension to more code rates and other block lengths are easily possible. The implementation includes the base graphs 1 and 2.

References

[1] E. Sharon, S. Litsyn and J. Goldberger, "An efficient message-passing schedule for LDPC decoding," 2004 23rd IEEE Convention of Electrical and Electronics Engineers in Israel, Tel-Aviv, Israel, 2004, pp. 223-226.

5g-nr-ldpc's People

Contributors

peterneuhaus avatar vodafone-chair 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

5g-nr-ldpc's Issues

A Suggestion

The QAM demodulation in matlab you used is possibly not correct.
It loss the system performance about 6~10dB Eb/No in the same average bit error rate & code rate condition.

The correct way is to tell the matlab how much is the variance of AWGN in the system.
You can change function qamdemod() In ldpcExample.m as follows:
dataLlr = qamdemod(dataRx, M, 'OutputType', 'approxllr', 'UnitAveragePower', true,'NoiseVariance',10^(-snr/10));

This helps to get the log-likelihood ratio more precisely.

On the other hand, the speed of the code run is too slow, we can call

h_dec = comm.gpu.LDPCDecoder(sparse(LDPC.H==1),'MaximumIterationCount',500);

and use
llr_vec = [zeros(1,2*LDPC.Z), dataLlr'];
dataHat = step(h_dec,llr_vec');
to simulate faster in the matlab.

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.