Decode input signal using parallel concatenated decoding scheme
The comm.TurboDecoder
System object™ uses a parallel concatenated decoding scheme to decode a coded input
signal. The input signal is typically the soft-decision output from the baseband
demodulation operation. For more information, see Parallel Concatenated Convolutional Decoding Scheme.
To decode an input signal using a parallel concatenated decoding scheme:
Create the comm.TurboDecoder
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 decoder System object. This object uses the a-posteriori
probability (APP) constituent decoder to iteratively decode the
parallel-concatenated convolutionally encoded input data.turbodec
= comm.TurboDecoder
creates a turbo decoder System object with the turbodec
= comm.TurboDecoder(trellis
,interlvrindices
,numiter
)TrellisStructure
, InterleaverIndices
, and numiter
,
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. The numiter
input must be specified as described by the NumIterations
property.
sets properties using one or more name-value pairs in addition to any input
argument combination from previous syntaxes. Enclose each property name in
quotes. For example,
turbodec
= comm.TurboDecoder(___,Name
,Value
)comm.TurboDecoder('InterleaverIndicesSource','Input
port')
configures a turbo decoder System object with the interleaver indices to be supplied as an input argument
to the System object when it is called.
decodes the input codeword using the parallel concatenated convolutional
decoding scheme that is specified by the trellis structure and interleaver
indices. decmsg
= turbodec(codeword
)turbodec
returns the binary decoded data. For more
information, see Parallel Concatenated Convolutional Decoding Scheme.
additionally specifies the interleaver indices. To enable this syntax, set the
InterleaverIndicesSource property to decmsg
= turbodec(codeword
,interlvrindices
)'Input
port'
. The interleaver indices define the mapping used to permute
the input at the decoder.
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] 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).
[2] Viterbi, A.J. “An Intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes.” IEEE Journal on Selected Areas in Communications 16, no. 2 (February 1998): 260–64. https://doi.org/10.1109/49.661114.
[3] 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.
[4] 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.
[5] 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.