A binary symmetric channel (or BSCp) is a common communications channel model used in coding theory and information theory. In this model, a transmitter wishes to send a bit (a zero or a one), and the receiver will receive a bit. The bit will be "flipped" with a "crossover probability" of p, and otherwise is received correctly. This model can be applied to varied communication channels such as telephone lines or disk drive storage.

The noisy-channel coding theorem applies to BSCp, saying that information can be transmitted at any rate up to the channel capacity with arbitrarily low error. The channel capacity is  bits, where  is the binary entropy function. Codes including Forney's code have been designed to transmit information efficiently across the channel.

Definition 

A binary symmetric channel with crossover probability , denoted by BSCp, is a channel with binary input and binary output and probability of error . That is, if  is the transmitted random variable and  the received variable, then the channel is characterized by the conditional probabilities:

It is assumed that . If , then the receiver can swap the output (interpret 1 when it sees 0, and vice versa) and obtain an equivalent channel with crossover probability .

Capacity 
The channel capacity of the binary symmetric channel, in bits, is:

where  is the binary entropy function, defined by:

{| class="toccolours collapsible collapsed" width="80%" style="text-align:left"
!Proof
|-
|The capacity is defined as the maximum mutual information between input and output for all possible input distributions :

The mutual information can be reformulated as

where the first and second step follows from the definition of mutual information and conditional entropy respectively. The entropy at the output for a given and fixed input symbol () equals the binary entropy function, which leads to the third line and this can be further simplified.

In the last line, only the first term  depends on the input distribution . The entropy of a binary variable is at most 1 bit, and equality is attained if its probability distribution is uniform. It therefore suffices to exhibit an input distribution that yields a uniform probability distribution for the output .  For this, note that it is a property of any binary symmetric channel that a uniform probability distribution of the input results in a uniform probability distribution of the output. Hence the value  will be 1 when we choose a uniform distribution for . We conclude that the channel capacity for our binary symmetric channel is .
|}

Noisy-channel coding theorem 
Shannon's noisy-channel coding theorem gives a result about the rate of information that can be transmitted through a communication channel with arbitrarily low error. We study the particular case of .

The noise  that characterizes  is a random variable consisting of n independent random bits (n is defined below) where each random bit is a  with probability  and a  with probability . We indicate this by writing "".

What this theorem actually implies is, a message when picked from , encoded with a random encoding function , and sent across a noisy , there is a very high probability of recovering the original message by decoding, if  or in effect the rate of the channel is bounded by the quantity stated in the theorem. The decoding error probability is exponentially small.

Proof
The theorem can be proved directly with a probabilistic method. Consider an encoding function  that is selected at random. This means that for each message , the value  is selected at random (with equal probabilities). For a given encoding function , the decoding function  is specified as follows: given any received codeword , we find the message  such that the Hamming distance  is as small as possible (with ties broken arbitrarily). ( is called a maximum likelihood decoding function.)

The proof continues by showing that at least one such choice  satisfies the conclusion of theorem, by integration over the probabilities. Suppose  and  are fixed. First we show that, for a fixed  and  chosen randomly, the probability of failure over  noise is exponentially small in n. At this point, the proof works for a fixed message . Next we extend this result to work for all messages . We achieve this by eliminating half of the codewords from the code with the argument that the proof for the decoding error probability holds for at least half of the codewords. The latter method is called expurgation. This gives the total process the name random coding with expurgation.

{| class="toccolours collapsible collapsed" width="80%" style="text-align:left"
!Continuation of proof (sketch)
|-
|Fix  and . Given a fixed message , we need to estimate the expected value of the probability of the received codeword along with the noise does not give back  on decoding. That is to say, we need to estimate:

Let  be the received codeword. In order for the decoded codeword  not to be equal to the message , one of the following events must occur:

  does not lie within the Hamming ball of radius  centered at . This condition is mainly used to make the calculations easier.
 There is another message  such that . In other words, the errors due to noise take the transmitted codeword closer to another encoded message.

We can apply the Chernoff bound to ensure the non occurrence of the first event; we get:

This is exponentially small for large  (recall that  is fixed).

For the second event, we note that the probability that  is  where  is the Hamming ball of radius  centered at vector  and  is its volume. Using approximation to estimate the number of codewords in the Hamming ball, we have . Hence the above probability amounts to . Now using the union bound, we can upper bound the existence of such an  by  which is , as desired by the choice of .
|}

{| class="toccolours collapsible collapsed" width="80%" style="text-align:left"
!Continuation of proof (detailed)
|-
|From the above analysis, we calculate the probability of the event that the decoded codeword plus the channel noise is not the same as the original message sent. We shall introduce some symbols here. Let  denote the probability of receiving codeword  given that codeword  was sent. Let  denote 

We get the last inequality by our analysis using the Chernoff bound above. Now taking expectation on both sides we have,

by appropriately choosing the value of . Since the above bound holds for each message, we have

Now we can change the order of summation in the expectation with respect to the message and the choice of the encoding function . Hence:

Hence in conclusion, by probabilistic method, we have some encoding function  and a corresponding decoding function  such that

At this point, the proof works for a fixed message . But we need to make sure that the above bound holds for all the messages  simultaneously. For that, let us sort the  messages by their decoding error probabilities. Now by applying Markov's inequality, we can show the decoding error probability for the first  messages to be at most . Thus in order to confirm that the above bound to hold for every message , we could just trim off the last  messages from the sorted order. This essentially gives us another encoding function  with a corresponding decoding function  with a decoding error probability of at most  with the same rate. Taking  to be equal to  we bound the decoding error probability to . This expurgation process completes the proof.
|}

Converse of Shannon's capacity theorem 

The converse of the capacity theorem essentially states that  is the best rate one can achieve over a binary symmetric channel. Formally the theorem states:

The intuition behind the proof is however showing the number of errors to grow rapidly as the rate grows beyond the channel capacity. The idea is the sender generates messages of dimension , while the channel  introduces transmission errors. When the capacity of the channel is , the number of errors is typically  for a code of block length . The maximum number of messages is . The output of the channel on the other hand has  possible values. If there is any confusion between any two messages, it is likely that . Hence we would have , a case we would like to avoid to keep the decoding error probability exponentially small.

Codes 
Very recently, a lot of work has been done and is also being done to design explicit error-correcting codes to achieve the capacities of several standard communication channels. The motivation behind designing such codes is to relate the rate of the code with the fraction of errors which it can correct.

The approach behind the design of codes which meet the channel capacities of  or the binary erasure channel  have been to correct a lesser number of errors with a high probability, and to achieve the highest possible rate. Shannon's theorem gives us the best rate which could be achieved over a , but it does not give us an idea of any explicit codes which achieve that rate. In fact such codes are typically constructed to correct only a small fraction of errors with a high probability, but achieve a very good rate. The first such code was due to George D. Forney in 1966. The code is a concatenated code by concatenating two different kinds of codes.

Forney's code 

Forney constructed a concatenated code  to achieve the capacity of the noisy-channel coding theorem for . In his code,

 The outer code  is a code of block length  and rate  over the field , and . Additionally, we have a decoding algorithm  for  which can correct up to  fraction of worst case errors and runs in  time.
 The inner code  is a code of block length , dimension , and a rate of . Additionally, we have a decoding algorithm  for  with a decoding error probability of at most  over  and runs in  time. 
 
For the outer code , a Reed-Solomon code would have been the first code to have come in mind. However, we would see that the construction of such a code cannot be done in polynomial time. This is why a binary linear code is used for .

For the inner code  we find a linear code by exhaustively searching from the linear code  of block length  and dimension , whose rate meets the capacity of , by the noisy-channel coding theorem.

The rate  which almost meets the  capacity. We further note that the encoding and decoding of   can be done in polynomial time with respect to . As a matter of fact,  encoding  takes time . Further, the decoding algorithm described takes time  as long as ; and .

Decoding error probability 

A natural decoding algorithm for  is to:

 Assume  
 Execute  on 

Note that each block of code for  is considered a symbol for . Now since the probability of error at any index  for  is at most  and the errors in  are independent, the expected number of errors for  is at most  by linearity of expectation. Now applying Chernoff bound, we have bound error probability of more than  errors occurring to be . Since the outer code  can correct at most  errors, this is the decoding error probability of . This when expressed in asymptotic terms, gives us an error probability of . Thus the achieved decoding error probability of   is exponentially small as the noisy-channel coding theorem.

We have given a general technique to construct . For more detailed descriptions on  and  please read the following references. Recently a few other codes have also been constructed for achieving the capacities. LDPC codes have been considered for this purpose for their faster decoding time.

Applications 
The binary symmetric channel can model a disk drive used for memory storage: the channel input represents a bit being written to the disk and the output corresponds to the bit later being read. Error could arise from the magnetization flipping, background noise or the writing head making an error. Other objects which the binary symmetric channel can model include a telephone or radio communication line or cell division, from which the daughter cells contain DNA information from their parent cell.

This channel is often used by theorists because it is one of the simplest noisy channels to analyze. Many problems in communication theory can be reduced to a BSC. Conversely, being able to transmit effectively over the BSC can give rise to solutions for more complicated channels.

See also 
 Z channel

Notes

References 
 
 G. David Forney. Concatenated Codes. MIT Press, Cambridge, MA, 1966.
 Venkat Guruswamy's course on  Error-Correcting Codes: Constructions and Algorithms], Autumn 2006.
 
 Atri Rudra's course on Error Correcting Codes: Combinatorics, Algorithms, and Applications (Fall 2007), Lectures 9,  10, 29, and 30.
 Madhu Sudan's course on Algorithmic Introduction to Coding Theory (Fall 2001), Lecture 1 and 2. 
 A mathematical theory of communication C. E Shannon, ACM SIGMOBILE Mobile Computing and Communications Review.
 Modern Coding Theory by Tom Richardson and Rudiger Urbanke., Cambridge University Press

Coding theory