Engee documentation

EngeeComms.AWGN

Adds white Gaussian noise to the input signal.

Library

EngeeComms.

Block

AWGN Channel

Description

System object EngeeComms.AWGN adds white Gaussian noise to the input signal.

If the inputs of the object have a variable number of channels, the properties EbNo, BitsPerSymbol, SignalPower, SamplesPerSymbol must be scalars.

To add white Gaussian noise to the input signal:

  1. Create an object EngeeComms.AWGN and set its properties.

  2. Call the object with arguments as if it were a function.

To learn more about how to work with system objects, see Engee system objects.

Syntax

Creation

  • awgnchan = EngeeComms.AWGN() creates a awgnchan channel additive white Gaussian noise (AWGN) system object with by default properties. This object adds white Gaussian noise to the real or complex input signal.

    Example:

    awgnchan = EngeeComms.AWGN()
  • awgnchan = EngeeComms.AWGN(Name=Value) creates an AWGN channel system object awgnchan with the specified property Name set to the specified value Value. You can specify additional arguments as a name-value pair in any order (Name1=Value1,…​,NameN=ValueN).

    Example:

    awgnchan = EngeeComms.AWGN(EbNo=20, BitsPerSymbol=3)

Usage

  • outsignal = awgnchan(insignal) adds white Gaussian noise, as specified by awgnchan, to the input signal. The result is returned in outsignal.

  • outsignal = awgnchan(insignal,var) specifies the variance of the white Gaussian noise. This syntax applies when you set NoiseMethod to Variance and VarianceSource to Input port.

For example:

awgnchan = EngeeComms.AWGN(NoiseMethod, Variance, ...
     'VarianceSource','Input port');
var = 12;
...
outsignal = awgnchan(insignal,var);

Arguments

Input arguments

insignal - input signal
scalar | vector | matrix

Details

An input signal specified as a scalar, a vector of -elements or a matrix by , where is the number of samples and is the number of channels.

This object accepts variable-sized input data. After locking the object, you can change the size of each input channel, but you cannot change the number of channels.

Типы данных

Float64

Supports complex numbers

Yes

var - variance of additive white Gaussian noise
positive scalar | string vector

Details

The variance of additive white Gaussian noise, given as a positive scalar or vector of 1 at , where is the number of channels defined by the number of columns in the input signal matrix.

Dependencies

To use this argument, set the property NoiseMethod property to 'Variance'.

Output arguments

outsignal - output signal
matrix

Details

An output signal type returned with the same size and type as insignal.

Properties

# InitialSeed — initial random number
Real number

Details

The initial random number of the random number stream mt19937ar, specified as a non-negative integer. Each time the reset function is called, the object reinitialises the random number stream mt19937ar to the value Seed.

# SignalPower — input signal strength
Real number

Details

Input signal power in watts, specified as a positive scalar or vector 1-on- , where is the number of channels. The object assumes a nominal impedance of 1 ohm.

# EbNo — the ratio of energy per bit to the noise power spectral density
Real number or vector of real numbers

Details

The ratio of the noise power spectral density (Eb/No) in decibels, given as a scalar or vector 1-on- , where is the number of channels.

Dependencies

This property applies when NoiseMethod is set to 'Signal to noise ratio (Eb/No)'.

# NoiseMethod — noise level method
String

Details

A noise level method specified as 'Signal to noise ratio (Eb/No)', 'Signal to noise ratio (Es/No)', 'Signal to noise ratio (SNR)' or 'Variance'.

# SamplesPerSymbol — counts per character
Real number

Details

The number of samples per symbol, specified as a positive integer or vector 1 at . - is the number of channels.

Dependencies

This property applies when NoiseMethod is set to 'Signal to noise ratio (Eb/No)' or 'Signal to noise ratio (Es/No)'.

# BitsPerSymbol — number of bits per character
Real number

Details

The number of bits per character, specified as a positive integer.

Dependencies

This property is applied when NoiseMethod is set to 'Signal to noise ratio (Eb/No)'.

Methods

Common for all system objects

step!

Start the system object’s operating algorithm

Algorithms

Relationship between Eb/No, Es/No and SNR modes

Details

For uncoded complex input signals, EngeeComms.AWGN relates , and SNR according to these equations:

,

dB,

where

  • - signal energy in J

  • - bit energy in J;

  • - spectral density of noise power in W/Hz;

  • - number of samples per symbol (SamplesPerSymbol);

  • - number of information bits per input symbol (BitsPerSymbol).

For real signal inputs, EngeeComms.AWGN links and according to this equation:

.

  • All power values assume a nominal impedance of 1 ohm.

  • The equation for the real case differs from the corresponding equation for the complex case by a factor of 2. Specifically, the facility uses the noise power spectral density of W/Hz for valid input signals versus W/Hz for complex signals.

Literature

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