comm.APPDecoder
Decode convolutional code by using APP method
Description
The comm.APPDecoder
System object™ performs a posteriori probability (APP) decoding of a convolutional code.
To decode convolutional code by using APP method:
Create the
comm.APPDecoder
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?
Creation
Syntax
Description
appDec = comm.APPDecoder
creates an APP decoder System object, appDec
, that decodes a convolutional code using the
APP method.
appDec = comm.APPDecoder(
sets properties using one or more name-value pairs. For example,
Name
,Value
)comm.APPDecoder('Algorithm','True APP')
configures the System object, appDec
, to implement true a posteriori probability
decoding. Enclose each property name in quotes.
appDec = comm.APPDecoder(trellis,
creates an APP decoder object, Name
,Value
)appDec
, with the TrellisStructure property set to trellis
.
Properties
Usage
Description
[
performs APP decoding on the sequence of LLRs of encoder input bits,
LUD
,LCD
] = appDec(LU
,LC
)LU
, and the sequence of LLRs of encoded bits,
LC
. The System object returns LUD
and LCD
. These output
values are the updated versions of LU
and LC
,
respectively, and are obtained based on the encoder information.
performs APP decoding with the LUD
= appDec(LU
,LC
)LCD
output disabled. To disable the
LCD
output, set the CodedBitLLROutputPort property to
0
(false
).
Input Arguments
Output Arguments
Object Functions
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)
Examples
Algorithms
This System object implements the soft-input-soft-output APP decoding algorithm according to [1] and [2].
The 'True APP'
option of the Algorithm
property
implements APP decoding as per equations 20–23 in section V of [1]. To gain speed, the
'Max*'
and 'Max'
values of the
Algorithm
property approximate expressions like by other quantities. The 'Max'
option uses
max(ai) as the approximation. The
'Max*'
option uses max(ai)
plus a correction term given by the expression .
Setting the Algorithm
property to 'Max*'
enables the
NumScalingBits
property of this System object. This property denotes the number of bits by which this System object scales the data it processes (multiplies the input by
2NumScalingBits
and divides the
pre-output by the same factor). Use this property to avoid losing precision during
computations.
References
[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 (November 1996): 42–127.
[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] Benedetto, S., and G. Montorsi. “Performance of Continuous and Blockwise Decoded Turbo Codes.” IEEE Communications Letters 1, no. 3 (May 1997): 77–79. https://doi.org/10.1109/4234.585802.
Extended Capabilities
Version History
Introduced in R2012a