Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 3

Main articles: Block code and Convolutional code

A block code (specifically a Hamming code) where


redundant bits are added as a block to the end of the initial message

A continuous convolutional code where redundant bits are added


continuously into the structure of the code word
The two main categories of ECC codes are block codes and convolutional codes.
 Block codes work on fixed-size blocks (packets) of bits or symbols of predetermined size. Practical block codes can
generally be hard-decoded in polynomial time to their block length.

 Convolutional codes work on bit or symbol streams of arbitrary length. They are most often soft decoded with
the Viterbi algorithm, though other algorithms are sometimes used. Viterbi decoding allows asymptotically optimal decoding
efficiency with increasing constraint length of the convolutional code, but at the expense of exponentially increasing com-
plexity. A convolutional code that is terminated is also a 'block code' in that it encodes a block of input data, but the block
size of a convolutional code is generally arbitrary, while block codes have a fixed size dictated by their algebraic character-
istics. Types of termination for convolutional codes include "tail-biting" and "bit-flushing".

There are many types of block codes; Reed–Solomon coding is noteworthy for its widespread use in compact discs, DVDs,
and hard disk drives. Other examples of classical block codes include Golay, BCH, Multidimensional parity, and Hamming
codes.
Hamming ECC is commonly used to correct NAND flash memory errors.[6] This provides single-bit error correction and 2-bit error
detection. Hamming codes are only suitable for more reliable single-level cell (SLC) NAND. Denser multi-level cell (MLC) NAND
may use multi-bit correcting ECC such as BCH or Reed–Solomon.[7][8] NOR Flash typically does not use any error correction.[7]
Classical block codes are usually decoded using hard-decision algorithms,[9] which means that for every input and output signal
a hard decision is made whether it corresponds to a one or a zero bit. In contrast, convolutional codes are typically decoded us-
ing soft-decision algorithms like the Viterbi, MAP or BCJR algorithms, which process (discretized) analog signals, and which al-
low for much higher error-correction performance than hard-decision decoding.
Nearly all classical block codes apply the algebraic properties of finite fields. Hence classical block codes are often referred to
as algebraic codes.
In contrast to classical block codes that often specify an error-detecting or error-correcting ability, many modern block codes
such as LDPC codes lack such guarantees. Instead, modern codes are evaluated in terms of their bit error rates.
Most forward error correction codes correct only bit-flips, but not bit-insertions or bit-deletions. In this setting, the Hamming
distance is the appropriate way to measure the bit error rate. A few forward error correction codes are designed to correct bit-in-
sertions and bit-deletions, such as Marker Codes and Watermark Codes. The Levenshtein distance is a more appropriate way
to measure the bit error rate when using such codes. [10]

Code-rate and the tradeoff between reliability and data


rate[edit]
See also: Bit rate § Information rate
The fundamental principle of ECC is to add redundant bits in order to help the decoder to find out the true message that was en-
coded by the transmitter. The code-rate of a given ECC system is defined as the ratio between the number of information bits
and the total number of bits (i.e., information plus redundancy bits) in a given communication package. The code-rate is hence a
real number. A low code-rate close to zero implies a strong code that uses many redundant bits to achieve a good performance,
while a large code-rate close to 1 implies a weak code.
The redundant bits that protect the information have to be transferred using the same communication resources that they are
trying to protect. This causes a fundamental tradeoff between reliability and data rate.[11] In one extreme, a strong code (with low
code-rate) can induce an important increase in the receiver SNR (signal-to-noise-ratio) decreasing the bit error rate, at the cost
of reducing the effective data rate. On the other extreme, not using any ECC (i.e., a code-rate equal to 1) uses the full channel
for information transfer purposes, at the cost of leaving the bits without any additional protection.
One interesting question is the following: how efficient in terms of information transfer can an ECC be that has a negligible de-
coding error rate? This question was answered by Claude Shannon with his second theorem, which says that the channel ca-
pacity is the maximum bit rate achievable by any ECC whose error rate tends to zero:[12] His proof relies on Gaussian random
coding, which is not suitable to real-world applications. The upper bound given by Shannon's work inspired a long journey in de-
signing ECCs that can come close to the ultimate performance boundary. Various codes today can attain almost the Shannon
limit. However, capacity achieving ECCs are usually extremely complex to implement.
The most popular ECCs have a trade-off between performance and computational complexity. Usually, their parameters give a
range of possible code rates, which can be optimized depending on the scenario. Usually, this optimization is done in order to
achieve a low decoding error probability while minimizing the impact to the data rate. Another criterion for optimizing the code
rate is to balance low error rate and retransmissions number in order to the energy cost of the communication.[13]

Concatenated ECC codes for improved performance[edit]


Main article: Concatenated error correction codes
Classical (algebraic) block codes and convolutional codes are frequently combined in concatenated coding schemes in which a
short constraint-length Viterbi-decoded convolutional code does most of the work and a block code (usually Reed–Solomon)
with larger symbol size and block length "mops up" any errors made by the convolutional decoder. Single pass decoding with
this family of error correction codes can yield very low error rates, but for long range transmission conditions (like deep space) it-
erative decoding is recommended.
Concatenated codes have been standard practice in satellite and deep space communications since Voyager 2 first used the
technique in its 1986 encounter with Uranus. The Galileo craft used iterative concatenated codes to compensate for the very
high error rate conditions caused by having a failed antenna.

Low-density parity-check (LDPC)[edit]


Main article: Low-density parity-check code
Low-density parity-check (LDPC) codes are a class of highly efficient linear block codes made from many single parity check
(SPC) codes. They can provide performance very close to the channel capacity (the theoretical maximum) using an iterated
soft-decision decoding approach, at linear time complexity in terms of their block length. Practical implementations rely heavily
on decoding the constituent SPC codes in parallel.
LDPC codes were first introduced by Robert G. Gallager in his PhD thesis in 1960, but due to the computational effort in imple-
menting encoder and decoder and the introduction of Reed–Solomon codes, they were mostly ignored until the 1990s.
LDPC codes are now used in many recent high-speed communication standards, such as DVB-S2 (Digital Video Broadcasting –
Satellite – Second Generation), WiMAX (IEEE 802.16e standard for microwave communications), High-Speed Wireless LAN
(IEEE 802.11n),[14] 10GBase-T Ethernet (802.3an) and G.hn/G.9960 (ITU-T Standard for networking over power lines, phone
lines and coaxial cable). Other LDPC codes are standardized for wireless communication standards
within 3GPP MBMS (see fountain codes).

Turbo codes[edit]
Main article: Turbo code

Shah Jahan, 17th century painting

Artistic depiction of Mumtaz Mahal

The Taj Mahal was commissioned by Shah Jahan in 1631, to be built in the memory of his wife Mumtaz Mahal, who died on 17
June that year while giving birth to their 14th child, Gauhara Begum.[10][11] Construction started in 1632,[12] and the mausoleum was
completed in 1648, while the surrounding buildings and garden were finished five years later.[13] The imperial court documenting
Shah Jahan's grief after the death of Mumtaz Mahal illustrates the love story held as the inspiration for the Taj Mahal.[14]
According to contemporary historians Muhammad Amin Qazvini, Abdul Hamid Lahori and Muhammad Saleh Kamboh, Shah Ja-
han did not show the same level of affection for others as he had shown Mumtaz while she was alive. After her death, he
avoided royal affairs for a week due to his grief and gave up listening to music and lavish dressing for two years. Shah Jahan
was enamored by the beauty of the land at the south side of Agra on which a mansion belonging to Raja Jai Singh I stood and
chose the place for the construction of Mumtaz's tomb after Jai Singh agreed to donate it to the emperor.[15]

Architecture and design

The Taj Mahal complex is situated on a platform on the banks of


the Yamuna River.
Main article: Origins and architecture of the Taj Mahal
The Taj Mahal incorporates and expands on design traditions of Indo-Islamic and Mughal architecture.[16] Inspirations for the
building came from successful Timurid and Mughal buildings including the Gur-e Amir in Samarkand (the tomb of Timur, progen-
itor of the Mughal dynasty) and Humayun's Tomb in Delhi which inspired the Charbagh gardens and hasht-behesht plan of the
site.[17][18] The building complex employs symmetrical constructions with the usage of various shapes and symbols.[16] While the
mausoleum is constructed of white marble inlaid with semi-precious stones, red sandstone was used for other buildings in the
complex similar to the Mughal era buildings of the time.[19] The entire complex sits on platform measuring 984 feet (300 m) in
length and 28.5 feet (8.7 m) in height on the banks of Yamuna river. The platform is built with varying patterns of dark and light
colored sandstone.[20]

Exterior

You might also like