# Documentation

### This is machine translation

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

# comm.BinarySymmetricChannel System object

Introduce binary errors

## Description

The `BinarySymmetricChannel` object introduces binary errors to the signal transmitted through this channel.

To introduce binary errors into the transmitted signal:

1. Define and set up your binary symmetric channel object. See Construction.

2. Call `step` to introduces binary errors into the signal transmitted through this channel according to the properties of `comm.ACPR`. 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.BinarySymmetricChannel` creates a binary symmetric channel System object, `H`, that introduces binary errors to the input signal with a prescribed probability.

`H = comm.BinarySymmetricChannel(Name,Value)` creates a binary symmetric channel 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

 `ErrorProbability` Probability of binary error Specify the probability of a binary error as a scalar with a value between `0` and `1`. The default is `0.05`. `ErrorVectorOutputPort` Enable error vector output When you set this property to `true`, the `step` method outputs an error signal, `ERR`. This error signal, in vector form, indicates where errors were introduced in the input signal, `X`. A value of `1` at the i-th element of `ERR` indicates that an error was introduced at the i-th element of `X`. Set the property to `false` if you do not want the `ERR` vector at the output of the `step` method. The default is `true`. `OutputDataType` Data type of output Specify output data type as one of `double` | `logical`. The default is `double`.

## Methods

 step Introduce binary errors
Common to All System Objects
`clone`

Create System object with same property values

`getNumInputs`

Expected number of inputs to a System object

`getNumOutputs`

Expected number of outputs of a System object

`isLocked`

Check locked states of a System object (logical)

`release`

Allow System object property value changes

## Examples

expand all

Add binary errors with a probability of 0.2 to a binary input signal

```binSymChan = comm.BinarySymmetricChannel('ErrorProbability',0.2); data = randi([0 1],1000,1); [~,err] = binSymChan(data);```

Confirm that the number errors is approximately equal to the 0.2 multiplied by the number of symbols.

`[sum(err) 0.2*length(data)]`
```ans = 188 200 ```

## Algorithms

This object implements the algorithm, inputs, and outputs described on the Binary Symmetric Channel 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. An initial seed, set with the Initial seed parameter initializes the random number generator. For every system run that contains the block, 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`.