The program transmission bitstream generated after source coding and system multiplexing usually needs to be transmitted through some medium to reach the user receiver. Typically, the encoded bitstream cannot be transmitted directly through the channel; it must undergo channel coding to transform it into a form suitable for transmission in the channel.
The channel coding of DVB-S mainly includes
- Scrambling
- R-S Coding
- Convolutional Interleaving
- Convolutional Coding
Scrambling#
Digital communication theory assumes that the occurrence probabilities of 0s and 1s in the transmitted bitstream are equal when designing communication systems. The design specifications of actual communication systems are also based on this assumption.
However, after the TS (transport stream) bitstream is encoded, there may be sequences of consecutive 0s or 1s, which undermines the premise of system design and makes it difficult to extract the bit clock. Therefore, to ensure that the probabilities of "0" and "1" in the data bitstream entering the DVB transmission system are approximately equal under any circumstances, the system introduces a pseudo-random sequence to perform ==scrambling== on the TS bitstream, making the occurrence probabilities of 0 and 1 close to 50%.
Scrambling alters the original TS bitstream, so at the receiving end, after error correction decoding of the transmitted bitstream, it is necessary to perform descrambling to restore the original TS bitstream.
After the received bitstream is decoded at the receiving end, the original TS bitstream can be restored.
Principle#
The TS stream frame structure output by the multiplexer is shown in the figure:

The first byte is the synchronization byte, with a value of 47H. Every 8 packets form a superframe, and the synchronization byte of the first packet is inverted to B8H, while the synchronization bytes of the remaining 7 packets remain unchanged. The synchronization byte does not participate in scrambling, while the other bytes do.
The polynomial of the pseudo-random binary sequence (PRBS) generator should be:
The scrambling process is illustrated in the figure:

The scrambling output is shown in the figure below:

R-S Coding#
The outer error correction coding used in DVB-S is R-S (204, 188) code, with coding efficiency $ R_c=\frac{188}{204}=0.92 $, and codeword length of 8.
Each TS packet is independently protected by R-S coding, generating an R-S codeword, and the R-S synchronization header uses the TS packet header. This design has the following benefits:
- When an R-S codeword encounters uncorrectable errors during decoding at the receiving end, the erroneous bits are concentrated in one TS packet, which does not affect other TS packets, facilitating error indication by the demultiplexer.
- It simplifies the extraction of TS packet synchronization for the demultiplexer, thereby simplifying the TS packet synchronization extraction system structure.
R-S Codeword Structure#
Coding Principle#
For the RS(n,k) code defined over $GF(2^m)$, where $n=2^m-1$, the generator polynomial is taken as
Let $ n-k=2t $, the error correction capability is $t$, meaning that if the number of erroneous data in a set of encoded data does not exceed $t$, it can be corrected using $n-k$ supervisory data.
The coefficients of $g(x)$ belong to $GF(2^m)$, and the generator matrix $G$ can be expressed as:
Transforming the matrix $G$ yields an equivalent matrix $G_1$, which consists of a $k$-order identity matrix $ \bold I $ and a $k*(n-k)$-order matrix $ \bold A $, satisfying
The encoding result can be expressed as
where the matrix $ \bold R $ has $n-k$ supervisory symbols, represented by the polynomial
Thus, the code polynomial after R-S encoding is
The R-S generator polynomial used in DVB-S is
where $ \lambda =02H $, is a primitive element, and the field generator polynomial is
The minimum code distance is 17 bytes.
Expanding $G(x)$ gives
Assuming the information polynomial is
the 16 coefficients of the remainder obtained from $x^{16}\times m(x) /g(x)$ are the generated 16 check bytes, which are added to the 188 data bytes to complete the R-S encoding.
R-S(204,188,T=8) Code Frame Structure#
Convolutional Interleaving#
After encoding, convolutional interleaving is applied to disperse the order of data transmission according to a certain pattern, which helps to spread out the erroneous characters caused by burst interference in the channel.
In DVB-S, interleaving uses convolutional interleaving with a depth of 204/17=12. The following diagram illustrates the principles of interleaving and decoding.
It consists of a FIFO, where data is written into the registers row-wise and read out column-wise.
The interleaving process is as follows: The R-S encoded codewords are cyclically input to branches 0 to 11, with one byte input to each branch at a time. The interleaved data is output in the same order from each branch, with one byte output from each branch at a time. The synchronization header of the R-S codeword is always transmitted from branch 0, which is the non-delayed branch. Thus, the interleaved data stream still maintains the synchronization and length of the R-S codewords.
Assuming the input data consists of natural numbers in ascending order, the input data is as follows:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |
61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 |
85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 |
109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 |
121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 |
133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 |
145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 |
157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 |
181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 |
193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 |
205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 |
217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 |
After the interleaving module, the following output can be obtained:
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|
13 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
25 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
37 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
49 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
61 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
73 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
85 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
97 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
109 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
121 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
133 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
145 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
157 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
169 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
181 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
193 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
205 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
217 | 14 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Thus, in the output sequence of convolutional interleaving, the minimum distance between any two bytes of the same erroneous packet is 12 bytes. Therefore, the maximum byte length that can be corrected after R-S(204,188,T=8) coding with convolutional interleaving is $ 8\times12=96 $, greatly enhancing the system's error correction capability.
Convolutional Coding#
The inner coding of DVB-S uses convolutional coding with a rate of 1/2. The system block diagram is as follows:
The middle box represents a 7-bit shift register, and the generating polynomials for the two outputs X and Y are:
This system inputs 1 bit of information for each clock cycle, with two modulo-2 adders outputting 2 bits of information. The output information is related to the current information in the shift register and the previous 6 bits, thus it is commonly represented as (2, 1, 7) for this convolutional code.
QPSK#
The frequency bandwidth of digital signal theory is infinitely wide. To transmit digital signals without distortion, they must be transmitted over an infinitely wide channel. However, satellite systems operate over band-limited channels, so it is necessary to perform shaping filtering on the signals output from the convolutional coding module to match the satellite channel.
The baseband shaping filter must reduce the bandwidth required for transmission while minimizing inter-symbol interference. Theoretically, if the repetition period of the random digital symbol stream is $T_s$, sampling at $nT_s$ after passing through an ideal filter with a bandwidth of $\pi/T_s$ will eliminate inter-symbol interference. Since ideal low-pass filters are difficult to implement, a raised cosine roll-off filter is chosen, with the transfer function:
The raised cosine roll-off filter meets the requirements.
$f_N=\frac{1}{2T_s}=\frac{R_s}{2}$ is the Nyquist frequency.
The transmission bandwidth is $B_r=\frac{1=\alpha}{2T_s}Hz$.
The bandwidth efficiency is $\eta=\frac{R_s}{B_r}=\frac{2}{1+\alpha}bit/Hz$.
In the DVB-S system, the roll-off factor $\alpha=0.35$.
The following diagram shows the QPSK modulation block diagram: