Accelerating the pace of engineering and science

# comm.ThermalNoise System object

Package: comm

## 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

 clone Create thermal noise object with same property values getNumInputs Number of expected inputs to step method getNumOutputs Number of outputs from step method isLocked Locked status for input attributes and nontunable properties release Allow property value and input characteristics changes step Add 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.