comm.gpu.AWGNChannel
Add white Gaussian noise to input signal with GPU
Description
The GPU AWGNChannel
object adds white Gaussian noise to
an input signal using a graphics processing unit (GPU).
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).
To add white Gaussian noise to an input signal:
Define and set up your additive white Gaussian noise channel object. See Construction.
Call
step
to add white Gaussian noise to the input signal according to the properties ofcomm.gpu.AWGNChannel
. The behavior ofstep
is specific to each object in the 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 agpuArray
. When the object is given agpuArray
, calculations take place entirely on the GPU, and no data transfer occurs. PassinggpuArray
arguments provides increased performance by reducing simulation time. For more information, see Establish Arrays on a GPU (Parallel Computing 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.
Construction
H = comm.gpu.AWGNChannel
creates a GPU-based additive white Gaussian
noise (AWGN) channel System object, H
. This object adds white Gaussian noise to a real or
complex input signal.
H = comm.gpu.AWGNChannel(
creates a GPU-based AWGN channel object, Name
,Value
)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).
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 agpuArray
. When the object is given agpuArray
, calculations take place entirely on the GPU, and no data transfer occurs. PassinggpuArray
arguments provides increased performance by reducing simulation time. For more information, see Establish Arrays on a GPU (Parallel Computing Toolbox).
Properties
|
Method to specify noise level Select the method to specify the noise level as one of |
|
Energy per bit to noise power spectral density ratio (Eb/No) Specify the Eb/No ratio in decibels. Set this property to a numeric, real scalar or
row vector with a length equal to the number of channels. This property applies when you
set the NoiseMethod property to
|
|
Energy per symbol to noise power spectral density ratio (Es/No) Specify the Es/No ratio in decibels. Set this property to a numeric, real scalar or
row vector with a length equal to the number of channels. This property applies when you
set the NoiseMethod property to
|
|
Signal to noise ratio (SNR) Specify the SNR value in decibels. Set this property to a numeric, real scalar or
row vector with a length equal to the number of channels. This property applies when you
set the NoiseMethod property to
|
|
Number of bits in one symbol Specify the number of bits in each input symbol. You can set this property to a
numeric, positive, integer scalar or row vector with a length equal to the number of
channels. This property applies when you set the NoiseMethod property to
|
|
Input signal power in Watts Specify the mean square power of the input signal in Watts. Set this property to a
numeric, positive, real scalar or row vector with a length equal to the number of
channels. This property applies when you set the NoiseMethod property to
|
|
Number of samples per symbol Specify the number of samples per symbol. Set this property to a numeric, positive,
integer scalar or row vector with a length equal to the number of channels. This
property applies when you set the NoiseMethod property to
|
|
Source of noise variance Specify the source of the noise variance as one of |
|
Noise variance Specify the variance of the white Gaussian noise. You can set this property to a
numeric, positive, real scalar or row vector with a length equal to the number of
channels. This property applies when you set the NoiseMethod property to
|
|
Source of random number stream Specify the source of random number stream. The only valid setting for this property
is |
|
Initial seed of The GPU version of the AWGN Channel System object does not use this property. |
Methods
step | Add white Gaussian noise to input signal |
Common to All System Objects | |
---|---|
release | Allow System object property value changes |
Algorithm
This object uses the same algorithm as the comm.AWGNChannel
System object. See the Algorithms section of the comm.AWGNChannel
help page for more details. The object properties correspond to
the related block parameters, except that:
This object uses
parallel.gpu.RandStream
to provide an interface for controlling the properties of one or more random number streams that the GPU uses. Usage is the same asRandStream
with the following restrictions:Only the
combRecursive
(MRG32K3A) generator is supported.Only the
Inversion
normal transform is supported.Setting the
substream
property is not allowed.
Enter help parallel.gpu.RandStream
at the MATLAB command line for
more information.