# AWGN Channel

Add white Gaussian noise to input signal

• Library:
• Communications Toolbox / Channels

## Description

The AWGN Channel block adds white Gaussian noise to the input signal. It inherits the sample time from the input signal.

## Ports

### Input

expand all

Input data signal, specified as an NS-by-1 vector or an NS-by-NC matrix.

NS represents the number of samples in the input signal. NC represents the number of channels, as determined by the number of columns in the input signal matrix. Both NS and NC can be equal to `1`.

The block adds frames of length-NS Gaussian noise to each of the NC channels, using a distinct random distribution per channel.

Data Types: `double` | `single`
Complex Number Support: Yes

Variance of additive white Gaussian noise, specified as a positive scalar or a 1-by-NC vector. NC represents the number of channels, as determined by the number of columns in the input signal matrix. For more information, see Specifying the Variance Directly or Indirectly.

#### Dependencies

To enable this port, set Mode to `Variance from port`.

Data Types: `double`

### Output

expand all

Output data signal for the AWGN channel, returned as a vector or matrix. The datatype and dimensions of `Out` match those of the input signal, In.

## Parameters

expand all

Noise generator initial seed, specified as a positive scalar or a 1-by-NC vector.

This block uses the Random Source block to generate noise. Random numbers are generated using the Ziggurat method (V5 RANDN algorithm). The block reuses the same initial seeds every time you rerun the simulation, so that this block outputs the same signal each time you run a simulation.

When the input signal is complex, the block creates random data as:

````randData` = `randn`(2*NS,NC) `noise` = `randData`(1:2:end) + 1i(`randData`(2:2:end))```
NS is the number of samples and NC is the number of channels.

You can specify different seed values for each DLL build.

Tunable: Yes

Variance mode, specified as ```Signal to noise ratio (Eb/No)```, `Signal to noise ratio (Es/No)`, `Signal to noise ratio (SNR)`, ```Variance from mask```, or `Variance from port`. For more information, see Relationship Among Eb/No, Es/No, and SNR Modes and Specifying the Variance Directly or Indirectly.

Ratio of information bit energy per symbol to noise power spectral density in decibels, specified as a scalar or vector. The information bit energy is the magnitude without channel coding.

Tunable: Yes

#### Dependencies

To enable this parameter, set Mode to `Eb/No`.

Ratio of information symbol energy per symbol to noise power spectral density in decibels, specified as a scalar or vector. The information bit energy is the magnitude without channel coding.

Tunable: Yes

#### Dependencies

To enable this parameter, set Mode to `Es/No`.

Ratio of signal power to noise power in decibels, specified as a scalar or vector.

Tunable: Yes

#### Dependencies

To enable this parameter, set Mode to `SNR`.

Number of bits in each input symbol, specified as a scalar or vector.

#### Dependencies

To enable this parameter, set Mode to `Eb/No`.

Mean square power of the input in watts, specified as a scalar or vector.

• When Mode is `Eb/No` or `Es/No`, the parameter is the mean square power of the input symbols.

• When `Mode` is `SNR`, this parameter is the mean square power of the input samples.

Tunable: Yes

#### Dependencies

To enable this parameter, set `Mode` to `Eb/No`, `Es/No`, or `SNR`.

Duration of an information channel symbol in seconds, specified as a positive scalar or vector. The duration of the information channel is measured without channel coding.

#### Dependencies

To enable this parameter, set Mode to `Eb/No` or `Es/No`.

Variance of the white Gaussian noise, specified as a scalar or vector. For more information, see Specifying the Variance Directly or Indirectly.

Tunable: Yes

#### Dependencies

To enable this parameter, set Mode to `Variance from mask`.

## Block Characteristics

 Data Types `double` | `single` Multidimensional Signals `no` Variable-Size Signals `no`

## Tips

• You can tune parameters in normal mode, accelerator mode, or rapid accelerator mode.

• Unless otherwise indicated, parameters are nontunable.

• For nontunable parameters, when you use the Simulink® Coder™ rapid simulation (RSIM) target to build an RSIM executable, you cannot change their values without recompiling the model.

• If a parameter is tunable, you can change its value at any time. This is useful for Monte Carlo simulations in which you run the simulation multiple times (such as on multiple computers) with different amounts of noise.

expand all

## References

[1] Proakis, John G. Digital Communications. 4th Ed. McGraw-Hill, 2001.

## Extended Capabilities

### Objects

Introduced before R2006a