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 object’s inputs 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 an Additive White Gaussian Noise (AWGN) channel system object awgnchan with the 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 properties as a pair Name=Value, where Name — the name of the property, and Value — the appropriate value. You can specify multiple pairs «name-value» the order of the pairs does not matter. Unspecified properties retain their default values.

    Example:

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

Using

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

  • outsignal = awgnchan(insignal,var) — sets the variance of white Gaussian noise. This syntax applies when you install NoiseMethod in 'Variance' and VarianceSource in 'Input port'.

For example:

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

Arguments

Input arguments

insignal — The input signal

+ scalar | vector | the matrix

Details

The input signal, specified as a scalar, vector -elements or matrices on , where — this is the number of counts, and — the number of channels.

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

Типы данных

Float64

Support for complex numbers

Yes

var is the variance of additive white Gaussian noise

+ positive scalar | vector string

Details

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

Dependencies

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

Output arguments

outsignal — output signal

+ the matrix

Details

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

Features

# 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 to all system objects

step!

Run the system object operation algorithm

Algorithms

The relationship between the Eb/No, Es/No and SNR mods

Details

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

,

in dB,

where

  • — signal energy in J;

  • — bit energy in J;

  • — spectral noise power density in W/Hz;

  • — the number of counts per character (SamplesPerSymbol);

  • — the number of information bits per input character (BitsPerSymbol).

For real signal inputs EngeeComms.AWGN binds 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. In particular, the object uses the spectral power density of the noise W/Hz for valid input signals compared to W/Hz for complex signals.

Literature

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