Professional Documents
Culture Documents
Wireless Communication
Zhu Han
Department of Electrical and Computer Engineering
Class 19
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?
Signal Received
Signal
Message Message
Message = [1 1 1 1] Message = [1 1 0 1]
Noise
Source
Noise = [0 0 1 0]
Types 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 Code
Simple Example: reduce the capacity by 3
Recovered state
Parity Check
Add one bit so that xor of all bit is zero
– Send, correction, miss
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 Solution
A type of Linear Block Code
Encoding: H(7,4)
Multiple Checksums Message=[1 0 1 0]
Message=[a b c d] r=(1+0+0) mod 2 =1
r= (a+b+d) mod 2 s=(1+0+1) mod 2 =0
s= (a+b+c) mod 2
t=(0+1+0) mod 2 =1
t= (b+c+d) mod 2
Code=[ 1 0 1 1 0 1 0 ]
Code=[r s a t b c d]
Coding rate: 4/7
– Smaller, more redundancy, the better protection.
– Difference between detection and correction
Error Detection Ability
Fig 1: Error Detection
Stochastic Simulation: 100%
100,000 iterations
Add Errors to (7,4) data
No repeat randoms
Measure Error Detection 80%
Results:
Error Detection
70%
One Excluded State (red)
A B C Two valid code words (blue)
It is really a checksum.
Single Error Detection
No error correction
A C
Allows:
Error DETECTION for For Hamming distances greater than 1
Hamming Distance = 1. an error gives a false correction.
Error CORRECTION for
Hamming Distance =1
Even More Dots
Allows:
Error DETECTION for •For Hamming distances greater than
Hamming Distance = 2. 2 an error gives a false correction.
•For Hamming distance of 2 there is
Error CORRECTION for an error detected, but it can not be
Hamming Distance =1. corrected.
Code Space:
• 2-dimensional
• 5 element states
Circle packing makes more
efficient use of the code-space
Cannon Balls
Efficient Circle packing is the same Efficient Sphere packing is the same
as efficient 2-d code spacing as efficient 3-d code spacing
http://wikisource.org/wiki/Cannonball_stacking
http://mathworld.wolfram.com/SpherePacking.html
Example
Visualization of eight code words in a 6-typle space
Another Example: Encoding
H
0 0
1 0 1 1 0
Hamming[0
Hamming[0
Hamming[0
1
0
0
0
1
0
0]=[0
0]=[0
1]=[0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1]
0]
1]
0 0 0 1 1 1 1
By our message
code H message
Where multiplication is the logical AND
And addition is the logical XOR
Example: Add noise
If our message is
1 0 0 0 0 1 1
Message = [0 1 1 0] 0 1 0 0 1 0 1
Our Multiplying yields 0 1 1 0
0 0 1 0 1 1 0
Code = [0 1 1 0 0 1 1]
0 0 0 1 1 1 1
0 1 0 0 1 0 1
Code => [0 1 0 0 0 1 1] 0 0 1 0 1 1 0
0 1 1 0 0 1 1
Example: Testing the message
We receive the erroneous The matrix used to decode is:
string:
Code = [0 1 0 0 0 1 1] 0 0 0 1 1 1 1
We test it: Decoder 0 1 1 0 0 1 1
Decoder*CodeT 1 0 1 0 1 0 1
=[0 1 1]
And indeed it has an error
To test if a code is valid:
Does Decoder*CodeT
=[0 0 0]
– Yes means its valid
– No means it has error/s
Example: Repairing the message
To repair the code we find Decoder*codeT is
the collumn in the decoder
matrix whose elements are [ 0 1 1]
the row results of the test
vector
0 0 0 1 1 1 1
We then change Decoder 0 1 1 0 0 1 1
1 0 1 0 1 0 1
This is the third element of
We trim our received code
our code
by 3 elements and we have
our original message. Our repaired code is
[0 1 1 0 0 1 1] => [0 1 1 0] [0 1 1 0 0 1 1]
Coding Gain
Coding Rate R=k/n, k, no. of message symbol, n overall symbol
Word SNR and bit SNR
Interleaving
Arrange data in a non-contiguous way in order to increase performance
Interleaving is mainly used in data communication, multimedia file formats,
radio transmission (for example in satellites) or by ADSL
Protect the transmission against burst errors
Example
– Without interleaving
– With interleaving
ARQ, FEC, HEC
ARQ
Error detection code
tx rx
ACK/NACK
tx
Error correction code
rx