Restore ordering of symbols using shift registers with GPU
The GPU ConvolutionalDeinterleaver
object recovers
a signal that was interleaved using the GPU-based convolutional interleaver
object. The parameters in the two blocks should have the same values.
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 recover convolutionally interleaved binary data:
Define and set up your convolutional deinterleaver object. See Construction.
Call step
to convolutionally
deinterleave according to the properties of comm.gpu.ConvolutionalDeinterleaver
.
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.ConvolutionalDeinterleaver
creates
a GPU-based convolutional deinterleaver System object, H
.
This object restores the original ordering of a sequence that was
interleaved using a convolutional interleaver.
H = comm.gpu.ConvolutionalDeinterleaver(Name,Value)
creates
a GPU-based convolutional deinterleaver 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.ConvolutionalDeinterleaver(M,B,IC)
creates
a convolutional deinterleaver 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 (except the first shift
register, which has zero delay) as a numeric scalar or vector. The default is
|
reset | Reset states of the convolutional deinterleaver 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 Deinterleaver block reference page. The object properties correspond to the block parameters.