Accelerating the pace of engineering and science

# Documentation Center

• Trial Software
• Product Updates

# bsc

Model binary symmetric channel

## Syntax

ndata = bsc(data,p)
ndata = bsc(data,p,s)
ndata = bsc(data,p,state)
[ndata,err] = bsc(...)

## Description

ndata = bsc(data,p) passes the binary input signal data through a binary symmetric channel with error probability p. The channel introduces a bit error with probability p, processing each element of data independently. data must be an array of binary numbers or a Galois array in GF(2). p must be a scalar between 0 and 1.ndata = bsc(data,p,s) causes rand to use the random stream s. s is any valid random stream. See RandStream for more details.

ndata = bsc(data,p,state) resets the state of the uniform random number generator rand to the integer state.

 Note:   This usage is deprecated and may be removed in a future release. Instead of state, use s, as in the previous example.

[ndata,err] = bsc(...) returns an array, err, containing the channel errors.

This function uses, by default, the Mersenne Twister algorithm by Nishimura and Matsumoto.

 Note:   Using the state parameter causes this function to switch random generators to use the 'state' algorithm of the rand function.See rand for details on the generator algorithm.

## Examples

To introduce bit errors in the bits in a random matrix with probability 0.15, use the bsc function:

```z = randi([0 1],100,100); % Random matrix
nz = bsc(z,.15); % Binary symmetric channel
[numerrs, pcterrs] = biterr(z,nz) % Number and percentage of errors```

The output below is typical. The percentage of bit errors is not exactly 15% in most trials, but it is close to 15% if the size of the matrix z is large.

```numerrs =

1509

pcterrs =

0.1509
```

Another example using this function is in Design a Rate 2/3 Feedforward Encoder Using Simulink.

## See Also

Was this topic helpful?