You are on page 1of 27

ECE 5397/6331, Fall, 2021

Wireless Communication

 
                                                          

Zhu Han
Department of Electrical and Computer Engineering

Class 19

Nov. 3rd, 2021


Outline
 Chapter 8
– ARQ
– FEC Basics
– Linear Code

                                                            
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?” 
ARQ
 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 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
                                                          
Transmitter Reciever Destination

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

                                                            

– Add vertically or horizontally


 Applications: ASCII, Serial port transmission
ISDN 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 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

Percent Errors Detected (%)


90%

No repeat randoms
Measure Error Detection 80%

  Results:
                                                          
Error Detection
70%

•One Error: 100% 60%

•Two Errors: 100%


•Three Errors: 83.43% 50%
1 2 3 4
•Four Errors: 79.76% Errors Introduced
How it works: 3 dots

Only 3 possible words


Distance Increment = 1
A B C

 
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

This is a graphic representation of the “Hamming Distance”


Hamming 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 Dot
The code space is now 4.
The hamming distance is still 1.

                                                            

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.

If distance is d, then we can detect d-1 errors


But we can only correct floor ((d-1)/2) errors.
Multi-dimensional Codes

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

                                                            

Efficient n-dimensional sphere packing is the same as n-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

To encode our message But why?

we multiply this matrix


You can verify that:
1 0 0 0 0 1 1
0 1 0 0 1 0 1
Hamming[1 0 0 0]=[1 0 0 0 0 1 1]

  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

Lets add an error,  0  1 0 0 0 0 1 1

  so Pick a digit to mutate


                                                          
 1 0 1 0 0 1 0 1
 1 0 0 1 0 1 1 0
 0  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

                                                            

 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 Example

                                                            

ECE 4371 Fall 2008


Encoder/Decoder of Linear Code
 Encoder: just xor gates
 Decoder: Syndrome

                                                            
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

 Forward Error Correction (error correct coding)

  tx
                                                          
Error correction code
rx

 Hybrid Error Correction


Error detection/
Correction code
tx rx
ACK/NACK

You might also like