Sunteți pe pagina 1din 22

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 Systems
It 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) are

linear error correcting codes defined by


a sparse parity-check matrix H such
that

capacity-approaching codes

decodable with low complexity-iterative

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
zxz

m x n = (n-k) x n = (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
vector
2. 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=0

i = 1,..., mb-2

Codeword c = [s p]

Section 3:

THE LDPC DECODER


- Forney style FG representation V
A
R
I
A
B
L
E
N
O
D
E
S

c0= u0
c1= u1

=
=
+
=
+

ck= uk

=
=

cn

C
H
E
C
K
N
O
D
E
S
(m = nk)

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

THE LDPC DECODER


- Logarithmic version of the Sum-product
algorithm for a binary PAM in an AWGN
channel givi
vicj
g0
g1

v0

v1

gk

vk

+
+
+

=
gn

vn

vigi

c0

cjvi

cm

THE LDPC DECODER


- Logarithmic version of the Sum-product
algorithm for a binary PAM in an AWGN
channel givi
1. Define givi
vicj
2. Initialize
=0

g0
g1

v0

v1

gk

cjvi

vk

c0

+
+

3. Update vicj
4. Update cjvi
5. Marginalize

cm

=
gn

vn

vigi

cjvi

6. Repeat 3-5 until H 0 or a


maximum number
of iterations
Nit is

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 giWi(a)
g0

Wivi
Wivi(b)
W0

v0

g1

W1

vicj

v1

v2

v3

=
=
=
=

vn

viWi
viWi(c)

cjvi

c0

cm

THE LDPC DECODER


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

giWi(a)
g0

Wivi
Wivi(b)
W0

v0

g1

W1

vicj

v1

v2

v3

=
=
=
=

vn

viWi
viWi(c)

cjvi

c0

cm

1. Define giWi(a) for each a


2. Initialize cjvi = 0 and viWi(c)
= 0.5
for each c
3. Update Wivi(b) and compute
4. Update vicj and cjvi
5. Marginalize
6. Repeat 3-5 until H 0 or a
maximum number
of iterations
Nit is
reached

Section 4:

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,

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

S-ar putea să vă placă și