It just so happened that in order to write a candidate disserter, I needed to thoroughly study the standard of satellite communication
DVB-S2 (Digital Video Broadcasting - Setellite, Version 2).If you, dear reader, wonder how HDTV or
SDTV data is transmitted through one of the most popular satellite TV and radio broadcast protocols and there is no desire / time to read the protocol itself, then I ask for cat.

Scheme 1.
')
I - “Rough” scheme.
The DVB-S2 algorithm (Digital Video Broadcasting - Sputnik, version 2) is intended, as it is not difficult to guess, to transmit data via satellite. The standard has replaced DVB-S. It is developed by the
European Telecommunications Standards Institute (
ESTI ). Yes, yes, this is the same
Sharashkin office, which presented the world with GSM and, if anyone knows,
TETRA .
Before giving the description of the terrible image from above, I suggest first to “in general terms” understand the basic principle of data transfer.
The picture below is a rough simplification of the data transfer scheme, which is indicated in the protocol itself (see diagram 1)

Scheme 2.
The first thing that happens with a video stream, regardless of which broadcasting protocol we use, is the connection of all broadcast channels to one channel. How does this happen? Very simple: the fact is that the capacity of a satellite channel is substantially greater than what is required for a single video stream. Therefore, it is rational to use the so-called
Time Division Multiplexing (translated as
" Time Division Multiplexing " .)
Maybe you have already seen the abbreviation TDM somewhere ... Aha! in GSM! .. Almost true, only there this principle is called
TDMA (
Time Division Multiple Access ).
Suppose we have 3 channels (see pic): Red, Blue, Yellow.
He really wanted to take ORT, Rain and NTV, but he understood that Habr is not a place for politics . Each stream is divided into a sequence of bytes (the so-called
timeslots ).
TDM flow is formed in the following way: first, the 1st timeslot of the Red channel, then the 1st timeslot of the Blue channel, then the 1st timeslot of the Yellow. After the TDM output goes the second timeslot of the Red, the second Blue, three Yellow, and so on.

Scheme 3.
Of course, in practice, I would like to somehow check the information for errors. In DVB-S2 timeslots are called
UP 's (from
User Packet ). CRC-8 in the first scheme is the error detection code.
The second phase in our simple schema is scrambling. The meaning of scrambling, as I understand it, is to make the probabilities of occurrence of 1 or 0 equally probable. This is necessary because the next phase in our simple scheme is the
Error Correction Codes (ECC) (
error correction codes ). Indeed, anyone who
reads Berlikamp may recall that the entire
Algebraic Coding Theory is based on a priori given rule, which 1 is equally likely 0. Of course, due to compression, the scrambling is probably excessive, but apparently the authors decided to leave it ... (who has a different info please write in komenty!)
After ECC, the output is a
code word that is fed to the input of the modulator.
After modulation, the mods are fed to
a traveling wave tube (
Wave Tube Amplifer, WTA ).
I hope in general it is clear.
II - Model Adaptation
Now, when we briefly examined the general scheme (Scheme 2), we will continue to eat the elephant in parts. This chapter is about Mode Adaptation (see diagram 1). DVB-S2 protocol allows you to independently perform TDM conversion from various single input streams (
Single Input Stream (SIS) ), and to accept as input a multi-channel stream that was previously received from the output of any other protocol (
Multiple Input Stream (MIS) ) . Theoretically, if you are Rockefeller, you can not use TDM at all and transmit only one stream ... True, this is irrational and expensive, but the standard allows, as evidenced by the inscription in the dotted rectangle in the diagram. In this case, we do not need either synchronization (
Input Stream Synchronizer ) or buffering (
Buffer ) (dotted lines in diagram 1), because in the absence of TDM, there is nothing to synchronize, and it is pointless to buffer.
Merger Slicer is a module that, as you might guess from the name, “sticks together” UP-timeslots among themselves.
III - Stream Adaptation
After the Model Adaptation, as you can see from their diagram 1, the Stream Adaptation goes.
Here is a drawing from the standard:

Scheme 4.
UP-timeslots are represented as a single stream of
Generic Continous Stream . Then this stream is “cut” into data blocks called
Data Field and a
BB (Baseband) header is attached to each Data Field.
The header fields are as follows:
- MATYPE determines the type of input data, SIS or MIS, ACM / CCM mode (more on that later) and Roll-off factor
- UPL (User Packet Length) determines the length of the UP'a
- DFL (Data Field Length) defines the length of the Data Field.
- SYNC is ... a copy of the CRC8 byte
- SYNCCD - indent from the second UP, which, unlike the first UP, is fully included in the Data Field (see diagram 4)
- CRC-8 is OTHER verification code (not to be confused with CRC-8 for UPs)
After this splitting, there is scrambling with the “
Pseudo Random Binary Sequence ” (
Pseudo Random Binary Sequence, PRBS ). Who cares: This sequence is calculated using the
LFSR of length 15, specified by the
associated polynomial 1+ x ^ 14 + x ^ 15 and the initial value: 100101010000000. Te who understood - I am glad, who did not understand - see the picture:

As cryptographers say, “unwinding” LFSR we get the output sequence: 10010101000000010111111000000111000001 ... The minimum length of a sequence, until it loops, is called
the LFSR
period . The period of this LFSR is (2 ^ 15-1). The probability of occurrence of 1 and 0 is 0.5. (In fact, this statement is true not only for the considered LFSR, but for any LFSR that is not filled with all zeros, provided that the
associative polynomial is
primitive .)
IV - FEC (Forward Error Correction) encding
It is possible to give a description of coding briefly, but it can be very long. In addition to the main standard [1], there is a standard for coding [2]. If habrablitchitelyh interest arises, then I will write a separate article, which will analyze in detail the coding in DVB-S2.
Briefly, the FEC code, as seen in diagram 1, consists of three phases:
- BCH coding
- LDPC ( Low Density Parity Check ) coding
- Interleaving
The FEC code works in two modes, the so-called
short FECFRAME and
normal FECFRAME . The difference in the length of the output. LDPC code block for a short frame of
16200 bytes, for a long
64800 . For the transfer of "useful" information (video, radio) using normal frames. For service information, for which time is absolutely critical, use short frames.
But that's not all: for a short frame there are 10 modes with different speeds for BCH and LDPC coding, for the normal 11 options. A total of 21 options FEC code! Who is interested in more details - see Table 5a and Table 5b in [2].
Why so many coding options? ..
The fact is that there are three modes of functioning of the satellite:
- CCM - Constant Coding & Modulation
- VCM - Variable Coding & Modulation
- ACM - Adaptive Coding & Modulation
Let's start with a simple one: CCM is the same coding, regardless of where the satellite is located and what data it transmits. If the interference has increased and this is noticed "on the ground", then until the command to change the coding is sent (if such a command exists at all), the satellite will not use another coding.
VCM encoding implies different encoding for different types of data. Well, for example, if a couple of bytes disappear in an uncompressed video stream (although video is usually compressed, of course ...), there will not be any special problems, if two bytes are distorted in the service command and it is incorrectly perceived by the satellite, this can lead to epic fail ...
The most interesting is ACM. This mode assumes that depending on the location of the satellite relative to the earth, other satellites, time, presence / absence of rain,
seasonal flight of Cheburashek , the satellite encodes the data in different ways.
The DVB-S2 standard supports CCM and ACM modes. VCM mode without dancing with a tambourine is not supported.
CCM mode is supported for compatibility, but in order to get all the benefits of ACM, you need a different number of possible encoding forms! In the case of large interference (rain, remoteness from the ground, interference from other satellites,
Cheburashka ), the code speed is low, but it fixes a lot of errors, in the case of weak interference - the speed is higher and, therefore, the throughput is higher.
V - Mapping + PL (Physical Layer) Framing.
If on fingers, after receiving the FEC frame, the data is divided into 2, 3, 4 or 5 bits.
It all depends on what type of modulation you choose:
- QPSK (Quaternary Phase Shift Keying) - 2 bits each
- 8PSK (Eigth Phase Shift Keying) - 3 bits each
- 16APSK (Amplitude-Phase Shift Keying) - 4 bits each
- 32APSK - 5 bits
Thus, in DVB-S2, two phase modulations (QPSK or 8PSK) and two amplitude-phase (16APSK or 32APSK) can be used. To someone who knows nothing about modulation, I recommend a
good article by
alexxerm . UPDATE (thanks to
HounD ): you can also view
this and
this article on wikipedia.

Scheme 5.
Mapping means that we "broke" the sequence into 2,3,4 or 5 bits.
However, before sending a signal further, we in FL (Physical Layer) add a certain synchronization sequence and scramble again.
VI - BB Filter & Modulation
After the signal is fed to the lamp traveling wave. The alpha in diagram 1 denotes the “raised cosine coefficient”, otherwise, the “smoothing coefficient” or, on the Anglo-Saxon move
Roll-off factor .
Here is a picture from V.V. (only here, instead of alpha, beta is written):

The filter that transforms the “mapped” data into modes with certain “raised cosine coefficients” is called a
BB (baseband) Filter (see diagram 1).
(For those who will disassemble the standard: another name in the standard is “
baseband shaping & quadrature modulation ”, so don't be scared :))
Instead of conclusion
Actually "on the fingers" this is the whole DVB-S2. Of course, I omitted some details and nuances, but for those who are just curious, these details will be quickly taken out of their heads, and for those who need to master them, it is better to spend Nts evenings and read the standards yourself.
To whom the topic is interesting - in comments or in a personal. As soon as there is a free minute, I will definitely answer.
PS I crave criticism - I ask for comments! :)
Standards considered in this article
[1]
Digital Video Broadcasting (DVB) is a basic standard in which everything is a little bit, and most importantly, in the second chapter. (Referenses) There are links to all other DVB-S2, DVB-S, DSNG, DVB-H and other standards.
[2]
Digital Video Broadcasting (DVB); Broadcast satellite applications (DVB-S2) for those who are interested in ATK (Algebraic Coding Theory), I recommend to watch this standard