Documentation

### This is machine translation

Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

# comm.ErrorRate

Compute bit or symbol error rate of input data

## Description

The `ErrorRate` object compares input data from a transmitter with input data from a receiver and calculates the error rate as a running statistic. To obtain the error rate, the object divides the total number of unequal pairs of data elements by the total number of input data elements from one source.

To obtain the error rate:

1. Define and set up your error rate object. See Construction.

2. Call `step` to compare input data from a transmitter with input data from a receiver and calculate the error rate according to the properties of `comm.ErrorRate`. The behavior of `step` is specific to each object in the toolbox.

### Note

Starting in R2016b, instead of using the `step` method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, ```y = step(obj,x)``` and `y = obj(x)` perform equivalent operations.

## Construction

`H = comm.ErrorRate` creates an error rate calculator System object, `H`. This object computes the error rate of the received data by comparing it to the transmitted data.

`H = comm.ErrorRate(Name,Value)` creates an error rate calculator 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

 `ReceiveDelay` Number of samples to delay transmitted signal Specify the number of samples by which the received data lags behind the transmitted data. This value must be a real, nonnegative, double-precision, integer scalar. Use this property to align the samples for comparison in the transmitted and received input data vectors. Specify the delay in number of samples, regardless of whether the input is a scalar or a vector. The default is `0`. `ComputationDelay` Computation delay Specify the number of data samples that the object should ignore at the beginning of the comparison. This value must be a real, nonnegative, double-precision, integer scalar. Use this property to ignore the transient behavior of both input signals. The default is `0`. `Samples` Samples to consider Specify samples to consider as one of `Entire frame` | `Custom` | `Input port`. The property defines whether the object should consider all or only part of the input frames when computing error statistics. The default is `Entire frame`. Select `Entire frame` to compare all the samples of the RX frame to those of the TX frame. Select `Custom` or `Input port` to list the indices of the RX frame elements that the object should consider when making comparisons. When you set this property to `Custom`, you can list the indices as a scalar or a column vector of double-precision integers through the `CustomSamples` property. When you set this property to ```Input port```, you can list the indices as an input to the `step` method. `CustomSamples` Selected samples from frame Specify a scalar or a column vector of double-precision, real, positive integers. This value lists the indices of the elements of the RX frame vector that the object uses when making comparisons. This property applies when you set the `Samples` property to `Custom`. The default is an empty vector, which specifies that all samples are used. `ResetInputPort` Enable error rate reset input Set this property to `true` to reset the error statistics via an input to the `step` method. The default is `false`.

## Methods

 reset Reset states of error rate calculator object step Compute bit or symbol error rate of input data
Common to All System Objects
`release`

Allow System object property value changes

## Examples

expand all

Create two binary vectors and determine the error statistics.

Create a bit error rate counter object.

`errorRate = comm.ErrorRate;`

Create an arbitrary binary data vector.

`x = [1 0 1 0 1 0 1 0 1 0]';`

Introduce errors to the first and last bits.

```y = x; y(1) = ~y(1); y(end) = ~y(end);```

Calculate the error statistics.

`z = errorRate(x,y);`

The first element of the vector `z` is the bit error rate.

`z(1)`
```ans = 0.2000 ```

The second element of `z` is the total error count.

`z(2)`
```ans = 2 ```

The third element of `z` is the total number of bits.

`z(3)`
```ans = 10 ```

Create an 8-DPSK modulator and demodulator pair that work with binary data.

```dpskModulator = comm.DPSKModulator('ModulationOrder',8,'BitInput',true); dpskDemodulator = comm.DPSKDemodulator('ModulationOrder',8,'BitOutput',true);```

Create an error rate calculator, accounting for the three bit (one symbol) transient caused by the differential modulation.

`errorRate = comm.ErrorRate('ComputationDelay',3);`

Calculate the BER for 10 frames.

```BER = zeros(10,1); for i= 1:10 txData = randi([0 1],96,1); % Generate binary data modData = dpskModulator(txData); % Modulate rxSig = awgn(modData,7); % Pass through AWGN channel rxData = dpskDemodulator(rxSig); % Demodulate errors = errorRate(txData,rxData); % Compute error statistics BER(i) = errors(1); % Save BER data end```

Display the BER.

`BER`
```BER = 10×1 0.1613 0.1640 0.1614 0.1496 0.1488 0.1309 0.1405 0.1399 0.1370 0.1411 ```

## Algorithms

This object implements the algorithm, inputs, and outputs described on the Error Rate Calculation block reference page. The object properties correspond to the block parameters, except:

• The Output data and Variable name block parameters do not have a corresponding properties. The object always returns the result as an output.

• The Stop simulation block parameter does not have a corresponding property. To implement similar behavior, use the output of the `step` method in a while loop, to programmatically stop the simulation. See the Gray Coded 8-PSK.

• The Computation mode parameter corresponds to the `Samples` and `CustomSamples` properties.