GithubHelp home page GithubHelp logo

Creating new codes about ldpc4qkd HOT 11 CLOSED

Matio7k avatar Matio7k commented on August 24, 2024
Creating new codes

from ldpc4qkd.

Comments (11)

adomasbaliuka avatar adomasbaliuka commented on August 24, 2024

I have decided that .cscmat was not a well-thought-out format and I don't recommend using it. Instead, we will be using two different formats: the old .alist and a new custom format based on JSON, which allows adding meta-information easily. The branch feature/automatic_benchmarks_and_plots is already using the new format. Our helper project LDPCStorage.jl can be used to convert between the formats.

Making new LDPC codes can be quite involved and we won't be able to open source that part of the process right now. I'm trying some new things though and will be making some additional LDPC codes for very different rates soon. Maybe those will satisfy your needs?

If you want to make LDPC codes yourself, you might want to take a look at the progressive edge growth algorithm, as well as some of the references on our old poster.

from ldpc4qkd.

Matio7k avatar Matio7k commented on August 24, 2024

Thank you for your answer. I am looking actually for a way to make good irregular parity-check matrices, which will have a threshold close to Shannon capacity of the binary-symmetric-channel (about 11%). I need to have bigger sizes of such codes, e.g. 100 000 bits of encoded sequence. In this case progressive edge growth algorithm fails, because of the matrix size. Maybe you have a suggestion about what I can try.

Different rates of codes would be interesting for me, but not at the moment.

from ldpc4qkd.

adomasbaliuka avatar adomasbaliuka commented on August 24, 2024

It's absolutely possible to use PEG for code sizes above 100k, I've done it. Just takes days to run.

Do I understand correctly that you actually want BEC(11%)? Error rates this high aren't really of interest for us so we don't have codes for them. I'm working on some codes right now that should include working up to 10% (at rate 1/2). The big code already in this repository works up to 9.5%.

I don't think you'll be able to work at 11% with rate 1/2, so you need to go even further with the rate. Making protographs for that range would be hard and I probably can't justify the effort to try it. Do you have degree distributions for the range?

from ldpc4qkd.

Matio7k avatar Matio7k commented on August 24, 2024

By the binary-symmetric-channel, I understand the channel with some probability of the bit-flip. I am not considering BEC where bits are erased. I would like to have a code which can decode with Belief-Propagation BSC(10-11%) rate 1/2. I am basing on the reference: (https://doi.org/10.1109/18.910578) where in the example 2 is given the degree distribution which has the threshold 10.6%. I would like to check this threshold for different sizes of codes. I do not know what is the best way to create such an irregular parity-check matrix.

from ldpc4qkd.

adomasbaliuka avatar adomasbaliuka commented on August 24, 2024

Sorry, "BEC" was a typo, I meant BSC...

The main point of the codes currently in the repository is to optimize for good rate-adaptability at the cost of a bit worse best-case performance.

I will have a few rate 1/2 codes coming up in the next 1-2 weeks, which I hope will be better than the one already in the repository, so stay tuned. Maybe it will be enough for 10%, I wouldn't hope for >10%, as I said, this is not a range of error rates that we focus on. Note that, depending on how threshold are calculated, really achieving them in practice isn't always possible.

from ldpc4qkd.

Matio7k avatar Matio7k commented on August 24, 2024

Thank you very much for these comments! I will check your upcoming rate 1/2 codes.

from ldpc4qkd.

adomasbaliuka avatar adomasbaliuka commented on August 24, 2024

Well, I have a code that has a block size of 800k at rate 1/2 and has FER~15% @ BSC(9.9%). Not quite what you wanted? Some still bigger ones are in the making but I'm not very confident they will be usable above BSC(10%)

from ldpc4qkd.

Matio7k avatar Matio7k commented on August 24, 2024

Very nice! Will you make this code public? Can you just provide the proto-matrix? It would be easier, I think.

from ldpc4qkd.

 avatar commented on August 24, 2024

I uploaded the code in the development branch. It won't be merged before some other stuff is ready but you can access it already.

https://github.com/XQP-Munich/LDPC4QKD/blob/5c977fdd18abb91460f197ed8918bc1bc17efc84/codes/ldpc/rate_0.5/block_819200_pegqc.qccsc.json

There's also an aff3ct simulation (same commit) but it doesn't contain enough simulated frames at interesting error rates to call it final.

from ldpc4qkd.

Matio7k avatar Matio7k commented on August 24, 2024

Thank you very much! Are you able to provide the protomatrix of this code?

from ldpc4qkd.

adomasbaliuka avatar adomasbaliuka commented on August 24, 2024

There is no protomatrix, it was created using PEG on a degree distribution (the rate 1/2 one from arXiv:0901.2140v1) and then applying the QC-lifting procedure. I will document this more carefully once I upload everything.

from ldpc4qkd.

Related Issues (4)

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.