Contents

comm.ThermalNoise System object

Package: comm

Add receiver thermal noise

Description

The ThermalNoise object simulates the effects of thermal noise on a complex, baseband signal.

To add receiver thermal noise to a complex, baseband signal:

  1. Define and set up your thermal noise object. See Construction.

  2. Call step to add receiver thermal noise according to the properties of comm.ThermalNoise. The behavior of step is specific to each object in the toolbox.

Construction

H = comm.ThermalNoise creates a receiver thermal noise System object™, H. This object adds thermal noise to the complex, baseband input signal.

H = comm.ThermalNoise(Name,Value) creates a receiver thermal noise object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

NoiseMethod

Method to specify noise level

Select the method to specify the noise level as Noise temperature | Noise figure | Noise factor. The default is Noise temperature.

NoiseTemperature

Noise temperature

Specify the noise temperature in degrees Kelvin as a numeric, nonnegative, real scalar value. The default is 290. This property applies when you set the NoiseMethod property to Noise temperature.

NoiseFigure

Noise figure

Specify the noise figure in decibels relative to a noise temperature of 290 K. You must set this property to a numeric, nonnegative, real scalar value. This property applies when you set the NoiseMethod property to Noise figure. The default is 3.01 dB, which corresponds to a noise temperature of 290×(10(NoiseFigure/10)–1). This value approximates 290 K.

NoiseFactor

Noise factor

Specify the noise factor as a factor relative to a noise temperature of 290 K. You must set this property to a numeric, real scalar value greater than or equal to 1. This property applies when you set the NoiseMethod property to Noise factor. The default is 2, which corresponds to a noise temperature of 290×(NoiseFactor–1) = 290 K.

SampleRate

Sample time

Specify the sample rate of the input samples in Hz as a numeric, real, positive scalar. The default is 1. The object computes the variance of the noise added to the input signal as (kT*SampleRate). The value k is Boltzmann's constant and T is the noise temperature specified explicitly or implicitly via one of the noise methods.

Methods

cloneCreate thermal noise object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
stepAdd receiver thermal noise

Examples

Add thermal noise with a noise temperature of 290 K to QPSK data.

    hTNoise = comm.ThermalNoise('NoiseTemperature',290);
% Create a modulator and obtain complex baseband signal
    hMod = comm.QPSKModulator;
    data = randi([0 3],32,1);
    modData = step(hMod,data);
% Add noise to signal
    noisyData = step(hTNoise,modData);

Algorithms

This object implements the algorithm, inputs, and outputs described on the Receiver Thermal Noise block reference page. The object properties correspond to the block parameters, except:

  • This object uses the MATLAB® default random stream to generate random numbers. The block uses a random number generator based on the V5 RANDN (Ziggurat) algorithm. The block also uses an initial seed, set with the Initial seed parameter to initialize the random number generator. Ever time the system that contains the block runs, the block generates the same sequence of random numbers. To generate reproducible numbers using this object, you can reset the MATLAB default random stream using the following code.

    reset(RandStream.getGlobalStream)

    For more information, see help for RandStream.

  • The object provides a SampleRate property, which needs to be specified. The block senses the sample time of the signal and therefore does not have a corresponding parameter.

Was this topic helpful?