Block FEC Coding for Broadcast Applications
The following block diagram shows the FEC coding schemes used on
DVB-H, DVB-T, DMB and DAB:

The figures below show the input symbol error rate (SER =
number of errored symbols / total number of symbols)
versus the output SER for the Reed-Solomon code used for the MPE-FEC
(multi-protocol encapsulation forward error correction) block in
DVB-H. The code takes 191 bytes, adds 64 parity bytes of redundancy, and by
using the cyclic redundancy check (CRC) in the MPE-FEC packet header, it flags
the MPE-FEC packet contents as unreliable if the CRC check fails. If the MPE-FEC
packet contents are unreliable, the bytes in the packet are termed "erasure" symbols, and
using erasures allows the decoder to correct
twice the number of bytes that could be corrected if erasures were not used. In
the case erasures are used, and this code can correct up to 64 bytes out of the 255-byte codeword. It
should be noted that any 64 bytes can be corrected, i.e. it doesn't
matter whether 1 bit or all 8 bits are in error.
It should be noted that the graph shows the symbol error
rate (one symbol in the case of RS codes used for DVB and DMB consist of one
byte of data), as opposed to the bit error rate (BER). Also, the results are
calculated from an equation [1] that deals with uniformly-distributed errors,
and the errors that occur on a mobile digital communications system typically
occur in bursts. On the one hand, when there's bursts of errors the peak
short-term BER will be significantly higher than the average BER, which would
mean that the RS code would be more likely to make errors than if the errors
were uniformly-distributed, but on the other hand, it's such high short-term
bursts of errors that cause such major problems for the Viterbi algorithm used
for the inner convolutional coding, and that RS coding's inherent robustness
with regards to burst errors underestimates the performance with respect to the
input average SER/BER. Also, the purpose of interleaving, as used on DAB, DVB,
DMB and other mobile digital systems, is to attempt to make the errors as
uniformly-distributed as possible.
So, although the following graphs only show the SER transfer
function (output for a given input) of the decoder, and aren't an accurate
representation of performance for fading channels, they do show the astounding
strength of RS coding -- especially the (255, 191, 64) code used for the MPE-FEC
used in DVB-H.
The equation used to calculate these graphs is as follows [1]:
which is the weighted-sum of the binomial
distribution function for all possibilities where the code cannot correct
all the errors, i.e. if there are 65 bytes in error (t+1) up to 255 bytes in
error (2m-1), where PE = output SER, m = number of bits
per symbol = 8, t = number of correctable symbols = 64, and p = input SER.

Output vs Input SER for (255, 191, 64) RS Code [1]

Output vs Input SER for (255, 191, 64) RS Code at High SER [1]
The graphs below show the output SER versus the input SER
for the 204, 188, 8 RS code used on DVB-T/H/S and DMB. The code takes 188 bytes,
encodes them by adding 16 parity bytes, does not use erasures, and can correct
any 8 bytes of the 204-byte codeword.
It is interesting to note that the input BER required for the RS
code -- as specified in the DVB-T
specification to attain the so-called quasi-error-free channel with a BER of
10-11 -- is 2 x 10-4. So, on average, this RS code
can correct:
output to input ratio = 2 x 10-4 / 10-11
= 20,000,000
That is, on average, the RS code corrects 20 million errors for
each error it fails to correct. Clearly, the DAB specification would have
benefited greatly by using this RS code, as is borne out in the DVB-S RS Code BER Performance
below:

Output vs Input SER for (204, 188, 8) RS Code [1]

Output vs Input SER for (204, 188, 8) RS Code at High SER [1]
The following graph shows BER versus Eb/No performance for the
DVB-S system, with and without RS coding.
Eb/No = SNR / bits per symbol
e.g. Eb/No = SNR/2 for QPSK as used on DAB and DVB-S, because
QPSK symbols carry 2 bits:

The above graph shows that for a BER of 10-5, the
convolutional coding with a code rate R = 1/2 (denoted Viterbi R = 1/2 in figure
above), as used for DAB in the UK, requires a higher SNR than convolutional
coding with a code rate = 3/4 + RS coding (denoted Vit-RS R = 3/4 in figure
above). This implies that the relative capacity with, and without RS coding can
be calculated as follows:
Capacity with : capacity without = Rwithout / Rwith
Capacity with : capacity without = (Rwith
x RRS) / Rwithout
Capacity with : capacity without = (3/4 x (188/204))
/ (1/2)
Capacity with : capacity without = 1.38
or in other words, the capacity when using RS coding is 38%
higher than when RS coding is not used. Obviously, an increase in capacity of
38% is a massive increase, and highlights the fact that DAB should have used RS
coding.
[1] Equation 8.7, section 8.1.1 Reed-Solomon Error Probability
in Digital Communications, 2nd edition, by Bernard Sklar, matlab file used to
create graphs
|