# Coding gain

In coding theory, telecommunications engineering and other 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 = 4 dB − 2.5 dB = 1.5 dB, due to the code used (in this case BCH).

## Power-limited regime

In the power-limited regime (where the nominal spectral efficiency $\rho \leq 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_{\min }^{2}(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\left({\sqrt {\frac {2\gamma _{c}(A)E_{b}}{N_{0}}}}\right),$
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\leq 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 >2~b/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_{\min }^{2}(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.