# Coding gain

This is the approved revision of this page, as well as being the most recent.

In coding theory and related engineering problems, coding gain is the measure in the difference between the signal-to-noise ratio (SNR) levels between the uncoded system and coded system required to reach the same bit error rate (BER) levels when used with the error correcting code (ECC).

## Example

If the uncoded BPSK system in AWGN environment has a bit error rate (BER) of 10−2 at the SNR level 4 dB, and the corresponding coded (e.g., BCH) system has the same BER at an SNR of 2.5 dB, then we say the coding gain = , due to the code used (in this case BCH).

## Power-limited regime

In the power-limited regime (where the nominal spectral efficiency $\rho \le 2$ [b/2D or b/s/Hz], i.e. the domain of binary signaling), the effective coding gain $\gamma_\mathrm{eff}(A)$ of a signal set $A$ at a given target error probability per bit $P_b(E)$ is defined as the difference in dB between the $E_b/N_0$ required to achieve the target $P_b(E)$ with $A$ and the $E_b/N_0$ required to achieve the target $P_b(E)$ with 2-PAM or (2×2)-QAM (i.e. no coding). The nominal coding gain $\gamma_c(A)$ is defined as $\gamma_c(A) = \frac{d^2_{\min}(A)}{4E_b}.$

This definition is normalized so that $\gamma_c(A) = 1$ for 2-PAM or (2×2)-QAM. If the average number of nearest neighbors per transmitted bit $K_b(A)$ is equal to one, the effective coding gain $\gamma_\mathrm{eff}(A)$ is approximately equal to the nominal coding gain $\gamma_c(A)$. However, if $K_b(A)>1$, the effective coding gain $\gamma_\mathrm{eff}(A)$ is less than the nominal coding gain $\gamma_c(A)$ by an amount which depends on the steepness of the $P_b(E)$vs. $E_b/N_0$ curve at the target $P_b(E)$. This curve can be plotted using the union bound estimate (UBE) $P_b(E) \approx K_b(A)Q\sqrt{\frac{2\gamma_c(A)E_b}{N_0}},$

where Q is the Gaussian probability-of-error function.

For the special case of a binary linear block code $C$ with parameters $(n,k,d)$, the nominal spectral efficiency is $\rho = 2k/n$ and the nominal coding gain is kd/n.

## Example

The table below lists the nominal spectral efficiency, nominal coding gain and effective coding gain at $P_b(E) \approx 10^{-5}$ for Reed–Muller codes of length $n \le 64$:

Code $\rho$ $\gamma_c$ $\gamma_c$ (dB) $K_b$ $\gamma_\mathrm{eff}$ (dB)
[8,7,2] 1.75 7/4 2.43 4 2.0
[8,4,4] 1.0 2 3.01 4 2.6
[16,15,2] 1.88 15/8 2.73 8 2.1
[16,11,4] 1.38 11/4 4.39 13 3.7
[16,5,8] 0.63 5/2 3.98 6 3.5
[32,31,2] 1.94 31/16 2.87 16 2.1
[32,26,4] 1.63 13/4 5.12 48 4.0
[32,16,8] 1.00 4 6.02 39 4.9
[32,6,16] 0.37 3 4.77 10 4.2
[64,63,2] 1.97 63/32 2.94 32 1.9
[64,57,4] 1.78 57/16 5.52 183 4.0
[64,42,8] 1.31 21/4 7.20 266 5.6
[64,22,16] 0.69 11/2 7.40 118 6.0
[64,7,32] 0.22 7/2 5.44 18 4.6

## Bandwidth-limited regime

In the bandwidth-limited regime ( $\rho > 2b/2D$, i.e. the domain of non-binary signaling), the effective coding gain $\gamma_\mathrm{eff}(A)$ of a signal set $A$ at a given target error rate $P_s(E)$ is defined as the difference in dB between the $SNR_\mathrm{norm}$ required to achieve the target $P_s(E)$ with $A$ and the $SNR_\mathrm{norm}$ required to achieve the target $P_s(E)$ with M-PAM or (M×M)-QAM (i.e. no coding). The nominal coding gain $\gamma_c(A)$ is defined as $\gamma_c(A) = {(2^\rho - 1)d^2_{\min} (A) \over 6E_s}.$

This definition is normalized so that $\gamma_c(A) = 1$ for M-PAM or (M×M)-QAM. The UBE becomes $P_s(E) \approx K_s(A)Q\sqrt{3\gamma_c(A)SNR_\mathrm{norm}},$

where $K_s(A)$ is the average number of nearest neighbors per two dimensions.