Documentation |
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.
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.
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 Inherited (this choice will be removed - see release notes) option will be removed in a future release. See Frame-Based Processing in the Communications System Toolbox Release Notes for more information. |
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:
Gray Coded 8-PSK (Eb/No mode)
LLR vs. Hard Decision Demodulation (Variance from port mode)
Reed Solomon Examples with Shortening, Puncturing, and Erasures