# 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`. Tunable. `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. Tunable. `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. Tunable. `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 (`k``T`*`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

expand all

### Add Thermal Noise to QPSK Signal

Create a thermal noise object having a noise temperature of 290 K and a sample rate of 5 MHz.

```noiseTemp = comm.ThermalNoise('NoiseTemperature',290,'SampleRate',5e6); ```

Generate QPSK-modulated data having an output power of 20 dBm.

```data = randi([0 3],1000,1); modData = 0.3162*pskmod(data,4,pi/4); ```

Attenuate the signal by the free space path loss assuming a 1000 m link distance and a carrier frequency of 2 GHz.

```fsl = (4*pi*1000*2e9/3e8)^2; rxData = modData/sqrt(fsl); ```

Add thermal noise to the signal. Plot the noisy constellation.

```noisyData = step(noiseTemp,rxData); scatterplot(noisyData) ```

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

## See Also

#### Introduced in R2012a

Was this topic helpful?

Get trial now