1
Channel Coding in IEEE802.16e
Student: Po-Sheng Wu
Advisor: David W. Lin
2
Reference
IEEE Std 802.16a-2003, April 2003 IEEE Std 802.16-2004, October 2004 IEEE Std 802.16e™-2005 and IEEE Std
802.16™-2004/Cor1-2005 IEEE Std 802.16e/D9, June 2005
3
Outline
Overview RS code Convolution code LDPC code Future Work
4
Overview
5
RS code
The RS code in 802.16a is derived from a systematic RS (N=255, K=239, T=8) code on GF(2^8)
6
RS code
7
RS code
This code then is shortened and punctured to enable variable block size and variable error-correction capability.
Shorten : (n, k) → (n-l, k-l) Punctured : (n, k) → (n-l, k) In general, the generator polynomial
in IEEE802.16a h=0
8
RS code
They are shortened to K’ data bytes and punctured to permit T’ bytes to be corrected.
When a block is shortened to K’, the first 239-K’ bytes of the encoder input shall be zero
When a codeword is punctured to permit T’ bytes to be corrected, only the first 2T’ of the total 16 parity bytes shall be employed.
9
RS code
When shortened and punctured to (48,36,6) the first 203(239-36) information bytes are assigned 0.
And only the first 12(2*6) bytes of R(X) will be employed in the codeword.
10
Shortened and Punctured
11
RS code
12
RS code
Decoding : The Euclid’s (Berlekamp) algorithm is a common decoding algorithm for RS code.
Four step:
-compute the syndrome value
-compute the error location polynomial
-compute the error location
-compute the error value
13
Convolution code
Each RS code is encoded by a binary convolution encoder, which has native rate of ½, a constraint length equal to 7.
14
Convolution code
“1” means a transmitted bit and “0” denotes a removed bit, note that the has been changed from that of the native convolution code with rate ½ .
15
Convolution code
Decoding: Viterbi algorithm
16
Convolution code
The convolution code in IEEE802.16a need to be terminated in a block, and thus become a block code.
Three method to achieve this termination Direct truncation Zero tail Tail biting
17
RS-CC code
Outer code: RS code Inner code: convolution code Input data streams are divided into RS blocks,
then each RS block is encode by a tail-biting convolution code.
Between the convolution coder and modulator is a bit interleaver.
18
RS-CC code
19
LDPC code
low density parity checks matrix LDPC codes also linear codes. The codewor
d can be expressed as the null space of H, Hx=0
Low density enables efficient decoding Better decoding performance to Turbo code Close to the Shannon limit at long block length
20
LDPC code
n is the length of the code, m is the number of parity check bit
21
LDPC code
Base model
22
LDPC code
if p(f,i,j) = -1 replace by z*z zero matrix
else p(f,i,j) is the circular shift size
f
0
( , ), p(i,j) 0
, , p(i,j)z, p(i,j)>0
p i j
p f i j
z
23
LDPC code
Encoding
[u p1 p2]
24
LDPC code
Decoding Tanner GraphTanner Graph Sum Product Algorithm
25
LDPC code
Tanner GraphTanner Graph
26
LDPC code
Sum Product Algorithm
27
LDPC code
28
LDPC code
29
Future Work
Realize these algorithm in computer Find some decoding algorithm to speed up
30
Thanks for your attention