Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Coding Theory

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17
At a glance
Powered by AI
The key takeaways are that coding theory deals with transmitting data across noisy channels and recovering corrupted messages. Codes convert information into another representation for communication and consist of encoding and decoding processes.

A code converts information into another representation for communication through a channel. The main components of a code are the message source, encoder, channel, decoder, and receiver. Encoding is the process of converting the message into codewords and decoding is recovering the original message.

Error-detecting codes can detect errors but not correct them, while error-correcting codes can both detect and correct errors due to noisy channels. Error-correcting codes are generally more complex and computationally expensive than error-detecting codes.

Coding Theory

Kaman Phamdo
Mentor: Sean Ballentine
December 9, 2015
What is a code?
● A code converts information into another representation
● Used for communication through a channel
● How computers communicate
● Encoding
● Decoding
What is a code?
message source receiver

source encoder channel source decoder

NOISE
Example 1
We → 00
love → 01
laugh → 10
math → 11

Suppose we wanted to send the message “We love math”...


Example 1
We → 00
We love math
love → 01 We love laugh
laugh → 10
math → 11

00 01 11 channel 00 01 10

no error detected
NOISE
Error-Detecting Codes
● ISBN (book numbers) - a 10-digit code used to uniquely
identify a book
● Last digit is a check digit used for error detection
● Error-detecting but not error-correcting
Error-Correcting Example
We → 00000
love → 00111
laugh → 11001
math → 11110

Suppose we wanted to send the message “We love math” again,


but this time using a longer length for code words.
Error-Correcting Example
We → 00000
We love math love → 00111 We love math
laugh → 11001
math → 11110

00000 00111 11110 channel 00000 00111 11111

error detected (maximum


NOISE likelihood choice is “math”)
Error-Correcting Codes
● Need to detect and correct errors due to noisy channels
● Can be more expensive and less efficient
● We want good error-correcting capabilities and transmission
rates
● Coding theory examines transmission of data across noisy
channels and recovery of corrupted messages
Hamming Distance
● Let x and y be words of length n over alphabet A. The
Hamming distance d(x,y) is the number of places at which x
and y differ.
● We can define a minimum Hamming distance for a code
● Larger minimum distance = better error-correcting capability
Linear Codes
● A linear code is an error-correcting code in which each linear
combination of codewords are also in the coding alphabet
● Linear codes are vector spaces
● Easier to encode and decode
● Example: A = {000, 001, 010, 011}
Encoding Linear Codes
● Let C be a binary linear code with basis {r1 . . . rk}
● C can represent 2k pieces of information (words)
● Any codeword u can be written uniquely as: u1r1 + . . . + ukrk
● The process of representing these elements is called encoding
Decoding Linear Codes
● For non-linear codes, decoding can require exponential
computing
● This is why we want linear codes to use in practice
● Nearest neighbor decoding: simple algorithm for decoding
linear codes
The main coding theory problem
● Three parameters
○ d - Minimum (hamming) distance
○ n - Length of code words
○ M - Size of coding alphabet
● Given a fixed n and d, what is the largest possible size M that
a code can achieve?
● We also examined fixing the other two parameters
Hamming Ball
● For alphabet A, a ball of radius r and center u is the set of
vectors in A that have a distance ≤ r from center u.
● The size of a ball of radius r and vectors of length n is given
by: (for a binary code)
Our Approach
● Used Python to create computational algorithm
● Created a list to hold our optimal code and added 0 vector
● Generated a code that included each possible vector of at
least distance d
● Continued until we had every possibility
● Kept track of best choice
More on Coding Theory
● Other possible paths:
○ Nonlinear codes
○ Nonbinary codes
● Coding Theory: A First Course - San Ling, Chaoping Xing

You might also like