Binary symmetric channel

From HandWiki

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 [math]\displaystyle{ 1 - \operatorname H_\text{b}(p) }[/math] bits, where [math]\displaystyle{ \operatorname H_\text{b} }[/math] is the binary entropy function. Codes including Forney's code have been designed to transmit information efficiently across the channel.

Definition

Binary symmetric channel
The binary symmetric channel sees each bit of a message transmitted correctly with probability 1–p and incorrectly with probability p, due to noise across the transmission medium.

A binary symmetric channel with crossover probability [math]\displaystyle{ p }[/math], denoted by BSCp, is a channel with binary input and binary output and probability of error [math]\displaystyle{ p }[/math]. That is, if [math]\displaystyle{ X }[/math] is the transmitted random variable and [math]\displaystyle{ Y }[/math] the received variable, then the channel is characterized by the conditional probabilities:[1]

[math]\displaystyle{ \begin{align} \operatorname {Pr} [ Y = 0 | X = 0 ] &= 1 - p \\ \operatorname {Pr} [ Y = 0 | X = 1 ] &= p \\ \operatorname {Pr} [ Y = 1 | X = 0 ] &= p \\ \operatorname {Pr} [ Y = 1 | X = 1 ] &= 1 - p \end{align} }[/math]

It is assumed that [math]\displaystyle{ 0 \le p \le 1/2 }[/math]. If [math]\displaystyle{ p \gt 1/2 }[/math], then the receiver can swap the output (interpret 1 when it sees 0, and vice versa) and obtain an equivalent channel with crossover probability [math]\displaystyle{ 1 - p \le 1/2 }[/math].

Capacity

Graph showing the proportion of a channel’s capacity (y-axis) that can be used for payload based on how noisy the channel is (probability of bit flips; x-axis).

The channel capacity of the binary symmetric channel, in bits, is:[2]

[math]\displaystyle{ \ C_{\text{BSC}} = 1 - \operatorname H_\text{b}(p), }[/math]

where [math]\displaystyle{ \operatorname H_\text{b}(p) }[/math] is the binary entropy function, defined by:[2]

[math]\displaystyle{ \operatorname H_\text{b}(x)=x\log_2\frac{1}{x}+(1-x)\log_2\frac{1}{1-x} }[/math]

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 [math]\displaystyle{ \text{BSC}_p }[/math].

The noise [math]\displaystyle{ e }[/math] that characterizes [math]\displaystyle{ \text{BSC}_{p} }[/math] is a random variable consisting of n independent random bits (n is defined below) where each random bit is a [math]\displaystyle{ 1 }[/math] with probability [math]\displaystyle{ p }[/math] and a [math]\displaystyle{ 0 }[/math] with probability [math]\displaystyle{ 1-p }[/math]. We indicate this by writing "[math]\displaystyle{ e \in \text{BSC}_{p} }[/math]".

Theorem — For all [math]\displaystyle{ p\lt \tfrac{1}{2}, }[/math] all [math]\displaystyle{ 0 \lt \epsilon \lt \tfrac{1}{2} - p }[/math], all sufficiently large [math]\displaystyle{ n }[/math] (depending on [math]\displaystyle{ p }[/math] and [math]\displaystyle{ \epsilon }[/math]), and all [math]\displaystyle{ k\leq\lfloor (1 - H(p + \epsilon))n\rfloor }[/math], there exists a pair of encoding and decoding functions [math]\displaystyle{ E: \{0,1\}^k \to \{0,1\}^n }[/math] and [math]\displaystyle{ D: \{0,1\}^n \to \{0,1\}^{k} }[/math] respectively, such that every message [math]\displaystyle{ m\in\{0,1\}^{k} }[/math] has the following property:

[math]\displaystyle{ \Pr_{e \in \text{BSC}_p}[D(E(m) + e) \neq m] \leq 2^{-{\delta}n} }[/math].

What this theorem actually implies is, a message when picked from [math]\displaystyle{ \{0,1\}^k }[/math], encoded with a random encoding function [math]\displaystyle{ E }[/math], and sent across a noisy [math]\displaystyle{ \text{BSC}_{p} }[/math], there is a very high probability of recovering the original message by decoding, if [math]\displaystyle{ k }[/math] 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 [math]\displaystyle{ E: \{0,1\}^k \to \{0,1\}^n }[/math] that is selected at random. This means that for each message [math]\displaystyle{ m \in \{0,1\}^k }[/math], the value [math]\displaystyle{ E(m) \in \{0,1\}^n }[/math] is selected at random (with equal probabilities). For a given encoding function [math]\displaystyle{ E }[/math], the decoding function [math]\displaystyle{ D:\{0,1\}^n \to \{0,1\}^k }[/math] is specified as follows: given any received codeword [math]\displaystyle{ y \in \{0,1\}^n }[/math], we find the message [math]\displaystyle{ m\in\{0,1\}^{k} }[/math] such that the Hamming distance [math]\displaystyle{ \Delta(y, E(m)) }[/math] is as small as possible (with ties broken arbitrarily). ([math]\displaystyle{ D }[/math] is called a maximum likelihood decoding function.)

The proof continues by showing that at least one such choice [math]\displaystyle{ (E,D) }[/math] satisfies the conclusion of theorem, by integration over the probabilities. Suppose [math]\displaystyle{ p }[/math] and [math]\displaystyle{ \epsilon }[/math] are fixed. First we show that, for a fixed [math]\displaystyle{ m \in \{0,1\}^{k} }[/math] and [math]\displaystyle{ E }[/math] chosen randomly, the probability of failure over [math]\displaystyle{ \text{BSC}_p }[/math] noise is exponentially small in n. At this point, the proof works for a fixed message [math]\displaystyle{ m }[/math]. Next we extend this result to work for all messages [math]\displaystyle{ m }[/math]. 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.

Converse of Shannon's capacity theorem

The converse of the capacity theorem essentially states that [math]\displaystyle{ 1 - H(p) }[/math] is the best rate one can achieve over a binary symmetric channel. Formally the theorem states:

Theorem — If [math]\displaystyle{ k }[/math] [math]\displaystyle{ \geq }[/math] [math]\displaystyle{ \lceil }[/math] [math]\displaystyle{ (1 - H(p + \epsilon)n) }[/math] [math]\displaystyle{ \rceil }[/math] then the following is true for every encoding and decoding function [math]\displaystyle{ E }[/math]: [math]\displaystyle{ \{0,1\}^k }[/math] [math]\displaystyle{ \rightarrow }[/math] [math]\displaystyle{ \{0,1\}^n }[/math] and [math]\displaystyle{ D }[/math]: [math]\displaystyle{ \{0,1\}^{n} }[/math] [math]\displaystyle{ \rightarrow }[/math] [math]\displaystyle{ \{0,1\}^{k} }[/math] respectively: [math]\displaystyle{ \Pr_{e \in \text{BSC}_p} }[/math][[math]\displaystyle{ D(E(m) + e) }[/math] [math]\displaystyle{ \neq }[/math] [math]\displaystyle{ m] }[/math] [math]\displaystyle{ \geq }[/math] [math]\displaystyle{ \frac{1}{2} }[/math].

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 [math]\displaystyle{ k }[/math], while the channel [math]\displaystyle{ \text{BSC}_p }[/math] introduces transmission errors. When the capacity of the channel is [math]\displaystyle{ H(p) }[/math], the number of errors is typically [math]\displaystyle{ 2^{H(p + \epsilon)n} }[/math] for a code of block length [math]\displaystyle{ n }[/math]. The maximum number of messages is [math]\displaystyle{ 2^{k} }[/math]. The output of the channel on the other hand has [math]\displaystyle{ 2^{n} }[/math] possible values. If there is any confusion between any two messages, it is likely that [math]\displaystyle{ 2^{k}2^{H(p + \epsilon)n} \ge 2^{n} }[/math]. Hence we would have [math]\displaystyle{ k \geq \lceil (1 - H(p + \epsilon)n) \rceil }[/math], 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 [math]\displaystyle{ \text{BSC} }[/math] or the binary erasure channel [math]\displaystyle{ \text{BEC} }[/math] 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 [math]\displaystyle{ \text{BSC}_{p} }[/math], 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 [math]\displaystyle{ C^{*} = C_\text{out} \circ C_\text{in} }[/math] to achieve the capacity of the noisy-channel coding theorem for [math]\displaystyle{ \text{BSC}_p }[/math]. In his code,

  • The outer code [math]\displaystyle{ C_\text{out} }[/math] is a code of block length [math]\displaystyle{ N }[/math] and rate [math]\displaystyle{ 1-\frac{\epsilon}{2} }[/math] over the field [math]\displaystyle{ F_{2^k} }[/math], and [math]\displaystyle{ k = O(\log N) }[/math]. Additionally, we have a decoding algorithm [math]\displaystyle{ D_\text{out} }[/math] for [math]\displaystyle{ C_\text{out} }[/math] which can correct up to [math]\displaystyle{ \gamma }[/math] fraction of worst case errors and runs in [math]\displaystyle{ t_\text{out}(N) }[/math] time.
  • The inner code [math]\displaystyle{ C_\text{in} }[/math] is a code of block length [math]\displaystyle{ n }[/math], dimension [math]\displaystyle{ k }[/math], and a rate of [math]\displaystyle{ 1 - H(p) - \frac{\epsilon}{2} }[/math]. Additionally, we have a decoding algorithm [math]\displaystyle{ D_\text{in} }[/math] for [math]\displaystyle{ C_\text{in} }[/math] with a decoding error probability of at most [math]\displaystyle{ \frac{\gamma}{2} }[/math] over [math]\displaystyle{ \text{BSC}_p }[/math] and runs in [math]\displaystyle{ t_\text{in}(N) }[/math] time.

For the outer code [math]\displaystyle{ C_\text{out} }[/math], 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 [math]\displaystyle{ C_\text{out} }[/math].

For the inner code [math]\displaystyle{ C_\text{in} }[/math] we find a linear code by exhaustively searching from the linear code of block length [math]\displaystyle{ n }[/math] and dimension [math]\displaystyle{ k }[/math], whose rate meets the capacity of [math]\displaystyle{ \text{BSC}_p }[/math], by the noisy-channel coding theorem.

The rate [math]\displaystyle{ R(C^{*}) = R(C_\text{in}) \times R(C_\text{out}) = (1-\frac{\epsilon}{2}) ( 1 - H(p) - \frac{\epsilon}{2} ) \geq 1 - H(p)-\epsilon }[/math] which almost meets the [math]\displaystyle{ \text{BSC}_p }[/math] capacity. We further note that the encoding and decoding of [math]\displaystyle{ C^{*} }[/math] can be done in polynomial time with respect to [math]\displaystyle{ N }[/math]. As a matter of fact, encoding [math]\displaystyle{ C^{*} }[/math] takes time [math]\displaystyle{ O(N^{2})+O(Nk^{2}) = O(N^{2}) }[/math]. Further, the decoding algorithm described takes time [math]\displaystyle{ Nt_\text{in}(k) + t_\text{out}(N) = N^{O(1)} }[/math] as long as [math]\displaystyle{ t_\text{out}(N) = N^{O(1)} }[/math]; and [math]\displaystyle{ t_\text{in}(k) = 2^{O(k)} }[/math].

Decoding error probability

A natural decoding algorithm for [math]\displaystyle{ C^{*} }[/math] is to:

  • Assume [math]\displaystyle{ y_{i}^{\prime} = D_\text{in}(y_i), \quad i \in (0, N) }[/math]
  • Execute [math]\displaystyle{ D_\text{out} }[/math] on [math]\displaystyle{ y^{\prime} = (y_1^{\prime} \ldots y_N^{\prime}) }[/math]

Note that each block of code for [math]\displaystyle{ C_\text{in} }[/math] is considered a symbol for [math]\displaystyle{ C_\text{out} }[/math]. Now since the probability of error at any index [math]\displaystyle{ i }[/math] for [math]\displaystyle{ D_\text{in} }[/math] is at most [math]\displaystyle{ \tfrac{\gamma}{2} }[/math] and the errors in [math]\displaystyle{ \text{BSC}_p }[/math] are independent, the expected number of errors for [math]\displaystyle{ D_\text{in} }[/math] is at most [math]\displaystyle{ \tfrac{\gamma N}{2} }[/math] by linearity of expectation. Now applying Chernoff bound, we have bound error probability of more than [math]\displaystyle{ \gamma N }[/math] errors occurring to be [math]\displaystyle{ e^\frac{-\gamma N}{6} }[/math]. Since the outer code [math]\displaystyle{ C_\text{out} }[/math] can correct at most [math]\displaystyle{ \gamma N }[/math] errors, this is the decoding error probability of [math]\displaystyle{ C^{*} }[/math]. This when expressed in asymptotic terms, gives us an error probability of [math]\displaystyle{ 2^{-\Omega(\gamma N)} }[/math]. Thus the achieved decoding error probability of [math]\displaystyle{ C^{*} }[/math] is exponentially small as the noisy-channel coding theorem.

We have given a general technique to construct [math]\displaystyle{ C^{*} }[/math]. For more detailed descriptions on [math]\displaystyle{ C_\text{in} }[/math] and [math]\displaystyle{ C_\text{out} }[/math] 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.[4]

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.[5]

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

Notes

  1. MacKay (2003), p. 4.
  2. 2.0 2.1 MacKay (2003), p. 15.
  3. Cover & Thomas (1991), p. 187.
  4. Richardson and Urbanke
  5. MacKay (2003), p. 3–4.

References