DVB-S2 Soft Demodulator - 2025.1 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2025-08-25
Version
2025.1 English

DVB-S2 is a second-generation satellite-based digital video broadcasting standard [1]. One of the key features of this standard is a powerful, adaptive coding and modulation scheme, which optimizes bandwidth utilization by dynamically changing transmission parameters. Four modulation schemes are included, which support varying numbers of bits per transmitted symbol. These are QPSK (2-bits), 8-PSK (3-bits), 16-APSK (4-bits), and 32-APSK (5-bits).

This lab will focus on AI Engine kernel code implementing a 16-APSK soft demodulator. Mapping of data bits to complex-valued baseband symbols is shown by the blue dots in the following diagram.

figure1

Data is segmented into groups of 4-bits and assigned a symbol. This symbol determines amplitude and phase of an RF carrier during the symbol transmission duration. At the receiver, distortion and noise cause symbols to be altered, which are represented as complex numbers in the plane. This is shown for a single symbol by a green dot in the figure. To determine the data bits associated with the received symbol, the demodulator could simply assume the most likely transmitted symbol (closest in distance) and select associated data bits from the mapping. This approach would result in an unacceptable error rate, impacting data link quality. The preferred approach is to use soft decisions, which provide a probabilistic measure of the likelihood that a received bit is a 1 versus a 0. This likelihood information is used in conjunction with a powerful LDPC error correcting code to provide reliable estimates and improved link performance.

Log-likelihood of a data bit \(b\) is determined by the equation

$$L(b) = \log \left( \frac{Pr(b=0|r = (x,y))}{Pr(b=1|r = (x,y))} \right)$$

which is a ratio of the probability of a data bit being 0 given a received symbol \(r=(x,y)\) to the probability of a data bit being 1 given the same received symbol. For 16-APSK, four LLRs are computed for each symbol. The sign of the LLR determines the value of the data bit, and the magnitude determines how reliable this assumption is.

Additive noise often has qualities that may be modeled using a Gaussian probability distribution. Based on this assumption, LLRs may be calculated with the formula

$$L(b) = \log \left( \frac{\displaystyle\sum_{s \in S_0} e^{-\frac{1}{\sigma^2}\left( \left( x - s_x \right)^2 + \left( y - s_y \right)^2 \right)}}{\displaystyle\sum_{s \in S_1} e^{-\frac{1}{\sigma^2}\left( \left( x - s_x \right)^2 + \left( y - s_y \right)^2 \right)}} \right)$$

where $s = (s_x, s_y)$ are constellation symbols, $S_0$ is the set of symbols with \(b=0\), and $S_1$ is the set of symbols with \(b=1\). For example, if \(b\) is the LSB, then $S_0$ is the set of symbols in the top half of the constellation, and $S_1$ is the set of symbols in the bottom half. Variance of the additive noise is represented by $\sigma^2$.