TM Synchronization and Channel Coding: Recommendation For Space Data System Standards
TM Synchronization and Channel Coding: Recommendation For Space Data System Standards
TM Synchronization and Channel Coding: Recommendation For Space Data System Standards
TM SYNCHRONIZATION
AND CHANNEL CODING
RECOMMENDED STANDARD
CCSDS 131.0-B-4
BLUE BOOK
April 2022
Recommendation for Space Data System Standards
TM SYNCHRONIZATION
AND CHANNEL CODING
RECOMMENDED STANDARD
CCSDS 131.0-B-4
BLUE BOOK
April 2022
CCSDS RECOMMENDED STANDARD FOR TM SYNCHRONIZATION AND CHANNEL CODING
AUTHORITY
This document has been approved for publication by the Management Council of the
Consultative Committee for Space Data Systems (CCSDS) and represents the consensus
technical agreement of the participating CCSDS Member Agencies. The procedure for
review and authorization of CCSDS documents is detailed in Organization and Processes for
the Consultative Committee for Space Data Systems (CCSDS A02.1-Y-4), and the record of
Agency participation in the authorization of this document can be obtained from the CCSDS
Secretariat at the email address below.
CCSDS Secretariat
National Aeronautics and Space Administration
Washington, DC, USA
Email: [email protected]
STATEMENT OF INTENT
The Consultative Committee for Space Data Systems (CCSDS) is an organization officially
established by the management of its members. The Committee meets periodically to address
data systems problems that are common to all participants, and to formulate sound technical
solutions to these problems. Inasmuch as participation in the CCSDS is completely
voluntary, the results of Committee actions are termed Recommended Standards and are
not considered binding on any Agency.
This Recommended Standard is issued by, and represents the consensus of, the CCSDS
members. Endorsement of this Recommendation is entirely voluntary. Endorsement,
however, indicates the following understandings:
o Whenever a member establishes a CCSDS-related standard, this standard will be in
accord with the relevant Recommended Standard. Establishing such a standard
does not preclude other provisions which a member may develop.
o Whenever a member establishes a CCSDS-related standard, that member will
provide other CCSDS members with the following information:
-- The standard itself.
-- The anticipated date of initial operational capability.
-- The anticipated duration of operational service.
o Specific service arrangements shall be made via memoranda of agreement. Neither
this Recommended Standard nor any ensuing standard is a substitute for a
memorandum of agreement.
No later than five years from its date of issuance, this Recommended Standard will be
reviewed by the CCSDS to determine whether it should: (1) remain in effect without change;
(2) be changed to reflect the impact of new technologies, new requirements, or new
directions; or (3) be retired or canceled.
FOREWORD
This document is a technical Recommended Standard for use in developing synchronization
and channel coding systems and has been prepared by the Consultative Committee for Space
Data Systems (CCSDS). The synchronization and channel coding concept described herein
is intended for missions that are cross-supported between Agencies of the CCSDS.
http://www.ccsds.org/
Questions relating to the contents or status of this document should be sent to the CCSDS
Secretariat at the email address indicated on page i.
At time of publication, the active Member and Observer Agencies of the CCSDS were:
Member Agencies
– Agenzia Spaziale Italiana (ASI)/Italy.
– Canadian Space Agency (CSA)/Canada.
– Centre National d’Etudes Spatiales (CNES)/France.
– China National Space Administration (CNSA)/People’s Republic of China.
– Deutsches Zentrum für Luft- und Raumfahrt (DLR)/Germany.
– European Space Agency (ESA)/Europe.
– Federal Space Agency (FSA)/Russian Federation.
– Instituto Nacional de Pesquisas Espaciais (INPE)/Brazil.
– Japan Aerospace Exploration Agency (JAXA)/Japan.
– National Aeronautics and Space Administration (NASA)/USA.
– UK Space Agency/United Kingdom.
Observer Agencies
– Austrian Space Agency (ASA)/Austria.
– Belgian Science Policy Office (BELSPO)/Belgium.
– Central Research Institute of Machine Building (TsNIIMash)/Russian Federation.
– China Satellite Launch and Tracking Control General, Beijing Institute of Tracking and
Telecommunications Technology (CLTC/BITTT)/China.
– Chinese Academy of Sciences (CAS)/China.
– China Academy of Space Technology (CAST)/China.
– Commonwealth Scientific and Industrial Research Organization (CSIRO)/Australia.
– Danish National Space Center (DNSC)/Denmark.
– Departamento de Ciência e Tecnologia Aeroespacial (DCTA)/Brazil.
– Electronics and Telecommunications Research Institute (ETRI)/Korea.
– European Organization for the Exploitation of Meteorological Satellites (EUMETSAT)/Europe.
– European Telecommunications Satellite Organization (EUTELSAT)/Europe.
– Geo-Informatics and Space Technology Development Agency (GISTDA)/Thailand.
– Hellenic National Space Committee (HNSC)/Greece.
– Hellenic Space Agency (HSA)/Greece.
– Indian Space Research Organization (ISRO)/India.
– Institute of Space Research (IKI)/Russian Federation.
– Korea Aerospace Research Institute (KARI)/Korea.
– Ministry of Communications (MOC)/Israel.
– Mohammed Bin Rashid Space Centre (MBRSC)/United Arab Emirates.
– National Institute of Information and Communications Technology (NICT)/Japan.
– National Oceanic and Atmospheric Administration (NOAA)/USA.
– National Space Agency of the Republic of Kazakhstan (NSARK)/Kazakhstan.
– National Space Organization (NSPO)/Chinese Taipei.
– Naval Center for Space Technology (NCST)/USA.
– Netherlands Space Office (NSO)/The Netherlands.
– Research Institute for Particle & Nuclear Physics (KFKI)/Hungary.
– Scientific and Technological Research Council of Turkey (TUBITAK)/Turkey.
– South African National Space Agency (SANSA)/Republic of South Africa.
– Space and Upper Atmosphere Research Commission (SUPARCO)/Pakistan.
– Swedish Space Corporation (SSC)/Sweden.
– Swiss Space Office (SSO)/Switzerland.
– United States Geological Survey (USGS)/USA.
DOCUMENT CONTROL
CONTENTS
Section Page
1 INTRODUCTION.......................................................................................................... 1-1
CONTENTS (continued)
Section Page
CONTENTS (continued)
Section Page
CONTENTS (continued)
Figure Page
Table
3-1 Puncture Code Patterns for Convolutional Code Rates ................................................ 3-4
6-1 Specified Information Block Lengths ........................................................................... 6-3
6-2 Codeword Lengths for Supported Code Rates (Measured in Bits) .............................. 6-3
6-3 Parameters k1 and k2 for Specified Information Block Lengths ................................... 6-4
7-1 Specification of Circulants ........................................................................................... 7-4
7-2 Values of Submatrix Size M for Supported Codes ....................................................... 7-7
7-3 Description of ϕk(0,M) and ϕk(1,M) .............................................................................. 7-9
CONTENTS (continued)
Table Page
1 INTRODUCTION
1.1 PURPOSE
1.2 SCOPE
This Recommended Standard defines synchronization and channel coding schemes in terms of:
a) the services provided to the users of this specification;
b) data formats; and
c) the procedures performed to generate and process the data formats.
1.3 APPLICABILITY
This Recommended Standard applies to the creation of Agency standards and to the future
data communications over space links between CCSDS Agencies in cross-support situations.
This Recommended Standard includes comprehensive specification of the data formats and
procedures for inter-Agency cross support. It is neither a specification of, nor a design for,
real systems that may be implemented for existing or future missions.
The Recommended Standard specified in this document is to be invoked through the normal
standards programs of each CCSDS Agency, and is applicable to those missions for which
cross support based on capabilities described in this Recommended Standard is anticipated.
Where mandatory capabilities are clearly indicated in sections of this Recommended
Standard, they must be implemented when this document is used as a basis for cross support.
Where options are allowed or implied, implementation of these options is subject to specific
bilateral cross support agreements between the Agencies involved.
1.4 RATIONALE
This document is divided into thirteen numbered sections and seven annexes:
a) section 1 presents the purpose, scope, applicability and rationale of this
Recommended Standard and lists the conventions, definitions, and references used
throughout the document;
b) section 2 provides an overview of synchronization and channel coding;
c) section 3 specifies convolutional coding;
d) section 4 specifies Reed-Solomon coding;
e) section 5 concatenated coding;
f) section 6 specifies Turbo coding;
g) section 7 specifies low-density parity-check coding of a Transfer Frame;
h) section 8 specifies low-density parity-check coding of a stream of Sync-Marked
Transfer Frames (SMTFs);
i) section 9 specifies the frame synchronization scheme;
j) section 10 specifies the Pseudo-Randomizer;
k) section 11 specifies the allowed lengths of Transfer Frames;
l) section 12 lists the managed parameters associated with synchronization and channel
coding;
m) section 13 specifies use of these codes for ground-to-space and space-to-space links;
n) annex A defines the service provided to the users;
o) annex B discusses security issues related to TM Channel Coding;
p) annex C provides the generator matrix circulant table applicable to rate-223/255
LDPC coding (see 7.3);
q) annex D lists acronyms and terms used within this document;
r) annex E provides a list of informative references;
1.6.1 DEFINITIONS
1.6.1.1 Definitions from the Open System Interconnection (OSI) Basic Reference Model
This Recommended Standard makes use of a number of terms defined in reference [3]. The
use of those terms in this Recommended Standard shall be understood in a generic sense; i.e.,
in the sense that those terms are generally applicable to any of a variety of technologies that
provide for the exchange of information between real systems. Those terms are:
a) Data Link Layer;
b) Physical Layer;
c) service;
d) service data unit.
This Recommended Standard makes use of a number of terms defined in reference [4]. The
use of those terms in this Recommended Standard shall be understood in a generic sense; i.e.,
in the sense that those terms are generally applicable to any of a variety of technologies that
provide for the exchange of information between real systems. Those terms are:
a) indication;
b) primitive;
c) request;
d) service provider;
e) service user.
For the purposes of this Recommended Standard, the following definitions apply. Many
other terms that pertain to specific items are defined in the appropriate sections.
circulant: In LDPC coding, a square matrix with binary entries, where each row is a one-
entry right cyclic shift of the preceding row.
code rate: The average ratio of the number of binary digits at the input of an encoder to the
number of binary digits at its output.
codeblock: The aggregation of one or more codewords. In this document, the term
codeblock is used for R-S coding and for LDPC coding. An R-S codeblock is the aggregation
of I codewords, where I is the interleaving depth. An LDPC codeblock is the aggregation of
m codewords. If I=1 or m=1, the terms codeblock and codeword are used interchangeably.
codeword: In a block code, one of the sequences in the range of the one-to-one
transformation (see block encoding). A codeword of an (n,k) block code is a sequence of n
channel symbols which are produced by encoding a sequence of k information symbols.
concatenation: The use of two or more codes to process data sequentially with the output of
one encoder used as the input of the next.
connection vector (backward): In Turbo coding, a vector used to specify the feedback to
the shift registers in the encoder. For a shift register with s stages, a backward connection
vector is an s-bit binary number. A bit equal to ‘one’ in position i (counted from the left)
indicates that the output of the ith stage of the shift register is to be used in computing the
feedback value, except for the leftmost bit which is ignored.
connection vector (forward): In convolutional and Turbo coding, a vector used to specify
one of the parity checks to be computed by the shift register(s) in the encoder. For a shift
register with s stages, a connection vector is an s-bit binary number. A bit equal to ‘one’ in
position i (counted from the left) indicates that the output of the ith stage of the shift register
is to be used in computing that parity check.
constraint length: In convolutional coding, the number of consecutive input bits that are
needed to determine the value of the output symbols at any time.
convolutional code: As used in this document, a code in which a number of output symbols are
produced for each input information bit. Each output symbol is a linear combination of the current
input bit as well as some or all of the previous k-1 bits where k is the constraint length of the code.
1 The term ‘coded symbol’ is used for the first time in this version of the book, replacing the term ‘channel symbol’ to
avoid conflict with the definition in other books.
differential encoding: a signaling technique used to resolve phase ambiguities with certain
modulations, equivalent to NRZ-M signaling.
expurgated code: A subcode of lower rate obtained by deleting some of the codewords from
another code. This may be accomplished by removing rows from a generator matrix, or
adding rows to a parity-check matrix.
inner code: In a concatenated coding system, the last encoding algorithm that is applied to the
data stream. The data stream here consists of the codewords generated by the outer decoder.
LDPC code: An error correcting code with codewords taken as the set of vectors in the
nullspace of a sparse matrix, called a low-density parity-check matrix. In this document,
modifications of such codes through puncturing, expurgation, etc., are also considered LDPC
codes.
modulating waveform: A way of representing data bits (‘1’ and ‘0’) by a particular
waveform.
NRZ-L: A data format in which a data ‘one’ is represented by one of two levels, and a data
‘zero’ is represented by the other level.
NRZ-M: A data format in which a data ‘one’ is represented by a change in level and a data
‘zero’ is represented by no change in level.
outer code: In a concatenated coding system, the first encoding algorithm that is applied to
the data stream.
Physical Channel: a stream of bits transferred over a space link in a single direction.
punctured code: As used in this document, a code obtained by deleting some of the parity
symbols generated by the convolutional encoder before transmission. The bandwidth efficiency
obtained by puncturing is increased compared to the original code, although the minimum
weight (and therefore its error-correcting performance) will be less than that of the original code.
Reed-Solomon (R-S) symbol: A set of J bits that represents an element in GF(2J), the code
alphabet of a J-bit Reed-Solomon code.
space link: a communications link between a spacecraft and its associated ground system or
between two spacecraft. A space link consists of one or more Physical Channels in one or
both directions.
Synchronization and Channel Coding Sublayer: That sublayer of the Data Link Layer
used by CCSDS space link protocols which uses a prescribed coding technique to reliably
transfer Transfer Frames through the potentially noisy Physical Layer.
systematic code: A code in which the input information sequence appears in unaltered form
as part of the output codeword.
transparent code: A code that has the property that complementing the input of the encoder
or decoder results in complementing the output.
trellis termination: The operation of filling with zeros the s stages of each shift register
used in the Turbo encoder, after the end of the information block. During trellis termination
the encoders continue to output encoded symbols for s-1 additional clock cycles.
Turbo code permutation: A fixed bit-by-bit permutation of the entire input block of
information bits performed by an interleaver, used in Turbo codes.
Turbo code: As used in this document, a block code formed by combining two component
recursive convolutional codes. A Turbo code takes as input a block of k information bits.
The input block is sent unchanged to the first component code and bit-wise interleaved (see
Turbo code permutation) to the second component code. The output is formed by the parity
symbols contributed by each component code plus a replica of the information bits.
virtual fill: In a systematic block code, a codeword can be divided into an information part
and a parity (check) part. Suppose that the information part is k symbols long (a symbol is
defined here to be an element of the code’s alphabet) and that the parity part is n symbols
long. A ‘shortened’ code is created by taking only S (S < k) information symbols as input,
appending a fixed string of length k-S and then encoding in the normal way. This fixed
string is called ‘fill’. Since the fill is a predetermined sequence of symbols, it need not be
transmitted over the channel. Instead, the decoder appends the same fill sequence before
decoding. In this case, the fill is called ‘virtual fill’.
1.6.2 NOMENCLATURE
The following conventions apply for the normative specifications in this Recommended
Standard:
a) the words ‘shall’ and ‘must’ imply a binding and verifiable specification;
b) the word ‘should’ implies an optional, but desirable, specification;
c) the word ‘may’ implies an optional specification;
d) the words ‘is’, ‘are’, and ‘will’ imply statements of fact.
NOTE – These conventions do not imply constraints on diction in text that is clearly
informative in nature.
1.6.3 CONVENTIONS
In this document, the following convention is used to identify each bit in an N-bit field. The
first bit in the field to be transmitted (i.e., the most left justified when drawing a figure) is
defined to be ‘Bit 0’, the following bit is defined to be ‘Bit 1’, and so on up to ‘Bit N-1’.
When the field is used to express a binary value (such as a counter), the Most Significant Bit
(MSB) shall be the first transmitted bit of the field, i.e., ‘Bit 0’ (see figure 1-1).
BIT 0 BIT N-1
In accordance with standard data-communications practice, data fields are often grouped into
8-bit ‘words’ which conform to the above convention. Throughout this Recommended
Standard, such an 8-bit word is called an ‘octet’.
The numbering for octets within a data structure starts with ‘0’.
The CCSDS draws attention to the fact that it is claimed that compliance with this document
may involve the use of patents concerning Turbo Coding (section 6) and Low-Density
Parity-Check Coding (section 7).
The CCSDS takes no position concerning the evidence, validity, and scope of these patent rights.
The holders of these patent rights have assured the CCSDS that they are willing to negotiate
licenses under reasonable and non-discriminatory terms and conditions with applicants
throughout the world. In this respect, the statements of the holders of these patent rights are
registered with CCSDS. Information can be obtained from the CCSDS Secretariat at the
address indicated on page i. Contact information for the holders of these patent rights is
provided in annex B.
Attention is drawn to the possibility that some of the elements of this document may be the
subject of patent rights other than those identified above. The CCSDS shall not be held
responsible for identifying any or all such patent rights.
1.8 REFERENCES
The following documents contain provisions which, through reference in this text, constitute
provisions of this Recommended Standard. At the time of publication, the editions indicated
were valid. All documents are subject to revision, and users of this Recommended Standard
are encouraged to investigate the possibility of applying the most recent editions of the
documents indicated below. The CCSDS Secretariat maintains a register of currently valid
CCSDS Recommended Standards.
[1] TM Space Data Link Protocol. Issue 3. Recommendation for Space Data System
Standards (Blue Book), CCSDS 132.0-B-3. Washington, D.C.: CCSDS, October 2021.
[2] AOS Space Data Link Protocol. Issue 4. Recommendation for Space Data System
Standards (Blue Book), CCSDS 732.0-B-4. Washington, D.C.: CCSDS, October 2021.
[5] Radio Frequency and Modulation Systems—Part 1: Earth Stations and Spacecraft.
Issue 32. Recommendations for Space Data System Standards (Blue Book), CCSDS
401.0-B-32. Washington, D.C.: CCSDS, October 2021.
[6] Unified Space Data Link Protocol. Issue 2. Recommendation for Space Data System
Standards (Blue Book), CCSDS 732.1-B-2. Washington, D.C.: CCSDS, October 2021.
2 OVERVIEW
2.1 ARCHITECTURE
Figure 2-1 illustrates the relationship of this Recommended Standard to the Open Systems
Interconnection reference model (reference [3]). Two sublayers of the Data Link Layer are
defined for CCSDS space link protocols. The TM, AOS, and Unified Space Data Link
Protocols specified in references [1], [2], and [6], respectively, correspond to the Data Link
Protocol Sublayer and provide functions for transferring data using the protocol data unit
called the Transfer Frame. The Radio Frequency and Modulation Systems specified in
reference [5] corresponds to the Physical Layer. The Synchronization and Channel Coding
Sublayer provides additional functions necessary for transferring Transfer Frames over a
space link. These functions are error-control coding/decoding, Transfer Frame
delimiting/synchronizing, and bit transition generation/removal.
CCSDS
OSI LAYERS CCSDS LAYERS
PROTOCOLS
2.2.1 GENERAL
The Synchronization and Channel Coding Sublayer provides the following three functions
for transferring Transfer Frames over a space link:
a) error-control coding, including frame validation;
b) synchronization; and
c) pseudo-randomizing.
This Recommended Standard specifies the following four types of error-control coding:
a) convolutional coding (section 3);
b) Reed-Solomon coding (section 4);
c) Turbo coding (section 5);
d) Low-Density Parity-Check (LDPC) coding (sections 7 and 8).
One of the convolutional codes described in section 3 alone may be satisfactory depending
on performance requirements.
For Physical Channels, which are bandwidth-constrained and cannot tolerate the increase in
bandwidth required by the basic convolutional code specified in 3.3, the punctured
convolutional codes specified in 3.4 have the advantage of smaller bandwidth expansion.
Alternatively, the Reed-Solomon codes and the high rate LDPC code specified in sections 4,
7, and 8 also have the advantage of smaller bandwidth expansion and have the capability to
indicate the presence of uncorrectable errors. Where a greater coding gain is needed than can
be provided by a convolutional code or Reed-Solomon code alone, a concatenation of a
convolutional code as the inner code with a Reed-Solomon code as the outer code may be
used for improved performance.
The Turbo codes specified in section 5 or the LDPC codes specified in sections 7 and 8 may
be used to obtain even greater coding gain where the environment permits.
AOS and USLP are symmetrical and may be used over space-to-ground, ground-to-space, or
space-to-space (in both directions).
NOTES
1 In this Recommended Standard, the characteristics of the codes are specified only to
the extent necessary to ensure interoperability and cross-support. The specification
does not attempt to quantify the relative coding gain or the merits of each approach
discussed, nor does it specify the design requirements for encoders or decoders.
2 The domains of applicability for the codes specified in this document are delineated
in Mission Profiles for TM Synchronization and Channel Coding (reference [E5]).
After decoding is performed, the upper layers at the receiving end also need to know whether
or not each decoded Transfer Frame can be used as a valid data unit; i.e., an indication of the
quality of the received frame is needed. This function is called Frame Validation. The Reed-
Solomon and LDPC decoders can determine, with a very high probability, whether or not they
can correctly decode a Transfer Frame. Therefore, the Reed-Solomon and LDPC codes are
also used for Frame Validation. When the Reed-Solomon or LDPC codes are not used, the
Frame Error Control Field defined in references [1] or [2] is used for Frame Validation.
2.2.4 SYNCHRONIZATION
This Recommended Standard specifies a method for synchronizing Transfer Frames using an
Attached Sync Marker (ASM) (see section 9).
The ASM may also be used for resolution of data ambiguity (sense of ‘1’ and ‘0’) if data
ambiguity is not resolved by the modulation method used in the Physical Layer.
This Recommended Standard also defines a Code Sync Marker (CSM) (see section 8) that,
when used, may also be used for resolution of data ambiguity. The CSM is not used for
synchronizing Transfer Frames.
2.2.5 PSEUDO-RANDOMIZING
Figure 2-2 shows the internal organization of the Synchronization and Channel Coding
Sublayer of the sending end. This figure identifies functions performed by the sublayer 2 and
shows logical relationships among these functions. The figure is not intended to imply any
hardware or software configuration in a real system. Depending on the options actually used
for a mission, not all of the functions may be present in the sublayer.
At the sending end, the Synchronization and Channel Coding Sublayer accepts Transfer
Frames of fixed length from the Data Link Protocol Sublayer (see figure 2-1), performs
functions selected for the mission, and delivers a continuous and contiguous stream of
channel symbols to the Physical Layer. When LDPC encoding of a stream of SMTFs,
defined in 8.2, is performed, the sending end does codeblock randomization and attachment
of Code Sync Marker as described in section 8 and shown explicitly in figure 8-2.
2
Figures 2-2 and 2-3 are limited to the contents of this Recommended Standard and do not cover, e.g., SCCC (reference [E6])
and DVB-S2 (reference [E7]).
(Randomized) Codeblocks or
Transfer Frames
CADUs or SMTFs
Convolutional Encoding or
LDPC Encoding of a Stream of SMTFs (optional)
Channel Symbols
Physical Layer
Figure 2-3 shows the internal organization of the Synchronization and Channel Coding
Sublayer of the receiving end. This figure identifies functions performed by the sublayer and
shows logical relationships among these functions. The figure is not intended to imply any
hardware or software configuration in a real system (e.g., some implementations perform
frame synchronization before convolutional decoding when convolutional code rate 1/2 is
used). Depending on the options actually used for a mission, not all of the functions may be
present in the sublayer.
At the receiving end, the Synchronization and Channel Coding Sublayer accepts a
continuous and contiguous stream of channel symbols from the Physical Layer, performs
functions selected for the mission, and delivers Transfer Frames to the Data Link Protocol
Sublayer. When LDPC decoding of a stream of SMTFs is performed, the receiving end does
CSM detection and codeblock derandomization as described in section 8 and shown
explicitly in figure 8-2.
(Randomized) Codeblocks
or Transfer Frames
Frame Synchronization
CADUs or SMTFs
Convolutional Decoding or
LDPC Decoding of a Stream of SMTFs (optional)
Channel Symbols
Physical Layer
3 CONVOLUTIONAL CODING
3.1 OVERVIEW
The basic convolutional code is a rate (r) 1/2, constraint-length (K) 7 transparent code which
is well suited for channels with predominantly Gaussian noise. This code is defined in 3.3.
When this code is punctured according to 3.4, higher code rates may be achieved although
with lower error correcting performance.
Puncturing allows a single code rate of either 2/3, 3/4, 5/6 or 7/8 to be selected. The four
different puncturing schemes allow selection of the most appropriate level of error correction
and symbol rate for a given service or data rate.
3.2 GENERAL
The Attached Sync Marker used with convolutional code shall be the 32-bit pattern specified
in 9.2, and it shall always be inserted before performing convolutional encoding.
The pseudo-randomizer defined in section 10 shall be used unless the system designer
verifies that the concerns identified in the note below are resolved by other means.
NOTE – An inverter is specified with the basic convolutional code to assure sufficient bit
transitions to keep receiver symbol synchronizers in lock, when used with Binary
Phase Shift Keying (BPSK) modulation. Sufficient bit transitions cannot be
guaranteed by the inverter alone if some multiplexing schemes are used, e.g.,
with Quadrature Phase Shift Keying (QPSK) modulation, or if a punctured
convolutional code is used. There are also data patterns for which convolutional
code synchronization cannot be determined. The pseudo-randomizer is also used
to aid signal acquisition and to mitigate spectral lines in the transmitted signal.
When TM, AOS, or USLP Transfer Frames are used, the Frame Error Control Field (FECF)
specified in references [1], [2], or [6] shall be used to validate the Transfer Frame, unless the
convolutional code is concatenated with an outer Reed-Solomon code (see section 4).
3.2.4 QUANTIZATION
Soft bit decisions with at least three-bit quantization should be used whenever constraints
(such as complexity of decoder) permit.
3.3.1 The basic convolutional code shall be the non-systematic code with the following
characteristics:
(1) Nomenclature: Convolutional code with maximum-likelihood
decoding.
(2) Code rate (r): 1/2 bit per symbol.
(3) Constraint length (K): 7 bits.
(4) Connection vectors: G1 = 1111001 (171 octal); G2= 1011011(133 octal).
(5) Symbol inversion: On output path of G2.
NOTE – An encoder block diagram is shown in figure 3-1. When a single encoder is
used, G2 inversion provides no benefit to data randomization when even-order
modulations higher than BPSK are used. G2 inversion does provide value when
coding is done after channel splitting and with separate encoders on each
channel.
____ ____
3.3.2 The output symbol sequence shall be: C1(1), C2(1), C1(2), C2(2). . . .
NOTES
1 Since the convolutional codes are transparent, differential encoding can be used
before the convolutional encoder to help phase ambiguity resolution and,
correspondingly, the conversion at the receiving end from NRZ-M to NRZ-L should
be performed at the output of the convolutional decoder. Differential encoding after
the convolutional encoder is not advised because it introduces considerable loss of
performance. It also would require differential detection, which is more complex with
soft symbols.
2 When a fixed pattern (the fixed part of the convolutionally encoded Attached Sync
Marker) in the symbol stream is used to provide node synchronization for the
convolutional decoder, any modification of the pattern resulting from the modulating
waveform conversion needs to be accounted for.
G1 C1
INPUT
D D D D D D S1
OUTPUT
2
C2
G2
NOTES:
3. S1 IS IN THE POSITION
SHOWN (1) FOR THE FIRST
SYMBOL ASSOCIATED WITH AN
INCOMING BIT.
4. = MODULO-2 ADDER.
5. = INVERTER.
3.4.1 The punctured convolutional code shall have the following characteristics:
(1) Nomenclature: Punctured convolutional code with
maximum-likelihood decoding.
(2) Code rate (r): 1/2, punctured to 2/3, 3/4, 5/6 or 7/8.
(3) Constraint length (K): 7 bits.
(4) Connection vectors: G1 = 1111001 (171 octal); G2 = 1011011 (133 octal).
(5) Symbol inversion: None.
3.4.2 The puncturing patterns for each of the punctured convolutional code rates shall be as
specified in table 3-1.
OUTPUT
PUNCTURE
D D D D D D (table 3-1)
INPUT
C2
G2
4 REED-SOLOMON CODING
4.1 OVERVIEW
The Reed-Solomon (R-S) codes defined in this section are powerful burst error correcting
codes. One of two different error-correcting options may be chosen. For maximum
performance (at the expense of accompanying overhead) the E=16 option can correct 16 R-S
symbols in error per codeword. For lower overhead (with reduced performance) the E=8
option can correct 8 R-S symbols per codeword. The Reed-Solomon code may be used
alone, and as such it provides an excellent forward error correction capability in a burst-noise
channel. However, should the Reed-Solomon code alone not provide sufficient coding gain,
it may be concatenated with the convolutional code defined in section 3. Used this way, the
Reed-Solomon code is the outer code, while the convolutional code is the inner code.
4.2 GENERAL
The pseudo-randomizer defined in section 10 shall be used unless the system designer
verifies that the concerns identified in the note below are resolved by other means.
The FECF specified in references [1], [2], and [6] is optional. The system designer may
choose to use it for additional codeblock validation, particularly with the E=8 code.
NOTE – The Reed-Solomon code with E=16 has an extremely low undetected error rate,
and that with E=8 has an undetected error rate low enough for some applications.
Therefore the R-S decoder may be used alone to validate the codeblock, and
consequently the contained TM Transfer Frame (reference [1]), AOS Transfer
Frame (reference [2]), or USLP Transfer Frame (reference [6]).
4.3 SPECIFICATION
4.3.1 PARAMETERS
F(x) = x8 + x7 + x2 + x + 1
over GF(2).
127 + E 2E
i
g(x) = ∏(x–α 11j
) = ∑ Gix
j=128 – E i=0
NOTES
1 It should be recognized that α11 is a primitive element in GF(28) and that F(x) and
g(x) characterize a (255,223) Reed-Solomon code when E = 16 and a (255,239) Reed-
Solomon code when E = 8.
4.3.5.2 The interleaving depth shall normally be fixed on a Physical Channel for a Mission
Phase.
The maximum codeblock length, in R-S symbols, shall be determined by the following
equation:
4.3.7.1 A shortened codeblock length may be used to accommodate frame lengths smaller
than the maximum.
NOTE – However, since the Reed-Solomon code is a block code, the decoder must always
operate on a full block basis.
4.3.7.2 To achieve a full codeblock, ‘virtual fill’ shall be added to make up the difference
between the shortened block and the maximum codeblock length.
NOTES
2 Since the virtual fill is not transmitted, both encoder and decoder need to be set to
insert it with the proper length for the encoding and decoding processes to be carried
out properly.
4.3.7.3 When an encoder (initially cleared at the start of a block) receives kI–Q symbols
representing information (where Q, representing fill, is a multiple of I, and is less than kI),
2EI check symbols shall be computed over kI symbols, of which the leading Q symbols shall
be treated as all-zero symbols.
4.3.7.4 The leading Q symbols (all zeros) of the resulting shortened codeblock shall be
neither entered into the encoder nor transmitted.
NOTE – Shortening the transmitted codeblock length in this way changes the overall
performance to a degree dependent on the amount of virtual fill used. Since
it incorporates no virtual fill, the maximum codeblock length allows full
performance. In addition, as virtual fill in a codeblock is increased (at a
specific bit rate), the number of codeblocks per unit time that the decoder
must handle increases. Therefore, care should be taken so that the maximum
operating speed of the decoder (codeblocks per unit time) is not exceeded.
4.3.8.1 Parts of the partitioned Reed-Solomon codeblock (see figure 4-1) are defined as
follows:
a) The Reed-Solomon Check Symbols shall consist of the trailing 2EI symbols (2EIJ
bits) of the codeblock.
NOTES
1 As an example, when E = 16 and k = 223, for I=5 this is always 1280 bits.
NOTES
1 The transmitted codeblock is the received data entity physically fed into the R-S
decoder. (As an example, when E = 16 and k = 223, using I=5 and no virtual fill,
the length of the transmitted codeblock will be 10,200 bits; if virtual fill is used, it
will be incrementally shorter, depending on the amount used.)
2 The logical codeblock is the logical data entity operated upon by the R-S
decoder. It can have a different length than the transmitted codeblock because it
accounts for the amount of virtual fill that was introduced. (As an example, when
E = 16 and k = 223, for I=5 the logical codeblock always appears to have exactly
10,200 bits in length.)
ATTACHED
SYNC MARKER TRANSMITTED CODEBLOCK
LOGICAL CODEBLOCK
4.3.8.2 Virtual fill shall be used to logically complete the codeblock. If used, virtual fill
shall:
a) consist of all zeros;
b) not be transmitted;
c) not change in length for a Mission Phase on a particular Physical Channel;
d) be inserted only at the beginning of the codeblock (i.e., after the attached sync marker
but before the beginning of the transmitted codeblock);
e) be inserted only in integer multiples of 8I bits.
4.3.9.2 The order of transmission shall be dual basis eight-bit string z0, z1, . . ., z7 (i.e., with
z0 transmitted first).
4.3.9.3 The relationship between the two representations shall conform to the following
two equations:
1 0 0 0 1 1 0 1
1 1 1 0 1 1 1 1
1 1 1 0 1 1 0 0
[z0, . . ., z7] = [u7, . . ., u0] 1 0 0 0 0 1 1 0
1 1 1 1 1 0 1 0
1 0 0 1 1 0 0 1
1 0 1 0 1 1 1 1
0 1 1 1 1 0 1 1
and
1 1 0 0 0 1 0 1
0 1 0 0 0 0 1 0
0 0 1 0 1 1 1 0
1 1 1 1 1 1 0 1
[u7, . . ., u0] = [z0, . . ., z7]
1 1 1 1 0 0 0 0
0 1 1 1 1 0 0 1
1 0 1 0 1 1 0 0
1 1 0 0 1 1 0 0
NOTES
NOTE – At the receiving end, the ambiguity between true and complemented data must be
resolved so that only true data is provided to the Reed-Solomon decoder. Data in
NRZ-L form is normally resolved using the 32-bit Attached Sync Marker, while
NRZ-M data is self-resolving.
4.4 DISCUSSION
R-S ENCODER #1
S1 S2
IN • OUT
•
•
R-S ENCODER #I
Data bits to be encoded into a single Reed-Solomon codeblock enter at the port labeled ‘IN’.
Switches S1 and S2 are synchronized together and advance from encoder to encoder in the
sequence 1,2, . . ., I, 1,2, . . ., I, . . ., spending one R-S symbol time (8 bits) in each position.
One codeblock will be formed from kI R-S symbols entering ‘IN’. In this functional
representation, a space of 2EI R-S symbols in duration is required between each entering set
of kI R-S information symbols.
Because of the action of S1, each encoder accepts k of these symbols, with each symbol
spaced I symbols apart (in the original stream). These k symbols are passed directly to the
output of each encoder. The synchronized action of S2 reassembles the symbols at the port
labeled ‘OUT’ in the same way as they entered at ‘IN’.
Following this, each encoder outputs its 2E check symbols, one symbol at a time, as it is
sampled in sequence by S2.
1 5 1 5 1 5
d ... d d ... d ... d ... d [2E × 5 spaces]
1 1 2 2 k k
then the output is the same sequence with the [2E × 5 spaces] filled by the [2E× 5] check
symbols as shown below:
1 5 1 5
p ... p ... p ... p
1 1 2E 2E
where
i i i i i
d d ... d p Error! Bookmark not defined. . . . p
1 2 K 1 2E
is the R-S codeword produced by the ith encoder. If q virtual fill symbols are used in each
codeword, then replace k by (k – q) in the above discussion.
With this method of interleaving, the original kI consecutive information symbols that
entered the encoder appear unchanged at the output of the encoder with 2EI R-S check
symbols appended.
Each 8-bit Reed-Solomon symbol is an element of the finite field GF(256). Since GF(256) is
a vector space of dimension 8 over the binary field GF(2), the actual 8-bit representation of a
symbol is a function of the particular basis that is chosen.
One basis for GF(256) over GF(2) is the set ( 1, α1, α2, . . ., α7). This means that any
element of GF(256) has a representation of the form
u7α7 + u6α6 + . . . + u1α1 + u0α0
Another basis over GF(2) is the set ( 1, β 1, β 2, . . ., β 7) where β = α 117. To this basis there
exists a so-called ‘dual basis’ (l0, l1, . . ., l7). It has the property that
1 if i = j
Tr(liβ j ) = 0 otherwise
K=0
for each element z of GF(256). Each Reed-Solomon symbol can also be represented as
z0l0 + z1l1 + . . . + z7l7
5 CONCATENATED CODING
5.1 Concatenated codes shall consist of a combination of a Reed-Solomon code defined in
section 4 with one of the convolutional codes defined in section 3.
5.2 The Reed-Solomon code shall be the outer code, and the convolutional code shall be
the inner code.
6 TURBO CODING
6.1 OVERVIEW
Turbo codes are binary block codes with large codewords (hundreds or thousands of bits).
Turbo codes may be used to obtain even greater coding gains than those provided by
concatenated coding systems. They are systematic and inherently non-transparent.
6.2 GENERAL
The pseudo-randomizer defined in section 10 shall be used unless the system designer
verifies that the concerns identified in the note below are resolved by other means.
NOTE – The recommended Turbo codes, by themselves, cannot guarantee sufficient bit
transitions to keep receiver symbol synchronizers in lock. The pseudo-
randomizer is also used to aid signal acquisition and to mitigate spectral lines in
the transmitted signal.
When Turbo codes are used with TM, AOS, or USLP Transfer Frames, the FECF specified in
references [1], [2], or [6], respectively, shall be used to validate the Transfer Frame.
NOTE – While providing outstanding coding gain, Turbo codes may still leave some
undetected errors in the decoded output.
6.3 SPECIFICATION
NOTE – A Turbo encoder is a combination of two simple encoders. The input is a frame
of k information bits. The two component encoders generate parity symbols from
two simple recursive convolutional codes, each with a small number of states.
The information bits are also sent uncoded. A key feature of Turbo codes is an
interleaver, which permutes bit-wise the original k information bits before input
to the second encoder.
The recommended Turbo code is a systematic code that shall conform to the following
specifications:
a) Code type shall be systematic parallel concatenated Turbo code.
b) Number of component codes shall be two (plus an uncoded component to make the
code systematic).
c) Type of component codes shall be recursive convolutional codes.
NOTE – Because of ‘trellis termination’ symbols (see 6.3j)), the true code rates
(defined as the ratios of the information block lengths to the codeblock
lengths in table 6-2) are slightly smaller than the nominal code rates. In this
Recommended Standard, the term ‘code rate’ always refers to the nominal
code rates, r = 1/2, 1/3, 1/4, or 1/6.
f) The specified information block lengths k shall be those specified in table 6-1. The
corresponding codeblock lengths in bits, n=(k+4)/r, for the specified code rates shall
be those specified in table 6-2.
NOTE – Information block lengths are chosen for compatibility with the
corresponding Reed-Solomon interleaving depths, also shown in table 6-1.
1784 (=223 × 1 octets) 1 For very low data rates or low latency
Table 6-2: Codeword Lengths for Supported Code Rates (Measured in Bits)
g) Turbo code permutation for each specified block length k shall conform to a
particular reordering of the integers 1, 2, . . ., k as generated by the following
algorithm.
2) The following operations shall be performed for s=1 to s=k to obtain permutation
numbers π(s):
NOTE – In the equation below, x denotes the largest integer less than or equal to
x, and pq denotes one of the following eight prime integers:
m = (s – 1) mod 2
i = s–1
2 k2
j = s–1
2 – i k2
k1
t = (19i + 1) mod 2
q = t mod 8 + 1
c = (pq j + 21m) mod k2
k1
π(s) = 2(t + c 2 + 1) – m
The permutation numbers shall be interpreted such that the sth bit read out on line ‘in b’
in figure 6-2 is the π(s)th bit of the input information block, as shown in figure 6-1.
out 0a
Input ENCODER a
Information
in a G0
Block
INFORMATION
BLOCK
BUFFER D D D D
G1 out 1a
G2 out 2a
G3 out 3a
ENCODER b
RATE 1/2
RATE 1/3
G0
RATE 1/4
RATE 1/6
in b
D D D D
= Exclusive OR G1 + out 1b
G2 Not used
= Take every symbol
G3 out 3b
= Take every other symbol
3) Forward connection vectors for rate 1/4 shall be G2 = 10101, G3 = 11111 (1st
component code); G1 = 11011 (2nd component code). No puncturing shall be
done for rate 1/4.
4) Forward connection vectors for rate 1/6 shall be G1 = 11011, G2 = 10101, G3 =
11111 (1st component code); G1 = 11011, G3 = 11111 (2nd component code). No
puncturing shall done for rate 1/6.
i) Turbo encoder operation:
1) Each input frame of k information bits shall be held in a frame buffer, and the bits
in the buffer shall be read out in two different orders for the two component
encoders.
2) The first component encoder (a in figure 6-2) shall operate on the bits in
unpermuted order (‘in a’), while the second component encoder (b figure 6-2)
shall receive the same bits permuted by the interleaver (‘in b’).
NOTES
1 The read-out addressing for ‘in a’ is a simple counter, while the addressing for
‘in b’ is specified by the Turbo code permutation described in 6.3g).
NOTE – This feedback cancels the same feedback sent (unswitched) to the
leftmost adder and causes all four registers to become filled with zeros
after the final 4 bit times. Filling the registers with zeros is called
terminating the trellis.
4) During trellis termination the encoder shall continue to output nonzero encoded
symbols. In particular, the ‘systematic uncoded’ output (line ‘out 0a’ in the
figure) shall include an extra four bits from the feedback line in addition to the k
information bits.
NOTE – In figure 6-2, the encoded symbols are multiplexed from top-to-bottom along
the output line for the selected code rate to form the Turbo codeword. For the
rate 1/3 code, the output sequence is (out 0a, out 1a, out 1b); for rate 1/4, the
sequence is (out 0a, out 2a, out 3a, out 1b); for rate 1/6, the sequence is (out
0a, out 1a, out 2a, out 3a, out 1b, out 3b). These sequences are repeated for
(k+4) bit times. For the rate 1/2 code, the output sequence is (out 0a, out 1a,
out 0a, out 1b), repeated (k+4)/2 times. This pattern implies that out 1b is the
first to be punctured, out 1a is the second, and so forth. The Turbo
codewords constructed from these output sequences are depicted in figure 6-3
for the four nominal code rates.
out 0a out 1a out 1b out 0a out 1a out 1b ...... out 0a out 1a out 1b out 0a out 1a out 1b
out
0a
out
2a
out
3a
out
1b
out
0a
out
2a
out
3a
out
1b ...... out
0a
out
2a
out
3a
out
1b
out
0a
out
2a
out
3a
out
1b
out
0a
out
1a
out
2a
out
3a
out
1b
out
3b
out
0a
out
1a
out
2a
out
3a
out
1b
out
3b ...... out
0a
out
1a
out
2a
out
3a
out
1b
out
3b
out
0a
out
1a
out
2a
out
3a
out
1b
out
3b
NOTES
1 The ASM is used to achieve codeword synchronization of the Turbo decoder (i.e.,
frame synchronizers are normally set to expect a marker at a recurrence interval
equal to the length of the ASM plus that of the Turbo codeword).
2 Differential encoding does not provide benefits with Turbo Codes, and the ASM
can also be used to resolve phase ambiguities. In fact, differential encoding
before the Turbo encoder cannot be used because the Turbo codes recommended
in this document are non-transparent, and differential encoding after the Turbo
3 A diagram of a Turbo codeword with ASM is shown in figure 6-4. The length of
the Turbo codeword is inversely proportional to the nominal code rate r.
Rate-Dependent
Attached Sync
Marker
Turbo Codeword
Low-Density Parity-Check (LDPC) codes are binary block codes with large codewords
(hundreds or thousands of bits). They may be used to obtain greater coding gains than those
provided by concatenated coding systems.
The distinguishing feature of LDPC codes is to have a low density of ones in the matrix H.
Conversely, the generator matrix G is usually dense; that is, its density of ones is in the same
order of that of zeros, at least for the non-systematic part of G.
Subsection 7.3 describes a code with a rate of 223/255 (approximately 7/8), and 7.4 describes
a set of nine codes with rates 1/2, 2/3, and 4/5. These codes are systematic and non-
transparent.
7.2 GENERAL
7.2.1 SYNCHRONIZATION
7.2.1.1 The (8160,7136) code defined in 7.3 shall be used with the 32-bit ASM shown in
figure 9-1.
7.2.1.2 All of the nine codes with rates 1/2, 2/3, and 4/5, defined in 7.4, shall be used with
the 64-bit ASM shown in figure 9-2.
NOTE – Differential encoding does not provide benefits with LDPC codes, and the ASM
can also be used to resolve phase ambiguities. In fact, differential encoding
before the LDPC encoder cannot be used because the LDPC codes recommended
in this document are non-transparent, and differential encoding after the LDPC
encoder is not advised because it introduces considerable loss of performance. It
also would require differential detection, which is more complex with soft
symbols. This implies that phase ambiguities have to be detected and resolved
before decoding.
The pseudo-randomizer defined in section 10 shall be used unless the system designer
verifies that the concerns identified in the note below are resolved by other means.
NOTE – The recommended LDPC codes, by themselves, cannot guarantee sufficient bit
transitions to keep receiver symbol synchronizers in lock. Because of the quasi-
cyclic nature of these codes, undetected decoding errors may result from
incorrect codeword synchronization. The pseudo-randomizer is also used to aid
signal acquisition and to mitigate spectral lines in the transmitted signal.
7.2.3.1 The LDPC decoder may be used alone to validate the codeword, and consequently
the contained TM Transfer Frame (reference [1]), AOS Transfer Frame (reference [2]), or
USLP Transfer Frame (reference [6]).
7.2.3.2 The FECF specified in references [1], [2], and [6] is optional, and the system
designer may choose to use it for additional frame validation.
NOTE – The undetected frame and bit error rates of these LDPC codes lie several orders of
magnitude below the corresponding detected error rates for any given operating
signal-to-noise ratio.
7.3.1 OVERVIEW
The recommended code has rate 223/255, and matches the length and dimension of the
(255,223) I=4 Reed-Solomon code.
The basic code is transparent, although the modified version of this code is not, because of
the sense of the fill bits.
Construction of the initial code is described in 7.3.2, expurgation and encoding are described
in 7.3.4, and the shortening and extension that yield the recommended code are described in
7.3.5.
7.3.2.1 The parity check matrix for the (8176,7156) LDPC code shall be formed by using a
2 × 16 array of 511 × 511 square circulants.
NOTE – This creates a parity check matrix of size 1022 × 8176 and rank 1020.
7.3.2.2 The structure of the parity check base matrix shall be as shown in figure 7-1.
A1,1 A1, 2 A1,3 A1, 4 A1,5 A1, 6 A1, 7 A1,8 A1,9 A1,10 A1,11 A1,12 A1,13 A1,14 A1,15 A1,16
A A2, 2 A2,3 A2, 4 A2,5 A2, 6 A2, 7 A2,8 A2,9 A2,10 A2,11 A2,12 A2,13 A2,14 A2,15 A2,16
2,1
Figure 7-1: Base Parity Check Matrix of the Basic (8176,7156) LDPC Code
7.3.3 DISCUSSION
Each A i,j is a 511 × 511 circulant. The row weight of each of the 32 circulants is two; i.e.,
there are two ‘1’s in each row. The total row weight of each row in the parity check matrix is
2 × 16 = 32. The position of the ‘1’s in the first row of each circulant is defined in the second
column of table 7-1; each subsequent row is given by a one-bit right cyclic shift of the
preceding row. There are 511 possible positions, with position numbers between 0 and 510.
The third column represents the absolute position of the ‘1’s in the parity check matrix.
There are 8176 possible positions; therefore these numbers are between 0 and 8175.
7.3.4 ENCODING
NOTE – Two bits of information lie outside the structure of the quasi-cyclic encoder and
increase complexity of the generator matrix for the basic (8176,7156) LDPC
code. They are not included in this specification, which results in a generator
matrix for a systematic (8176,7154) subcode that can be constructed entirely of
circulants as shown in figure 7-2.
7.3.4.1 The generator matrix for the systematic (8176,7154) subcode shall be that
illustrated in figure 7-2.
7.3.4.2 The left portion of the matrix shall be a 7154 × 7154 identity matrix, shown here as
a block matrix, where I denotes the identity matrix of size 511 × 511, and 0 denotes the all-
zero matrix of size 511 × 511.
7.3.4.3 The right portion of the matrix shall contain two columns of 511 × 511 circulants,
denoted Bi,j, and constructed as follows:
A 1,15 A 1,16
1) D = shall be defined from figure 7-1 and table 7-1.
A 2,15 A 2,16
A
4) M i = 1,i shall be defined, where i = 1, 2, …, 14.
A 2,i
NOTE – The parity check matrix can now be represented as: [M1 M2 … M14 D].
5) The 511th and 1022nd elements of zi shall be set to zero and M i u T + Dz iT = 0 shall be
solved for zi, where i = 1, 2, …, 14 and T superscript represents matrix transpose.
NOTE – Since the rank of D is 1020 and not 1022, there are two linearly dependent
columns. These columns can be taken to be the 511th and 1022nd.
6) The bi,js shall be extracted from the zis.
I 0 0 0 0 0 0 0 0 0 0 0 0 0 B1,1 B1,2
0 I 0 0 0 0 0 0 0 0 0 0 0 0 B 2,1 B 2,2
0 0 I 0 0 0 0 0 0 0 0 0 0 0 B 3,1 B 3,2
0 0 0 I 0 0 0 0 0 0 0 0 0 0 B 4,1 B 4,2
0 0 0 0 I 0 0 0 0 0 0 0 0 0 B 5,1 B 5,2
0 0 0 0 0 I 0 0 0 0 0 0 0 0 B 6,1 B 6,2
0 0 0 0 0 0 I 0 0 0 0 0 0 0 B 7,1 B 7,2
0 0 0 0 0 0 0 I 0 0 0 0 0 0 B8,1 B8,2
0 0 0 0 0 0 0 0 I 0 0 0 0 0 B 9,1 B 9,2
0 0 0 0 0 0 0 0 0 I 0 0 0 0 B10,1 B10,2
0 0 0 0 0 0 0 0 0 0 I 0 0 0 B11,1 B11,2
0 0 0 0 0 0 0 0 0 0 0 I 0 0 B12,1 B12,2
0 0 0 0 0 0 0 0 0 0 0 0 I 0 B13,1 B13,2
0 0 0 0 0 0 0 0 0 0 0 0 0 I B14,1 B14,2
The (8176,7154) subcode shall be shortened and extended as follows to form an (8160,7136)
code with parameters that are multiples of 32.
1) The encoder shall accept as input a Telemetry Transfer Frame of 7136 bits (i.e. 892
octets matching the length and dimension of (255,223) I=4 Reed-Solomon),
2) 18 zeros shall be prefixed to the 7136-bit message to be encoded, yielding a 7154-
element row vector.
3) This vector shall be multiplied by the generator matrix of section 6.2.3, yielding an
8176-element vector consisting of 18 zeros, 7136 systematic message symbols, and
1022 parity symbols.
4) From this vector, the 18 leading zeros shall be discarded, and two zeros shall be
appended, yielding a codeword of 8160 symbols.
NOTE – The arrangement of these 18 virtual fill bits, information bits, parity bits, and two
zero-fill bits is shown in figure 7-3.
7.4.1 OVERVIEW
Nine punctured LDPC codes are specified, with information block lengths k=1024 bits, 4096
bits, and 16384 bits, and code rates r=1/2, 2/3, and 4/5. These parameters and the
corresponding codeword lengths, n=k/r, are shown in table 7-5.
7.4.2.1 The parity check matrices shall be constructed from M×M submatrices, where the
submatrix size is listed in table 7-2.
Submatrix size M
Information
block length k rate 1/2 rate 2/3 rate 4/5
1024 512 256 128
4096 2048 1024 512
16384 8192 4096 2048
7.4.2.2 The parity check matrices for the rate-1/2 codes shall satisfy the following
equation:
0M 0M IM 0M I M ⊕ Π1
H1/ 2 I IM 0M IM Π 2 ⊕ Π 3 ⊕ Π 4
M
I M Π5 ⊕ Π6 0M Π 7 ⊕ Π8 IM
where IM and 0M are the M×M identity and zero matrices, respectively, and Π1 through Π8 are
permutation matrices.
7.4.2.3 The parity check matrices for the rate-2/3 and rate-4/5 codes are specified with
additional columns and permutation matrices and shall satisfy the following equations:
0M 0M
H 2/3 = Π 9 ⊕ Π10 ⊕ Π11 IM H1/2
IM Π12 ⊕ Π13 ⊕ Π14
0M 0M 0M 0M
H 4/5 = Π 21 ⊕ Π 22 ⊕ Π 23 IM Π15 ⊕ Π16 ⊕ Π17 IM H 2/3
IM Π 24 ⊕ Π 25 ⊕ Π 26 IM Π18 ⊕ Π19 ⊕ Π 20
7.4.2.4 The permutation matrix ΠK shall have non-zero entries in row i and column πK(i)
for i ∈ {0,..., M-1} and
M M
π k (i ) = ( ) (
(θk + 4i / M ) mod 4 + φk ( 4i / M , M ) + i mod
4
) 4
where the functions θk and φk(j,M) are defined in table 7-3 and table 7-4.
NOTE – Values defined in tables 7-3 and 7-4 describe φk(j,M)s using 7-tuples where
consecutive positions in a tuple correspond to submatrix sizes from the set
M={128, 256, 512, 1024, 2048, 4096, 8192}.
7.4.2.5 For each of the parity check matrices, the code symbols corresponding to the last M
columns shall be punctured (not transmitted).
ϕk(0,M) ϕk(1,M)
k θk M = 27 … 213 M = 27 … 213
ϕk(2,M) ϕk(3,M)
M = 27 … 213 M = 27 … 213
k θk
1 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 12 46 8 35 219 254 318 13 44 35 162 312 285 1189
3 1 30 45 119 167 16 790 494 19 51 97 7 503 554 458
4 2 18 27 89 214 263 642 1467 14 12 112 31 388 809 460
5 2 10 48 31 84 415 248 757 15 15 64 164 48 185 1039
6 3 16 37 122 206 403 899 1085 20 12 93 11 7 49 1000
7 0 13 41 1 122 184 328 1630 17 4 99 237 185 101 1265
8 1 9 13 69 67 279 518 64 4 7 94 125 328 82 1223
9 0 7 9 92 147 198 477 689 4 2 103 133 254 898 874
10 1 15 49 47 54 307 404 1300 11 30 91 99 202 627 1292
11 2 16 36 11 23 432 698 148 17 53 3 105 285 154 1491
12 0 18 10 31 93 240 160 777 20 23 6 17 11 65 631
13 2 4 11 19 20 454 497 1431 8 29 39 97 168 81 464
14 3 23 18 66 197 294 100 659 22 37 113 91 127 823 461
15 0 5 54 49 46 479 518 352 19 42 92 211 8 50 844
16 1 3 40 81 162 289 92 1177 15 48 119 128 437 413 392
17 2 29 27 96 101 373 464 836 5 4 74 82 475 462 922
18 0 11 35 38 76 104 592 1572 21 10 73 115 85 175 256
19 1 4 25 83 78 141 198 348 17 18 116 248 419 715 1986
20 2 8 46 42 253 270 856 1040 9 56 31 62 459 537 19
21 0 2 24 58 124 439 235 779 20 9 127 26 468 722 266
22 1 11 33 24 143 333 134 476 18 11 98 140 209 37 471
23 2 11 18 25 63 399 542 191 31 23 23 121 311 488 1166
24 1 3 37 92 41 14 545 1393 13 8 38 12 211 179 1300
25 2 15 35 38 214 277 777 1752 2 7 18 41 510 430 1033
26 3 13 21 120 70 412 483 1627 18 24 62 249 320 264 1606
7.4.3 ENCODING
7.4.3.1 The encoder shall accept as input a Telemetry Transfer Frame of length k as per
table 7-5.
7.4.3.2 Codewords consistent with the parity-check matrices in 7.4.2 shall be produced by
performing matrix multiplication by block-circulant generator matrices.
NOTE – This family of codes supports rates K/(K+2), where K=2 for a rate 1/2 code, K=4
for rate 2/3, and K=8 for rate 4/5. Corresponding generator matrices, G, have
size MK × M(K + 3) if punctured columns are described in the encoding, or
MK × M(K + 2) if punctured columns are omitted.
Table 7-5: Codeword Lengths for Supported Code Rates (Measured in Bits)
Codeword length n
Telemetry
Transfer Frame
Length or
Information
block length k rate 1/2 rate 2/3 rate 4/5
1024 2048 1536 1280
4096 8192 6144 5120
16384 32768 24576 20480
LDPC codes for a delimited stream of SMTFs are the same binary block codes described in
section 7.
The stream of SMTFs is sliced into LDPC information blocks that are encoded to LDPC
codewords. A number m of codewords per LDPC codeblock is managed and fixed for a
given mission phase.
With this coding option, as shown figure 8-1, the Transfer Frame length is irrelevant to the
slicing and to the coding process, and the Transfer Frame may span two or more LDPC
codewords.
Input Transfer
M bits M bits M bits
Frames
Transfer Frame Synchronization
Marker (ASM 32 bits)
Stream of SMTFs
M bits M bits M bits
(input to the Slicer)
Information Blocks
k bits k bits k bits k bits
(Input to Encoder)
Encoded Blocks,
n bits n bits n bits n bits
i.e., LDPC codewords
(Encoder Output)
8.2 SYNCHRONIZATION
8.2.1 OVERVIEW
At the receiving end, two levels of synchronization are required: codeblock synchronization
(identified by the CSM) and Transfer Frame synchronization (identified by the ASM). The
ASM insertion is defined in section 9, and the data unit that consists of the ASM and the
Transfer Frame is called the Sync-Marked Transfer Frame.
Transfer Frames are delimited by inserting an Attached Sync Marker between them. The
applicable ASM bit pattern is defined in 9.3.5. The ASM will be LDPC encoded.
8.2.2.1 Depending on the applied LDPC code rate, the CSM shall consist of a marker with
one of the two patterns shown in table 8-1.
8.2.2.2 The code with rate 7/8 shall use the 32-bit CSM defined in table 8-1.
NOTE – The 32-bit CSM pattern is the same as that shown in table 8-1 as the ASM
pattern. There is no conflict with the ASM since the ASM is randomized and
will not appear at the codeblock synchronization level.
8.2.2.3 All of the nine codes with rate 1/2, 2/3, 4/5 shall use the 64 bit CSM defined in
table 8-1.
NOTE – It is advised not to use differential encoding with LDPC encoding. Differential
encoding does not provide benefits with LDPC codes, and the CSM can be used
to resolve phase ambiguities. In fact, differential encoding before the LDPC
encoder cannot be used because these LDPC codes are non-transparent, and
differential encoding after the LDPC encoder is not advised because it introduces
considerable loss of performance. It also would require differential detection,
which is more complex with soft symbols. This implies that receiver phase
ambiguities have to be detected and resolved before decoding.
The LDPC decoder may be used alone to validate the codeword, and consequently the
contained TM Transfer Frame(s) (reference [1]), AOS Transfer Frame(s) (reference [2]), or
USLP Transfer Frame(s) (reference [6]). Whenever an LDPC codeword fails decoding, the
Quality Indicator (see annex A) of all the Transfer Frames affected by that decoding shall be
set to show that there is an uncorrectable error in received Transfer Frame(s).
NOTE – The FECF specified in references [1], [2], and [6] is optional, and the system
designer may choose to use it for additional checks.
8.2.4.1 The encoding process at the sending end shall add an ASM to each of the Transfer
Frames creating a stream of SMTFs.
8.2.4.2 The encoding process at the sending end shall extract an information-block-size
portion (slice) of k bits from the stream.
8.2.4.3 The encoding process at the sending end shall encode each slice of k bits into an
LDPC codeword of n bits.
8.2.4.4 The encoding process shall form an LDPC codeblock by aggregating ‘m’ LDPC
codewords.
8.2.4.5 The encoding process shall randomize each codeblock using the process articulated
in section 10 and elaborated in 8.3 below.
8.2.4.6 The encoding process shall prepend a CSM to each (randomized) codeblock.
8.2.4.7 The CSM shall immediately follow the end of the preceding codeblock; i.e., there
shall be no intervening bits (data, code, or fill) preceding the CSM.
NOTES
1 The encoding process at the sending end is shown in figure 8-2 a).
3 The CSM is not presented to the input of the LDPC encoder (or decoder).
On the receiving end, the reverse process is followed as shown in figure 8-2 b).
b
Form Octet Stream of Transfer Frames with ASM Transfer Frame Synchronization
b via ASM
Slice Octet Stream into pieces to fit Codeword Reconstruct Octet Stream
8.3 RANDOMIZATION
8.3.1 OVERVIEW
Each LDPC codeblock is randomized using the pseudo-randomizer in section 10. The
pseudo-randomizer is useful in avoiding several potential problems:
a) LDPC codes cannot guarantee sufficient bit transitions to keep receiver symbol
synchronizers in lock.
b) Because of the quasi-cyclic nature of these codes, undetected decoding errors may
result from incorrect codeblock synchronization.
c) LDPC codes cannot guarantee signal acquisition and mitigate spectral lines in the
transmitted signal.
Prior to being encoded, the Transfer Frame in the SMTF is not randomized.
8.3.2 REQUIREMENT
The pseudo-random sequence shall be applied starting with the first bit of the LDPC
codeblock. On the sending end, the codeblock shall be randomized by exclusive-ORing the
first bit of the codeblock with the first bit of the pseudo-random sequence, followed by the
second bit of the codeblock with the second bit of the pseudo-random sequence, and so on,
repeating the randomizer pattern as necessary.
8.3.3 DISCUSSION
The configuration at the sending end is shown in figure 8-3. On the receiving end, the
original codeblock can be reconstructed (i.e., derandomized) using the same pseudo‐random
sequence. After locating the CSM in the received data stream, the data immediately
following the CSM can be derandomized. The CSM is not randomized and is not
derandomized.
Since the codeblock is randomized after being encoded, any ASM present in the stream gets
randomized. Derandomization can be accomplished by performing exclusive-OR with hard
bits or inversion with soft bits. There is no reset of the randomizer at codeword boundaries
within the codeblock. Additional work will be needed to solve the potential implications
relative to such a configuration.
9 FRAME SYNCHRONIZATION
9.1 OVERVIEW
9.1.1 SYNCHRONIZATION
For a coding system using the basic convolutional code specified in 3.3, the ASM can be
acquired either in the channel symbol domain (i.e., before any decoding) or in the domain of
bits decoded by the convolutional decoder.
For a concatenated Reed-Solomon and convolutional coding system using the basic
convolutional code specified in 3.3, the ASM can be acquired either in the channel symbol
domain (i.e., before any decoding) or in the domain of bits decoded by the inner code (i.e.,
the code symbol domain of the Reed-Solomon code).
For a coding system using the punctured convolutional codes specified in 3.4, the ASM can
only be acquired in the domain of bits decoded by the convolutional decoder. It cannot be
acquired in the channel symbol domain (i.e., before any decoding).
For a concatenated Reed-Solomon and convolutional coding system using the punctured
convolutional codes specified in 3.4, the ASM can only be acquired in the domain of bits
decoded by the inner code (i.e., the code symbol domain of the Reed-Solomon code); i.e.; it
cannot be acquired in the channel symbol domain (i.e., before any decoding).
For a Turbo coding system, the ASM can only be acquired in the channel symbol domain
(i.e., before any decoding in the code symbol domain of the Turbo code).
For an LDPC coding system of Transfer Frames, the ASM can only be acquired in the channel
symbol domain (i.e., before any decoding in the code symbol domain of the LDPC code).
For an LDPC coding system of a stream of SMTFs, the ASM can only be acquired in the
domain of bits decoded by the LDPC decoder.
This Recommended Standard defines a data unit called the Channel Access Data Unit
(CADU) whose contents are as per attached table 9-1. The Transfer Frame, codeword, or
codeblock in the CADU may or may not be randomized.
Table 9-1: Channel Access Data Unit Content with Different Coding Schemes
9.2.1.1 When convolutional coding (section 3), or LDPC coding of a stream of SMTFs
(section 8), or no coding is used, ASMs shall be placed between the Transfer Frames.
9.2.1.3 When Turbo coding (section 6) or LDPC coding of Transfer Frames (section 7) is
used, ASMs shall be placed between the codewords.
NOTE – Synchronization is acquired on the receiving end by recognizing the specific bit
pattern of the regularly spaced ASMs; synchronization may be verified by
making further checks. In the case of LDPC coding of a stream of SMTFs
(section 8), codeword synchronization is first done at the codeword level using
the CSM.
9.3.1 The ASM for data that is not Turbo or LDPC coded shall consist of a 32-bit (4-octet)
marker with a pattern shown in figure 9-1.
9.3.2 The ASM for data that is Turbo coded with nominal code rate r = 1/2, 1/3, 1/4, or 1/6
shall consist of a 32/r-bit (4/r-octet) marker with bit patterns shown in figures 9-2 through 9-5.
9.3.3 The ASM for data that is LDPC coded as the result of applying LDPC coding to a
Transfer Frame (section 7) with nominal code rate r = 7/8 shall consist of a 32-bit marker
with bit pattern shown in figure 9-1.
9.3.4 The ASM for data that is LDPC coded as the result of applying LDPC coding to a
Transfer Frame (section 7) with code rate r = 1/2, 2/3, or 4/5 shall consist of a 64-bit marker
with bit pattern shown in figure 9-2.
9.3.5 The ASM for data that is LDPC coded as the result of applying LDPC coding to a stream
of SMTFs (section 8) shall consist of a 32-bit marker with bit pattern shown in figure 9-1.
NOTE – The ASM bit patterns are represented in hexadecimal notation as:
Figure 9-2: ASM Bit Pattern for Rate 1/2 Turbo and Rates 1/2, 2/3, and 4/5 LDPC
(Applied to a Transfer Frame) Coded Data
Figure 9-3: ASM Bit Pattern for Rate 1/3 Turbo Coded Data
Figure 9-4: ASM Bit Pattern for Rate 1/4 Turbo Coded Data
Figure 9-5: ASM Bit Pattern for Rate 1/6 Turbo Coded Data
9.4.1 The ASM shall be attached to (i.e., shall immediately precede) the codeblock (if
Reed-Solomon encoded), the codeword (if Turbo or LDPC encoded of a Transfer Frame), or
the Transfer Frame (if convolutionally encoded only or LDPC encoded of SMTFs or
uncoded).
9.4.2 The ASM shall immediately follow the end of the preceding codeblock (if Reed-
Solomon encoded), the codeword (if Turbo or LDPC encoded of a Transfer Frame), or the
Transfer Frame (if convolutionally encoded only or LDPC encoded of SMTFs or uncoded);
i.e., there shall be no intervening bits (data or fill) preceding the ASM.
9.5.1 The ASM shall NOT be a part of the encoded data space of the Reed-Solomon
codeblock, and it shall not be presented to the input of the Reed-Solomon encoder or decoder.
NOTE – This prevents the encoder from routinely regenerating a second, identical marker
in the check symbol field under certain repeating data-dependent conditions (e.g.,
a test pattern of 01010101010 ... among others), which could cause
synchronization difficulties at the receiving end. The relationship among the
ASM, Reed-Solomon codeblock, and Transfer Frame is illustrated in figure 4-1.
9.5.2 Similarly, the ASM shall not be presented to the input of the Turbo encoder or
decoder. It shall be directly attached to the Turbo codeword (see figure 6-4).
9.5.3 Similarly, the ASM shall not be presented to the input of the LDPC encoder or
decoder. It shall be directly attached to the LDPC codeword.
NOTE – A different ASM pattern (see figure 9-6) may be required where another data
stream (e.g., a stream of Transfer Frames played back from a tape recorder in the
forward direction) is inserted into the data field of the Transfer Frame of the main
stream appearing on the communications channel.
The ASM for the embedded data stream, to differentiate it from the main stream marker,
shall consist of a 32-bit (4-octet) marker with a pattern as follows:
352EF853
10 PSEUDO-RANDOMIZER
10.1 OVERVIEW
In order for the receiver system to work properly, every data capture system at the receiving
end requires that the incoming signal have sufficient bit transition density (see
recommendation 2.4.9 in reference [5]), and allow proper synchronization of the decoder.
The incoming signal must also be free of significant spectral lines, and be free of patterns
that interfere with codeword synchronization and validation (see 2.2.2).
NOTE – Designers should note that the length-255 pseudo-randomizer may introduce
spectral lines at 1/255 of the symbol rate, and these may be significant in some
systems.
In order to ensure proper receiver operation, the data stream must be sufficiently random.
The Pseudo-Randomizer defined in this section is the preferred method to ensure sufficient
randomness for all combinations of CCSDS-recommended modulation and coding schemes.
The Pseudo-Randomizer defined in this section is required unless the system designer
verifies proper operation of the system if this Randomizer is not used.
NOTE – Problems with telemetry links have been encountered because this Pseudo-
Randomizer was not used, and sufficient randomness was not ensured by other
means and properly verified.
NOTE – This subsection (including figure 10-1) does not apply to the case of LDPC
encoding of a stream of SMTFs, where randomization is applied according to 8.3
and figure 8-3.
10.2.1 The method for ensuring sufficient transitions is to exclusive-OR each bit of the
codeblock, codeword, or Transfer Frame with a standard pseudo-random sequence.
10.2.2 If the pseudo-randomizer is used, on the sending end it shall be applied to the
codeblock, codeword, or Transfer Frame after Reed-Solomon, Turbo, or LDPC encoding (if
any of these are used), but before convolutional encoding (if used). On the receiving end, it
shall be applied to derandomize the data after convolutional decoding (if used) and codeblock
or codeword synchronization but before Reed-Solomon, Turbo, or LDPC decoding (if any of
these are used).
10.3.1 The Attached Sync Marker (ASM) shall be used for synchronizing the pseudo-
randomizer.
NOTE – The Attached Sync Marker (ASM) is already optimally configured for
synchronization purposes.
10.3.2 The pseudo-random sequence shall be applied starting with the first bit of the
codeblock, codeword, or Transfer Frame. On the sending end, the codeblock, codeword, or
Transfer Frame shall be randomized by exclusive-ORing the first bit of the codeblock,
codeword, or Transfer Frame with the first bit of the pseudo-random sequence, followed by
the second bit of the codeblock, codeword, or Transfer Frame with the second bit of the
pseudo-random sequence, and so on.
10.3.3 On the receiving end, the original codeblock, codeword, or Transfer Frame shall be
reconstructed (i.e., derandomized) using the same pseudo‐random sequence.
10.3.4 After locating the ASM in the received data stream, the data immediately following
the ASM shall be derandomized.
NOTES
10.4.1 The pseudo-random sequence shall be generated using the following polynomial:
h(x) = x8 + x7 + x5 + x3 + 1
10.4.2 This sequence shall begin at the first bit of the codeblock, codeword, or Transfer
Frame and shall repeat after 255 bits, continuing repeatedly until the end of the codeblock,
codeword, or Transfer Frame. The sequence generator shall be initialized to the all-ones
state at the start of each codeblock, codeword, or Transfer Frame.
NOTE – The first 40 bits of the pseudo-random sequence from the generator are shown
below. The leftmost bit is the first bit of the sequence to be exclusive-ORed with
the first bit of the codeblock, codeword, or Transfer Frame; the second bit of the
sequence is exclusive-ORed with the second bit of the codeblock, codeword, or
Transfer Frame, and so on.
1111 1111 0100 1000 0000 1110 1100 0000 1001 1010 . . . .
NOTE – Figure 10-2 represents a possible generator for the specified sequence.
DATA IN
(Codeblock, Codeword,
or Transfer Frame) DATA OUT
(Randomized
Codeblock, Codeword,
or Transfer Frame)
X8 X7 X6 X5 X4 X3 X2 X1 Pseudo-random
sequence
Neither the TM Space Data Link Protocol (reference [1]), the AOS Space Data Link Protocol
(reference [2]), nor USLP (reference [6]) specifies the length of Transfer Frames because
there are constraints on the Transfer Frame length depending on the selected coding options.
The Unified Space Data Link Protocol (reference [6]) contains a frame length field that is
specified by the sender for both fixed- or variable-length transfer frames. However, that field
is not used by the procedures defined in this Recommended Standard.
The constraints on Transfer Frame lengths specified in this section apply to TM, AOS, and
USLP Transfer Frames.
11.2 GENERAL
11.2.1 Once selected, the Transfer Frame length shall be fixed for a Mission Phase on a
particular Physical Channel.
NOTE – The Transfer Frame lengths shown here do not include the length of the Attached
Sync Marker (ASM) specified in section 9.
The length of the Transfer Frames shall be any integer number of octets, as required by the
using project, with a maximum of 2048 octets for TM and AOS SDLP, and 65536 octets for
USLP.
The length of the Transfer Frames shall be any integer number of octets, as required by the
using project, with a maximum of 2048 octets for TM and AOS SDLP, and 65536 octets for
USLP.
NOTES
1 With the Reed-Solomon Codes specified in section 4, only certain specific lengths of
Transfer Frames may be contained within the codeblock’s data space. In some cases
these lengths can be shortened at a small sacrifice in coding gain.
2 Since these R-S codes have a symbol length of 8 bits, the length of the codeblock (in
octets) is a multiple of the interleaving depth, which provides ‘octet compatibility’.
11.5.1 If necessary, Transfer Frame lengths shall be shortened in discrete steps by using
virtual fill.
11.5.2 If high-speed efficiency is needed for ‘32-bit compatibility’ (with 32-bit processors,
for example), then the length of the codeblock shall be a combined multiple of 4 and the
interleaving depth.
11.5.3 When only octet compatibility is required, lengths for Transfer Frames (L in octets)
shall be determined using the following equation:
L = (255-2E-q) I
such that L is a positive integer,
where E = error correction capability,
q = number of virtual fill symbols per R-S codeword, and
I = interleaving depth.
11.5.4 When 32-bit compatibility is required, the Transfer Frame length must be chosen so
that
a) it is expressed by the equation in 11.5.3; and
b) the codeblock length (255-q)I (in octets) is a multiple of 4.
The allowable lengths of Transfer Frames when the concatenated (Reed-Solomon and
convolutional) coding is used are the same as those for the Reed-Solomon–only case (Case
3) shown in 11.5.
11.7.1 The Transfer Frame lengths shall be selected to match the information block lengths
for the selected Turbo code.
NOTE – The Turbo Codes specified in section 5 of this Recommended Standard are block
codes.
11.7.2 Only the following information block lengths shall be used (values are in octets):
a) 223;
b) 446;
c) 892;
d) 1115.
NOTE – Performance for only the above block lengths (i.e., Transfer Frame lengths) has
been validated by CCSDS and approved for use (values are in octets).
11.8.1 The Transfer Frame lengths must match the information block lengths for the selected
LDPC code.
11.8.2 When the rate-7/8 LDPC code is used, the only allowable Transfer Frame length is
892 octets.
11.8.3 When the 1/2-, 2/3-, and 4/5-rate LDPC codes are used, the allowable Transfer Frame
lengths are 128 octets, 512 octets, or 2048 octets.
When LDPC coding (of a stream of SMTFs) is used, the maximum Transfer Frame Length is
2048 octets for TM and AOS SDLP, and 65536 octets for USLP.
12 MANAGED PARAMETERS
12.1 OVERVIEW
In order to conserve bandwidth on the space link, some parameters associated with
synchronization and channel coding are handled by management rather than by inline
communications protocol. The managed parameters are those which tend to be static for
long periods of time, and whose change generally signifies a major reconfiguration of the
synchronization and channel coding systems associated with a particular mission. Through
the use of a management system, management conveys the required information to the
synchronization and channel coding systems.
In this section, the managed parameters used by synchronization and channel coding systems
are listed. These parameters are defined in an abstract sense and are not intended to imply
any particular implementation of a management system.
12.2 GENERAL
12.2.1 All the managed parameters specified in this section shall be fixed for all Transfer
Frames on a Physical Channel during a given Mission Phase.
12.2.2 When the Reed-Solomon or LDPC codes are not used, the Frame Error Control Field
defined in references [1] or [2] shall be present.
NOTE – The presence or absence of the Frame Error Control Field is established by the
management of the relevant Data Link Protocol. When the Reed-Solomon or
LDPC codes are used, the Frame Error Control Field can still be present but no
check is required by the decoding system.
12.2.3 If present, the Frame Error Control Field shall occur within every Transfer Frame
transmitted within the same Physical Channel throughout a Mission Phase.
The managed parameters for a particular Physical Channel shall be those specified in table 12-1.
The managed parameters for convolutional code shall be those specified in table 12-2.
The managed parameters for Reed-Solomon code shall be those specified in table 12-3.
The managed parameters for Turbo code shall be those specified in table 12-4.
The managed parameters for LDPC coding for a Transfer Frame shall be those specified in
table 12-5.
The managed parameters for LDPC coding of a stream of SMTFs shall be those specified in
table 12-6.
The managed parameters for frame synchronization shall be those specified in table 12-7.
The error control codes specified in this document are designed for use with fixed-length
Transfer Frames as defined in the TM Space Data Link Protocol (reference [1]), AOS Space
Data Link Protocol (reference [2]), or Unified Space Data Link Protocol (reference [6]). The
AOS and USLP protocols are defined for Telemetry (downlink) use, as is TM, but AOS and
USLP are also designed for use for ground-to-space and space-to-space communications.
This bidirectional use will typically be adopted for high-rate missions, missions for which the
space-to-ground and ground-to-space links are symmetric, or for missions that are adopting
upper-layer networking protocols like DTN or IP.
13.2.1 DISCUSSION
Turbo codes are best suited to power-constrained links, for which the Signal-to-Noise Ratio
(SNR), Eb/N0, is a dominant concern. Their code rates of r ≤1/2 provide greater coding gain
than LDPC codes, at a cost of greater bandwidth expansion and increased demodulator and
decoding complexity. They are best suited to links beyond low-Earth orbit.
13.2.2 SPECIFICATION
For AOS or USLP ground-to-space links, any of the turbo codes in section 6 shall be
selected.
NOTES
1 The turbo codes in section 6 offer code rates of r =1/2, 1/3, 1/4, and 1/6, and block
lengths of 1784, 3568, 7136, and 8920 information bits.
2 When a low-rate turbo code (particularly 1/4 or 1/6) is used near its decoding
threshold, the symbol SNR may be below −5 dB. The radio receiver’s symbol
tracking loop may require an uncommonly narrow loop bandwidth, as well as an
external means for Doppler compensation.
13.3.1 DISCUSSION
LDPC codes are best suited to high-data-rate links because of their code rates of r ≥1/2 and the
potentially parallel implementation architecture for the decoder. They are best suited to links
on which bandwidth is limited, onboard computational resources are available to support an
iterative decoder, and a Physical Layer modulation that supports at least two code symbols per
modulation symbol is available (e.g., QPSK/OQPSK and above—see reference [5]).
13.3.2 SPECIFICATION
For AOS or USLP ground-to-space links, any of the LDPC codes in section 7 shall be
selected.
NOTE – The LDPC codes in section 7 offer code rates of r=1/2, 2/3, 4/5, and approximately
7/8. Block lengths of 1024, 4096, and 16384 information bits are available with
the first three code rates, and 7136 information bits in the last case.
13.4.1 DISCUSSION
In some cases, it is most practical to use Transfer Frames with a fixed length that does not
need to match the information block length of the error correcting code. To support this
application, synchronization markers may be prepended to the Transfer Frames, the resulting
SMTFs concatenated into a stream and then ‘sliced’ according to the information block
length of the code.
13.4.2 SPECIFICATION
When a stream of SMTFs is chosen for an AOS or USLP ground-to-space link, the encoding
procedure defined in section 8 shall be selected.
ANNEX A
SERVICE
(NORMATIVE)
A1 OVERVIEW
A1.1 BACKGROUND
This annex provides service definition in the form of primitives, which present an abstract
model of the logical exchange of data and control information between the service provider
and the service user. The definitions of primitives are independent of specific
implementation approaches.
The parameters of the primitives are specified in an abstract sense and specify the
information to be made available to the user of the primitives. The way in which a specific
implementation makes this information available is not constrained by this specification. In
addition to the parameters specified in this annex, an implementation can provide other
parameters to the service user (e.g., parameters for controlling the service, monitoring
performance, facilitating diagnosis, and so on).
The TM Synchronization and Channel Coding provides unidirectional (one way) transfer of a
sequence of fixed-length TM, AOS, or USLP Transfer Frames at a constant frame rate over a
Physical Channel across a space link, with optional error detection/correction.
A3 SERVICE PARAMETERS
A3.1 FRAME
A3.1.1 The Frame parameter is the service data unit of this service and shall be either a TM
Transfer Frame defined in reference [1], an AOS Transfer Frame defined in reference [2], or
a USLP Transfer Frame defined in reference [6].
A3.1.2 The length of any Transfer Frame transferred on a Physical Channel must be the
same, and is established by management.
The Quality Indicator parameter shall be used to notify the user at the receiving end of the
service that there is an uncorrectable error in the received Transfer Frame.
The Sequence Indicator parameter shall be used to notify the user at the receiving end of the
service that one or more Transfer Frames of the Physical Channel have been lost as the result
of a loss of frame synchronization.
A4 SERVICE PRIMITIVES
A4.1 GENERAL
A4.1.2 The ChannelAccess.request primitive shall be passed from the service user at the
sending end to the service provider to request that a Frame be transferred through the
Physical Channel to the user at the receiving end.
A4.1.3 The ChannelAccess.indication shall be passed from the service provider to the
service user at the receiving end to deliver a Frame.
A4.2 ChannelAccess.request
A4.2.1 Function
The ChannelAccess.request primitive is the service request primitive for this service.
A4.2.2 Semantics
ChannelAccess.request (Frame)
Receipt of the ChannelAccess.request primitive causes the service provider to perform the
functions described in 2.3.1 and to transfer the resulting channel symbols.
A4.3 ChannelAccess.indication
A4.3.1 Function
The ChannelAccess.indication primitive is the service indication primitive for this service.
A4.3.2 Semantics
ChannelAccess.indication (Frame,
Quality Indicator,
Sequence Indicator)
The ChannelAccess.indication primitive is passed from the service provider to the service
user at the receiving end to deliver a Frame.
ANNEX B
(INFORMATIVE)
B1 SECURITY CONSIDERATIONS
Security concerns in the areas of data privacy, authentication, access control, availability of
resources, and auditing are to be addressed in higher layers and are not related to this
Recommended Standard. The coding layer does not affect the proper functioning of methods
used to achieve such protection at higher layers, except for undetected errors, as explained
above.
The physical integrity of data bits is protected from channel errors by the coding systems
specified in this Recommended Standard. In case of congestion or disruption of the link, the
coding layer provides methods for frame re-synchronization.
An eavesdropper can receive and decode the codewords, but will not be able to get to the
user data if proper encryption is performed at a higher layer. An interferer could affect the
performance of the decoder by congesting it with unwanted data, but such data would be
rejected by the authentication process. Such interference or jamming must be dealt with at
the Physical Layer and through proper spectrum regulatory entities.
There are no specific security measures prescribed for the coding layer. Therefore
consequences of not applying security are only imputable to the lack of proper security
measures in other layers. Residual undetected errors may produce additional data loss when
the link carries encrypted data.
B2 SANA CONSIDERATIONS
The recommendations of this document do not require any action from SANA.
B3 PATENT CONSIDERATIONS
Implementers should be aware that a wide class of Turbo codes is covered by a patent by
France Télécom and Télédiffusion de France under US Patent 5,446,747 and its counterparts
in other countries. 3
Potential user agencies should direct their requests for licenses to:
Implementers should be aware that the 1/2-, 2/3-, and 4/5-rate codes are covered by US
Patent 7,343,539. Potential user agencies should direct their requests for licenses to:
3
US Patent 5446747 expired in 2012.
ANNEX C
(INFORMATIVE)
The numbers in the second column represent the hexadecimal representation of the first row
of each circulant. Since there are only 511 possible positions, the leftmost bit is padded with
a zero to allow a 128 digit hexadecimal number, i.e., the leftmost number in the specification
of each circulant shall be interpreted as octal (=3 bits), as opposed to the others which shall
be interpreted as hexadecimal (=4 bits). The generator matrix circulants do not have a low
density of ‘1’s as do the parity-check matrix circulants in table 7-1. All Bi,j circulant shifting
is done by a single-bit right shift of the previous row.
ANNEX D
(INFORMATIVE)
D1 INTRODUCTION
This annex lists key abbreviations and acronyms that are used throughout this Recommended
Standard.
D2 ACRONYMS
AOS Advanced Orbiting Systems
ASM Attached Sync Marker
CADU Channel Access Data Unit
CCSDS Consultative Committee For Space Data Systems
CSM Code Sync Marker
DTN delay/disruption-tolerant networking
FECF Frame Error Control Field
GF Galois Field
IP Internet Protocol
LDPC Low-Density Parity-Check
MSB Most Significant Bit
NRZ-L Non-Return-to-Zero-Level
NRZ-M Non-Return-to-Zero-Mark
OQPSK Offset Quadrature Phase Shift Keying
OSI Open Systems Interconnection
QPSK Quadrature Phase Shift Keying
R-S Reed-Solomon
SANA Space Assigned Numbers Authority
SMTF Sync-Marked Transfer Frame
TC Telecommand
TCM Trellis Coded Modulation
TM Telemetry
USLP Unified Space Link Protocol
VCDU Virtual Channel Data Unit
ANNEX E
INFORMATIVE REFERENCES
(INFORMATIVE)
[E1] Organization and Processes for the Consultative Committee for Space Data Systems.
Issue 4. CCSDS Record (Yellow Book), CCSDS A02.1-Y-4. Washington, D.C.:
CCSDS, April 2014.
[E2] Telemetry Channel Coding. Issue 6-S. Recommendation for Space Data System
Standards (Historical), CCSDS 101.0-B-6-S. Washington, D.C.: CCSDS, (October
2002) August 2005.
[E3] Advanced Orbiting Systems, Networks and Data Links: Architectural Specification.
Issue 3-S. Recommendation for Space Data System Standards (Historical), CCSDS
701.0-B-3-S. Washington, D.C.: CCSDS, (June 2001) August 2005.
[E5] TM Channel Coding Profiles. Issue 1-S. Recommendation for Space Data System
Practices (Historical), CCSDS 131.4-M-1-S. Washington, D.C.: CCSDS, (July 2011)
December 2017.
[E6] Flexible Advanced Coding and Modulation Scheme for High Rate Telemetry
Applications. Issue 1. Recommendation for Space Data System Standards (Blue Book),
CCSDS 131.2-B-1. Washington, D.C.: CCSDS, March 2012.
[E7] CCSDS Space Link Protocols over ETSI DVB-S2 Standard. Issue 2. Recommendation
for Space Data System Standards (Blue Book), CCSDS 131.3-B-2. Washington, D.C.:
CCSDS, forthcoming.
ANNEX F
(INFORMATIVE)
F1 PURPOSE
This annex provides information to assist users of the Reed-Solomon code in this
Recommended Standard to transform between the Berlekamp (dual basis) and Conventional
representations. In addition, it shows where transformations are made to allow a
conventional encoder to produce the dual basis representation on which this Recommended
Standard is based.
F2 TRANSFORMATION
Referring to figure F-1, it can be seen that information symbols I entering and check symbols
C emanating from the Berlekamp R-S encoder are interpreted as
Information symbols I ' entering and check symbols C ' emanating from the conventional R-S
encoder are interpreted as
I C
BERLEKAMP R-S ENCODER
C
-1 T
T
I' C'
CONVENTIONAL R-S ENCODER
Conventional and Berlekamp types of (255,k) Reed-Solomon encoders are assumed to have
the same self-reciprocal generator polynomial whose coefficients appear in 4.3.3 and 4.3.4.
The representation of symbols associated with the conventional encoder is the polynomials in
‘α’ appearing in table F-1. Corresponding to each polynomial in ‘α’ is the representation in
the dual basis of symbols associated with the Berlekamp type encoder.
Given
where 0 ≤ i < 255 (and α* denotes the zero polynomial, u7, u6, ... = 0, 0, ...),
where
[z0, z1, ..., z7] = [u7, u6, ..., u0] Tα l
and
1 0 0 0 1 1 0 1
1 1 1 0 1 1 1 1
1 1 1 0 1 1 0 0
T = 1 0 0 0 0 1 1 0
1 1 1 1 1 0 1 0
1 0 0 1 1 0 0 1
1 0 1 0 1 1 1 1
0 1 1 1 1 0 1 1
Row 1, row 2, ... , and row 8 in Tα l are representations in the dual basis of α7 (10 ... 0), α6
(010 ... 0), ... , and α0 (00 ... 01), respectively.
The inverse of Tα l is
1 1 0 0 0 1 0 1
0 1 0 0 0 0 1 0
-1 0 0 1 0 1 1 1 0
T = 1 1 1 1 1 1 0 1
1 1 1 1 0 0 0 0
0 1 1 1 1 0 0 1
1 0 1 0 1 1 0 0
1 1 0 0 1 1 0 0
-1
Row 1, row 2, ... , and row 8 in Tα l are polynomials in ‘α’ corresponding to l0 (10 ... 0),
l1 (010 ... 0), ... , and l7 (00, ... 01), respectively. Thus,
-1
[z0, z1, ... , z7 ] Tα l = [u7, u6, ... , u0]
Example 1:
then
-1
T
[1 0 1 1 1 0 0 1] 1 1 0 0 0 1 0 1
0 1 0 0 0 0 1 0
0 0 1 0 1 1 1 0
1 1 1 1 1 1 0 1 = [u7, u6, ..., u0] = 00101010 = I'
1 1 1 1 0 0 0 0
0 1 1 1 1 0 0 1
1 0 1 0 1 1 0 0
1 1 0 0 1 1 0 0
and
Example 2:
Then,
[0 1 0 1 1 0 0 1] 1 0 0 0 1 1 0 1
1 1 1 0 1 1 1 1
1 1 1 0 1 1 0 0
1 0 0 0 0 1 1 0 = [z 0, z 1, ..., z 7] = 11101000 = C
1 1 1 1 1 0 1 0
1 0 0 1 1 0 0 1
1 0 1 0 1 1 1 1
0 1 1 1 1 0 1 1
4
From table 4 of reference [E4]. Note: Coefficients of the ‘Polynomial in Alpha’ column are listed in
descending powers of α, starting with α7.
5
The underlined entries correspond to values with exactly one non‐zero element and match a row in
the matrix.
P P
O POLY O POLY
W IN l01234567 W IN l01234567
E ALPHA E ALPHA
R R
P P
O POLY O POLY
W IN l01234567 W IN l01234567
E ALPHA E ALPHA
R R
P P
O POLY O POLY
W IN l01234567 W IN l01234567
E ALPHA E ALPHA
R R
ANNEX G
(INFORMATIVE)
Purpose:
While the equations given in the Reed-Solomon Coding section of this Recommended
Standard are fully specifying, this annex provides additional assistance for those
implementing either the E = 16 or the E = 8 code.
For E = 16:
For E = 8: