0% found this document useful (0 votes)
168 views

Coding Theory

This document discusses coding theory and provides examples of error-detecting and error-correcting codes. It defines what a code is and how it converts information into another representation for communication. It then discusses error-detecting codes like ISBN codes and provides an example of an error-correcting code that can detect and correct errors. Finally, it discusses linear codes, encoding and decoding linear codes, Hamming distance, and approaches to solving coding theory problems computationally.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views

Coding Theory

This document discusses coding theory and provides examples of error-detecting and error-correcting codes. It defines what a code is and how it converts information into another representation for communication. It then discusses error-detecting codes like ISBN codes and provides an example of an error-correcting code that can detect and correct errors. Finally, it discusses linear codes, encoding and decoding linear codes, Hamming distance, and approaches to solving coding theory problems computationally.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

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