Encode input signal using parallel concatenated encoding scheme
The comm.TurboEncoder
System object™ applies a parallel concatenated encoding scheme to a binary input message.
This coding scheme uses two identical convolutional encoders and appends the termination
bits at the end of the encoded data bit stream. For more information, see Parallel Concatenated Convolutional Encoding Scheme.
To encode a binary input message using a parallel concatenated encoding scheme:
Create the comm.TurboEncoder
object and set its properties.
Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?.
creates
a turbo encoder System object. This object performs turbo encoding using the default object
configuration.turboenc
= comm.TurboEncoder
sets properties using one or more name-value pairs. For example,
turboenc
= comm.TurboEncoder(Name
,Value
)comm.TurboEncoder('InterleaverIndicesSource','Input
port')
configures a turbo encoder System object with the interleaver indices to be supplied as an input argument
to the System object when it is called. Enclose each property name in quotes.
creates a turbo encoder System object with the turboenc
= comm.TurboEncoder(trellis
,interlvrindices
)TrellisStructure
and InterleaverIndices
properties set to
trellis
and interlvrindices
,
respectively. The trellis
input must be specified as
described by the TrellisStructure
property. The interlvrindices
input must be specified as
described by the InterleaverIndices
property.
encodes the input message using the parallel concatenated convolutional encoding
scheme specified by the trellis structure and interleaver indices.
codeword
= turboenc(message
)turboenc
returns the binary encoded codeword.
message
and codeword
are column
vectors of numeric, logical, or unsigned fixed-point values with word length 1
(fi
(Fixed-Point Designer) object). For more
information, see Parallel Concatenated Convolutional Encoding Scheme.
additionally specifies the interleaver indices.
codeword
= turboenc(message
,interlvrindices
)interlvrindices
must be a column vector containing
integers in the range [1, L] with no repeated values.
L is the length of the binary input message,
message
. This syntax applies when the InterleaverIndicesSource property is set to 'Input
port'
. The interleaver indices define the mapping used to permute
the input bits at the encoder.
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
[1] Berrou, C., A. Glavieux, and P. Thitimajshima. “Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes.” Proceedings of ICC 93 - IEEE International Conference on Communications, Geneva, Switzerland, May 1993, 1064–70. https://doi.org/10.1109/icc.1993.397441.
[2] Benedetto, S., G. Montorsi, D. Divsalar, and F. Pollara. "A Soft-Input Soft-Output Maximum A Posterior (MAP) Module to Decode Parallel and Serial Concatenated Codes." Jet Propulsion Lab TDA Progress Report, 42–127, (November 1996).
[3] Schlegel, Christian, and Lance Perez. Trellis and Turbo Coding. IEEE Press Series on Digital & Mobile Communication. Piscataway, NJ ; Hoboken, NJ: IEEE Press ; Wiley-Interscience, 2004.
[4] 3GPP TS 36.212. "Multiplexing and channel coding." 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.