Title: Error Correcting Codes
1Error Correcting Codes
W
- A basic description of the Hamming (7,4) Linear
Error Correcting Code, and stacking cannon balls
in n-dimensions.
2The Problem Noise
W
h
Message 1 1 1 1
Message 1 1 0 1
Noise 0 0 1 0
3Poor solutions
W
h
a
- Repeats
- Data 1 1 1 1
- Message
- 1 1 1 1
- 1 1 1 1
- 1 1 1 1
- Single CheckSum -
- Truth table
- General form
- Data1 1 1 1
- Message1 1 1 1 0
4Why they are poor
W h a t
- Repeat 3 times
- This divide W by 3
- It divides overall capacity by at least a factor
of 3x. - Single Checksum
- Allows an error to be detected but requires the
message to be discarded and resent. - Each error reduces the channel capacity by at
least a factor of 2 because of the thrown away
message.
Shannon Efficiency
5Hammings Solution
W h a t i
- Encoding
- Multiple Checksums
- Messagea b c d
- r (abd) mod 2
- s (abc) mod 2
- t (bcd) mod 2
- Coder s a t b c d
Message1 0 1 0 r(100) mod 2 1
s(101) mod 2 0 t(010) mod 2 1 Code
1 0 1 1 0 1 0
6Simulation
W h a t i s
Stochastic Simulation
100,000 iterations Add Errors to (7,4) data No
repeat randoms Measure Error Detection
Results
- Error Detection
- One Error 100
- Two Errors 100
- Three Errors 83.43
- Four Errors 79.76
7How it works 3 dots
W h a t i s t
- Only 3 possible words
- Distance Increment 1
One Excluded State (red)
Two valid code words (blue)
- It is really a checksum.
- Single Error Detection
- No error correction
This is a graphic representation of the Hamming
Distance
8Hamming Distance
W h a t i s t h
- Definition
- The number of elements that need to be changed
(corrupted) to turn one codeword into another. - The hamming distance from
- 0101 to 0110 is 2 bits
- 1011101 to 1001001 is 2 bits
- butter to ladder is 4 characters
- roses to toned is 3 characters
9Another Dot
W h a t i s t h e
- The code space is now 4.
- The hamming distance is still 1.
Allows Error DETECTION for Hamming Distance
1. Error CORRECTION for Hamming Distance 1
For Hamming distances greater than 1 an error
gives a false correction.
10Even More Dots
W h a t i s t h e M
Allows Error DETECTION for Hamming Distance
2. Error CORRECTION for Hamming Distance 1.
- For Hamming distances greater than 2 an error
gives a false correction. - For Hamming distance of 2 there is an error
detected, but it can not be corrected.
11Multi-dimensional Codes
W h a t i s t h e M a
- Code Space
- 2-dimensional
- 5 element states
- Circle packing makes more efficient use of the
code-space
12Cannon Balls
W h a t i s t h e M a t
Efficient Circle packing is the same as
efficient 2-d code spacing
Efficient Sphere packing is the same as
efficient 3-d code spacing
Efficient n-dimensional sphere packing is the
same as n-code spacing
- http//wikisource.org/wiki/Cannonball_stacking
- http//mathworld.wolfram.com/SpherePacking.html
13More on Codes
W h a t i s t h e M a t r
- Hamming (11,7)
- Golay Codes
- Convolutional Codes
- Reed-Solomon Error Correction
- Turbo Codes
- Digital Fountain Codes
14An Example
W h a t i s t h e M a t r i
- We will
- Encode a message
- Add noise to the transmission
- Detect the error
- Repair the error
15Encoding the message
W h a t i s t h e M a t r i x ?
But why?
To encode our message
we multiply this matrix
You can verify that
Hamming1 0 0 01 0 0 0 0 1 1 Hamming0 1 0
00 1 0 0 1 0 1 Hamming0 0 1 00 0 1 0 1 1
0 Hamming0 0 0 10 0 0 1 1 1 1
By our message
Where multiplication is the logical AND And
addition is the logical XOR
16Add noise
- If our message is
- Message 0 1 1 0
- Our Multiplying yields
- Code 0 1 1 0 0 1 1
- Lets add an error,
- so Pick a digit to mutate
Code gt 0 1 0 0 0 1 1
17Testing the message
- The matrix used to decode is
- To test if a code is valid
- Does DecoderCodeT
- 0 0 0
- Yes means its valid
- No means it has error/s
- We receive the erroneous string
- Code 0 1 0 0 0 1 1
- We test it
- DecoderCodeT
- 0 1 1
- And indeed it has an error
18Repairing the message
- To repair the code we find the collumn in the
decoder matrix whose elements are the row results
of the test vector - We then change
- DecodercodeT is
- 0 1 1
- This is the third element of our code
- Our repaired code is
- 0 1 1 0 0 1 1
19Decoding the message
- We trim our received code by 3 elements and we
have our original message. - 0 1 1 0 0 1 1 gt 0 1 1 0
20Questions?