Decode binary low-density parity-check (LDPC) code with GPU
To use this object, you must install Parallel Computing Toolbox™ and have access to an appropriate GPU. For more about GPUs, see GPU Computing (Parallel Computing Toolbox).
A GPU-based System object™ accepts typical MATLAB® arrays or objects created using the gpuArray
class. A GPU-based
System object supports input signals with double- or single-precision data types. The output
signal inherits its data type from the input signal.
If the input signal is a MATLAB array, the System object handles data transfer between the CPU and the GPU. The output signal is a MATLAB array.
If the input signal is a gpuArray
, the data remains on the GPU.
The output signal is a gpuArray
. When the object is given a
gpuArray
, calculations take place entirely on the GPU, and no
data transfer occurs. Passing gpuArray
arguments provides
increased performance by reducing simulation time. For more information, see Establish Arrays on a GPU (Parallel Computing Toolbox).
The comm.gpu.LDPCDecoder
System object uses the belief propagation algorithm to decode a binary LDPC code, which is
input to the object as the soft-decision output (log-likelihood ratio of received bits) from
demodulation. The object decodes generic binary LDPC codes where no patterns in the
parity-check matrix are assumed. For more information, see Belief Propagation Decoding.
To decode an LDPC-encoded signal:
Create the comm.gpu.LDPCDecoder
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 GPU-based binary LDPC decoder System object. This object performs LDPC decoding based on the specified parity-check
matrix.gpu_ldpcdecoder
= comm.gpu.LDPCDecoder
sets the gpu_ldpcdecoder
= comm.gpu.LDPCDecoder(parity
)ParityCheckMatrix
property to parity
and
creates a GPU-based LDPC decoder System object. The parity
input must be specified as described by the
ParityCheckMatrix
property.
sets properties using one or more name-value pairs, in addition to inputs from any of the
prior syntaxes. For example, gpu_ldpcdecoder
= comm.gpu.LDPCDecoder(___,Name
,Value
)comm.LDPCDecoder('DecisionMethod','Soft
decision')
configures an LDPC decoder System object to decode data using the soft-decision method and output log-likelihood
ratios of data type double
. Enclose each property name in
quotes.
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] Gallager, Robert G. Low-Density Parity-Check Codes. Cambridge, MA: MIT Press, 1963.