Permute input symbols using shift registers with GPU
The GPU ConvolutionalInterleaver
object permutes
the symbols in the input signal using a graphics processing unit (GPU).
Internally, this class uses a set of shift registers.
Note
To use this object, you must install a Parallel Computing Toolbox™ license 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).
To convolutionally interleave binary data:
Define and set up your convolutional interleaver object. See Construction.
Call step
to convolutionally
interleave according to the properties of comm.gpu.ConvolutionalInterleaver
.
The behavior of step
is specific to each object in
the toolbox.
Note
Starting in R2016b, instead of using the step
method
to perform the operation defined by the System object, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x)
and y = obj(x)
perform
equivalent operations.
H = comm.gpu.ConvolutionalInterleaver
creates
a GPU-based convolutional interleaver System object, H
.
This object permutes the symbols in the input signal using a set of
shift registers.
H = comm.gpu.ConvolutionalInterleaver(Name,Value)
creates
a GPU-based convolutional interleaver System object, H
,
with the specified property Name
set to the specified Value
.
You can specify additional name-value pair arguments in any order
as (Name1
,Value1
,...,NameN
,ValueN
).
H = comm.gpu.ConvolutionalInterleaver(M,B,IC)
creates
a GPU-based convolutional interleaver System object H
,
with the NumRegisters
property set to M
,
the RegisterLengthStep
property set to B
,
and the InitialConditions
property set to IC
. M
, B
,
and IC
are value-only arguments. To specify a
value-only argument, you must also specify all preceding value-only
arguments.
|
Number of internal shift registers Specify the number of internal shift registers as a scalar,
positive integer. The default is |
|
Number of additional symbols that fit in each successive shift register Specify the number of additional symbols that fit in each successive
shift register as a positive, scalar integer. The default is |
|
Initial conditions of shift registers Specify the values that are initially stored in each shift register as a numeric scalar or
vector. You do not need to specify a value for the first shift register,
which has zero delay. The default is |
reset | Reset states of the convolutional interleaver object |
step | Permute input symbols using shift registers |
Common to All System Objects | |
---|---|
release | Allow System object property value changes |
This object implements the algorithm, inputs, and outputs described on the Convolutional Interleaver block reference page. The object properties correspond to the block parameters.