DIGITAL TELEVISION
FORWARD ERROR CORRECTION
+ x2 x3 x4
x + x5 x6 + x7 + x8 x9 x10 x11 + x12 + x13 + x14 x15x16
D0 D1 D2 D3 D4 D5 D6 D7
Figure 3-2. ATSC data randomizer.
Operation of the randomizer for the ATSC system is illustrated in Figure 3-2.
The input data are logically summed, modulo 2, with a pseudorandom sequence produced in accordance with a generator polynomial. The pseudorandom sequence is generated by using a shift register with specified feedback connections to the adders. (A shift register is a cascade of several flip-flops.) When a shift register receives a clock pulse, the binary state of each flip-flop is transferred to the next flip-flop in the cascade. The feedback connections are located at eight positions along the cascade. The tapped signal is added at each connection and fed to the next flip-flop. The sequence can be predicted from knowledge of the shift register length and tap locations. Thus the resulting sequence is known as pseudorandom. The length of the pseudorandom sequence is determined by the length of the shift register, the position of the feedback taps, and the initial states of the flip-flops, which are preloaded to 1 during the data segment sync interval.
The randomizer generator polynomial is
G16Dx16Cx13Cx12Cx11Cx7Cx6Cx3Cx C1
The bit rate at the output of the randomizer is the same as the input data rate.
The shift register is clocked at the frequency recovered from the transport data stream.
The pseudorandom bit stream at the output of the randomizer may be represented in the frequency domain by its Fourier transform. For the non-return-to-zero (NRZ) transport bit stream, the Fourier transform is the familiar sin x/x or sinc function. This function is maximum at the bit sample time, with amplitude zeros occurring at multiples of the bit time. The bandwidth of the sinc function is infinite. Further processing is therefore required to limit the bandwidth to that of the channel.
FORWARD ERROR CORRECTION
Forward error correction is used to detect and correct errors in the transmitted data at the receiver. Extra bits are added to the scrambled baseband data for this purpose. The encoder accepts data from the randomizer at the payload data rate, fp, and introduces redundancy into the bit stream so that the receiver can use it to detect and correct errors in the coded data. The output of the coder is at some higher data rate.
46 CHANNEL CODING AND MODULATION FOR DIGITAL TELEVISION
FEC enables the achievement of a desired BER with a significantly lower Eb/N0, allowing a low-level high-bit-rate signal to be received in a higher noise environment than would otherwise be possible. The improvement in the value of the threshold Eb/N0 is referred to as coding gain. For example, if the threshold value of Eb/N0 is 15 dB without FEC and 12 dB with FEC, the coding gain is 3 dB. By implementing FEC, the effect of transmitting a much higher power level is achieved but at greatly reduced expense for equipment and prime power. Since the transmitted bit rate is higher with FEC, coding gain is achieved at the expense of increased channel bandwidth or the need to transmit a more complex symbol constellation. The digital channel bandwidth is fixed by regulatory agencies; thus the choice must be made for the more complex constellations.
There are two types of FEC used in the DTV, DVB-T, and ISDB-T systems.
Although differing in implementation details, each system uses a combination of block codes and convolutional codes. Since these codes are linked in a cascade or series configuration, they are said to be concatenated. The block code is the outer code and is encoded first; the outer code is followed by the inner code. By using complementary inner and outer codes, very large coding gains may be achieved.
This is especially important for systems such as space communications and digital television, in which the data are compressed; such systems are especially susceptible to transmission errors and thus require low SER or BER at low C/N. This is illustrated in Figure 3-3, which shows the typical performance of a space communications channel for three cases: with concatenated codes, trellis
10−1 Signal-to-noise ratio (Per information bit) in dB
Uncoded
Figure 3-3. Typical performance curves for concatenated and unconcatenated coding systems for the space channel. (From Ref. 1 1994 IEEE; used with permission.)
FORWARD ERROR CORRECTION 47
code only (unconcatenated), and no FEC.1 Use of the trellis code alone results in coding gains of 3 to 6 dB relative to the uncoded curve. (On this graph, coding gain is the difference in C/N between coded and uncoded curves at a specific BER.) Concatenating a block code with a trellis code results in over 2 dB improvement in coding gain for the compressed data but almost no improvement for the uncompressed data. The required BER for the compressed data is more than three orders of magnitude better than the uncompressed.
In the receiver, the order of the block and trellis codes is reversed. The block decoder is used to correct errors due to impulse noise and analog cochannel interference as well as short burst errors generated in or otherwise remaining after the convolutional decoder. As the name implies, block codes divide the data sequence into blocks, processing these blocks independently by adding the redundancy dictated by the desired code. The block codes used in the DTV, DVB-T, and ISDB-T systems are known as Reed–Solomon codes, named for their discoverers, Irving Reed and Gustave Solomon.2 R/S codes are linear codes based on the mathematics of fields that can be described completely by their size.
These finite fields are often called Galois fields after the French mathematician who discovered them. Finite fields are sets of numbers over which all calculations are performed. The input to the calculations and the their results must be numbers contained within the field.3
In R/S encoding, the randomized input data are divided into blocks, each block having a dimension of kb bytes. A code word of nb bytes in length is constructed by adding nb–kbredundancy or error correction bytes to each block.
The R/S code notation is therefore nb, kb. To implement a R/S code, the clock rate must be increased by the ratio of the coded word length to the payload block dimension. When all bytes are encoded, the block code data rate, fb, is
fbD nbfp
kb
For the ATSC system, nb/kb is 207/187 and the input data rate is 19.39 Mb/s, so that the output data rate (less syncs) is
fbD1.10695219.392659 D 21.47108 Mb/s
A R/S code of length nb and dimension kb is capable of correcting up to tb byte errors,4 where
tbD kbnb
2
1S. B. Whicker and V. K. Bhargava, Reed–Solomon Codes and Their Applications, IEEE Press, New York, 1994, p. 27.
2Ibid., p. 18.
3A. D. Houghton, The Engineer’s Error Correcting Handbook, Chapman & Hall, London, 1997, p. 14.
4Whicker and Bhargava, op. cit., pp. 4–7, 61.
48 CHANNEL CODING AND MODULATION FOR DIGITAL TELEVISION
Thus the R/S code used in the ATSC system is capable of correcting up to 10 byte errors per block. For the DVB-T and ISDB-T systems, nb/kb is 203/187, or 1.085562. This R/S code is capable of correcting up to eight byte errors per block. This accounts, in part, for the higher-threshold C/N or Eb/N0 required by the latter systems.
Although R/S coding increases the bit rate by some 10%, this increase is not sufficient to increase the complexity of the transmitted constellation. For example, in the ATSC system, the bit rate at the output of the R/S coder could be transmitted at 2 bits/symbol within the Nyquist bandwidth of 5.38 MHz. The unencoded data rate of 19.3 Mb/s would also require 2 bits/symbol within this bandwidth. Thus no appreciable penalty is paid to obtain the coding gain of the R/S code.
INTERLEAVING
Interleaving and complementary deinterleaving in the receiver is a process for decorrelating burst errors, extending the power of block encoding to correct a larger number of errors. By interleaving a code of a given length, the code can correct a quantity of errors that would require a much longer code without interleaving. The error-correcting power of a longer code is obtained without the potential spectral efficiency penalty of a higher code rate.
There are many ways to interleave the encoded data. In general, the data are read into a memory in the order in which they are output from the FEC encoder and read out in a different order. For example, the blocks of data may be written into a memory as rows of a matrix and read out as columns, thus reordering the data. As a result, consecutive data bytes are spread out over a longer period of time. Should the data be corrupted in transmission, burst errors will be reordered when deinterleaved in the receiver and thus distributed over a similar long period. The block interleaver in the ATSC system is a diagonal byte interleaver that operates conceptually as described. A key difference is that the data are read into the channel as ordered by the matrix diagonals rather than columns.