Repeat-accumulate code

In computer science, repeat-accumulate codes (RA codes) are a low complexity class of error-correcting codes. They were devised so that their ensemble weight distributions are easy to derive. RA codes were introduced by Divsalar et al.

In an RA code, an information block of length $${N}$$ is repeated $${q}$$ times, scrambled by an interleaver of size $${qN}$$, and then encoded by a rate 1 accumulator. The accumulator can be viewed as a truncated rate 1 recursive convolutional encoder with transfer function $${1/(1 + D)}$$, but Divsalar et al. prefer to think of it as a block code whose input block $${(z_1, \ldots, z_n)}$$ and output block $${(x_1, \ldots , x_n)}$$ are related by the formula $${x_1 = z_1}$$ and $$x_i = x_{i-1}+z_i$$ for $$i > 1$$. The encoding time for RA codes is linear and their rate is $$1/q$$. They are nonsystematic.

Irregular repeat accumulate codes
Irregular repeat accumulate (IRA) codes build on top of the ideas of RA codes. IRA replaces the outer code in RA code with a low density generator matrix code. IRA codes first repeats information bits different times, and then accumulates subsets of these repeated bits to generate parity bits. The irregular degree profile on the information nodes, together with the degree profile on the check nodes, can be designed using density evolution.

Systematic IRA codes are considered a form of LDPC code. Litigation over whether the DVB-S2 LDPC code is a form of IRA code is ongoing. US patents 7,116,710; 7,421,032; 7,916,781; and 8,284,833 are at issue.