Source Coding Vs Channel Coding
Source Coding Vs Channel Coding
One of the key advantages of digital communication is that in order for the
communication to happen successfully, it is not important to convey the
actual source signals/messages themselves. It is sufficient to convey just a
lossless representation of the source.
For example, if the source had only two possible strings as outputs in any
given turn (for example, “YES” or “NO”), then it is sufficient to simply
transmit a 0(mapped to “YES”, say) and a 1 (for “NO”). The receiver can
easily reconstruct (assuming noiseless reception of the transmitted bit,) the
actual source message provided it knows this mapping between {YES, NO}
and {0,1}.
He then looked at answering the question - “Given a noiseless channel,
what is the most efficient way of communicating the source message to the
receiver?”. Asource code is something which attempts to answer this
mathematically (The rough idea is, highly probable symbols are assigned
the shortest coded transmissions). There have been many variations,
improvements, etc since Shannon’s time. But is the goal of all source coding
- using the channel (which can also be a ‘time’ channel like a storage
medium) most efficiently (transmit less, convey maximum).
Given this random nature of the channel (we typically know something
about it, like the type of randomness, the degree of it etc.), Shannon asked
the question - “What is the maximum rate at which we can convey
information with small chance of error through this probabilistic channel?”,
and thus was born channel coding, which is the art of designing mapping
the (source-coded) information symbols to the noisy-channel such that
communication happens at the maximum possible rate as well as low error
probabilities. Again this has grown leaps and bounds over the years, but
Shannon gave us the foundation for it all.
2. Source coding is much about removing the redundant data or the data
which is not that important for the data to be conveyed to the
receiver, I mean the extra data. It is more like quantizing and run
length coding, where in you can send a code like '05'(zero five)which
symbolizes five zeros at a stretch instead of sending 00000. So in
source coding we remove more of a redundant data which is not.
Channel coding: Channel coding is more about adding some extra bits
in the form of parity bits so that you can protect the data from being
becoming corrupt. Or these data will also serve as the mathematical
encryption. And also even helps in correction the corrupt data.
3. Source coding is much about removing the redundant data or the data
which is not that important for the data to be conveyed to the
receiver, I mean the extra data. It is more like quantizing and run
length coding, where in you can send a code like '05'(zero five)which
symbolizes five zeros at a stretch instead of sending 00000. So in
source coding we remove more of a redundant data which is not.
Channel coding: Channel coding is more about adding some extra bits
in the form of parity bits so that you can protect the data from being
becoming corrupt. Or these data will also serve as the mathematical
encryption. And also even helps in correction the corrupt data.