How to use the LDPC encoder/decoder in MATLAB ?
62 views (last 30 days)
Show older comments
Greetings,
I am simply trying to use the LDPC encoder/decoder in MATLAB. A very small code like the following:
message = randi([0 1],2,1);
ldpcEncoder = comm.LDPCEncoder;
ldpcDecoder = comm.LDPCDecoder;
encoder = ldpcEncoder(message);
decoder = ldpcDecoder(encoder);
is throwing an error :
Error using LDPCEncoder
Input must be a column vector of length K, the message length. K is the number of columns in the parity check matrix minus the number of rows.
I presume when we don't mention a parity check matrix it takes a default value as described in dvbs2ldpc. So here, I really don't know what's happening even with such a simple code. Please guide me through it. Thank you !
0 Comments
Answers (1)
Harikrishnan Balachandran Nair
on 20 Aug 2021
Hi,
From my Understanding, you are facing an error related to the size of your message ,when trying to perform LDPC coding. As you have mentioned in the question, when a parity check matrix is not specified, the default sparse parity check matrix is obtained as dvbs2ldpc(1/2), which returns the parity-check matrix H of the LDPC code with code rate (1/2) from the Digital Video Broadcasting standard DVB-S.2. The block length of the code is 64,800. Hence the size of the parity check matrix H is 32400*64800. Thus the size of your message should be (64800-32400), as the dimension of the matrix H is (N-K) by (N) , where K is the size of your message, and N is the block length of the code. You can see that the error no longer exists when the following code is executed. Hope this helps!
message = randi([0 1],32400,1);
ldpcEncoder = comm.LDPCEncoder;
ldpcDecoder = comm.LDPCDecoder;
encoder = ldpcEncoder(message);
decoder = ldpcDecoder(encoder);
2 Comments
Harikrishnan Balachandran Nair
on 20 Aug 2021
Edited: Harikrishnan Balachandran Nair
on 20 Aug 2021
Yes you can set the parity matrix as your need, provided it follows the corresponding properties. You can find more about it here : https://www.mathworks.com/help/comm/ref/comm.ldpcencoder-system-object.html#bsyh0xo-5 .
You can also refer to this file to generate parity check matrix for LDPC code. https://www.mathworks.com/matlabcentral/fileexchange/44454-gallager-s-construction-of-parity-check-matrix-for-ldpc-codes
See Also
Categories
Find more on Error Detection and Correction in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!