banner
Moerjie

Moerjie

hello world

DVB-S Learning Record - Channel Coding

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:

image-20231208204057822

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:

P(X)=1+X14+X15P(X)=1+X^{14}+X^{15}

The scrambling process is illustrated in the figure:

image-20231208204647672

The scrambling output is shown in the figure below:

image-20231208204732769

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:

  1. 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.
  2. It simplifies the extraction of TS packet synchronization for the demultiplexer.

R-S Codeword Structure#

image

Encoding Principle#

For the RS(n,k) code defined over $GF(2^m)$, where $n=2^m-1$, the generator polynomial is taken as

g(x)=i=1i=nk(x+αi)=x2t+g2t1x2t1++g2x2+g1x+g0g(x)=\prod_{i=1}^{i=n-k}(x+\alpha^{i})= x^{2t}+g_{2t-1}x^{2t-1}+\cdots+g_{2}x^{2}+g_{1}x+g_{0}

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:

G=[g2tg2t1g1g0000g2tg2g1g0000g2tg2t1g2t2g0]G=\begin{bmatrix}\mathrm{g_{2t}}&\mathrm{g_{2t-1}}&\cdots&\mathrm{g_{1}}&\mathrm{g_{0}}&0&\cdots&0\\0&\mathrm{g_{2t}}&\cdots&\mathrm{g_{2}}&\mathrm{g_{1}}&\mathrm{g_{0}}&\cdots&0\\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&\mathrm{g_{2t}}&\mathrm{g_{2t-1} }&\mathrm{g_{2t-2}}&\cdots&\mathrm{g_{0} }\end{bmatrix}

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

G1=[IA]=[100a1,1a1,2a1,nk010a2,1a2,2a2,nk001ak,1gk,2ak,nk]G_1=[I|A]=\begin{bmatrix}1&0&\cdots&0&a_{1,1}&a_{1,2}&\cdots&a_{1,n-k}\\0&1&\cdots&0&a_{2,1}&a_{2,2}&\cdots&a_{2,n-k}\\\vdots&\vdots&\ddots&\vdots&\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&1&a_{k,1}&g_{k,2}&\cdots&a_{k,n-k}\end{bmatrix}

The encoding result can be expressed as

C=UG1=[UUA]=[UR]C=U\cdot G_1=[U|U\cdot A]=[U|R]

where the matrix $\bold R$ contains $n-k$ supervisory symbols, represented by the polynomial

r(x)=rnk1xnk1++r2x2+r1x+r0r(x)=r_{n-k-1}x^{n-k-1}+\cdots+r_2x^2+r_1x+r_0

Thus, the coded polynomial after R-S encoding is

c(x)=u(x)xnk+r(x)c(x)=u(x)x^{n-k}+r(x)

The R-S generator polynomial used in DVB-S is

G(X)=15(X+λi)G(X)=\overset{15}{\operatorname*{\coprod}}(X+\lambda^i)

where $ \lambda =02H $, is the primitive element, and the field generator polynomial is

P(X)=X8+X4+X3+X2+1P(X)=X^8+X^4+X^3+X^2+1

with a minimum code distance of 17 bytes.

Expanding $G(x)$ gives

g(x)=x16+59x15+13x14+104x13+189x12+68x11+209x10+30x9+8x8+163x7+65x6+41x5+229x4+98x3+50x2+36x+59g(x)=x^{16}+59x^{15}+13x^{14}+104x^{13}+189x^{12}\\+68x^{11}+209x^{10}+30x^{9}+8x^{8}+163x^{7}+65x^{6}\\+41x^{5}+229x^{4}+98x^{3}+50x^{2}+36x+59

Assuming the information polynomial is

m(x)=m187x187+m186x186++m1x1+m0m(x)=m_{187}x^{187}+m_{186}x^{186}+\cdots+m_{1}x^{1}+m_{0}

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#

image-20231209195625640

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.

image-20231209211827932

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:

123456789101112
131415161718192021222324
252627282930313233343536
373839404142434445464748
495051525354555657585960
616263646566676869707172
737475767778798081828384
858687888990919293949596
979899100101102103104105106107108
109110111112113114115116117118119120
121122123124125126127128129130131132
133134135136137138139140141142143144
145146147148149150151152153154155156
157158159160161162163164165166167168
169170171172173174175176177178179180
181182183184185186187188189190191192
193194195196197198199200201202203204
205206207208209210211212213214215216
217218219220221222223224225226227228

After the interleaving module, the following output can be obtained:

100000000000
1300000000000
2500000000000
3700000000000
4900000000000
6100000000000
7300000000000
8500000000000
9700000000000
10900000000000
12100000000000
13300000000000
14500000000000
15700000000000
16900000000000
18100000000000
19300000000000
20520000000000
217140000000000

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:

image-20231209211850906

The middle box represents a 7-bit shift register, with the two outputs X and Y having generating polynomials given by

G1=1+X+X2+X3+X6G2=1+X2+X3+X5+X6\begin{aligned}G_1&=1+X+X^2+X^3+X^6\\\\G_2&=1+X^2+X^3+X^5+X^6\end{aligned}

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

image-20231210112143612

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:

image-20231210112752444

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.