– “What is this all about? Can’t we just have coding schemes with no
redundancy at all?”
– “Page after page, this is no different from lossy source coding. We
have to account for noise, understand?”
Before delving into channel coding, the author feels it is necessary
to clarify the relationship between source coding and channel coding.
While reading the material in this section, the author often found it
puzzling: the source coding process can be abstracted as a form of
generalized transmission, so why must we spare a precious four lecture
hours out of an eight-week course to study channel coding? In the
preceding chapters, the author painstakingly attempted to remove
redundancy from information, yet the purpose of channel coding is
precisely to add redundancy?
First, source coding and channel coding do not describe the same
thing in information theory – they actually address two independent
problems in the field: leaving aside the channel, how should we compress
information? Leaving aside the source, since noise is inevitable in a
channel, how should we resist its interference? Source coding achieves a
transmission rate close to the entropy of the source by compressing its
redundant parts to the utmost; channel coding, on the other hand,
introduces redundancy to counteract noise, thereby bringing the
transmission rate close to the channel capacity. Thus, source coding and
channel coding are two independent areas of research in information
theory.
In fact, a unified theory does exist – joint source-channel coding.
However, the Shannon separation theorem shows that, under lossless
conditions, source coding and channel coding can be performed separately
without any loss of performance. Since theory supports this decoupling,
why not consider the two problems independently to achieve greater
generality? Engineers working on the H.265 algorithm need not know
whether the data stream they encode will be transmitted via optical disc
or 5G, and 5G communications engineers need not know whether the data
they transmit is a livestream of a SJTU premium course or a popular
forum post. Such decoupling makes system development more flexible and
efficient.
With that motivation, we arrive at this chapter: Channel
Coding. In this chapter, we study errors in channel
transmission, how to decode in order to minimize the probability of
errors, how the channel coding theorem proves the existence of
error-free coding schemes under certain conditions, and the construction
and performance analysis of several classical linear block codes. In the
analysis of linear block codes, we will employ some elegant properties
of linear spaces and cyclic polynomials.