<figure><img src="image_1.png" /></figure>

HAL
open science

# Source and Channel coding for Information Storage and Communication

Charbel Tannous

<figure><img src="image_2.png" /></figure>

## To cite this version:

Charbel Tannous. Source and Channel coding for Information Storage and Communication. Master. Algorithmes de Compression, UBO Brest, France. 2017, pp.29. hal-04738100

HAL Id: hal-04738100

https://hal.science/hal-04738100v1

Submitted on 15 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_3.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Source and Channel coding for Information Storage and Communication

C. Tannous

Université de Brest, Lab-STICC, CNRS-UMR 6285, F-29200 Brest, FRANCE

(Dated: October 15, 2024)

Digital information storage and transmission is reviewed from the electronic, optical and magnetic points of view. Source and Channel coding for combating noise and interference are described and illustrated and ways to obtain the lowest BER (Bit Error Rate) during reading, writing and transmission of Information are discussed.

PACS numbers: 84.40.Ua, 42.79.Vb, 42.70.Ln, 75.70.-i

Keywords: Telecommunications, Optical storage devices, Optical media, Magnetic Materials

## Contents

I. Introduction 1

A. Modulation Coding 1

B. Error Correction Coding 5

II. Source coding 7

A. Electronic media 7

B. Optical media 10

C. Magnetic media 11

III. Channel Coding 13

A. Copper line channel 15

B. Optic Fiber channel 17

C. Wireless channel 20

A. Analog and Digital modulation 22

B. Galois and Cyclic Redundancy Check polynomials 26

C. Partial response polynomials 27

References 29

## I. INTRODUCTION

Digital information storage and transmission are based on many steps of processing and coding. Coding encompasses signal and transmission channel in terms of binary representation, adaptation (line or modulation), error detection and correction, pulse shaping (equalization) ... Another important operation not described in this work is data compression.

A general picture of source and channel coding is displayed in Fig. 1 whereas the detailed chain of binary processing operations to record or transmit information is shown in Fig. 2.

### A. Modulation Coding

The first step in handling binary information for both storage and transmission is modulation coding (not to be confused with digital modulation described in Appendix A). Modulation coding (or Line coding) is applied in order to achieve at least three goals:

1. Automatic clock (self-synchronization) recovery in order to avoid an additional signal carrying time code for the signal. This is detected when there is a peak in the spectrum. (cf. Fig. 5).
<figure><img src="image_4.png" /><figcaption>**Fig.1:** General view of Source and Channel Coding procedures.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>**Fig.2:** Coding chain details in electronic, optical and magnetic storage or transmission.</figcaption></figure>

2. AC coupling of bit signal: Since a raw bit is an antisymmetrical signal, harmonic distortion of the signal might occur. Symmetrizing the signal by removing the DC component makes it closer to a purely harmonic signal making it less prone to harmonic distortions.

3. Placing several zeroes between consecutive ones in order to avoid overlap and interference between consecutive ones, called ISI (Inter-Symbol Interference).

Modulation coding converts a time-dependent string of binary digits into a waveform.

There are two major classes of binary modulation codes: level codes and transition codes. Level codes carry information in their voltage level, which may be high or low for a full or part of the bit period. Level codes are usually instantaneous since they typically encode a binary digit into a distinct waveform, independent of any past binary data. Transition codes carry information in level change occurring in the corresponding waveform. Transition codes may be instantaneous, but they generally have memory, using past binary data to make the present waveform.

Modulation coding formats are further classified according to voltage level polarity used to represent data:

* Unipolar signaling uses only one voltage level

* Polar signaling uses both positive and negative voltage levels

* Bipolar signaling uses positive, negative and zero voltage levels.

* Multilevel signaling uses several positive, negative levels as well as zero voltage.

Some modulation coding formats are described below (Note that the older notation for 1 and 0 is Mark and Space):

* **NRZ coding**

The level of the pulse is maintained during the entire bit interval. A polar NRZ signal is also called NRZ-L (L for level) with a high voltage level such as +A volts corresponding to logic level 1 whereas a low voltage level such as -A volts corresponding to logic level 0.

* **Unipolar RZ**

A binary 0 is a zero voltage level during the entire bit period. A binary 1 is a +A volt level during a portion of the bit period, usually for half of the bit period, and a zero voltage level for rest of the bit period.
<figure><img src="image_6.png" /><figcaption>**Fig.3:** Modulation coding of information with associated time dependent waveforms. M and S are Mark and Space the older notation for 1 and 0. $T_b$ is bit period. When a coding goes from M to S the roles of 1 and 0 are interchanged. Adapted from Ref. [1].</figcaption></figure>

<figure><img src="image_7.png" /><figcaption>**Fig.4:** Differences between NRZ-L, NRZ-M and NRZ-S time dependent waveforms. L is for level, M and S are for Mark and space i.e. 1 and 0. A 1 is represented by +A volts and a 0 is represented by -A volts. When a coding goes from M to S the roles of 1 and 0 are interchanged. $T_b$ is bit period. Adapted from Ref. [1].</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>**Fig.5:** Self-synchronization of unipolar RZ modulation code is obtained from the presence of peaks in the PSD (Power Spectral Density), the Fourier transform of the code average auto-correlation [1]. $f_b = 1/T_b$ where $T_b$ is bit period.</figcaption></figure>
* Bipolar AMI (Alternate Mark Inversion)

A binary 1 is represented by alternating $\pm A$ voltage levels, which return to zero for a portion of the bit period, usually half the bit period. A binary 0 is represented by a zero voltage level during the entire bit period. Alternate Mark Inversion (AMI) means that 1 (Mark) is represented by alternating positive and negative pulses.

* Manchester Coding (Split Phase or Digital Biphase)

A binary 1 is a pulse that has positive voltage during the first-half of the bit period and negative voltage during second-half of the bit period. A binary 0 is a negative pulse during the first-half of the bit period and positive during the second-half of the bit period. The negative or positive bit center transition indicates a binary 1 or binary 0, respectively.

* Phase Modulation (PM)

A binary 0 is an upward transition at cell center position, whereas a binary 1 is a downward transition at cell center position.

## Equivalence to RunLength Limited (RLL) codes

In fact, all modulation codes can be expressed with RunLength Limited (RLL) codes. An important ingredient of binary signaling is the runlength i.e. the number of consecutive bits having the same value. The runlength concept gave birth to RLL (Runlength limited) coding used to perform modulation coding in information storage. RLL coding has a set of parameters, $d, k, m, n$, noted as $\text{RLL}(d, k, m, n)$ and shortened to $\text{RLL}(d, k)$. $d$ is the minimal number of bits separating two consecutive ones whereas $k$ is the maximum number of zeroes separating two consecutive ones. $m$ is the minimum number of data bits to be encoded, $n$ is the number of code bits for each of the $m$ data bits. Thus $m/n$ is the code rate, a measure of its efficiency. The maximum rate feasible, given constraints imposed on code, is called capacity [2], a measure of its efficiency.

Table 1 lists properties of several modulation codes in storage and communications along with their RLL equivalence.

<table><caption>**Table 1:** RLL equivalence to modulation codes. RLL($d, k, m, n$) shortened to RLL($d, k$) where $d$ is the minimal number of bits separating two consecutive ones and $k$ is the maximum number of zeroes separating two consecutive ones (cf. Mueller [3]). Code rate $R = m/n$. Capacity is a measure of efficiency [2] given by the maximum rate achievable by the code under constraint. $M$ is Mark the older notation of 1 where $L$ denotes Level. For instance, Biphase-L is such that the signal level changes in the middle of every bit time, with a rising edge if the bit is 1 or a falling edge if the bit is 0. Biphase-M is such that the signal level changes at the start of every bit time and changes in the middle of a bit time if the bit is 1. NRZ-L is such that at the start of each bit time, the signal level goes high if the bit is 1, or low if it is 0. NRZI is a modified NRZ with no consensus on the meaning of $I$ [2]. $DR$ is storage density ratio (cf. Table 8). Miller-Miller coding was invented, in fact, by Mallinson and Miller [2].</caption><thead><tr><th>Code</th><th>R</th><th>Capacity</th><th>d, k</th><th>DR</th><th>DC-free</th></tr></thead><tbody><tr><td>NRZ-L</td><td>1</td><td>1</td><td>0,∞</td><td>1</td><td>No</td></tr><tr><td>NRZI</td><td>1</td><td>1</td><td>0,∞</td><td>1</td><td>No</td></tr><tr><td>BiPolar Half</td><td>1</td><td>1</td><td>0,∞</td><td>1</td><td>No</td></tr><tr><td>BiPolar Full</td><td>1</td><td>1</td><td>0,∞</td><td>1</td><td>No</td></tr><tr><td>Phase Encoding</td><td>1/2</td><td>0.6942</td><td>0,1</td><td>0.5</td><td>Yes</td></tr><tr><td>FSK</td><td>1/2</td><td>0.6942</td><td>0,1</td><td>0.5</td><td>Yes</td></tr><tr><td colspan="6">Manchester</td></tr><tr><td>BiPhase-L</td><td>1/2</td><td>0.6942</td><td>0,1</td><td>0.5</td><td>Yes</td></tr><tr><td>Biphase-M</td><td>1/2</td><td>0.6942</td><td>0,1</td><td>0.5</td><td>Yes</td></tr><tr><td>E-NRZ</td><td>7/8</td><td>1</td><td>0,13</td><td>0.875</td><td>No</td></tr><tr><td>Miller</td><td>1/2</td><td>0.5515</td><td>1,3</td><td>1</td><td>No</td></tr><tr><td>Miller-Miller</td><td>1/2</td><td>0.6509</td><td>1,5</td><td>1</td><td>Yes</td></tr><tr><td>RLL(2,7)</td><td>1/2</td><td>0.5174</td><td>2,7</td><td>1.5</td><td>No</td></tr></tbody></table>
## B. Error Correction Coding

The description of digital error management starts with a statistical assessment of error rates observed in various communication channels [4], networks or storage media as given in Table 2.

<table><caption>**Table 2:** Typical Binary Error Rate (BER) in electronic, optical and magnetic media (see Mueller [3]). Optical media CD, DVD and Blu-Ray are particularly prone to burst errors. ADSL is Asymmetric Digital Subscriber Line.</caption><thead><tr><th>Digital Media</th><th>Typical BER</th></tr></thead><tbody><tr><td colspan="2">Electronic</td></tr><tr><td>Semiconductor memories</td><td>&lt; 10<sup>-9</sup></td></tr><tr><td>Flash devices</td><td>≈ 10<sup>-5</sup></td></tr><tr><td>Solid-State Drives (SSD)</td><td>&lt; 10<sup>-5</sup></td></tr><tr><td colspan="2">Optical</td></tr><tr><td>CD (Compact Disk)</td><td>10<sup>-5</sup> i.e. 7 kB errors on a 700 MB support</td></tr><tr><td>DVD (Digital Video Disk)</td><td>10<sup>-5</sup> i.e. 47 kB errors on a 4.7 GB support</td></tr><tr><td>Blu-ray disk</td><td>&lt; 2 × 10<sup>-4</sup> ~ 1.6 MB errors on a 32 GB disk</td></tr><tr><td colspan="2">Magnetic</td></tr><tr><td>HDD (Hard Disk Drive)</td><td>&gt; 10<sup>-4</sup> ~ 10<sup>6</sup> errors in 10 GB</td></tr><tr><td>DAT (Digital Audio Tape)</td><td>10<sup>-5</sup> i.e. 2 errors per second at 48 kHz</td></tr><tr><th>Communication Channel</th><th>Typical BER</th></tr><tr><td>ADSL</td><td>10<sup>-9</sup> to 10<sup>-3</sup></td></tr><tr><td>Optical fiber</td><td>10<sup>-9</sup></td></tr></tbody></table>

In order to handle transmission errors, we need both EDC (Error Detection Coding) and ECC (Error Correction Coding) algorithms classified as displayed in Fig. 6.

<figure><img src="image_9.png" /><figcaption>**Fig.6:** Classification of ECC codes. Cyclic block codes comprise Reed-Solomon and BCH (Bose-Chaudhuri-Hocquenghem) codes. Block codes are characterized by $(n, k)$ where $n$ is the number of data bits and $k$ the number of parity bits with no memory. Convolutional codes (CC) are characterized by $(n, k, m)$ with $n$ the number of data bits and $k$ the number of parity bits and $m$ the number of memory steps. Note that a BCH$(n, k; e)$ code uses Galois polynomials (see Appendix B) GF$(2^m)$ with $n$ bit codeword length and $k$ bit message length can correct up to $e$ error bits. Trellis codes are a mixture of Block and Convolutional. Turbo codes, a special type of Convolutional code, developed by Berrou et al. [5] in 1993, represent the most important breakthrough in coding since Trellis codes (1982) offering near-ideal capacity performance for many channels.</figcaption></figure>

Moreover, concatenation of codes can be performed in order to streamline information processing as illustrated in Fig. 7.
<figure><img src="image_10.png" /><figcaption>**Fig.7:** Standard concatenation is illustrated by placing a modulation encoder downstream of an error correction encoder (ECC). The modulation encoder is considered an inner one with respect to ECC [2].</figcaption></figure>

* **Parity Check Coding:**

Parity is the most natural way to detect and correct errors during storage or transmission.

The number of parity Bytes depends on the ECC type [6] with its performance hierarchy discussed below (see Fig.8):

- **Hamming Codes:**
  A block Hamming code can correct a single bit error and detect occurrence of multiple bit errors. It is also able of detecting most double bit errors.

- **Low Density Parity Check (LDPC) Codes:**
  Low-density parity-check (LDPC) codes are a class of linear block codes whose main advantage is to provide a performance which is very close to the ideal capacity for a lot of different channels while their decoding algorithms are generally fast.

* **Burst Error Coding:**

- **Reed-Solomon Codes:**
  Reed-Solomon codes are used in communications and storage devices (in particular CD, DVD and Blu-Ray optical media) to handle burst errors. They are very efficient in combating burst errors in several media ranging from electronic, optic to magnetic and many types of communication channels ranging from wireless mass transmission such as DAB (Digital Audio Broadcasting) and DVB (Digital Video Broadcasting) to Internet Audio and Video streaming. The number of bits required for ECC depends on storage media or communication channel. For example, in Flash devices (2 level cell), when memory pages moved toward 2kB or 4kB, ECC required 4 bit corrections.

- **Bose-Chaudhuri-Hocquenghem (BCH) Codes:**
  BCH codes are capable of handling large random errors whereas Reed-Solomon codes are used for correcting burst errors. A $BCH(n, k; e)$ code over Galois Field $GF(2^m)$ (see Appendix B) with $n$ bit codeword length and $k$ bit message length can correct up to $e$ error bits.

Benefits of coding are illustrated in Fig. 8 where BER is showed without coding and with ECC coding with Hamming (1 bit correction) and BCH (adapted to burst errors) methods.

Reed-Solomon codes are linear and cyclic. They handle bits as well as symbols. They are good in correcting burst errors. They are based on Galois fields such as $GF(q^m)$ where $q$ is a prime number and $m$ is an integer equal to the symbol size.

Interestingly, Reed-Solomon codes can be arranged along several directions as for instance the 2D product code RSPC used in DVD where parities are detected along a vertical as well as a horizontal direction (see Fig. 9).

Let us compare parity sizes for Hamming, Reed-Solomon, and BCH implementations:

* **Hamming:**
  Block Hamming codes correct only a single error and require $2\log_2(n)$ of parity bits for a data block with $n$ data bits.
  A 512B data block consists of $512 \times 8 = 4096$ bits i.e. $2^{12}$ bits, thus a Hamming code requires 24 parity bits when $n = 12$.
<figure><img src="image_11.png" /><figcaption>Fig.8: Benefits of coding on BER in going from uncoded to ECC using Hamming and BCH. While Hamming can correct single bits, BCH adapted to burst errors shows superior performance in Flash media. Adapted from ref. [7].</figcaption></figure>

<table><caption>Fig.9: A product code like RSPC (Reed Solomon Product Code) consists of arranging data in 2D arrays and detecting parities along the horizontal and vertical directions. RSPC coding in DVD requires 2064 Bytes, whereas Picket code in Blu-Ray media requires 2074.5 Bytes. Picket code ECC is tailored particularly for handling burst errors in Blu-Ray Optical media.</caption><thead><tr><th>Information Symbols</th><th>Checks on Rows</th></tr></thead><tbody><tr><td>Checks on Columns</td><td>Checks on Checks</td></tr></tbody></table>

* **Reed-Solomon:** Parity required for an RS code depends on the symbol size, Galois field size, and ECC level provided by the code. This means that if we have symbols of size $m$, the Galois field GF($2^m$) size is $m$, chosen generally to be the minimal value corresponding to a given selected block size. Thus the number of parity bits is $2 \times m \times \text{ECC}$.

For example, an RS over a 512B data block consisting of 9 bit symbols capable of supporting 8 symbol correction would require $2 \times 9 \times 8$, or 144 bits of parity.

* **BCH:** Parity required for BCH is dependent on the Galois field GF($2^m$) size $m$ (determined by the data block size) and the ECC correction level. The number of parity bits can be computed as $m \times \text{ECC}$.

## II. SOURCE CODING

### A. Electronic media

Electronic media are illustrated with filters using CMOS (Complementary Metal Oxide Semiconductor) and BiC-MOS (Bipolar-Complementary Metal Oxide Semiconductor) technologies as well as Flash storage based on NAND technology as discussed below:

* Digital filters make good examples of equalizers that combat ISI through modification of pulse shapes. In a linear medium, input and output [8] are related by:

$$y(t) = \int_{-\infty}^{\infty} x(t')h(t, t')dt' \quad (1)$$
Supposing time-invariance of the system via relation $h(t, t') = h(t - t')$, the input $x(t)$-output $y(t)$ is transformed into a convolution operation (*) [8] between $x(t)$ and $h(t)$ functions as:

$$y(t) = \int_{-\infty}^{\infty} x(\tau)h(t-\tau)d\tau = x(t) * h(t), \quad \text{or} \quad y(t) = \int_{-\infty}^{\infty} h(\tau)x(t-\tau)]d\tau = h(t) * x(t) \quad (2)$$

In other words, a message $x(t)$ transmitted through a Linear Time Invariant (LTI) medium is convolved with the channel impulse response $h(t)$ resulting in an output message $y(t)$.

When time is discretized, many discrete LTI systems can be described by a finite difference equation linking input and output:

$$\sum_{k=0}^{N} a_k y[n-k] = \sum_{k=0}^{M} b_k x[n-k], \quad \text{or} \quad y[n] = \sum_{k=0}^{M} b_k x[n-k] - \sum_{k=1}^{N} a_k y[n-k]$$

where $a_0 = 1$. This is a recursive equation as the current output $y[n]$ depends on its previous values $y[n-k]$ ($k = 1, \dots, N$) as well as the input $x[n-k]$ ($k = 0, \dots, M$).

Taking the Discrete Time Fourier Transform (DTFT) on both sides of above equation:

$$\left[ \sum_{k=0}^{N} a_k e^{-j2\pi fk} \right] Y(f) = \left[ \sum_{k=0}^{M} b_k e^{-j2\pi fk} \right] X(f)$$

and

$$H(f) = \frac{Y(f)}{X(f)} = \frac{\sum_{k=0}^{M} b_k e^{-j2\pi fk}}{\sum_{k=0}^{N} a_k e^{-j2\pi fk}}$$

$N > M$ is always assumed, otherwise it is possible to carry out a long-division to make sure this is indeed the case. This relation can be treated as a filtering operation linking input $x[n]$ to output $y[n]$.

By partial-fraction expansion, this fraction can be written as

$$H(f) = \sum_{k=1}^{N} \frac{C_k}{1 - \alpha_k e^{-j2\pi f}}$$

where $C_k$ are constants and $\alpha_k$ ($k = 1, \dots, N$) are the $N$ roots of the denominator polynomial (assuming no repeated roots).

Taking the inverse DTFT, the impulse response function of the system is obtained as:

$$h[n] = \sum_{k=1}^{N} C_k \alpha_k^n u[n]$$

where $u[n] = 1$ for $n \ge 0$, and $u[n] = 0$ for $n < 0$. This impulse response has an infinite duration since $h[n] \ne 0$ for $n > 0$, thus the LTI system is called infinite impulse response (IIR) filter.

When $a_k = 0$ for all $k = 1, \dots, N$,

$$y[n] = \sum_{k=0}^{M} b_k x[n]$$

The impulse response of this system is:

$$h[n] = \sum_{k=0}^{M} b_k \delta[n]$$

where $\delta[n] = 1$ if $n = 0$, and $\delta[n] = 0$ when $n \ne 0$. This impulse response has a finite duration $h[n] \ne 0$ when $0 \le k \le M$, the LTI system is called a finite impulse response (FIR) filter. Note that the output $y[n]$ of this FIR filter is simply a weighted average of a set of $M + 1$ input samples.
It can be shown that it is impossible for a causal recursive IIR filter to have linear phase. On the other hand, an FIR filter can have either zero (when $H(f)$ is real) or linear phase.

Usually a FIR filter is used as a forward equalizer to cancel the non-causal precursor ISI, but it was suggested that an adaptive analog implementation can show equivalent performance to that of a long (24 taps) FIR filter, whilst decreasing power consumption needs.

Causal ISI is eliminated using an equalizing filter in a feedback loop. Table 3 comprises several possible filters to be implemented as a forward equalizer in many types of channels [9].

<table><caption>**Table 3:** Evolution of CMOS Filter technology. D-FIR denotes discrete time digital FIR filter. SC-FIR denotes discrete time FIR tapped delay filter using switched-capacitor delay cells [10]. A-FIR denotes discrete time FIR tapped delay filter using transconductance-capacitor (gm-C) filters made from Operational Transconductance Amplifiers [10] to implement delay cells. Transconductance parameter $g_m$ originates from bipolar transistor small-signal representation such that $g_m = dI_C/dV_{BE}$ where Collector current $I_C$ variation is controlled by Base-Emitter voltage $V_{BE}$ [10]. †BiCMOS technology. Adapted from Ref. [9]</caption><thead><tr><th>Year</th><th>CMOS Feature size</th><th>Filter type</th><th>Frequency Bitrate</th></tr></thead><tbody><tr><td>1993</td><td>1.0µm</td><td>SC-FIR</td><td>7.1 MHz</td></tr><tr><td>1993</td><td>2.0µm</td><td>SC-FIR</td><td>40 MHz</td></tr><tr><td>1994</td><td>0.8µm</td><td>A-FIR</td><td>72 MHz</td></tr><tr><td>1994</td><td>1.2µm</td><td>SC-FIR</td><td>100 MHz</td></tr><tr><td>1995</td><td>0.5µm†</td><td>D-FIR</td><td>200 MHz</td></tr><tr><td>1995</td><td>0.8µm</td><td>A-FIR</td><td>240 MHz</td></tr><tr><td>1996</td><td>0.6µm</td><td>SC-FIR</td><td>200 MHz</td></tr><tr><td>1997</td><td>0.8µm†</td><td>A-FIR</td><td>160 Mb/s</td></tr><tr><td>1997</td><td>0.5µm</td><td>gm-C</td><td>100 MHz</td></tr><tr><td>1997</td><td>0.6µm</td><td>gm-C</td><td>150 Mb/s</td></tr><tr><td>1998</td><td>0.25µm</td><td>A-FIR</td><td>360 Mb/s</td></tr><tr><td>1999</td><td>1.0µm</td><td>A-FIR</td><td>80 Mb/s</td></tr><tr><td>2002</td><td>0.5µm</td><td>A-FIR</td><td>100 Mb/s</td></tr><tr><td>2005</td><td>0.18µm</td><td>gm-C</td><td>70 MHz</td></tr><tr><td>2007</td><td>0.18µm</td><td>gm-C</td><td>400 MHz</td></tr><tr><td>2008</td><td>0.18µm</td><td>gm-C</td><td>400 MHz</td></tr></tbody></table>

* Flash storage technology is important for mobile electronic devices (e.g. digital camera, smartphone, portable SSD drives, key drives, tablets and notebooks).

The Flash transistor is a MOSFET transistor containing within its Oxide layer a thin metallic film called floating gate (hence the name Flash) than can trap electrons by application of a positive voltage to the gate.

At the beginning of Flash technology a single bit was represented by a single Flash transistor (SLC or single level cell). Later development led to 2-bit/transistor (MLC or Multiple level cell), then 3-bit/transistor (TLC or triple level cell) and even 4-bit/transistor (QLC or quadruple level cell) requiring special ECC coding techniques (cf. Fig. 10).

NAND Flash memory is the most aggressively scaled technology among electronic devices because the NAND Flash memory cell have relatively simple architecture.

The following Table 4 shows the number of ECC bits/Bytes required per correction block.

When we use 512B blocks we have an overhead of 65 Bytes (15 for gap, sync, address and 50 for ECC). Thus we need to code 577 Bytes and GF(2⁹) is not sufficient, given that 2⁹ = 512, consequently we use GF(2¹⁰).
<table><caption>**Table 4:** Number of ECC bits/Bytes required per correction block.</caption><thead><tr><td>Block size (Bytes)</td><td>ECC Level</td><td>ECC Number of bits</td></tr></thead><tbody><tr><td>512B</td><td>ECC 8</td><td>13×8=104</td></tr><tr><td>512B</td><td>ECC 16</td><td>13×16=20826</td></tr><tr><td>1024B</td><td>ECC 24</td><td>14×24=33642</td></tr><tr><td>1024B</td><td>ECC 40</td><td>14×40=56070</td></tr></tbody></table>

<figure><img src="image_12.png" /><figcaption>**Fig.10:** ECC number of bits and sector size effects on corrected BER in Flash devices. Output BER improvement is about 10 orders of magnitude with respect to input BER after BCH based ECC coding. Sector size depends on the nature of the storage technology (single cell, double cell or multiple cells) and might be of 128, 256, 512...4096 (4k) Bytes. Adapted from Ref. [11].</figcaption></figure>

In the 4096 (4k) Bytes sector case we have 15 (gap,sync, address)+100 (ECC) Bytes, thus we use GF(2<sup>13</sup>) and not GF(2<sup>12</sup>).

The advent of 3 and 4 level cell design In Flash technology, along with scaling down to provide further storage required BCH correction to be replaced progressively by LDPC codes as the most appropriate ECC or a concatenation of BCH and LDPC, as in magnetic recording.

## B. Optical media

Optical storage spans CD, DVD and Blu-Ray disks as well as Holographic Video Disks (HVD) that has not been widely developed for technical reasons.

In contrast to magnetic addressing based on 1D tracks (cylinders) and heads (platter face) such as in HDD, optical storage is based on a single spiral track with a linear addressing mode. Holographic is more complicated since it is based on 2D coding and addressing.

Optical storage is particularly prone to burst errors (resulting from surface scratches for example) and Reed-Solomon ECC techniques equivalent to the RLL family are the main choice. EFM (Eight to Fourteen Modulation, see Table 5) is used for CD and EFM+ is used for DVD whereas 17PP (17 originating from RLL(1,7) coding and PP being Parity Preserving) codes are used in Blu-Ray discs (see Table 5).

Optical storage characteristics and ECC are shown in Table 5.

RLL(d, k, m, n) coding (shortened to RLL(d, k), has parameters: d= Minimum number of consecutive zeroes allowed, k= Maximum number of consecutive zeroes allowed, m = Minimum number of data bits to be encoded, n= Number of code bits for each of the m data bits.
The code rate is $R = m/n$.

Table 6 displays optical storage parameters for CD, DVD and Blu-Ray media.
<table><thead><tr><th>Media</th><th>λ</th><th>Laser [NA]</th><th>Capacity</th><th>RLL code</th><th>ECC code</th></tr></thead><tbody><tr><td>CD</td><td>780 nm</td><td>0.45</td><td>700 MB</td><td>EFM</td><td>CIRC</td></tr><tr><td>DVD</td><td>680 nm</td><td>0.55</td><td>4.7 GB</td><td>EFM+</td><td>RSPC</td></tr><tr><td>Blu-Ray</td><td>405 nm</td><td>0.85</td><td>25 GB</td><td>17PP</td><td>Picket code</td></tr></tbody></table>

**Table 5:** Optical media characteristics. EFM is based on RLL(2,10) transforming 8 bit symbols into 14 bit symbols and linking them with 3 extra bits whereas EFM+ is based on RLL(2,10) transforming 8 bit symbols into 14 bit symbols and linking them with 2 extra bits. 17PP is RLL(1,7) with parity preservation. EFM should be compared to Eight to Ten Modulation used in magnetic DAT (Digital Audio Tape) storage. CIRC or Cross-interleaved Reed-Solomon coding uses two Reed-Solomon codes with an interleave between. RSPC consists of arranging data in a matrix and detecting parities along the horizontal and vertical directions. A measure of a laser to concentrate light is given by [NA]² where [NA] is its numeric aperture as described in Ref. [12].

<table><thead><tr><th>Code</th><th>Application</th><th>d</th><th>k</th><th>m</th><th>n</th><th>R</th><th>DC free</th></tr></thead><tbody><tr><td>EFM</td><td>CD</td><td>2</td><td>10</td><td>8</td><td>17</td><td>8/17</td><td>Yes</td></tr><tr><td>EFM+</td><td>DVD</td><td>2</td><td>10</td><td>8</td><td>16</td><td>8/16</td><td>Yes</td></tr><tr><td>17PP</td><td>Blu-Ray</td><td>1</td><td>7</td><td>2</td><td>3</td><td>2/3</td><td>Yes</td></tr></tbody></table>

**Table 6:** Modulation coding for Optical media and RLL(d, k, m, n) equivalence. R = m/n is code rate. All codes are DC free.

### C. Magnetic media

Magnetic modulation coding displayed in fig. 11 is concerned with flux change triggered by magnetic media moving with respect to the read head device.

Thus some types of modulation coding pertaining specifically to magnetic media are given below:

* **Frequency Modulation (FM)**

FM is the encoding method used for single-density floppy disks.

A binary 0 is a transition at cell center, regardless of direction.

A binary 1 is absence of transition at cell center, regardless of level.

* **Delay Modulation (DM) or Modified Frequency Modulation (MFM).** Also called Miller code

A binary 1 is a transition at the bit center position, and a binary 0 is represented by no transition at the bit center position. If a 0 is followed by another 0, the signal transition also occurs between the two 0s, at the end of the bit interval,

<table><thead><tr><th></th><th>DVD</th><th>Blu-ray</th></tr></thead><tbody><tr><td>Sector size</td><td>2064B</td><td>2074.5B</td></tr><tr><td>ECC block</td><td>32kB</td><td>64kB</td></tr><tr><td>ECC code rate</td><td>0.866</td><td>0.852</td></tr><tr><td>ECC nature</td><td>Product code</td><td>Code & Subcodes*</td></tr><tr><td>Number of corrected burst errors (200B ECC)</td><td>5-14</td><td>32-49 (349 µm)</td></tr><tr><td>Number of corrected burst errors (600B ECC)</td><td>3-4</td><td>10-16 (1047 µm)</td></tr><tr><td>Max correctable burst length (ECC)</td><td>2912B</td><td>9920B</td></tr></tbody></table>

**Table 7:** Burst error correction in DVD (RSPC) and Blu-Ray (Picket code) discs. *In the Blu-Ray subcodes cover long distance & burst indicators. Adapted from Ref. [13].
* Modified MFM (M2FM)

In magnetic devices, M2FM eliminates flux transition at the bit cell boundary if it is preceded by a cell boundary flux transition in the previous cell.

RLL(d, k, m, n) coding (shortened to RLL(d, k), has parameters $d$= Minimum number of consecutive zeroes allowed (including clock), $k$= Maximum number of consecutive zeroes allowed (including clock), $m$ = Minimum number of data bits to be encoded, $n$= Number of code bits (including clock) for each of the $m$ data bits.

Table 8 displays important magnetic storage parameters such as *DR* the Density Ratio or data bits per flux reversal or *DR* = (*d* + 1)(*m*/*n*). Flux reversal occurs when polarity changes while moving from one magnetic domain to the next. Storage density is measured by flux reversal per inch [14]. FR the frequency ratio given by maximum time over minimum time between transitions or *FR* = (*k* + 1)/(*d* + 1).
Fig. 11 illustrates the signal waveform of RLL coding.

<figure><img src="image_13.png" /><figcaption>Fig. 11: Magnetic modulation coding of information. Adapted from [14].</figcaption></figure>

The main issue is that when errors occur randomly in an isolated fashion, they are easy to correct but when they occur in large groups (bursts), they get extremely hard to correct.

When disk size was about 100 MB, a 10<sup>-12</sup> BER was largely sufficient since it implies reading the entire disk several hundred times before encountering a read error since 1/10<sup>12</sup> is equivalent to 1/127 GB.

The main issue is retrieving binary stored data that is reading it with least error.

This implies the use of EDC and ECC as displayed in Fig.6.

The evolution of ECC is required in order to follow density increase as displayed in Table. 9 where single BER is correlated with disk size.

Digital magnetic recording is based on several peculiarities related to its intrinsic nature:

1. While Hamming codes are based on bits, magnetic recording ECC is more efficient when bits are grouped in Bytes or blocks (symbols) such as with Reed-Solomon coding.

2. Errors increase with storage density, thus ECC must evolve with density

3. Errors occur in a burst mode involving large number of adjacent bits while it would be preferable they occurred in widely separated bits.

4. Coding gain is proportional to $R^2$ with $R$ the rate code whereas in simple Additive White Gaussian Noise (AWGN) channels coding gain is proportional to $R$ (see for instance Immink [2])
<table><caption>**Table 8:** Modulation coding and RLL equivalence. Low density disks used FM, MFM and M2FM whereas high density uses RLL(1,7) and RLL(2,7). RLL(d, k, m, n) coding (shortened to RLL(d, k), has parameters: d= Minimum number of consecutive zeroes allowed, k= Maximum number of consecutive zeroes allowed, m = Minimum number of data bits to be encoded, n= Number of code bits for each of the m data bits, DR is bit Density Ratio given by (d + 1)(m/n), FR is the frequency ratio FR = (k + 1)/(d + 1). Note that MFM is a variant of Miller. Miller-Miller coding was invented, in fact, by Mallinson and Miller [2]. QIC is Quarter-Inch Cartridge magnetic tape. Adapted from Ref. [14].</caption><thead><tr><th>Code</th><th>Application</th><th>d</th><th>k</th><th>m</th><th>n</th><th>DR</th><th>FR</th></tr></thead><tbody><tr><td>NRZ</td><td>Early HDD and magnetic tapes</td><td>0</td><td>∞</td><td>1</td><td>1</td><td>1</td><td>∞</td></tr><tr><td>E-NRZ</td><td>Early HDD and magnetic tapes</td><td>0</td><td>13</td><td>7</td><td>8</td><td>0.875</td><td>14</td></tr><tr><td>NRZI</td><td>Early HDD and magnetic tapes</td><td>0</td><td>∞</td><td>1</td><td>1</td><td>1</td><td>∞</td></tr><tr><td>FM</td><td>Floppy disks</td><td>0</td><td>1</td><td>1</td><td>2</td><td>0.5</td><td>2.0</td></tr><tr><td>MFM</td><td>HDD, IBM 3330</td><td>1</td><td>3</td><td>1</td><td>2</td><td>1</td><td>2.0</td></tr><tr><td>Miller</td><td>HDD</td><td>1</td><td>3</td><td>1</td><td>2</td><td>1</td><td>2.0</td></tr><tr><td>Miller-Miller</td><td>HDD</td><td>1</td><td>5</td><td>1</td><td>2</td><td>1</td><td>3.0</td></tr><tr><td>M2FM</td><td>Floppy disks</td><td>1</td><td>4</td><td>1</td><td>2</td><td>1</td><td>2.5</td></tr><tr><td>RLL(1,7)</td><td>QIC Magnetic Tape</td><td>1</td><td>7</td><td>2</td><td>3</td><td>1.333</td><td>4.0</td></tr><tr><td>RLL(2,7)</td><td>HDD</td><td>2</td><td>7</td><td>2</td><td>4</td><td>1.5</td><td>2.67</td></tr><tr><td>Manchester</td><td>Magnetic Recording</td><td>0</td><td>1</td><td>1</td><td>2</td><td>0.5</td><td>2.0</td></tr></tbody></table>

<table><caption>**Table 9:** Bits/Tera-Bytes (TB) Read per Error (Unrecoverable Read Error Rates) as a function of drive size. The initial 10<sup>-12</sup> BER had to be decreased to about 10<sup>-15</sup> in order to cope with TB drive density and size (see Mueller [3]). RAID i.e. Redundant Array of Identical Disks is used for backup storage.</caption><thead><tr><th>Bits read/Error</th><th>Tera-Bytes read/Error</th><th>Drive size (years)</th></tr></thead><tbody><tr><td>10<sup>12</sup></td><td>0.125</td><td>5MB-100MB (1980)</td></tr><tr><td>10<sup>13</sup></td><td>1.25</td><td>100MB-100GB (1980-1990)</td></tr><tr><td>10<sup>14</sup></td><td>12.5</td><td>1GB-3TB+ (Since 1990)</td></tr><tr><td>10<sup>15</sup></td><td>125</td><td>RAID (Since 1990)</td></tr></tbody></table>

5. Partial response (cf. Appendix C) equalization is quite efficient for pulse shaping since it is based on correlative coding implying controlled ISI intentionally introduced in the signal in order to reduce ISI. It is also called pre-distortion.

The read/write channel has tremendously evolved starting from simple peak-detection circuits and single burst-error correcting Fire codes, an extension of CRC codes, to more powerful coding techniques.

Error-correction schemes are based on Reed-Solomon codes. HDD based on 512B sectors typically use ECC codes based on 10-bit symbols correcting 20 or more error symbols.

With HDD based on 4kB sectors, ECC codes based on 12-bit symbols are used. The next stage was the introduction of iterative detection [15] described by a typically gradual converging behavior as it ran iteratively between matching expected waveforms in the recording channel and respecting simultaneously the constraints imposed by parity checks.

ECC in hard drives is traditionally performed with CRC (Cyclic Redundancy Check [16]) or Fire codes [17, 18], their natural extension.

Later Reed-Solomon ECC was used in order to decrease BER down to 10<sup>-12</sup> since CRC [16] could only achieve at that time a BER of about 10<sup>-10</sup>. Reed-Solomon are constructed with Galois polynomials GF(2<sup>m</sup>) where m is the symbol size (see Table 10).

### III. CHANNEL CODING

A channel is a communication link between a sender and a receiver for transmitting messages.

Channel can introduce noises which can distort the message sent on the channel.
<table><caption>**Table 10:** Reed-Solomon ECC characteristics for 512B and 4kB sectors. Galois fields such as GF(2<sup>m</sup>) are polynomials where m is an integer equal to the symbol size. The number of elements in GF(q<sup>m</sup>) is q<sup>m</sup>. Sector 512B requires GF(2<sup>10</sup>) whereas 4kB requires GF(2<sup>12</sup>) [19].</caption><thead><tr><th>Sector size</th><th>Galois field</th><th>ECC Size</th><th>Raw BER</th><th>BER after ECC</th></tr></thead><tbody><tr><td>512B</td><td>GF(2<sup>10</sup>)</td><td>50B</td><td>10<sup>-5</sup> - 10<sup>-6</sup></td><td>10<sup>-11</sup> - 10<sup>-12</sup></td></tr><tr><td>4kB</td><td>GF(2<sup>12</sup>)</td><td>100B</td><td>10<sup>-3</sup> - 10<sup>-4</sup></td><td>10<sup>-11</sup> - 10<sup>-12</sup></td></tr></tbody></table>

Channel coding is essential in all communication systems to ensure reliable and efficient communications. It involves adding redundancy to the transmitted data in a controlled manner, allowing the receiver to detect and correct errors that occur during transmission and reception.

Channel coding plays a critical role in improving information transmission, such as:

* **Reliability:**
  Channel coding is crucial to improve communication reliability by providing EDC and ECC.

* **Throughput:**
  Channel coding affects throughput by improving BER and reliability of data transmission.

* **Latency:**
  Efficient channel coding schemes contribute to reduce retransmission due to errors.

* **Coverage:**
  Channel coding plays a critical role in extending coverage by enhancing the ability of the network to transmit data reliably over longer distances in hostile radio environments.

* **Spectral Efficiency:**
  Efficient channel coding improves spectral efficiency (cf. Table 11) by minimizing the impact of errors on the effective use of available frequency spectrum.

* **Energy Efficiency:**
  In wireless communications, channel coding can contribute to reduction of power requirements at base station and user devices, as well as retransmissions, resulting in battery life extension.

Channel capacity is given by Shannon-Hartley theorem [4]. Shannon information theory specifies the capacity of the channel i.e. the bitrate it can support. The theorem can be stated as follows:

* A given communication system has a maximum rate of information C known as the channel capacity.

* If the transmission information rate R is less than C, then the data transmission in the presence of noise can be made to happen with arbitrarily small error probabilities by using intelligent coding techniques.

* To get lower error probabilities, the encoder has to work on longer blocks of signal data. This entails longer delays and higher computational requirements.

Shannon-Hartley theorem indicates that with sufficiently advanced coding techniques, transmission that nears the maximum channel capacity is possible with arbitrarily small errors. One can intuitively reason that, for a given communication system, as the information rate increases, the number of errors per second will also increase.

Shannon-Hartley theorem relates the maximum capacity (transmission bitrate) that can be achieved over a given channel with certain noise characteristics and bandwidth.

$$C = B \log_2(1 + S/N) \qquad (3)$$

C is the maximum capacity of the channel in bits/second, B is channel bandwidth in Hz and S/N is the channel Signal to Noise Ratio (SNR). As an example, the PSTN (Plain Switched Telephone Network) channel is 4kHz and a typical S/N is 40 dB meaning that the real value of S/N = 10<sup>4</sup> since S and N are given in Watts. This implies that PSTN modem supports a bitrate of 4.10<sup>3</sup> log<sub>2</sub>(1 + 10<sup>4</sup>) ~ 53 kb/s.

Note that η = C/B is the channel spectral efficiency in bits/seconds/Hz. Digital Modulation (see Appendix A) spectral efficiencies are given in Table 11.
<table><caption>**Table 11:** Digital modulation methods and their spectral efficiencies. ASK is Amplitude Shift Keying with 1 bit coding yielding 1 or 0 amplitude, whereas PSK is Phase Shift Keying yielding 0, π phase corresponding to 0,1 bit value respectively. GMSK is Gaussian Minimum Shift Keying (see Appendix A). Adapted from Ref. [20].</caption><thead><tr><td>Digital Modulation</td><td>Spectral Efficiency</td></tr></thead><tbody><tr><td>ASK</td><td>1 bit/second/Hz</td></tr><tr><td>BPSK</td><td>1 bit/second/Hz</td></tr><tr><td>GMSK</td><td>1 bit/second/Hz</td></tr><tr><td>QPSK</td><td>2 bits/second/Hz</td></tr><tr><td>π/4-DOPSK</td><td>2 bits/second/Hz</td></tr><tr><td>8-PSK</td><td>3 bits/second/Hz</td></tr><tr><td>16QAM</td><td>4 bits/second/Hz</td></tr><tr><td>32QAM</td><td>5 bits/second/Hz</td></tr><tr><td>64QAM</td><td>6 bits/second/Hz</td></tr><tr><td>256QAM</td><td>8 bits/second/Hz</td></tr></tbody></table>

Shannon capacity limit is defined for the given channel. It is the fundamental maximum transmission capacity that can be achieved on a channel given any combination of any coding scheme, transmission or decoding scheme. It is the best performance limit that can be achieved for that channel. The above expression for the channel capacity makes intuitive sense:

* Bandwidth limits how fast information symbols can be sent over channel.

* SNR ratio limits how much information can be squeezed in each transmitted symbol. Increasing SNR provides the transmitted symbols more robustness against noise. SNR is a function of signal quality, signal power and the channel characteristics.

* To increase the information rate, the SNR and bandwidth *B* have to be traded against each other.

* If $N = 0$, $S/N$ becomes infinite, thus an infinite information rate is possible at a very small bandwidth.

* It is possible to trade off bandwidth for SNR. Infinite channel bandwidth gives a finite bitrate given by $S/(N_0 \ln 2) \approx 1.44S/N_0$ assuming that $N = N_0B$ [4]. This result originates from the fact an increase in bandwidth induces noise power rise that can be derived from unconstrained Shannon limit for an AWGN channel: Consider that binary digits are sent across an AWGN channel at a transmission rate equal to the channel capacity: $R = C$. If the average signal power is $S$, then the average energy per bit is $E_b = S/C$ ((Joules per bit), since the bit duration is $1/C$ seconds. If the one sided noise power spectral density is $N_0/2$ Watts (normalized to 1 Ohm) per Hertz, then the total noise power is $N_0B$ Watts.

## A. Copper line channel

In telecommunications, one deals with signal propagation over some communication distance [4, 21, 22] as displayed in Fig. 12. This means attenuation and delay with distance implying the use of repeaters in order to amplify and reshape the signal as illustrated in Table 12.

<table><caption>**Table 12:** Transmission characteristics of several communication channels. Trunks containing 25 or 50 bundled TP are used in North America communication networks. Adapted from Stallings [23].</caption><thead><tr><td>Transmission media</td><td>Frequency Range</td><td>Typical Attenuation</td><td>Typical Delay</td><td>Repeater Spacing</td></tr></thead><tbody><tr><td>TP (Twisted Pair)</td><td>0 to 3.5 kHz</td><td>0.2 dB/km @ 1 kHz</td><td>50 µs/km</td><td>2 km</td></tr><tr><td>Trunk of bundled TP</td><td>0 to 1 MHz</td><td>0.7 dB/km @ 1 kHz</td><td>5 µs/km</td><td>2 km</td></tr><tr><td>Coaxial cable</td><td>0 to 500 MHz</td><td>7 dB/km @ 10 MHz</td><td>4 µs/km</td><td>1 to 9 km</td></tr></tbody></table>

Modeling a copper line is based on a transmission line model illustrated in Fig. 13 showing a section of the line. Physical properties of cables (TP and Coaxial cables) are given in Table 13.
<figure><img src="image_14.png" /><figcaption>**Fig.12:** Similarly to a signal $x(t)$ entering a device and emerging from it as $y(t)$, one might draw analogy with an impulse response depending on traveling distance $d$ across a channel represented by a transmission line containing wires, coaxial cables...</figcaption></figure>

<figure><img src="image_15.png" /><figcaption>**Fig.13:** Transmission line circuit model is based on a section $[z, z + dz]$ along the $z$ direction with $R, L, G, C$ parameters representing resistance, inductance, conductance and capacitance per unit length.</figcaption></figure>

<table><caption>**Table 13:** Measured Characteristics of Selected Cables. CAT is Category a term reserved for digital cables. RG is Radio Guide. $R, L, G, C$ parameters represent resistance, inductance, conductance and capacitance per unit length. $Z_0$ is line characteristic impedance. Adapted from Anderson [24].</caption><thead><tr><th rowspan="2">Designation</th><th rowspan="2">Cable nature</th><th rowspan="2">Main Application</th><th><i>R</i></th><th><i>L</i></th><th><i>G</i></th><th><i>C</i></th><th><i>Z</i><sub>0</sub> (Ω)</th></tr><tr><th>Ω/km</th><th>μH/km</th><th>nΩ<sup>-1</sup>/km</th><th>nF/km</th><th></th></tr></thead><tbody><tr><td>CAT5</td><td>TP</td><td>Data transmission</td><td>176</td><td>490</td><td>&lt; 2</td><td>49</td><td>100</td></tr><tr><td>CAT5e</td><td>TP</td><td>Data transmission</td><td>176</td><td></td><td>&lt;2</td><td></td><td>100</td></tr><tr><td>RG58</td><td>Coaxial</td><td>Radio frequency</td><td>48</td><td>253</td><td>&lt; 0.01</td><td>101</td><td>50</td></tr><tr><td>RG59</td><td>Coaxial</td><td>Video</td><td>36</td><td>430</td><td></td><td>69</td><td>75</td></tr><tr><td>RG59</td><td>Coaxial<br>(foam dielectric)</td><td>Video</td><td>20.4</td><td>303</td><td></td><td>54</td><td>75</td></tr></tbody></table>

Space dependent impulse response $h(t, d)$ (cf. Fig. 12) can be Fourier transformed to become a transmission line transfer function given in general by $H(f, d) = \mathcal{F}[h(t, d)] = \exp(-\gamma d)$ where $\gamma = \sqrt{(R + j\omega L)(G + j\omega C)}$ and $\omega = 2\pi f$.

Series resistance for long cables is often specified in $\Omega/[1000 \text{ feet}]$ (about $\Omega/[305 \text{ m}]$). In any signal loss evaluation the resistance.

A general formula for wire gauge (AWG i.e. American Wire Gauge) given a resistance $R$ in $\Omega/[1000 \text{ feet}]$ is

$$AWG = 10 \log_{10} R + 10, \quad R = 10^{\frac{AWG-10}{10}} \Omega/[1000 \text{ feet}]. \qquad (4)$$

A wire of length $l$, cross-sectional area $A$ and conductivity $\sigma$ has resistance $\ell/\sigma A$, or resistance per unit length $R = 1/\sigma A$. Using formula above gives:

$$A \propto 10^{\frac{AWG-10}{10}} \quad \text{yielding} \quad D \propto 10^{\frac{AWG-10}{10}} \qquad (5)$$

where $D$ is the wire diameter.
Conventionally a 10 AWG wire has a diameter of 0.10 inches (1 inch= 2.54 cm) giving:

$$D = 10^{-\frac{AWG+10}{10}} \qquad (6)$$

Thus a wire gauge is related to diameter via:

$$AWG = -20 \log_{10} D - 10. \qquad (7)$$

Fig. 14 and Fig. 15 related to gauge19 and gauge22 wires show that $|H(f, d)|$ gets narrower versus frequency and its amplitude decreases with distance. These losses are due to the combined actions of skin effect and exponential amplitude attenuation [4, 21, 22].

<figure><img src="image_16.png" /><figcaption>Fig.14: (Color on-line) (left) 3D Transfer function $|H(f, d)|$ for a low-loss gauge 19 wire. (right) 3D Transfer function $|H(f, d)|$ for a gauge 22 wire. Note that $|H(f, d)|$ scale is logarithmic (in dB) as well as the frequency that is limited to 1 MHz.</figcaption></figure>

<figure><img src="image_17.png" /><figcaption>Fig.15: (Color on-line) (left) 3D Transfer function $|H(f, d)|$ for a low-loss Coaxial cable. (right) 3D Transfer function $|H(f, d)|$ for an RG58 Coaxial cable. Both cables have $Z_0 = 50\Omega$. Note that $|H(f, d)|$ scale is logarithmic (in dB) as well as the frequency that is limited to 5 MHz.</figcaption></figure>

## B. Optic Fiber channel

In high speed communications over long distances (e.g., optical fibers, optical submarine cables, microwave radio links for connecting remote antenna sites, and many more), we would often like to maximize the coding gain (and hence the data throughput) with still manageable decoding complexity. If a very large coding gain shall be achieved, LDPC codes are still a good choice due to their well-understood error correction properties and the availability of fast decoders.

Generations of fiber optic communications (cf. Fig. 16):

1. The first generation, which was focused on a transmission near 1.3 µm to take advantage of the low attenuation (< 1 dB/km) and low dispersion, was deployed during the early 1980s. Bitrate in these systems was limited to < 100 Mb/s due to dispersion present in multimode fibers. Later single-mode fiber was used to avoid dispersion.
2. Second generation systems are based on using 1.55-µm sources and detectors. At this wavelength the attenuation of fused silica fiber is minimal. The deployment of these systems was delayed, however, due to the relatively large dispersion at this wavelength. Two approaches were proposed to solve the dispersion problem. The first approach was to develop single-mode lasers and the second was to develop dispersion shifted fiber at 1.55 µm. In 1990, 1.55-µm systems operating at 2.5 Gb/s were commercially available and were capable of operating at 10 Gb/s for distances of 100 km. A drawback of these systems was the need for electronic regeneration with repeaters typically spaced every 60-70 km.

3. The third generation systems are based on the use of optical amplifiers to increase repeater spacing and wavelength division multiplexing (WDM) to increase the aggregate bitrate. Erbium-doped fiber amplifiers (EDFA) were developed to amplify signals without electronic regeneration during the 1980s. In 1991, signals could be transmitted 14,300 km at 5 Gb/s without electronic regeneration. The first trans-pacific commercial system went into operation sending signals over 11,300 km at 5 Gb/s. System capacity is increased through use of WDM. Multiple wavelengths can be amplified with the same optical amplifier. In 1996, 20.5 Gb/s signals were transmitted over 9,100 km providing a total bitrate of 100 Gb/s and a bandwidth-length product of 910 (Tb/s).km.

4. In fourth generation systems, the effort is primarily concerned with the fiber dispersion problem. Optical amplifiers solve the loss problem but increase the dispersion problem since dispersion effects accumulate over multiple amplification stages. A good solution is based on the concept of optical solitons. These pulses preserve their shape during propagation in a lossless fiber by counteracting the effect of dispersion through fiber non-linearity. Using stimulated Raman scattering as a non-linearity to compensate for both loss and dispersion were effective in transmitting signals over 4,000 km.

5. In fifth generation systems, the efforts have been directed toward realizing greater capacity of fiber systems by multiplexing a large number of wavelengths. These systems are referred to as dense wavelength division multiplexing (DWDM) systems (cf. Fig. 16).

<figure><img src="image_18.png" /><figcaption>**Fig.16:** Progress in Fiber Optic Communications from first to fifth generation. Dense Wavelength Division Multiplexing (DWDM) gathering a large number of wavelengths were developed for high-speed Fourth and Fifth generations. Adapted from Ref. [25]</figcaption></figure>

## Low Density Parity Check (LDPC) Codes:

Low-density parity-check (LDPC) codes are a class of linear block codes. The name comes from the characteristic of their parity-check matrix which contains only a few ones in comparison to the amount of zeroes. Their main advantage is that they provide a performance which is very close to the capacity for a lot of different channels and linear time complex algorithms for decoding.

They were first introduced by Gallager in his PhD thesis in 1960. But due to the computational effort in implementing their coding and decoding and the success of Reed-Solomon codes, they were ignored for a long time.
<table><caption>**Table 14:** The wavelength bands for fiber-optics communications. Adapted from Ref. [26]</caption><thead><tr><th colspan="2">Wavelength</th><th rowspan="2">Wavelength range (nm)</th></tr><tr><th>band</th><th>Descriptor</th></tr></thead><tbody><tr><td>O-band</td><td>Original</td><td>1,260-1,360</td></tr><tr><td>E-band</td><td>Extended</td><td>1,360-1,460</td></tr><tr><td>S-band</td><td>Short</td><td>1,460-1,530</td></tr><tr><td>C-band</td><td>Conventional</td><td>1,530-1,565</td></tr><tr><td>L-band</td><td>Long</td><td>1,565-1,625</td></tr><tr><td>U-band</td><td>Ultra-long</td><td>1,625-1,675</td></tr></tbody></table>

<table><caption>**Table 15:** Bitrates for different synchronous/asynchronous optical channels. Note that OC for Optical Channel (in the USA) has been renamed STM (Synchronous Transfer Mode) in Europe. For instance OC-3 with 155.52 Mb/s is STM-1 in Europe. ATM is Asynchronous Transfer Mode that is run over multimode fiber and over shielded twisted-pair cabling. Adapted from Ref. [26]</caption><thead><tr><th colspan="2">Synchronous (TDM)</th><th colspan="2">Asynchronous (data)</th></tr><tr><th>channels</th><th>Bitrate</th><th>channels</th><th>Bitrate</th></tr></thead><tbody><tr><td>DS-1</td><td>1.544 Mb/s</td><td>10-BaseT Ethernet</td><td>10 Mb/s</td></tr><tr><td>E-1</td><td>2.048 Mb/s</td><td>100-BaseT Ethernet</td><td>100 Mb/s</td></tr><tr><td>OC-1</td><td>51.84 Mb/s</td><td>FDDI</td><td>100 Mb/s</td></tr><tr><td>OC-3/STM-1</td><td>155.52 Mb/s</td><td>ATM</td><td>200 Mb/s</td></tr><tr><td></td><td></td><td>Fiber Channel-I</td><td>200 Mb/s</td></tr><tr><td>OC-12/STM-4</td><td>602.08 Mb/s</td><td>Fiber Channel-II</td><td>400 Mb/s</td></tr><tr><td></td><td></td><td>Fiber Channel-III</td><td>800 Mb/s</td></tr><tr><td>OC-48/STM-16</td><td>2.488 Gb/s</td><td>Gb Ethernet</td><td>1 Gb/s</td></tr><tr><td>OC-192/STM-64</td><td>9.953 Gb/s</td><td>10-Gb Ethernet</td><td>10 Gb/s</td></tr><tr><td>OC-768/STM-256</td><td>39.813 Gb/s</td><td>40-Gb Ethernet</td><td>40 Gb/s</td></tr></tbody></table>

Iterative decoding approach (cf. Fig. 17) is well adapted to the structure of LDPC codes producing good results. In many cases they allow a higher code rate and also a lower error floor rate. Their main disadvantage are that encoders are somehow more complex and that the code length has to be rather long to yield good results.

<figure><img src="image_19.png" /><figcaption>**Fig. 17:** (Color on-line) Forward Error Correction (FEC) in Optical Channel from first to third generation. First generation (blue box) FEC is RS(255,239), Second generation (green circle) FEC is concatenated codes and iterative decoding while third generation (red triangle) FEC is soft decision with iterative decoding. Capacity progresses by a factor 10, every four years whereas Moore law of Electronics is a factor 2, every 18 months. Adapted from Ref. [28]</figcaption></figure>
<table><caption>**Table 16:** Terrestrial Optical Fiber Channels with their characteristics and Coding. Adapted from Gnauck *et al.* [27]</caption><thead><tr><th rowspan="2">Year</th><th>Capacity</th><th>Spectral Efficiency</th><th>Repeater</th><th rowspan="2">Modulation Coding</th></tr><tr><th>(Tb/s)</th><th>(b/s/Hz)</th><th>Distance (km)</th></tr></thead><tbody><tr><td>1996</td><td>1</td><td>0.4</td><td>55</td><td>NRZ</td></tr><tr><td>1996</td><td>1</td><td>0.4</td><td>40</td><td>RZ</td></tr><tr><td>1996</td><td>1.1</td><td>0.27</td><td>150</td><td>NRZ</td></tr><tr><td>1999</td><td>1</td><td>0.2,0.1</td><td>400</td><td>NRZ</td></tr><tr><td>1999</td><td>1</td><td>0.2</td><td>600</td><td>NRZ</td></tr><tr><td>1999</td><td>3</td><td>0.33</td><td>40</td><td>RZ</td></tr><tr><td>2000</td><td>6.4</td><td>0.9</td><td>186</td><td>NRZ</td></tr><tr><td>2000</td><td>5.12</td><td>0.64</td><td>300</td><td>NRZ-VSB</td></tr><tr><td>2000</td><td>2.1</td><td>0.27</td><td>7,221</td><td>RZ</td></tr><tr><td>2001</td><td>3.09</td><td>0.4</td><td>1,200</td><td>NRZ</td></tr><tr><td>2001</td><td>1 0.92</td><td>0.9</td><td>117</td><td>NRZ</td></tr><tr><td>2001</td><td>1 0.2</td><td>1.2</td><td>100</td><td>NRZ-VSB</td></tr><tr><td>2002</td><td>2.5</td><td>0.4</td><td>4,000</td><td>RZ-DPSK</td></tr><tr><td>2002</td><td>5.12</td><td>0.9</td><td>1,280</td><td>RZ</td></tr><tr><td>2003</td><td>1.6</td><td>0.4</td><td>10,000</td><td>RZ-DPSK</td></tr><tr><td>2003</td><td>6.4</td><td>0.9</td><td>3,200</td><td>RZ-DPSK</td></tr><tr><td>2003</td><td>1.95</td><td>0.4</td><td>8,370</td><td>RZ-DPSK</td></tr><tr><td>2004</td><td>5.1</td><td>1.6</td><td>3200</td><td>RZ-DQPSK</td></tr><tr><td>2006</td><td>3.2</td><td>1.6</td><td>1,700</td><td>RZ-DQPSK</td></tr><tr><td>2006</td><td>14</td><td>2</td><td>160</td><td>RZ-DQPSK</td></tr><tr><td>2006</td><td>12.3</td><td>3.2</td><td>240</td><td>RZ-DQPSK</td></tr><tr><td>2006</td><td>1</td><td>0.67</td><td>2,000</td><td>RZ-DQPSK</td></tr><tr><td>2007</td><td>1</td><td>2</td><td>2,375</td><td>RZ-DQPSK</td></tr><tr><td>2007</td><td>20.4</td><td>2</td><td>240</td><td>RZ-DQPSK</td></tr><tr><td>2007</td><td>25.6</td><td>3.2</td><td>240</td><td>RZ-DQPSK</td></tr><tr><td>2007</td><td>12.9</td><td>1.6</td><td>2,550</td><td>QPSK</td></tr></tbody></table>

SONET (Synchronous Optical NETwork) is an optical transmission interface [23] originally proposed by BellCore. A compatible version, referred to as Synchronous Digital Hierarchy (SDH), has been published by Europe ITU-T in Recommendation G.707.2 SONET is intended to provide a specification for taking advantage of the high-speed digital transmission capability of optical fiber.

SONET specification defines a hierarchy of standardized digital data rates. The lowest level, referred to as STS-1 (Synchronous Transport Signal level 1) or OC-1 (Optical Carrier level 1) is 51.84 Mb/s.

Multiple STS-1 signals can be combined to form an STS-N signal. The signal is created by interleaving bytes from N STS-1 signals that are mutually synchronized. For the ITU-T Synchronous Digital Hierarchy, the lowest rate is 155.52 Mb/s, which is designated STM-1. This corresponds to SONET STS-3.

The basic SONET building block is the STS-1 frame, which consists of 810 octets and is transmitted once every 125 ms, for an overall data rate of 51.84 Mb/s.

### C. Wireless channel

Since the early 1980s, mobile communications have undergone a generation change almost every decade. With the emergence of new applications as well as the rapid technology advancements in hardware and computing power,

The emergence of new needs drives increasing demands on higher data rates, higher reliability, and lower latency. To fulfill these requirements, a next generation of wireless systems would require new frequency bands and development of new communication architectures.

As cellular networks have evolved from the second generation (2G) to 5G era, the path of channel coding has undergone significant advancements to address challenges arising from channel condition changes, increasing data
<table><caption>**Table 17:** Submarine Optical Fiber Channels with their characteristics and Coding. SE is Spectral Efficiency. Adapted from Gnauck *et al.* [27]</caption><thead><tr><th rowspan="2">Year</th><th>Capacity</th><th>Spectral Efficiency</th><th>Repeater</th><th>Modulation</th></tr><tr><th>(Tb/s)</th><th>(b/s/Hz)</th><th>Distance (km)</th><th>Coding</th></tr></thead><tbody><tr><td>1999</td><td>0.32</td><td>0.14</td><td>7,200</td><td>RZ</td></tr><tr><td>1999</td><td>0.213</td><td>0.1</td><td>9,000</td><td>RZ</td></tr><tr><td>1999</td><td>0.64</td><td>0.33</td><td>7,200</td><td>RZ</td></tr><tr><td>1999</td><td>1.04</td><td>0.2</td><td>10,000</td><td>RZ</td></tr><tr><td>2000</td><td>1.9</td><td>0.4</td><td>7,000</td><td>RZ</td></tr><tr><td>2001</td><td>2.4</td><td>0.49</td><td>6,200</td><td>RZ</td></tr><tr><td>2001</td><td>3.65</td><td>0.45</td><td>6,950</td><td>NRZ</td></tr><tr><td>2002</td><td>1.52</td><td>0.3</td><td>6,200</td><td>RZ</td></tr><tr><td>2003</td><td>3.73</td><td>0.4</td><td>11,000</td><td>RZ-DPSK</td></tr><tr><td>2003</td><td>3</td><td>0.65</td><td>10,270</td><td>NRZ-DPSK</td></tr><tr><td>2003</td><td>2.56</td><td>0.9</td><td>9,200</td><td>RZ-DPSK</td></tr><tr><td>2003</td><td>4</td><td>0.4,0.64</td><td>6,240</td><td>RZ-DPSK</td></tr></tbody></table>

<table><caption>**Table 18:** SONET/SDH Signal Hierarchy. Synchronous Digital Hierarchy (SDH). STS is Synchronous Transport Signal. Adapted from Ref. [26]</caption><thead><tr><th>SONET Designation</th><th>ITU-T Designation</th><th>Data Rate</th><th>Payload Rate (Mb/s)</th></tr></thead><tbody><tr><td>STS-1/OC-1</td><td></td><td>51.84 Mb/s</td><td>50.112 Mb/s</td></tr><tr><td>STS-3/OC-3</td><td>STM-1</td><td>155.52 Mb/s</td><td>150.336 Mb/s</td></tr><tr><td>STS-12/OC-12</td><td>STM-4</td><td>622.08 Mb/s</td><td>601.344 Mb/s</td></tr><tr><td>STS-48/OC-48</td><td>STM-16</td><td>2.488 Gb/s</td><td>2.405 Gb/s</td></tr><tr><td>STS-192/OC-192</td><td>STM-64</td><td>9.953 Gb/s</td><td>9.621 Gb/s</td></tr><tr><td>STS-768</td><td>STM-256</td><td>39.813 Gb/s</td><td>38.486 Gb/s</td></tr><tr><td>STS-3072</td><td></td><td>159.252 Gb/s</td><td>153.944 Gb/s</td></tr></tbody></table>

rates, and quest for more reliable and lower latency communications. Coding schemes used in the 2G to 5G wireless communication standards are listed in Table 19.

<table><caption>**Table 19:** Coding Schemes from 1G to 5G.</caption><thead><tr><th>Generation</th><th>Channel Coding</th></tr></thead><tbody><tr><td>1G</td><td>BCH</td></tr><tr><td>2G</td><td>Cyclic Codes (CRC), Convolutional Codes</td></tr><tr><td>3G</td><td>Convolutional Codes, Turbo Codes</td></tr><tr><td>4G</td><td>Convolutional Codes, Turbo Codes</td></tr><tr><td>5G</td><td>LDPC Codes, Turbo Codes</td></tr></tbody></table>

In wireless communications, access of callers to channel is a very important issue from the traffic, coding... points of view. The first access method in AMPS (cf. Table 20 and Fig. 18) was based on frequency (FDMA: Frequency Division Multiple Access) allocating a frequency interval to a given caller. In GSM, TDMA was developed allowing each caller the full frequency band but for a given time interval (TDMA: Time Division Multiple Access). Later Qualcomm developed CDMA allowing each caller all frequency band, all the time but with a code (CDMA: Code Division Multiple Access). Typically CDMA allowed 30 callers to share simultaneously a common channel.
<table><caption>**Table 20:** AMPS, GSM, and CDMA Technologies Compared. AMPS is Advanced Mobile Phone System. GSM is Groupe Spécial Mobile. CC represents Convolutional Codes. ms is millisecond. Adapted from Proakis [29]</caption><thead><tr><th></th><th>AMPS</th><th>GSM</th><th>CDMA</th></tr></thead><tbody><tr><td>Carrier separation</td><td>30 kHz</td><td>200 kHz</td><td>1.25 MHz</td></tr><tr><td># of Channels/carrier</td><td>1</td><td>8</td><td>61</td></tr><tr><td>Multiple Access</td><td>FDMA</td><td>TDMA-FDMA</td><td>CDMA-FDMA</td></tr><tr><td>Frame duration</td><td>NA</td><td>4.6 ms with 0.58 ms slots</td><td>20 ms</td></tr><tr><td>Modulation</td><td>FM</td><td>GMSK, BT<sub>b</sub>= 0.3</td><td>BPSK</td></tr><tr><td>Cell reuse pattern</td><td>7</td><td>3</td><td>1</td></tr><tr><td>Co-channel Interference</td><td>≤ 15 dB</td><td>≤ 12 dB</td><td>NA</td></tr><tr><td>ECC</td><td>NA</td><td>Rate 1/2 CC</td><td>Rate 1/2 CC</td></tr><tr><td>Speech nature</td><td>Analog</td><td>Constraint length 5</td><td>Rate 1/3 CC</td></tr><tr><td>Speech coder rate</td><td>NA</td><td>Residual pulse excited, Linear prediction coder</td><td>Code-excited vocoder</td></tr><tr><td></td><td></td><td>13 kb/s</td><td>9.6 kb/s (max)</td></tr></tbody></table>

<figure><img src="image_20.png" /><figcaption>**Fig.18:** (Color on-line) Comparison of FDMA, TDMA and CDMA technologies. In FDMA a frequency slice of full bandwidth (in red) is allocated to a caller all the time. Thus the caller has a small bitrate. In TDMA, a time slot (in red) is allocated to a caller offering a full bitrate, whereas in CDMA the code (in red) allows a caller to access all bandwidth i.e. with full bitrate at all times.</figcaption></figure>

## APPENDIX A: ANALOG AND DIGITAL MODULATION

Transmission of a signal $x(t)$ entails modulating a high frequency carrier $\cos(2\pi f_c t)$ by $x(t)$ where $f_c$ is the carrier frequency. The modulated signal is written as: $y(t) = A(t) \cos(2\pi f_i(t) t + \phi(t))$ where $f_i$ is an instantaneous time-dependent frequency and $\phi(t)$ is an instantaneous time-dependent phase.

* In Amplitude Modulation (AM), $A(t)$ is proportional to $x(t)$.

* In Frequency Modulation (FM), $A(t) = A_c$ is constant, the instantaneous $f_i(t) = f_c + \mu_f x(t)$ and $\phi(t) = 2\pi f_c t + 2\pi \mu_f \int_0^t d\tau x(\tau)$ yield $y(t) = A_c \cos(2\pi f_c t + 2\pi \mu_f \int_0^t d\tau x(\tau))$ where $\mu_f$ is the FM counterpart of the modulation index.

* In Phase Modulation (PM), $A(t) = A_c$ is constant, the instantaneous frequency $f_i(t) = f_c + \frac{\mu_p}{2\pi} x(t)$ and instantaneous phase $\phi(t) = 2\pi f_c t + \mu_p x(t)$ yield $y(t) = A_c \cos(2\pi f_c t + \mu_p x(t))$ where $\mu_p$ is the PM counterpart of the modulation index.

* Vestigial SideBand (VSB) modulation: The simplest example is Analog Black-White (BW) Television where the AM modulated signal $y(t)$ is written as:

$$y(t) = A_v(1 + \mu x(t)) \cos(2\pi f_c t) \quad (A1)$$

where $0 < \mu < 1$ is the modulation index and $x(t)$ is the BW or luminance signal.

AM doubles the baseband width of BW TV signal from 4 MHz to 8 MHz yielding an upper (above $f_c$) and lower sideband (below $f_c$). Thus an additional operation is required such as a 2 MHz filtering reduction of the lower sideband (LSB) resulting in a VSB (Vestigial Side Band) with an overall bandwidth shrinking from 8
<table><caption>**Table 21:** Comparison of network specifications from 1G to 5G. In this table, (—) indicates repetition of the above. (*) means various implementations are done by various operators in different countries. AMPS is Advanced Mobile Phone System. FDMA is Frequency Division Multiple Access, TDMA is Time Division Multiple Access (cf. Fig. 18). GPRS is Generalized Packet Radio Service. LTE is Long Term Evolution. GMSK is Gaussian Minimum Shift Keying. EDGE is Enhanced Data rates for GSM Evolution. NR is New Radio. UMTS is Universal Mobile Telephone System. HSPA is High Speed Packet Access.</caption><thead><tr><th>G</th><th>Date</th><th>System</th><th>Access Method</th><th>Peak Data Rate [b/s]</th><th>Latency [ms]</th><th>Modulation</th><th>Frequency Band [MHz]</th></tr></thead><tbody><tr><td>1G</td><td></td><td>AMPS*</td><td>FDMA</td><td></td><td></td><td>FM (voice)<br>FSK (control)</td><td>824-849,<br>824-849,</td></tr><tr><td>2G</td><td>1991</td><td>GSM</td><td>(F-T)DMA</td><td>14.4k</td><td></td><td>GMSK</td><td>890-915,</td></tr><tr><td>2.5G</td><td>2000</td><td>GPRS</td><td>—</td><td>171k</td><td></td><td></td><td></td></tr><tr><td>2.75G</td><td>2003</td><td>EDGE</td><td>—</td><td>236k</td><td>&lt; 150</td><td>GMSK, 8-PSK</td><td></td></tr><tr><td>3G</td><td>2003</td><td>UMTS</td><td>CDMA</td><td>2M</td><td>150</td><td>QPSK, 16QAM</td><td>890, 1900, 2100</td></tr><tr><td>3.5G</td><td>2005</td><td>HSPA</td><td>—</td><td>14.4M,</td><td>100</td><td>QPSK, 16QAM</td><td>—</td></tr><tr><td>3.75G</td><td>2008</td><td>HSPA+</td><td>—</td><td>42M,</td><td>&lt; 50</td><td>QPSK, 16QAM,<br>64QAM</td><td>—</td></tr><tr><td>3.9G</td><td>2009</td><td>LTE</td><td>OFDMA</td><td>300M,</td><td>10</td><td>—</td><td>800, 1900, 2100</td></tr><tr><td>3.9G</td><td>2009</td><td>LTE</td><td>OFDMA</td><td>300M,</td><td>10</td><td>—</td><td>800, 1900, 2100</td></tr><tr><td>4G</td><td>2014</td><td>LTE</td><td>OFDMA</td><td>3G,</td><td>&lt; 5</td><td>QPSK, 16QAM,<br>64QAM</td><td>800, 1900, 2100,<br>2500, 2600</td></tr><tr><td>4.5G</td><td>2016</td><td>LTE</td><td>—</td><td>3G,</td><td>&lt; 5</td><td>—</td><td>800, 1900, 2100,</td></tr><tr><td>4.5G</td><td>2016</td><td>LTE</td><td>—</td><td>3G,</td><td>&lt; 5</td><td>—</td><td>2500, 2600, 3500</td></tr><tr><td>5G</td><td>2018</td><td>NR</td><td>OFDMA</td><td>20G,<br>20G</td><td>&lt; 1<br>&lt; 1<br>&lt; 1</td><td>QPSK, 16QAM,<br>64QAM, 256QAM,</td><td>410-7125,<br>24250<br>52600</td></tr></tbody></table>

MHz to 6 MHz.

While in analog communications, a single modulated signal $y(t)$ is sufficient, in the digital case, two signals $y_1(t)$, $y_2(t)$ are modulated by bit 1 or 0 respectively. Consequently, in single bit transmission, the following possibilities are:

* In Amplitude Shift Keying (ASK), $A_c = \sqrt{\frac{2E_b}{T_b}}$ for bit 1, or $A_c = 0$ for bit 0 where $T_b$ is bit duration and $E_b$ is the transmitted signal energy per bit. This implies that the modulated signal $y_1(t) = \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_c t)$ for bit 1 and $y_2(t) = 0$ for bit 0.

* In Frequency Shift Keying (FSK), $f_c = f_1$ for bit 1, or $f_c = f_2$ for bit 0 implying that the modulated signal $y_1(t) = \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_1 t)$ for bit 1 and $y_2(t) = \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_2 t)$ for bit 0.

* In Phase Shift Keying (PSK), $\phi_c = 0$ for bit 1, or $\phi_c = \pi$ for bit 0 implying that the modulated signal $y_1(t) = \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_c t)$ for bit 1 and $y_2(t) = \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_c t + \pi)$ for bit 0. 4 PSK deals with 2 bit/symbol and 8 PSK deals with 3 bit/symbol... (cf. Fig. 20).

* Gaussian Minimum Shift Keying (GMSK):
This is a modulation scheme in which the phase of the carrier is modulated by the baseband signal. GMSK differs from MSK (Minimum Shift Keying) in that a Gaussian Filter of an appropriate bandwidth (defined by the $BT_b$ product) is used before the modulation stage. MSK is binary digital FM with a modulation index of 0.5. It has the following important characteristics: constant envelope, relatively narrow bandwidth and coherent detection capability. The most important characteristic of MSK is that it is a constant-envelope variety of modulation. This makes the modulation scheme more immune to noise than the Amplitude Shift Keying (ASK) scheme. GMSK uses a pre-modulation Gaussian filter which makes the output power spectrum more compact and given
by the transfer function:

$$H(f) = \exp\left[-\ln(\sqrt{2})(f/B)^2\right] \qquad (A2)$$

The pre-modulation Gaussian filter has narrow bandwidth and sharp cutoff properties which are required to suppress high-frequency components.

Symbol transmission goes beyond single bit by packing a series of bits into symbols of a given length such as dibits: 00,01,10,11 or tribits: 000,001,010,011, 100,101,110,111...

Some examples are given below:

* QPSK (Quadrature PSK) allocates phase $\phi_c$ to 0 for symbol 00, $\pi$ for symbol 01, $\pi/2$ for symbol 10 and finally $-\pi/2$ for symbol 11 implying four modulated signals $y_1(t)$, $y_2(t)$, $y_3(t)$, $y_4(t)$ for each symbol.

* QAM (Quadrature Amplitude Modulation) allows to modulate amplitude $A_c$ and phase $\phi_c$ of the high frequency carrier $A_c \cos(2\pi f_c t + \phi_c)$ as $y(t) = I(t) \cos(2\pi f_c t) + Q(t) \sin(2\pi f_c t)$ where $I(t), Q(t)$ are given by symbol coordinates as shown in Fig. 19 where 16 QAM is shown.

<figure><img src="image_21.png" /><figcaption>Fig.19: (Left) Constellation progress from 4 bit/symbol to 16 bit/symbol to 32 bit/symbol. (Right) 16 QAM constellation showing 16 symbols each containing 4 bits that modulate a high frequency carrier $A_c \cos(2\pi f_c t + \phi_c)$ with $f_c$ fixed. There are 16 modulated signals $y_i(t) = I_i(t) \cos(2\pi f_c t) + Q_i(t) \sin(2\pi f_c t)$, $i = 1, 2, \dots, 16$ with each $(I_i(t), Q_i(t))$ symbol coordinate corresponding to a 4 bit combination: 0000,0001,... For instance symbol 0001 has coordinates $I=4, Q=2$.</figcaption></figure>

Note that 8 QAM has a different constellation that does not fit into the 4-16-32 sequence as shown in Fig. 20 where 8 QAM is compared to 8 PSK modulation.

* In DPSK (Differential PSK), the phase shift is treated as a random variable distributed uniformly over $[-\pi, +\pi]$. The phase shift $\theta$ is the same during two consecutive signal transmission intervals $[(n-1)T_b, nT_b]$ and $[nT_b, (n+1)T_b]$.

The information phase sequence $\Delta\theta_n = \theta_n - \theta_{n-1}$ is differentially encoded with $\theta_n$ and $\theta_{n-1}$ independent of each other.

The transmitted signal $x(t)$ in the interval $[(n-1)T_b, (n+1)T_b]$ is

$$ \begin{aligned} x(t) &= \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_c t + \theta_{n-1} + \theta), \quad (n-1)T_b \le t < nT_b, \\ x(t) &= \sqrt{\frac{2E_b}{T_b}} \cos(2\pi f_c t + \theta_n + \theta), \quad nT_b \le t < (n+1)T_b \end{aligned} \qquad (A3) $$

* DQPSK is Differential QPSK meaning that the information is not carried by the absolute state, it is carried by the transition between states. In some cases there are also restrictions on allowable transitions. This occurs in $\pi/4$ DQPSK where the carrier trajectory does not go through the origin. A DQPSK transmission system
<figure><img src="image_22.png" /><figcaption>**Fig.20:** (Top) 8 QAM Constellation displaying a rectangular shape compared to 8 PSK. Each 3 bit symbol is shown and differs from its close neighbor by a single bit according to Grey coding that minimizes ISI. (Bottom) Comparison of 8 QAM and 8 PSK BER (Bit Error Probability) versus $E_b/N_0$ where $E_b$ is bit energy and $N_0$ is noise spectral density. 8 QAM is slightly better than 8 PSK. Adapted from Biglieri et al. [30]</figcaption></figure>

can transition from any symbol position to any other symbol position. The $\pi/4$ DQPSK modulation format is widely used in many applications.

The $\pi/4$ DQPSK modulation format uses two QPSK constellations offset by 45 degrees (cf. Fig. 21). Transitions occur from one constellation to the other. This guarantees that there is always a change in phase at each symbol, making clock recovery easier. Data encoding is in the magnitude and direction of the phase shift, not in the absolute position on the constellation in order to encode 2 bit/symbol. One advantage of $\pi/4$ DQPSK is that the signal trajectory does not pass through the origin, thus simplifying transmitter design.

* 8,16 VSB are digital VSB techniques where an 8,16 level baseband code is VSB modulated onto a given carrier frequency.

* OFDM is a multicarrier transmission technology that is being used in digital audio and video broadcasting (DAB and DVB). Typically, all adjacent carrier frequencies are orthogonally polarized. OFDM transmission system is able to operate in a 2K mode with a maximum of 1,705 carriers per OFDM symbol or 8K mode with a maximum of 6,817 carriers per OFDM symbol. Symbol duration in the latter is longer.

OFDM signals are organized in a frame structure. Each frame consists of 68 OFDM symbols. Four frames
<figure><img src="image_23.png" /><figcaption>**Fig.21:** QPSK (at left) and $\pi/4$ DQPSK (at right) are 2 bit/symbol modulation techniques. Adapted from Ref. [20]</figcaption></figure>

together constitute a super-frame. As each symbol in its turn is modulated on a number of carriers, a matrix is obtained. The distinct elements of the matrix are referred to as cells. DVB has specified 1,512 active carriers for the 2K mode. In 8K mode the number of active carriers is 6,048. The rest of the carriers information content is reference data.

## APPENDIX B: GALOIS AND CYCLIC REDUNDANCY CHECK POLYNOMIALS

Testing a communication channel requires generation of binary sequences in a fast and controllable way, akin to Random Number Generation in Monte-Carlo simulation. The main goal of PRBS (Pseudo Random Binary Sequence) generation [31], is to draw 0 or 1 in an equally probable fashion in order to have highly efficient crypting of communication as in spread-spectrum communications [4] used in wireless telephony or any message over some telecommunication channel. PRBS are useful for testing communication lines, storage media, coding techniques... A particularly efficient method for producing PRBS is based on primitive (akin to prime number) polynomials modulo 2 or Galois polynomials [31] called Galois Fields GF(2) with the following arithmetic:

$$0 \oplus 0 = 0, 0 \oplus 1 = 1, 1 \oplus 0 = 0, 1 \oplus 1 = 0.$$

$\oplus$ is the usual symbol for modulo 2 arithmetic corresponding to the logical XOR operation.

The coefficients of primitive polynomials modulo 2 are zero or one e.g. $x^3 + x^2 + 1$. They cannot be decomposed into a product of simpler modulo 2 polynomials (akin prime numbers). Hence $x^2 + 1 = (x + i)(x - i)$ with $i = \sqrt{-1}$ cannot be decomposed into simpler polynomials with real coefficients. When this polynomial is viewed as a modulo 2 Galois polynomial, it is not primitive since it can be decomposed into a product of simpler polynomials $x^2 + 1 \equiv x^2 + 2x + 1 = (x + 1)(x + 1)$ since in modulo 2 arithmetic the term $2x$ is equivalent to 0 according to the rule $(1 \oplus 1 = 0)$.

Galois fields such as GF($q^m$) are polynomials where $q$ is a prime number and $m$ is an integer equal to the symbol size. The number of elements in GF($q^m$) is $q^m$. For instance when dealing with simple bits as in PRBS, GF(2) ($q = 2, m = 1$) is used but if bytes are being considered, then GF($2^3$) ($q = 2, m = 3$) should be used.

<table><caption>**Table 22:** List of the first 10 Galois polynomials. They are generated with Shift Registers with connection nodes corresponding to the polynomial powers [31]. The + operation is performed with an XOR operation.</caption><thead><tr><th>Shift Register taps</th><th>Galois Polynomial</th></tr></thead><tbody><tr><td>(1, 0)</td><td>$x + 1$</td></tr><tr><td>(2, 1, 0)</td><td>$x^2 + x + 1$</td></tr><tr><td>(3, 1, 0)</td><td>$x^3 + x + 1$</td></tr><tr><td>(4, 1, 0)</td><td>$x^4 + x + 1$</td></tr><tr><td>(5, 2, 0)</td><td>$x^5 + x^2 + 1$</td></tr><tr><td>(6, 1, 0)</td><td>$x^6 + x + 1$</td></tr><tr><td>(7, 1, 0)</td><td>$x^7 + x + 1$</td></tr><tr><td>(8, 4, 3, 2, 0)</td><td>$x^8 + x^4 + x^3 + x^2 + 1$</td></tr><tr><td>(9, 4, 0)</td><td>$x^9 + x^4 + 1$</td></tr><tr><td>(10, 3, 0)</td><td>$x^{10} + x^3 + 1$</td></tr></tbody></table>
The method for producing PRBS requires only a single shift register *n* bits long and a few XOR or modulo 2 bit addition operations (⊕ gates).

There is one term for each non-zero coefficient in the primitive polynomial except the constant (zero bit) term. Table 22 contains a list of polynomials for $n \le 10$, showing that for a primitive polynomial of degree *n*, the first and last term are 1.

CRC (Cyclic Redundancy Check) polynomials allow to check the integrity of a file or a message transmitted over some communication channel. They are based on special polynomials called generators as displayed in Table 23.

The notion of Hamming distance [1] is very valuable in order to estimate any potential ISI. For instance in the case of two 3-bit symbols (000) and (111) belonging to a 3D symbol space, their Hamming distance is the XOR addition $0 \oplus 0 = 0, 0 \oplus 1 = 1, 1 \oplus 0 = 1, 1 \oplus 1 = 0$, applied separately to every bit, yielding 111 and afterward adding the bits in a decimal fashion to get finally 3.

Coding gain is given by [1] $G = 10 \log_{10} \left[ \left( \frac{d_{min}}{d_{min.c}} \right)^2 \left( \frac{E}{E_c} \right) \right]$ where Euclidean distances $d_{min}, d_{min.c}$ are considered between signal constellation symbols in uncoded cases and coded (denoted *c*). $E_c, E$ are average signal energies for the coded and uncoded cases.

Making the approximation $E \sim E_c$ coding gain becomes $G = 10 \log_{10} \left[ \left( \frac{d_{min}}{d_{min.c}} \right)^2 \right]$ Coding is considered successful when it increases the distance (Hamming or Euclidean) between constellation symbols.

CRC coding is based on considering the message as a polynomial $M(x)$ where the *i*-th bit of the message multiplies $x^i$. The least significant bit of the message is numbered 0. $G(x)$ is the generator polynomial (divisor) of degree *r*. The polynomial division takes place in Galois Field GF(2), meaning that all arithmetic operations are performed modulo 2.

The check sum value $C(x)$ is calculated by division of $x^r M(x)$ by $G(x)$ i.e. $x^r M(x) = Q(x)G(x) + C(x)$, with $Q(x)$ the quotient and $C(x)$ the remainder. The $x^r$ multiplication is equivalent to *r* bit shifts akin to multiplication by $10^r$ in the decimal system.

Subtracting this remainder from the dividend $x^r M(x)$ yields a polynomial $T(x) = x^r M(x) - C(x)$, which is exactly divisible by $G(x)$. $T(x)$ is then transmitted through some communication channel and received later as an eventually corrupted $R(x)$. A non-zero remainder resulting from division of $R(x)$ by $G(x)$ indicates corruption of the message.

<table><caption>**Table 23:** Some CRC polynomials and their applications. ITU is International Telecom Union a European organization. USB is Universal Serial Bus. ATM is Asymmetric Transfer Mode based on Statistical Multiplexing of digital data.</caption><thead><tr><th>Code Name</th><th>G(x)</th><th>Application</th></tr></thead><tbody><tr><td>CRC-1</td><td>x + 1</td><td>Parity Check</td></tr><tr><td>CRC-4-ITU</td><td>x<sup>4</sup> + x + 1</td><td>ITU G.704</td></tr><tr><td>CRC-5-ITU</td><td>x<sup>5</sup> + x<sup>4</sup> + x<sup>2</sup> + 1</td><td>ITU G.704</td></tr><tr><td>CRC-5-USB</td><td>x<sup>5</sup> + x<sup>2</sup> + 1</td><td>USB</td></tr><tr><td>CRC-6-ITU</td><td>x<sup>6</sup> + x + 1</td><td>ITU G.704</td></tr><tr><td>CRC-8-ATM</td><td>x<sup>8</sup> + x<sup>2</sup> + x + 1</td><td>ATM</td></tr><tr><td>CRC-8-CCITT</td><td>x<sup>8</sup> + x<sup>7</sup> + x<sup>3</sup> + x<sup>2</sup> + 1</td><td>1-Wire bus</td></tr><tr><td>CRC-8-Maxim</td><td>x<sup>8</sup> + x<sup>5</sup> + x<sup>4</sup> + 1</td><td>1-Wire bus</td></tr></tbody></table>

## APPENDIX C: PARTIAL RESPONSE POLYNOMIALS

Partial response coding is a signal equalization method initially developed to combat ISI [4] when signaling was based on sinc(x) (i.e. $sin(x)/x$) functions. It is a signal shaping method meant to reduce ISI in communication systems and recording by slimming pulses to eliminate distortion and increase digital storage density.
Partial Response (PR) coding is based on Delay polynomials (see Table 24) where a time delay operator $D$ acts on bit signals $a_k$ at instant $k$ to produce $Da_k = a_{k-1}$. In fact, digital data patterns are given by sequences of bits $a_k$ and when a magnetic head reads the signal by responding to magnetization changes, its action is equivalent to a differentiation. Head action can be expressed mathematically as $a_k - a_{k-1} = a_k - Da_k = (1 - D)a_k$. The operator given by $(1 - D)$ will result in +1 or -1 responses, depending on the direction of magnetization change. Table 24 gives several examples of PR coding along with the corresponding Delay polynomials and coding gains resulting from distance increase between symbols reducing ISI. Coding gains (in dB) displayed in Table 24 are given by minimal distances between constellation symbols before ($d_{min}$) and after ($d_{MF}$) application of Matched Filter [1]).

<table><caption>**Table 24:** $d_{min}^2$ is minimal square distance between constellation symbols. $d_{MF}^2$ is minimal square distance after Matched Filter (MF) operation. These distances yield coding gains $G = 10 \log_{10}(d_{min}^2/d_{MF}^2)$ in Partial Response Channels [1]. Note that $d_{MF}$ the coded distance is larger than the uncoded one $d_{min}$ meaning that ISI has been reduced. EPR means Extended Partial Response.</caption><thead><tr><th>Code Name</th><th>Delay Polynomial</th><th>$d_{min}^2$</th><th>$d_{MF}^2$</th><th>Coding gain (dB)<br>$G = 10 \log_{10}(d_{min}^2/d_{MF}^2)$</th></tr></thead><tbody><tr><td>PR1</td><td>(1 + D)</td><td>2</td><td>2</td><td>0</td></tr><tr><td>PR2</td><td>(1 + D)<sup>2</sup></td><td>4</td><td>6</td><td>-1.76</td></tr><tr><td>EPR2</td><td>(1 + D)<sup>3</sup></td><td>10</td><td>20</td><td>-3.01</td></tr><tr><td>Dicode</td><td>(1 - D)</td><td>2</td><td>2</td><td>0</td></tr><tr><td>PR4</td><td>(1 - D)(1 + D)</td><td>2</td><td>2</td><td>0</td></tr><tr><td>EPR4</td><td>(1 - D)(1 + D)<sup>2</sup></td><td>4</td><td>4</td><td>0</td></tr><tr><td>E2PR4</td><td>(1 - D)(1 + D)<sup>3</sup></td><td>6</td><td>10</td><td>-2.22</td></tr><tr><td>E3PR4</td><td>(1 - D)(1 + D)<sup>4</sup></td><td>12</td><td>26</td><td>-3.36</td></tr></tbody></table>

Table 25 gives classes of PR coding transfer function $H(z)$ along with the corresponding Delay polynomials and coding gains resulting from distance increase between symbols reducing ISI. Coding entails transforming a bit sequence $\{a_k\}$ into another one $\{b_k\}$ such that [32] $A(D) = \sum_k a_k D^k$, is related to $B(D) = \sum_k b_k D^k$ with a Delay polynomial $P_n(D) = \sum_{k=0}^{n+1} p_k D^k$, such that an output-input relation is expressed as: $B(D) = P_n(D)A(D)$. Thus $P_n(D)$ is an impulse response that could be Z-transformed [32] into a transfer function $H(z)$ as displayed in Table 25. $H(z)$ is a $1/z$ polynomial [4] type transfer function since $1/z$ is the Z-transform of the delay operator $D$.

<table><caption>**Table 25:** Classes of Partial-response signaling characteristics with nulls at DC or Nyquist frequency. Adapted from J.B Anderson [24] chapter 3 on Carrier Transmission. Class I is also called Duo-binary [4] signaling.</caption><thead><tr><th>Class</th><th>Delay Polynomial</th><th>Transfer function H(z)</th><th>Comments</th></tr></thead><tbody><tr><td>I</td><td>(1 + D)</td><td>1 + z<sup>-1</sup></td><td>Corresponds to PR1 (Table 24), Null at Nyquist</td></tr><tr><td>II</td><td>(1 + D)<sup>2</sup></td><td>1 + 2z<sup>-1</sup> + z<sup>-2</sup></td><td>Corresponds to PR2 (Table 24), Two nulls at Nyquist</td></tr><tr><td>III</td><td>(1 + D)(2 - D)</td><td>2 + z<sup>-1</sup> - z<sup>-2</sup></td><td>(2 - D) factor is unusual</td></tr><tr><td>IV</td><td>(1 + D)(1 - D)</td><td>1 - z<sup>-2</sup></td><td>Corresponds to PR4 (Table 24), Null at DC and at Nyquist</td></tr><tr><td>V</td><td>-(1 + D)<sup>2</sup>(1 - D)<sup>2</sup></td><td>-1 + 2z<sup>-2</sup> - z<sup>-4</sup></td><td>Null at DC</td></tr></tbody></table>
[1] J. L. LoCicero and B. P. Patel, Chapter 6 in *Mobile Communications Handbook*, S. S. Suthersan (Ed.), CRC Press, Boca Raton (1999).

[2] K.E.S Immink, **IEEE Trans. Comm.**, **37**, 413 (1989), K.E.S Immink, *Codes for Mass Data Storage Systems*, Second Edition, Shannon Foundation Publishers, Eindhoven, The Netherlands (2004).

[3] S. Mueller, *Repairing and Upgrading PC's*, 20th Edition, Pearson Education (2012).

[4] A. B. Carlson and P. B. Crilly, *Communication systems: An Introduction to Signals and Noise in Electrical Communication*, 5th Edition, McGraw-Hill, New York (2010).

[5] C. Berrou, A. Glavieux and P. Thitimajshima, *Near Shannon limit error-correcting coding and decoding: Turbo-codes*, Proceedings of **IEEE ICC'93**, Geneva, 1064 (1993).

[6] E. Deal, *Hamming, RS, BCH, LDPC Alphabet Soup of NAND ECC Parity Bytes*, Cyclic Design (2011).

[7] C-C Chu, Y-M Lin, C-H Yang, and H-Ch Chang, *A Fully Parallel BCH Codec with Double Error Correcting Capability for NOR Flash Applications*, 1605, **IEEE, ICASSP** (2012).

[8] R. Wang, *Introduction to Orthogonal Transforms*, Cambridge University Press, New-York (2011).

[9] Nuno de F. Garrido, *Available Techniques for Magnetic Hard Disk Drive Read Channel Equalization*, Tech. Report (2008).

[10] P. R. Gray, P. L. Hurst, S. H. Lewis and R. G. Meyer, *Analysis and Design of Analog Integrated Circuits*, Fifth Edition, Wiley (2009).

[11] N. Duann, *Flash Summit Meeting, Santa-Clara, USA*, Silicon Motion Inc. (2009).

[12] E. Hecht, *Optics*, Fourth Edition, Pearson Education-Addison-Wesley, San Francisco (2002)

[13] X. Liu, HB Jia and C. Ma, *Error correction codes for Optical Disc Storage*, in Proceedings of SPIE, Vol. 5643, SPIE Bellingham, WA (2005).

[14] J. Cavanagh, *Magnetic Recording Fundamentals*, Chapter 7 in *Digital Design and Verilog HDL Fundamentals*, 1st Edition, Boca Raton, CRC Press (2008).

[15] Z. Wu, *Coding and Iterative Detection for Magnetic Recording Channels*, Kluwer Academic Publishers, (2000).

[16] D.E. Knuth, *The Art of Computer Programming*, Volume 2: *Semi-numerical Algorithms*, Third Edition, Addison-Wesley (1997).

[17] R. Wood, Journal of Magnetism and Magnetic Materials **321**, 555 (2009).

[18] E. Fujiwara, M. Yashiro and T. Furuya, in *Essentials of Error-Control Coding techniques*, Academic Press (1990).

[19] H. Matsui and S. Mita, *A New Encoding and Decoding System of Reed-Solomon Codes for HDD*, **IEEE Trans. Magn.**, **45**, 3757 (2009).

[20] *Digital Modulation in Communications Systems: An Introduction*, Hewlett-Packard Application Note 1298 (1997).

[21] J-J Werner, **IEEE J. Selected Areas in Communications**, **9**, 785 (1991).

[22] I. Kalet and S. Shamai, *On the capacity of a Twisted-Wire pair: Gaussian Model*, **IEEE Trans. Comm.** **38** 379, (1990)

[23] W. Stallings, *Data and Computer Communications*, Tenth edition, Pearson Education, Inc. Upper Saddle River, New Jersey, 07458 (2014).

[24] J. B. Anderson, *Digital Transmission Engineering*, Chapter 3, Second Edition, IEEE Press and Wiley-Interscience (2005).

[25] T. Ogata, *Recent Status and Trends in Optical Submarine Cable Systems*, NEC Technical Journal Vol.5, 4 (2010)

[26] I. Djordjevic, W. Ryan, B. Vasic, *Coding for Optical Channels*, Springer Science+Business Media, LLC (2010).

[27] A. H. Gnauck, R. W. Tkach, A. R. Chraplyvy, and T. Li, *High-Capacity Optical Transmission Systems*, **IEEE J. Lightwave Technology** **26**, 1032 (2008)

[28] T. Mizuochi, *Recent progress in forward error correction and its interplay with transmission impairments*, **IEEE Selected Topics in Quantum Electronics**, **12**, 544 (2006).

[29] J. Proakis, *Encyclopedia of Telecommunications*, Vol. 1-5, Springer, New York (2003).

[30] S. Benedetto, E. Biglieri, V. Castellani, *Digital Transmission Theory*, Prentice Hall (1987).

[31] W. H. Press, W. T. Vetterling, S. A. Teukolsky and B. P. Flannery, *Numerical Recipes in C: The Art of Scientific Computing*, Third Edition, Cambridge University Press, New-York (2007).

[32] H. K. Thapar and A. M. Pate1, *A Class of Partial Response Systems for increasing storage density in magnetic recording*, **IEEE Trans. Magn. 23**, 3666 (1987).