How to generating LDPC parity-check matrices with arbitrary sizes?

32 views (last 30 days)
I want to use comm.LDPCEncoder/comm.LDPCDecoder and i know to use this encoder decoder in Matlab the H matrices should be Systematic (support Systematic codes only) otherwise i will receive this error.
"the last (N-K) columns of the parity-check matrix must be invertible in GF(2)."
I know two methods from MATLAB that will generate parity-check matrices:
H = dvbs2ldpc(r)
h = hammgen(m)
However, these methods are restricted to a certain ratio between rows and columns. I tried some other third-party scripts to generate the matrix, but some of them don't seem to return a valid matrix, since "comm.LDPCDecoder" will fail with the same error.
I used some predefined H matrices of Mackay, but no way.
lent of my code-word is not fix it's about 1000 to 3000 it depend to the situation of my simulation(for example code-word length is equal to 1536 or another case 2048), that's why i should create a spars matrix then use it.
Now how to generate the LDPC parity-check matrices with arbitrary sizes[depend to length of my code-word]?  
How to generating LDPC parity-check matrices with arbitrary sizes?

Answers (1)

David Ding
David Ding on 5 Jan 2017
Hi Hamid,
I believe you might find the following link useful:
Essentially, you just need to do a bit of pre-processing on the parity check matrix in permuting its columns, such that the last (n-k) columns of the new H is always invertible in F_2. To do this, as the author in the link suggested, you may use:
% Permute H to obtain a systematic code
% This is always possible if H has full rank and if infobits_loc is
% correctly defined
paritybits_loc = setdiff(1:size(H,2),infobits_loc);
H2 = H(:,[infobits_loc paritybits_loc]);
Hope this helps.
David
  3 Comments
Zeyad Qasem
Zeyad Qasem on 2 Aug 2020
Hi Cheng, Have you got the answer of this question?, I'm also stuck in that same issue.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!