I am currently learning LDPC codes, I have the following general question regarding LDPC codes,

1) when encountering a term such as LDPC$(672,504)$ are we referring to the code rate or the matrix dimensions? i.e is it $(n,k)$ or $(n,n-k)$? or is it different depending on book?

2) A 3/4 LDPC matrix is used with shortening to have an effective code rate of 1/2 or less. Since the code rate is 1/4 we need to do puncturing is shortening term similar to puncturing?

3) If we have number of bits that we want to encode less than 504, say for example 64, do we need to pad first with zeros to a length of 504 in order to use the LDPC(672,504)? Assuming this notation is referring to 3/4 matrix.

Any references on LDPC would be great.


1) Just like any linear code, you have [n=block length, k=number of data symbols].

2) When you puncture a code, you fix k and decrease n (i.e. you delete some of the redundancy in a systematic code). When you shorten a code, you fix n-k and reduce n and k (i.e. you look at the set codewords which have the same symbols in some positions, make a new code by using those codewords and deleting those symbols from the codeword). See these notes for details.

3) Yes, you need to pad the data in order to encode it.

Urbanke and Richardson's Modern coding theory and Mackay's Information Theory texts have some basic stuff on LDPC. See also Error correction coding by Moon.

  • $\begingroup$ Thank you! When we shorten are we effectively adding more redundancy? $\endgroup$ – Henry Jun 17 '15 at 16:29
  • $\begingroup$ When you shorten, you're fixing the redundancy ($n-k$). When you puncture, you're reducing the redundancy $n-k$. $\endgroup$ – Batman Jun 17 '15 at 16:31
  • $\begingroup$ OK so with shortening, you are effectively reducing the code rate? $\endgroup$ – Henry Jun 17 '15 at 16:38
  • $\begingroup$ Yes. This follows from $\frac{x-a}{y-a} \leq \frac{x}{y}$ when $x> a>0, y\geq x$. You can also think of puncturing as deleting columns in a generator matrix while shortening as deleting columns in a parity check matrix (where you use the convention that you left multiply the generator matrix to encode). Shortening decreases rate, puncturing increases rate. $\endgroup$ – Batman Jun 17 '15 at 16:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.