ECE 4371, Fall, 2017 Introduction to Telecommunication Engineering/Telecommunication Laboratory Zhu Han Department of Electrical and Computer Engineering Class 14 Oct. 23 rd , 2017
Mar 13, 2016
ECE 4371, Fall, 2017
Introduction to Telecommunication Engineering/Telecommunication Laboratory
Zhu Han
Department of Electrical and Computer Engineering
Class 14
Oct. 23rd, 2017
OutlineOutline ARQ FEC Basics Linear code: Hamming code
Automatic Repeat-reQuest (ARQ)Automatic Repeat-reQuest (ARQ) Alice and Bob on their cell phones
– Both Alice and Bob are talking
What if Alice couldn’t understand Bob?– Bob asks Alice to repeat what she said
What if Bob hasn’t heard Alice for a while?– Is Alice just being quiet?– Or, have Bob and Alice lost reception?– How long should Bob just keep on talking?– Maybe Alice should periodically say “uh huh”– … or Bob should ask “Can you hear me now?”
ARQARQ Acknowledgments from receiver
– Positive: “okay” or “ACK”– Negative: “please repeat that” or “NACK”
Timeout by the sender (“stop and wait”)– Don’t wait indefinitely without receiving some response– … whether a positive or a negative acknowledgment
Retransmission by the sender– After receiving a “NACK” from the receiver– After receiving no feedback from the receiver
Error Correcting CodesError Correcting Codes Adding redundancy to the original message To detect and correct errors Crucial when it’s impossible to resend the message
(interplanetary communications, storage..) and when the channel is very noisy (wireless communication)Information
Source
Message
Transmitter
Noise Source
Destination
Message
Reciever
ReceivedSignal
Signal
Message = [1 1 1 1]
Noise = [0 0 1 0]
Message = [1 1 0 1]
Types of Error Correcting CodesTypes of Error Correcting Codes Repetition Code Linear Block Code, e.g. Hamming Cyclic Code, e.g. CRC BCH and RS Code Convolutional Code
– Tradition, Viterbi Decoding– Turbo Code– LDPC Code
Coded Modulation– TCM – BICM
Repetition CodeRepetition Code Simple Example: reduce the capacity by 3Simple Example: reduce the capacity by 3
Recovered state
Parity CheckParity Check Add one bit so that xor of all bit is zero
– Send, correction, miss
– Add vertically or horizontally
Applications: ASCII, Serial port transmission
ISDN NumberISDN Number ISBN 10
– a modulus 11 with weights 10 to 2, using X instead of 10 where ten would occur as a check digit
– ISBN 0-306-40615-2
ISBN 13– Calculating an ISBN 13 check digit requires
that each of the first twelve digits of the 13-digit ISBN be multiplied alternately by 1 or 3. Next, take the sum modulo 10 of these products. This result is subtracted from 10.
– ISBN 978-0-306-40615-7.
Hammings SolutionHammings Solution A type of Linear Block Code Encoding: H(7,4)
Multiple ChecksumsMessage=[a b c d]
r= (a+b+d) mod 2s= (a+b+c) mod 2t= (b+c+d) mod 2
Code=[r s a t b c d]
Coding rate: 4/7– Smaller, more redundancy, the better protection.– Difference between detection and correction
Message=[1 0 1 0] r=(1+0+0) mod 2 =1 s=(1+0+1) mod 2 =0 t=(0+1+0) mod 2 =1Code=[ 1 0 1 1 0 1 0 ]
Error Detection AbilityError Detection Ability
100,000 iterationsAdd Errors to (7,4) dataNo repeat randomsMeasure Error Detection
Error Detection•One Error: 100%•Two Errors: 100% •Three Errors: 83.43%•Four Errors: 79.76%
Stochastic Simulation:
Results:
Fig 1: Error Detection
50%
60%
70%
80%
90%
100%
1 2 3 4Errors Introduced
Perc
ent E
rror
s D
etec
ted
(%)
How it works: 3 dotsHow it works: 3 dots
Only 3 possible wordsDistance Increment = 1
One Excluded State (red)
It is really a checksum. Single Error Detection No error correction
A B C
A B C
A C
Two valid code words (blue)
This is a graphic representation of the “Hamming Distance”
Hamming DistanceHamming Distance 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
Another DotAnother Dot
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.
Even More DotsEven More Dots
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.
Multi-dimensional CodesMulti-dimensional Codes
Code Space: • 2-dimensional • 5 element statesCircle packing makes more efficient use of the code-space
Cannon BallsCannon Balls
http://wikisource.org/wiki/Cannonball_stacking http://mathworld.wolfram.com/SpherePacking.html
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
ExampleExample Visualization of eight code words in a 6-typle space
Types of Error Correcting CodesTypes of Error Correcting Codes Repetition Code Linear Block Code, e.g. Hamming Cyclic Code, e.g. CRC BCH and RS Code Convolutional Code
– Tradition, Viterbi Decoding– Turbo Code– LDPC Code
Coded Modulation– TCM – BICM
Hamming CodeHamming Code H(n,k): k information bit length, n overall code length n=2^m-1, k=2^m-m-1: H(7,4), rate (4/7); H(15,11), rate (11/15); H(31,26), rate (26/31) H(7,4): Distance d=3, correction ability 1, detection ability 2. Remember that it is good to have larger distance and rate. Larger n means larger delay, but usually better code
Hamming Code ExampleHamming Code Example H(7,4) Generator matrix G: first 4-by-4 identical matrix Message information vector p
Transmission vector x Received vector r
and error vector e Parity check matrix H
Error CorrectionError Correction If there is no error, syndrome vector z=zeros
If there is one error at location 2
New syndrome vector z is
which corresponds to the second column of H. Thus, an error has been detected in position 2, and can be corrected
Important Hamming CodesImportant Hamming Codes Hamming (7,4,3) -code. It has 16 codewords of length 7. It can
be used to send 27 = 128 messages and can be used to correct 1 error.
• Golay (23,12,7) -code. It has 4 096 codewords. It can be used to transmit 8 3888 608 messages and can correct 3 errors.
Quadratic residue (47,24,11) -code. It has 16 777 216 codewords and can be used to transmit 140 737 488 355 238 messages and correct 5 errors.
Another Example: EncodingAnother Example: Encoding
we multiply this matrix
1111000011010010100101100001
H
But why?
You can verify that:
To encode our message
By our messagemessage code H
Hamming[1 0 0 0]=[1 0 0 0 0 1 1]Hamming[0 1 0 0]=[0 1 0 0 1 0 1]Hamming[0 0 1 0]=[0 0 1 0 1 1 0]Hamming[0 0 0 1]=[0 0 0 1 1 1 1]
Where multiplication is the logical ANDAnd addition is the logical XOR
Example: Add noiseExample: Add noise If our message isMessage = [0 1 1 0] Our Multiplying yieldsCode = [0 1 1 0 0 1 1]
Lets add an error, so Pick a digit to mutate
1100110
01101001010010
11110000011010011010010111000010
1111000011010010100101100001
0110
Code => [0 1 0 0 0 1 1]
Example: Testing the messageExample: Testing the message
We receive the erroneous string:
Code = [0 1 0 0 0 1 1] We test it:
Decoder*CodeT
=[0 1 1] And indeed it has an error
The matrix used to decode is:
To test if a code is valid: Does Decoder*CodeT
=[0 0 0]– Yes means its valid– No means it has error/s
101010111001101111000
Decoder
Example: Repairing the messageExample: Repairing 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
We trim our received code by 3 elements and we have our original message.[0 1 1 0 0 1 1] => [0 1 1 0]
Decoder*codeT is
[ 0 1 1]
This is the third element of our code
Our repaired code is[0 1 1 0 0 1 1]
101010111001101111000
Decoder
Coding Gain
Coding Rate R=k/n, k, no. of message symbol, n overall symbol Word SNR and bit SNR
For a coding scheme, the coding gain at a given bit error probability is defined as the difference between the energy per information bit required by the coding scheme to achieve the given bit error probability and that by uncoded transmission.
Coding Gain ExampleCoding Gain Example
Encoder/Decoder of Linear CodeEncoder/Decoder of Linear Code Encoder: just xor gates Decoder: Syndrome