LDPC decoding returning nonsense on any input

I am trying to encode and decode some examples using LDPC codes as preparation for my Bachelor's thesis.
I have the following example in mind:
https://hastebin.com/evexavaqug.sql
Here is my MATLAB Code to encode and then decode:
ldpcEncoder = comm.LDPCEncoder(sparse(H)); % Set up using own parity check matrix
ldpcDecoder = comm.LDPCDecoder(sparse(H)); % Set up using own parity check matrix
encData = ldpcEncoder(msg) % Encode
errData = encData;
errData(5) = 1; % Introduce error
decEncData = ldpcDecoder(encData) % Just to test
decErrData = ldpcDecoder(errData) % Actual error decode
The script successfully encodes msg (I can verify on paper and with my own Java program).
My problem is, that the decoder doesn't work. Even ldpcDecoder(encData) returns nonsense (in this case: [0 0 0 0 1 0]').
I also noticed that the decoder uses its full 50 iterations (the default max value) and then returns this nonsense.
The actual error decode returns a null vector, which is also incorrect, as it should return msg like the "test error decoding", where I am feeding in the correct message.
Am I doing something wrong here or is the function broken? My Java Program can successfully decode the same data and so can I on paper.

 Accepted Answer

I found the solution to my problem:
The LDPC decoder expects LLR (log likelihood ratio) values.
Therefore, the binary vector needs to be converted beforehand by using the following formula:
where is the i-th message bit and is the chance of a bitflip occuring.

1 Comment

[Repeating the above, because for some reason Nico's images are nearly invisible:]
I found the solution to my problem:
The LDPC decoder expects LLR (log likelihood ratio) values.
Therefore, the binary vector needs to be converted beforehand by using the following formula:
where is the i-th message bit and is the chance of a bitflip occuring.

Sign in to comment.

More Answers (0)

Products

Release

R2020a

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!