Convolutional Error Control Coding

39
MEH607 Error Control Coding KOCAELI UNIVERSITY Graduate School of Natural and Applied Sciences Prepared By: Mohammed ABUIBAID Email: [email protected] Electronic and Communication Engineering Convolutional Error Control Coding Academic Year 2015/2016

Transcript of Convolutional Error Control Coding

MEH607 Error Control Coding

KOCAELI UNIVERSITYGraduate School of

Natural and Applied Sciences

Prepared By: Mohammed ABUIBAIDEmail: [email protected] to: Dr. SITKI ÖZTÜRK

Electronic and Communication Engineering

Convolutional Error Control Coding

Aca

dem

ic Y

ear

20

15

/20

16

Agenda1. Introduction to Convolutional Codes2. Convolutional Encoder Structure3. Convolutional Encoder Representation

(Vector, Polynomial, State Diagram and Trellis Representations )

4. Maximum Likelihood Decoder5. Viterbi Algorithm6. MATLAB Simulation

Hard and Soft Decisions Bit Error Rate Tradeoff Consumed Time Tradeoff

Error Control Techniques(ARQ)

Automatic Repeat reQuest

The receiver sends a feedback to the transmitter:

Error is detected (NACK: Not-Acknowledgement) in the received packet, then retransmit that data block

if no errors detected (ACK: Acknowledgement), don’t resend.

Uses extra/redundant bits merely for error detection.

Full-duplex (two-way) connection between the Transmitter and the Receiver.

Result: Constant reliability, but varying data rate throughput due to retransmit.

(FEC)Forward Error Correction

The transmitter’s encoder adds extra/redundant bits to a block of message data bits to form a Codeword

The receiver can both detect errors and automatically correct errors incurred during transmission, without retransmission of the data.

Simplex (one-way) connection between the Transmitter and the Receiver.

Result: Varying reliability, but constant data rate throughput.

(ARQ+FEC)Hybrid ARQ

Full-duplex connection required between the Transmitter and the Receiver.

Uses error detection and correction codes.

In general: Wire-line communications (more

reliable) adopts ARQ scheme Wireless communications (relatively

less reliable) adopts FEC scheme

Classification of FEC Codes

FEC Coding TechniquesBlock Code

(No Memory) It collects k bits in a buffer prior to

processing There is no retention within the

encoding system of information related to the previous samples points memoryless

Each output Codeword of an (n, k) block code depends only on the current buffer

Convolutional Code (Memory)

Why Named Convolutional? Each bit in the output stream is not only dependent on the current bit, but also on those processed previously.

The encoder acts on the serial bit stream as it enters the transmitter.

The number of sample points collected prior to processing is far less than required for a block code. (delay through the encoder is less)

Its performance is less sensitive to Signal-to-Noise Ratio variations than that of block codes. (preferred in situations of limited power)

Convolutional CodesConvolutional codes offer an approach to error control coding substantially different from that of block codes.

A Convolutional Encoder: encodes the entire data stream, into a single codeword does not need to segment the data stream into blocks of fixed size is a machine with memory is specified by three parameters is the coding rate, determining the number of data bits per coded bit.

− In practice, usually k=1 is chosen. K is the constraint length of the encoder and the encoder has K-1 memory elements.

Agenda1. Introduction to Convolutional Codes2. Convolutional Encoder Structure3. Convolutional Encoder Representation

(Vector, Polynomial, State Diagram and Trellis Representations )

4. Maximum Likelihood Decoder5. Viterbi Algorithm6. MATLAB Simulation

Hard and Soft Decisions Bit Error Rate Tradeoff Consumed Time Tradeoff

Convolutional Encoder Structure (rate ½, K=3)3 Shift-registers where:

− The first one takes the incoming data bit

− The rest, form the memory of the encoder

Convolutional  Encoder  ( rate  ½, K=3 )

1 0 0𝑡1

0 1 0𝑡 4

0 1 0𝑡 2

0 0 1𝑡5

1 0 1𝑡 3

0 0 0𝑡 6

Message sequence: m = (101)

Time

Effective Code Rate

Initialize the memory before encoding the first bit (all zero) Clear out the memory after encoding the last bit (all zero) Hence, a tail of zero-bits is appended to data bits

Effective code rate : L is the number of data bits and k=1 is assumed:

Agenda1. Introduction to Convolutional Codes2. Convolutional Encoder Structure3. Convolutional Encoder Representation

(Vector, Polynomial, State Diagram and Trellis Representations )

4. Maximum Likelihood Decoder5. Viterbi Algorithm6. MATLAB Simulation

Hard and Soft Decisions Bit Error Rate Tradeoff Consumed Time Tradeoff

Encoder Vector Representation We define n binary vector with K elements (one vector for each modulo-2 adder) The i-th element in each vector, is “1” if the i-th stage in the shift register is connected to the

corresponding modulo-2 adder, and “0” otherwise. Examples: k=1

1 1 1

1 0 1Generator matrix with 2 vectors

Generator matrix with 3 vectors

Encoder Polynomial Representation Define n generator polynomials, one for each modulo-2 adder. Each polynomial is of degree or less and describes the connection of the shift

registers to the corresponding modulo- 2 adder. Example: k=1

The output sequence is found as follows:

1 1 1

1 0 1

Encoder Polynomial Representation

Example: m = (101) =

The output sequence is found as follows:

1 1 1

1 0 1

Encoder State Diagram Representation In a Convolutional encoder, the state is

represented by the content of thememory. Hence, there are states.

A state diagram contains all the states and all possible transitions between them.

Only two transitions initiating from a state

Only two transitions ending up in a state

Encoder Trellis Representation Trellis diagram is an extension of the state diagram that shows the passage of time. Example of a section of trellis for the rate ½ code

Encoder Trellis Representation (rate ½ code)

Encoder Trellis Representation (rate ½ code)

Agenda1. Introduction to Convolutional Codes2. Convolutional Encoder Structure3. Convolutional Encoder Representation

(Vector, Polynomial, State Diagram and Trellis Representations )

4. Maximum Likelihood Decoder5. Viterbi Algorithm6. MATLAB Simulation

Hard and Soft Decisions Bit Error Rate Tradeoff Consumed Time Tradeoff

Optimum Decoding (Maximum Likelihood )

If the input sequence messages are equally likely, the optimum decoder which minimizes the probability of error is the Maximum Likelihood (ML) decoder.

ML decoder, selects a codeword among all the possible codewords which maximizes the likelihood function where is the received sequence and is one of the possible codewords

Codewords to search

The Viterbi Algorithm The Viterbi algorithm performs Maximum Likelihood decoding. It finds a path through trellis with the largest metric (maximum correlation or minimum distance).− It processes the demodulator outputs in an iterative manner.− At each step in the trellis, it compares the

metric of all paths entering each state, and keeps only the path with the largest metric, called the survivor, together with its metric.

− It proceeds in the trellis by eliminating the least likely paths.

It reduces the decoding complexity to

The Viterbi AlgorithmA. Do the following set up: For a data block of L bits, form the trellis.

The trellis has L+K-1 sections or levels and starts at time and ends up at time

Label all the branches in the trellis with their corresponding branch metric.

For each state in the trellis at the time which is denoted by , define a parameter

B. Then, do the following:1. Set , and

2. At time , compute the partial path metrics for all the paths entering each state

3. Set equal to the best partial path metric entering each state at time .

4. Keep the survivor path and delete the dead paths from the trellis.

5. If , increase by 1 and return to step 2.

C. Start at state zero at time . Follow the surviving branches backwards through the

trellis.

The path thus defined is unique and correspond to the ML codeword.

Convolutional Trellis Encoder Example (rate ½ code)

Msg. 1 0 1 1 0 0

Rcvd. 11 10 11 00 01 10

CW. 11 11 01 00 01 10

Example: Viterbi Trellis Decoder ()

Example: Viterbi Trellis Decoder ()

Example: Viterbi Trellis Decoder ( , 4)

Example: Viterbi Trellis Decoder ()

Example: Viterbi Trellis Decoder ()

Example: Viterbi Trellis Decoder ()

Error Correcting Code Gain

It is defined as the reduction of (in dB) that is needed to obtain the same error rate.

Example: For a BER of is needed with coding without the coding The Coding Gain

𝟏𝟎−𝟔

𝟏𝟎−𝟓

𝟏𝟏 𝟏𝟑 .𝟕𝟕

Agenda1. Introduction to Convolutional Codes2. Convolutional Encoder Structure3. Convolutional Encoder Representation

(Vector, Polynomial, State Diagram and Trellis Representations )

4. Maximum Likelihood Decoder5. Viterbi Algorithm6. MATLAB Simulation

Hard and Soft Decisions Bit Error Rate Tradeoff Consumed Time Tradeoff

MATLAB Simulation: BER, Time Performance

Convolutional-Viterbi CodecGenerator Vector : [111,101]

Hard and Soft Decisions

Block CodecHamming (7,4)

Hard and Soft Decisions

Vs.

Richard Hamming Andrew J. Viterbi

Error Performance Trade-offsTrade-off 1:

Hamming Coding Hard Decision Vs. Soft Decision

Trade-off 2:Convolutional Coding

Hard Decision Vs. Soft DecisionTrade-off 3:

Block Coding Vs. Convolutional

BER Performance Hard Decision Vs. Soft Decision

Eb/No, dB0 2 4 6 8 10

Bit

Err

or R

ate

10-5

10-4

10-3

10-2

10-1

Viterbi Decoding

theory - uncodedHard ViterbiSoft Viterbi

Eb/No, dB0 2 4 6 8 10

Bit

Err

or R

ate

10-5

10-4

10-3

10-2

10-1

BER of Hamming (7,4) code

theory - uncodedHard (7,4) HammingSoft (7,4) Hamming

Trade-off 2: Viterbi deCoding Trade-off 1: Hamming deCoding

Trade-off 3: Hamming and Viterbi BER Performance Trade-offs

Eb/No, dB0 1 2 3 4 5 6 7 8 9 10

Bit

Err

or R

ate

10-5

10-4

10-3

10-2

10-1

Theory - UncodedHard (7,4) HammingSoft (7,4) HammingHard Viterbi (111,101)Soft Viterbi(111,101)

Time Performance Trade-offsTrade-off 4:

Block Coding Hard Decision Vs. Soft Decision

Trade-off 5:Convolutional Coding

Hard Decision Vs. Soft DecisionTrade-off 6:

Block Coding Vs. Convolutional

Time Performance Hard Decision Vs. Soft Decision

Trade-off 5: Viterbi deCoding Trade-off 3: Hamming deCoding

Eb/No, dB0 2 4 6 8 10

Con

sum

ed T

ime

0

0.2

0.4

0.6

0.8

1Hamming Decoding

Hard (7,4) HammingSoft (7,4) Hamming

Eb/No, dB0 2 4 6 8 10

Con

sum

ed T

ime

0

10

20

30

40

50

60

70

80Viterbi Decoding

Hard ViterbiSoft Viterbi

Trade-off 6: Hamming and Viterbi Time Performance Trade-offs

Eb/No, dB0 1 2 3 4 5 6 7 8 9 10

Con

sum

ed T

ime

0

10

20

30

40

50

60

70

80Hard (7,4) HammingSoft (7,4) HammingHard ViterbiSoft Viterbi

Mohammed AbuibaidLive & Breathe Wireless