Add white Gaussian noise to input signal
Channels
The AWGN Channel block adds white Gaussian noise to a real or complex input signal. When the input signal is real, this block adds real Gaussian noise and produces a real output signal. When the input signal is complex, this block adds complex Gaussian noise and produces a complex output signal. This block inherits its sample time from the input signal.
This block accepts a scalar-valued, vector, or matrix input
signal with a data type of type single
or double
.
The output signal inherits port data types from the signals that drive
the block.
Note: All values of power assume a nominal impedance of 1 ohm. |
This block can process multichannel signals. When you set the Input
Processing parameter to Columns as channels
(frame based)
, the block accepts an M-by-N input
signal. M specifies the number of samples per channel
and N specifies the number of channels. Both M and N can
be equal to 1
. The block adds frames of length-M Gaussian
noise to each of the N channels, using a distinct
random distribution per channel.
You can specify the variance of the noise generated by the AWGN Channel block using one of these modes:
Signal to noise ratio (Eb/No)
,
where the block calculates the variance from these quantities that
you specify in the dialog box:
Eb/No, the ratio of bit energy to noise power spectral density
Number of bits per symbol
Input signal power, the actual power of the symbols at the input of the block
Symbol period
Signal to noise ratio (Es/No)
,
where the block calculates the variance from these quantities that
you specify in the dialog box:
Es/No, the ratio of signal energy to noise power spectral density
Input signal power, the actual power of the symbols at the input of the block
Symbol period
Signal to noise ratio (SNR)
,
where the block calculates the variance from these quantities that
you specify in the dialog box:
SNR, the ratio of signal power to noise power
Input signal power, the actual power of the samples at the input of the block
Variance from mask
, where
you specify the variance in the dialog box. The value must be positive.
Variance from port
, where
you provide the variance as an input to the block. The variance input
must be positive, and its sampling rate must equal that of the input
signal.
Changing the symbol period in the AWGN Channel
block
affects the variance of the noise added per sample, which also causes
a change in the final error rate.
$$NoiseVariance=\frac{SignalPower\times SymbolPeriod}{SampleTime\times {10}^{\frac{Es/No}{10}}}$$
A good rule of thumb for selecting the Symbol period value is to set it to be what you model as the symbol period in the model. The value would depend upon what constitutes a symbol and what the oversampling applied to it is (e.g., a symbol could have 3 bits and be oversampled by 4).
In both Variance from mask
mode and Variance
from port
mode, these rules describe how the block interprets
the variance:
If the variance is a scalar, then all signal channels are uncorrelated but share the same variance.
If the variance is a vector whose length is the number of channels in the input signal, then each element represents the variance of the corresponding signal channel.
Note If you apply complex input signals to the AWGN Channel block, then it adds complex zero-mean Gaussian noise with the calculated or specified variance. The variance of each of the quadrature components of the complex noise is half of the calculated or specified value. |
For uncoded complex input signals, the AWGN Channel block relates E_{b}/N_{0, }E_{s}/N_{0}, and SNR according to the following equations:
E_{s}/N_{0} = (T_{sym}/T_{samp}) · SNR
E_{s}/N_{0} = E_{b}/N_{0} + 10log_{10}(k) in dB
where
E_{s} = Signal energy (Joules)
E_{b} = Bit energy (Joules)
N_{0} = Noise power spectral density (Watts/Hz)
T_{sym} is
the Symbol period parameter of the block in Es/No
mode
k is the number of information bits per input symbol
T_{samp} is the inherited sample time of the block, in seconds
For real signal inputs, the AWGN Channel block relates E_{s}/N_{0 }and SNR according to the following equation:
E_{s}/N_{0} = 0.5 (T_{sym}/T_{samp}) · SNR
Note that the equation for the real case differs from the corresponding equation for the complex case by a factor of 2. This is so because the block uses a noise power spectral density of N_{0}/2 Watts/Hz for real input signals, versus N_{0} Watts/Hz for complex signals.
For more information about these quantities, see AWGN Channel Noise Level in the Communications System Toolbox™ documentation.
The following table indicates which parameters are tunable, for different block modes.
Mode | Tunable Parameters |
---|---|
Eb/No | Eb/No, Input signal power |
Es/No | Es/No, Input signal power |
SNR | SNR, Input signal power |
Variance from mask | Variance |
You can tune parameters in normal mode, Accelerator mode and the Rapid Accelerator mode.
If you use the Simulink^{®} Coder™ rapid simulation (RSIM) target to build an RSIM executable, then you can tune the parameters listed in the previous table without recompiling the model. This is useful for Monte Carlo simulations in which you run the simulation multiple times (perhaps on multiple computers) with different amounts of noise.
Specify how the block processes the input signal. You can set this parameter to one of the following options:
Columns as channels (frame based)
—
When you select this option, the block treats each column of the input
as a separate channel.
Note:
The |
The seed for the Gaussian noise generator.
This block uses the DSP System Toolbox™ Random Source block to generate noise. Random numbers are generated using the Ziggurat method. The Initial seed parameter in this block initializes the noise generator. Initial seed can be either a scalar or a vector with a length that matches the number of channels in the input signal. Each time you run a simulation, this block outputs the same signal. The first time you run the simulation, the block randomly selects an initial seed. The block reuses the same initial seeds every time you rerun the simulation.
This property is a tunable and allows you to specify different seed values for each DLL build.
The mode by which you specify the noise variance: Signal
to noise ratio (Eb/No)
, Signal
to noise ratio (Es/No)
, Signal
to noise ratio (SNR)
, Variance
from mask
, or Variance from port
.
The ratio of information (i.e., without channel coding) bit
energy per symbol to noise power spectral density, in decibels. This
field appears only if Mode is set to Eb/No
.
The ratio of information (i.e., without channel coding) symbol
energy per symbol to noise power spectral density, in decibels. This
field appears only if Mode is set to Es/No
.
The ratio of signal power to noise power, in decibels. This
field appears only if Mode is set to SNR
.
The number of bits in each input symbol. This field appears
only if Mode is set to Eb/No
.
The mean square power of the input symbols (if Mode is Eb/No
or Es/No
)
or input samples (if Mode is SNR
),
in watts. This field appears only if Mode is
set to Eb/No
, Es/No
,
or SNR
.
The duration of an information channel (i.e., without channel
coding) symbol, in seconds. This field appears only if Mode is
set to Eb/No
or Es/No
.
The variance of the white Gaussian noise. This field appears
only if Mode is set to Variance
from mask
.
Many documentation examples use this block, including:
Random Source (DSP System Toolbox documentation)
[1] Proakis, John G., Digital Communications, 4th Ed., McGraw-Hill, 2001.