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 criteria 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 not only violate the premise of system design but also make 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, a pseudo-random sequence is introduced 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 inverse encoding of the received bitstream at the receiving end, the original TS bitstream can be restored.
Principle#
The frame structure of the TS stream output from the transport 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 following 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.
R-S Codeword Structure#
Encoding 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 coded data set 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 represented as:
Transforming 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$ contains $n-k$ supervisory symbols, represented by the polynomial
Thus, the coded polynomial after R-S encoding is
The R-S generator polynomial used in DVB-S is
where $ \lambda =02H $, is the primitive element, and the field generator polynomial is
with a minimum code distance of 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 parity bytes. Adding these 16 bytes to the 188 data completes the R-S encoding.
R-S(204,188,T=8) Code Frame Structure#
Convolutional Interleaving#
After encoding, convolutional interleaving is added 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 is done using convolutional interleaving, with an interleaving 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: R-S encoded codewords are cyclically input into branches 0 to 11, with one byte input into each branch at a time. The interleaved data is output from each branch in the same order, 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 codeword.
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 |
Therefore, in the output sequence of the convolutional interleaver, the minimum distance between any two bytes of the same erroneous packet is 12 bytes. Thus, the maximum byte length that can be corrected after R-S(204,188,T=8) encoding with convolutional interleaving is $ 8\times12=96 $, significantly enhancing the system's error correction capability.
Convolutional Coding#
The inner coding of DVB-S uses convolutional coding, and the system block diagram is as follows:
The middle box represents a 7-bit shift register, with the two outputs X and Y having generating polynomials given by
This system inputs 1 bit of information for each clock cycle, with two modulo-2 adders outputting 2 bits of information. The output information depends on the current information in the shift register and the previous 6 bits, hence 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, necessitating the shaping of the signal 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 a random digital symbol stream is $T_s$, sampling at $nT_s$ after passing through an ideal filter with bandwidth $\pi/T_s$ will eliminate inter-symbol interference. Since ideal low-pass filters are difficult to implement, a raised cosine roll-off filter is used, with the transfer function given by
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 utilization ratio 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: