AN LDPC ENCODER AND MESSAGE PASSING DECODER IMPLEMENTATION

  • Upload
    vcortez

  • View
    25

  • Download
    1

Embed Size (px)

DESCRIPTION

Channel Coding Project

Citation preview

Mare Artico

Universit degli Studi di Padova
Dipartimento di Ingegneria dell'Informazione
Corso di Laurea in Ingegneria delle Telecomunicazioni




(IEEE 802.16)

AN LDPC ENCODER AND MESSAGE PASSING DECODER IMPLEMENTATION





Channel Coding Valentina Vadori

Section 1:

IEEE 802.16

IEEE Standard for Air Interface for Broadband Wireless Access SystemsIt aims at providing: broadband connectivity across cities and countries to fixed and mobile users .

a wireless alternative to cable and digital subscriber line (DSL) for "last mile" broadband access.

data, telecommunications (VoIP) and IPTV services (triple play).

SYSTEM ARCHITECTURE
- base stations and subscriber stations -


SPECIFICATIONS

RANGE - 50-km radius from base station

SPEED - 70 Mb/s

LINE OF SIGHT - not needed between user and base station

FREQUENCY BANDS - 2 to 11 GHz and 10 to 66 GHz (licensed and unlicensed bands)

OFDM-MIMO

AMC (Adaptive Modulation and Coding), ARQ and FEC

FORWARD ERROR CORRECTION

The PHY LAYER must provide convolutional coding (CC). Many others are optional:Block turbo coding (BTC)

Convolutional turbo codes (CTCs)

Low density parity check (LDPC) codes

Section 2:

THE LDPC ENCODER

LDPC codes (Gallager codes) arelinear error correcting codes defined by a sparse parity-check matrix H such that

capacity-approaching codes

decodable with low complexity-iterative algorithms

IEEE 802.16 LDPC CODES

Binary and irregular codes

Can accomodate various code rates and packet sizes starting from a set of foundamental sistematic codes

Parity check matrix H is expanded from a base model matrix Hbm

mb x nb

m x n = (n-k) x n

z x z

= (z*mb)x(z*nb)

IEEE 802.16 LDPC CODES

19 codeword lengths, from n = 576 to n = 2304

4 code rates: 1/2, 2/3, 3/4, 5/6

6 code classes: 1/2, 2/3A, 2/3B, 3/4A, 3/4B, 5/6.

Hbm defined for each class for n = 2304, nb = 24, z = 96 (in general z = n/24)

THE LDPC ENCODER
- Method 1a -

Parity check bits p = [p0 pm-1] from the information block s = [s0 sk-1]1. s grouped by z to get u = [u(0) u(kb-1)] where each u(i) is a column vector2. p grouped by z to get v = [v(0) v(mb-1)] 3. INITIALIZATION to determine v(0) :

4. RECURSION to determine v(i+1), i = 0,...,mb-2

i = 1,..., mb-2

Codeword c = [s p]

i = 0

THE LDPC DECODER
- Forney style FG representation -

Section 3:

VARIABLE

NODES

(n)

CHECK

NODES

(m = n-k)

======+++

c0= u0

cn

Bipartite graph

One variable node for each codeword symbol

One check node for each row of H

Edges connect each variable node to check nodes representing constraints involving it

c1= u1

ck= uk

THE LDPC DECODER
- Logarithmic version of the Sum-product algorithm for a binary PAM in an AWGN channel -

cjvi

vicj

givi

c0

cm

======+++

g0g1gngk

vigi

v0

v1

vk

vn

THE LDPC DECODER
- Logarithmic version of the Sum-product algorithm for a binary PAM in an AWGN channel -

cjvi

======+++

g0g1gngk

vigi

vicj

givi

v0

v1

vk

vn

c0

cm

1. Define givi2. Initialize cjvi = 03. Update vicj

4. Update cjvi 5. Marginalize

6. Repeat 3-5 until H 0 or a maximum number of iterations Nit is reached

MODULATION PROFILES
IN IEEE 802.16

4-QAM, 16-QAM, 64-QAM

Gray mapping

Normalization factor to get Es = 1

THE LDPC DECODER
- Modified Forney style FG representation
for a 4-QAM -

vicj

giWi(a)

WiviWivi(b)

c0

cm

g0

======+++

W1

viWiviWi(c)

v0

v1

v3

vn

W0

g1

v2

cjvi

THE LDPC DECODER
- Logarithmic version of the Sum-product algorithm for a QAM in an AWGN channel -

vicj

giWi(a)

WiviWivi(b)

c0

cm

g0

======+++

W1

viWiviWi(c)

v0

v1

v3

vn

W0

g1

v2

cjvi

1. Define giWi(a) for each a

2. Initialize cjvi = 0 and viWi(c) = 0.5 for each c3. Update Wivi(b) and compute

4. Update vicj and cjvi 5. Marginalize6. Repeat 3-5 until H 0 or a maximum number of iterations Nit is reached

IMPLEMENTATION
- Some details -

Parity check matrix H defined by base model matrix expansion

Efficient storage of H (sparse) as a an array of lists (cells in Matlab)

Encoding process managed by a dedicated function in Matlab

Modulation process managed by dedicated functions in Matlab

Decoding managed by a C subroutine called by Matlab

Simulations run on sequences of input bits segmented into blocks and then coded, modulated, transmitted (AWGN channel) and decoded

Performance results plotted for various values of Nit, code rates, codeword lengths and modulation profiles.

Section 4:


Section 5

RESULTS
- BER for n = 2304, R = 1/2, different Nit -

RESULTS
- BER for n = 2304, Nit = 50, different code rates -


RESULTS
- BER for R = 1/2, Nit = 50, different codeword lengths -


RESULTS
- BER for R = 1/2, Nit = 100, n = 2304, different modulation profiles -

SPECTRAL EFFICIENCY
- varying Nit, code rate, codeword length, modulation profile - Target BER = 10-5 -

CONCLUSIONS

Since I do not implement the whole PHY scheme prescribed by the standard, my performance results can be considered as a lower bound to the effective WiMAX

Codes are not so long (nmax = 2304). The gap between them and the Shannon bound can be further reduce with longer codewords.

QAM modulations achieve higher spectral efficiency, but they require higher SNRs for a target BER

IEEE 802.16 support adaptive coding and modulation to cope with time varying channels