DVB-S.2 Link, Including LDPC Coding in Simulink
This model shows the state-of-the-art channel coding scheme used in the second generation Digital Video Broadcasting standard (DVB-S.2), which is deployed by DIRECTV in the United States. The coding scheme is based on concatenation of LDPC (Low-Density Parity-Check) and BCH codes. LDPC codes, invented by Gallager in his seminal doctoral thesis in 1960, can achieve extremely low error rates near channel capacity by using a low-complexity iterative decoding algorithm. The outer BCH codes are used to correct sporadic errors made by the LDPC decoder.
The channel codes for DVB-S.2 provide a significant capacity gain over DVB-S under the same transmission conditions and allow Quasi-Error-Free operation (packet error rate below 10^ -7) at about 0.7 dB to 1 dB from the Shannon limit, depending on the transmission mode.
This example models the BCH encoder, LDPC encoder, interleaver, modulator, as well as their counterparts in the receiver, according to the DVB-S.2 standard.
Structure of the Example
The communication system in this example performs these tasks:
Generation of BBFRAME by a random source
BCH encoding, for all coding parameters and normal FECFRAME
LDPC encoding, for all coding parameters and normal FECFRAME
Interleaving
Modulation (QPSK, 8PSK, 16APSK, or 32APSK)
AWGN channel modeling
Soft-decision demodulation
Deinterleaving
LDPC decoding, by means of the message passing algorithm
BCH decoding
BBFRAME unbuffering
modelname = 'commdvbs2' ; open_system(modelname); RX = [modelname '/RX Constellation']; % Define Simulink object as a variable set_param(RX,'openScopeAtSimStart','off' ); % Set Simulink scope visibility parameter T = evalc('sim(modelname)');
Furthermore, this model has blocks for measuring and displaying the packet error rate, LDPC bit error rate, and estimated Es/No. There is also a scatter plot scope displaying the received signal, which helps users visualize the channel distortions of the signal.
Simplifications and Assumptions
For simplicity, this example
Assumes perfect synchronization between the transmitter and the receiver
Uses a complex baseband model of an AWGN channel, rather than a full satellite channel
Models BBHEADER and DATA FIELD in a BBFRAME using a Bernoulli binary random source, and does not perform baseband scrambling
Supports only normal FECFRAME (i.e., the block length of LDPC codes is 64800)
Processes one LDPC codeword in one unit of time in Simulink®
Approximates the log-likelihood ratio of the channel output for LDPC decoding by considering only two points in the constellation nearest to the received signal during soft-decision demodulation
Uses Es/No provided by the user for LDPC decoding, instead of estimating the Es/No from the received signal
Also, the example does not model these aspects of the DVB-S.2 standard:
Short FECFRAME
Physical Layer (PL) Framing
PL Signalling and Pilot insertion
PL Scrambler
Baseband (BB) Filter and Quadrature Modulation
Parameters of the Model
Double-clicking the Model Parameters block allows users to set the following parameters for the model:
Results and Displays
When the model starts, a window automatically comes up to display the scatter plot of the received signal. The LDPC bit error rate, packet error rate, and estimated Es/No from the received signal will be continuously updated.
% Set scope visibility for next display and run simulation set_param(RX,'openScopeAtSimStart','on'); sim(modelname);
The power of LDPC codes can be readily observed using the default settings: QPSK, rate 1/2, Es/No = 1 dB, and 50 iterations in decoding. Even with such a low Es/No, the LDPC decoder will seldom make an error. The scatter plot vividly illustrates how noisy the channel is.
If Es/No is slightly decreased, for example, to 0.5 dB, the LDPC bit error rate will be much greater. This is consistent with typical steep performance curves of LDPC codes.
% Cleanup % % To clear the variables set above and close without saving the changes to % the model, type the following commands into the MATLAB(R) command prompt. % close_system(modelname,0);
Selected Bibliography
[1] DVB-S.2 Standard Specification, ETSI EN 302 307 V1.1.1 (2005-03).
[2] R. G. Gallager, Low-Density Parity-Check Codes, IRE Transactions on Information Theory, Vol. 8, No. 1, January 1962, pp. 21-28.
[3] W. E. Ryan, An introduction to LDPC codes, in Coding and Signal Processing for Magnetic Recoding Systems (Bane Vasic, ed.), CRC Press, 2004.