Simulador de Sistema PLC Utilizando OFDM Adaptativo com

Transcription

Simulador de Sistema PLC Utilizando OFDM Adaptativo com
Simulador de Sistema PLC Utilizando OFDM Adaptativo
com Códigos LDPC
José Manuel Gouveia de Miranda Ribeiro Vaz
Dissertação para obtenção do Grau de Mestre em
Engenharia Electrotécnica e de Computadores
Júri
Presidente: Doutor Marcelino Santos
Orientador: Doutor José António Beltran Gerald
Members: Doutor Francisco António Bucho Cercas
Novembro de 2010
PLC Simulator System using Adaptive OFDM with LDPC
codes
José Manuel Gouveia de Miranda Ribeiro Vaz
Dissertation Submitted for obtaining the degree of Master in
Electrical and Computer Engineering
Jury
President: Doutor Marcelino Santos
Supervisor: Doutor José António Beltran Gerald
Members:
Doutor Francisco António Bucho Cercas
November 2010
Abstract
Despite LDPC codes performing admirably for large block sizes - being mostly resilient to low
levels of channel SNR and errors in channel equalization - small and medium sized codes tend to
be affected by these two factors. For these small to medium codes, a new method is presented
that helps to reduce the dependency of correct channel equalization, without changing the inner
workings or architecture of existing LDPC decoders. This goal is achieved by using LDPC only
decoder-side information - gathered during standard LDPC decoding - that is used to improve the
estimation of channel parameters, thus improving the reliability of the error code correction, while
reducing the number of required iterations for a successful decoding. This scheme is suitable for
application to multicarrier communications, such as OFDM. A PLC-like environment was chosen
as the basis for presenting the results.
Keywords
OFDM, PLC, LDPC, LDPC encoding, Multi-channel estimation
i
Resumo
Apesar de os códigos LDPC terem um excelente desempenho para tamanhos de código
grandes - códigos de um modo geral resistentes a situações de ruído de canal elevado e tolerando
falhas na equalização de canal - códigos com tamanhos pequenos e médios tendem a ser afectados por esses dois factores. Para esses dois casos, é apresentado um método que ajuda a
reduzir a dependência de correcta equalização de canal, sem modificar a arquitectura interna
do descodificador LDPC. Este objectivo é atingido coligindo métricas e parâmetros do funcionamento habitual do descodificador LDPC. Estes dados são usados de forma a reduzir os erros
na estimação das propriedades do canal, aumentando assim a fiabilidade do sistema de correcção de erros, reduzindo também o número de iterações necessárias para descodificar com
sucesso uma palavra de código. Este esquema proposto é adequado a sistemas de comunicação
multi-portadora, tais como OFDM. Um ambiente do tipo PLC foi o escolhido para apresentar os
resultados.
Palavras Chave
OFDM, Desempenho LDPC, codificação LDPC, Estimação multi-canal
ii
Contents
1 Introduction
1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2 LDPC notation and symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3 LDPC and OFDM trends and applications . . . . . . . . . . . . . . . . . . . . . . .
4
1.3.1 PLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3.2 DVB-S2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3.3 10GBASE-T Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3.4 WiMAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.5 Space Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.6 Hard drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.7 G.hn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.5 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.6 Dissertation Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2 Multi-carrier Modulation and Modeling Transmission Channels
7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2 Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3 Noise Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4 OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.5 OFDM Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
3 Low-Density Parity-Check Coding
15
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.2 LDPC codes defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.3 LDPC encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.1 Fast encoding
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.4 Decoding linear block codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.4.1 LDPC decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
iii
Contents
3.4.2 Noisy channel decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.4.3 Iterative decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.4.4 Node update equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.4.5 Iterative decoding example . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4 Building LDPC Codes
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.2 Performance analysis of LDPC parameters . . . . . . . . . . . . . . . . . . . . . .
31
4.2.1 Equivalence of ensembles of LDPC codes . . . . . . . . . . . . . . . . . . .
32
4.2.2 Girth and small-cycles removal . . . . . . . . . . . . . . . . . . . . . . . . .
33
4.2.3 Regular vs Irregular codes . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5 Multi-channel parameter estimation
39
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2 Typical LDPC decoding architecture . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.3 Channel noise parameter estimation . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.3.1 Estimation via Bayesian inference . . . . . . . . . . . . . . . . . . . . . . .
42
5.3.2 Channel error probability distribution function . . . . . . . . . . . . . . . . .
43
5.4 System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.5 System performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.6 Conclusions and Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
6 Conclusions and Future Work
49
6.1 Conclusions and Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . .
50
6.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
A Appendix
53
A.1 Conditional probability and Likelihood . . . . . . . . . . . . . . . . . . . . . . . . .
54
A.2 Intrinsic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
A.2.1 AWGN Channel with BPSK modulation . . . . . . . . . . . . . . . . . . . .
54
A.2.2 Binary symmetric channel . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
A.2.3 Binary erasure channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
A.3 Estimating BER via Importance Sampling . . . . . . . . . . . . . . . . . . . . . . .
56
A.4 Fast addition rule for check-node update equations . . . . . . . . . . . . . . . . . .
58
Bibliography
iv
29
61
List of Figures
1.1 Noisy channel coding schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2.1 Channels used for simulation several types of noise . . . . . . . . . . . . . . . . .
8
2.2 Frequency-selective noise BSC bank channel . . . . . . . . . . . . . . . . . . . . .
10
2.3 OFDM vs FDM spectral efficiency
. . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4 OFDM modulation/demodulation functional block . . . . . . . . . . . . . . . . . . .
12
2.5 Simple OFDM modulation/demodulation functional block . . . . . . . . . . . . . . .
12
3.1 Example H matrix and associated Tanner graph representation
. . . . . . . . . .
17
3.2 Codeword x = [0 1 0 1 1 0 1 1] parity-checking . . . . . . . . . . . . . . . . . . . . .
18
3.3 Graphic representation of a generator matrix in systematic form . . . . . . . . . . .
18
3.4 Generator matrix graphical representation for H . . . . . . . . . . . . . . . . . . . .
19
3.5 Parity-check matrix in systematic and fast encoding forms . . . . . . . . . . . . . .
19
3.6 Two example of noisy channel models . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.7 Edge numbering scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.8 Message flow for bit-nodes and check nodes update process . . . . . . . . . . . .
27
4.1 Flowchart for Finding high-performant LDPC codes . . . . . . . . . . . . . . . . . .
31
4.2 Coding performance of 3 identical sized codes . . . . . . . . . . . . . . . . . . . .
32
4.3 Thick solid: A 4-loop defined by vertexes v3 c1 v7 c3 , in both tanner graph (left) and
parity-check matrix forms (right). Dashed: a 6-loop defined by vertexes v3 c1 v5 c2 v1 c3 33
4.4 H1 vs H2 - with girth removal step applied . . . . . . . . . . . . . . . . . . . . . . .
35
4.5 Coding performance of regular vs irregular codes . . . . . . . . . . . . . . . . . . .
36
5.1 LDPC decoder block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
5.2 Subchannel bit accounting at LDPC decoder side . . . . . . . . . . . . . . . . . . .
41
5.4 Overall System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.5 Inner block structure of an LDPC decoder with the herein proposed addition of
“Intrinsic LLR estimator” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1 Memoryless system H(xi ), where xi is a signal + noise sample, with pdf fX (x).
.
45
56
v
List of Figures
A.2 Plot of F (x) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
59
List of Tables
1.1 Notation for LDPC codes used throughout this document . . . . . . . . . . . . . .
3
2.1 List of present-day communication systems employing OFDM . . . . . . . . . . . .
10
3.1 Complexity of online part of the encoding process . . . . . . . . . . . . . . . . . .
21
3.2 Decoding evolution of the message passing algorithm . . . . . . . . . . . . . . . .
27
3.3 Evolution of soft and hard decoding results at the decoder output x̂
. . . . . . . .
28
4.1 Girth histogram for the (N = 140, M = 35, j = 3, k = 12) ensemble . . . . . . . . .
32
4.2 Listing of each code n-cycles before and after the removal of small cycles . . . . .
35
4.3 Listing n-cycles for a regular and irregular codes . . . . . . . . . . . . . . . . . . .
36
4.4 Average number of iterations taken to decode a codeword, for regular and irregular
code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
5.1 Number of LDPC decoder iterations taken, uncorrected errors, with and without
LLR estimator block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
vii
List of Tables
viii
List of Acronyms
10GbE
10 Gigabit Ethernet
ADSL
Asymmetric Digital Subscriber Line
APP
a posteriori probability
ARQ
Automatic Repeat Request
AWGN
Additive White Gaussian Noise
BEC
Binary Erasure Channel
BER
Bit Error Rate
BPA
Belief-Propagation Algorithm
BPL
Broadband over Power Line
BPSK
Binary Phase-Shift keying
BSC
Binary Symmetric Channel
COFDM
Coded Orthogonal Frequency-Division Multiplexing
DAB
Digital Audio Broadcast
DSL
Digital Subscriber Line
ECC
Error-Correction Code
ESA
European Space Agency
FDM
Frequency Division Multiplexing
FEC
Forward Error Correction
INESC-ID Instituto de Engenharia de Sistemas e Computadores - Investigação e
Desenvolvimento
IS
Importance Sampling
ix
List of Acronyms
ISI
Inter Symbolic Interference
ITU
International Telecommunication Union
LDPC
Low-Density Parity-Check
LLR
Log-Likelihood Ratio
MAP
Maximum a posteriori probability
MC
Monte Carlo
MoCA
Multimedia over Coax Alliance
MPA
Message-Passing Algorithm
MPEG
Moving Picture Experts Group
NASA
National Aeronautics and Space Administration
OFDM
Orthogonal Frequency-Division Multiplexing
pdf
probability density function
PEG
Progressive Edge Growth
PCM
Parity-Check Matrix
PLC
Power Line Communication
QAM
Quadrature Amplitude Modulation
RS
Reed-Solomon
SMPS
Switched-Mode Power Supply
SPA
Sum-Product Algorithm
TC
Turbo Code
UWB
Ultra-Wide Band
VA
Viterbi Algorithm
VLSI
Very-Large-Scale Integration
WiMAX
Worldwide Interoperability for Microwave Access
x
1
Introduction
Contents
1.1 Introduction . . . . . . . . . . . . . . . . .
1.2 LDPC notation and symbols . . . . . . . .
1.3 LDPC and OFDM trends and applications
1.3.1 PLC . . . . . . . . . . . . . . . . . .
1.3.2 DVB-S2 . . . . . . . . . . . . . . . .
1.3.3 10GBASE-T Ethernet . . . . . . . . .
1.3.4 WiMAX . . . . . . . . . . . . . . . .
1.3.5 Space Communications . . . . . . .
1.3.6 Hard drives . . . . . . . . . . . . . .
1.3.7 G.hn . . . . . . . . . . . . . . . . . .
1.4 Motivation . . . . . . . . . . . . . . . . . .
1.5 Objectives . . . . . . . . . . . . . . . . . .
1.6 Dissertation Outline . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
4
4
4
4
5
5
5
5
6
6
6
1
1. Introduction
1.1
Introduction
The design and project of any contemporary communication system requires trade-offs between system performance, power consumption, reliability and cost. Forward Error Correction
(FEC) is one of the available tools for performing such trade-offs. FEC is a method that adds ancillary data as redundancy to a given message. This enables the receiving end to use this ancillary
data to detect and/or perform recovery in the event the transmitted message is corrupted.
The addition of any sort of FEC always increases overall system complexity and reduces
usable bandwidth, but at the same time, it lowers transmission error rates. Channel noise and
interference from other communications or electronic devices are not the only sources that push
for the usage of FEC: worldwide telecommunication regulation agencies impose restrictions on
the amount of power allowed for certain classes of communications systems. Lower power levels
means higher transmission errors, thus, at the cost of increasing system complexity, FEC can also
be used to reduce transmission errors, while complying with local power level regulations.
Several modulation schemes can be used to transmit data over the Power Line Communication
(PLC) channel, but Orthogonal Frequency-Division Multiplexing (OFDM) is well suited to lessen
most of the channel’s conditions such as interference, attenuation and fading. Adding the ability
of FEC to an OFDM system gives rise to what is usually called Coded Orthogonal FrequencyDivision Multiplexing (COFDM). This document deals with improvements made to an OFDM
system when using a type of FEC called Low-Density Parity-Check (LDPC) coding.
LDPC codes are a very successful family of FEC codes. LDPC codes are a class of linear
block codes that can achieve near channel capacity. They were firstly proposed in the 1960’s by
Gallager [1], in his doctoral dissertation. However, for the most part of the next 30 years, those
codes remained as forgotten. In the mid 90’s these codes were “rediscovered” independently
by different researchers [2], who noticed the very desirable properties of linear block codes with
Low-Density (i.e. sparse) Parity-Check matrices. The current maximum error correction capacity
for LDPC codes currently falls within 0.0045dB of the Shannon limit [3], although the feasibility
of such codes (and associate decoders) for real-time applications can be questioned due to the
excessive requirements of computational resources.
The need for error correcting
Shannon’s noisy-channel coding theorem [4] establishes that it’s possible to receive an errorfree message, sent over an unreliable channel, as long as the information rate does not exceed
the capacity of the channel. The theorem also assures there is an optimal Error-Correction Code
(ECC) scheme, which just adds a minimal redundancy to the original message.
Unfortunately, Shannon’s theorem is non-constructive: it does not state how to build such an
encoder/decoder for (nearly) error-free communications. The notation for the noisy channel cod2
1.2 LDPC notation and symbols
Figure 1.1: Noisy channel coding schematic
ing is as follows (figure 1.1): a message u is subject to an optimal encoder that produces an
encoded representation, x, of the original message. This codeword is sent through a noisy channel, where errors, e, are added. At the receiver-end, the decoder tries to recreate the original
message from the channel output y, establishing a most likely representation x̂ for the encoded
message. After discarding the redundancy part in the estimate, the original message u is recovered.
This thesis focus on LDPC coding, a class of FEC codes. Although building such system is not
a trivial task, it can be shown that effective trade-offs can be made between decreasing the channel capacity (by virtue of adding error-correcting redundancy), and message delivery reliability.
All of this while trying to keep the system computationally feasible for real-time applications.
1.2
LDPC notation and symbols
Before starting to introduced LDPC codes, the parameters (and its symbols) that define an
LDPC code are introduced in table (1.1), which provides a convenient reference for all LDPC
used symbols.
Symbol
Meaning
H
C
u
x
y
Parity-Check Matrix (PCM)
linear block code
source message vector - user message/user bits
transmitted codeword vector - encoded sequence of user bits
received codeword vector: original codeword x after being sent through a
noisy channel
Generator matrix
girth - length of G shortest cycle of H
H column weight - number of H non-zeros per column
H row weight - number of H non-zeros per row
number of H columns, variable nodes and codeword length
number of H rows and number of check nodes
source message size
code rate
check-node m
variable-node n
G
g
j
k
N
M
K
R
cm
vn
Table 1.1: Notation for LDPC codes used throughout this document
3
1. Introduction
1.3
LDPC and OFDM trends and applications
LDPC codes are currently employed in communication systems standards such as DVB-S2,
10 Gigabit Ethernet (10GbE), Worldwide Interoperability for Microwave Access (WiMAX). The
majority of deep space missions, have being using LDPC instead of Reed-Solomon (RS) or other
coding mechanisms, since 2000. The hard-drive storage industry is also considering replacing
the current RS coding, as a way to increase storage density, and achieve lower error floors.
OFDM Most contemporary communication systems use OFDM as the basis for communications. Technologies such as Asymmetric Digital Subscriber Line (ADSL), Wi-Fi, DVB-S2, etc . . . all
employ OFDM due to its spectral efficiency, and resilience towards channel errors. See table 2.1
for a broad listing of systems and technologies that employ OFDM.
1.3.1
PLC
Power Line Communication (PLC) is a class of systems where data is carried over the power
transmission grid. Broadband over Power Line (BPL) systems deliver broadband services over
the typical household power line. The PLC is an extremely noisy and time changing medium
where any transmission is subject to the influence of random burst noise, propagation delays,
and selective erasures. The resilience of OFDM to harsh channel conditions makes it an evident
choice as the standard for modulation in PLC systems. HomePlug AV is one of the available PLC
consumer products that uses ECC in the form of Turbo Coding.
1.3.2
DVB-S2
DVB-S2 [5] was the first large scale system deployment to use LDPC as basis of a FEC
system. Although DVB-S2 is typically used for satellite television/broadcasting, it is suitable for all
kinds of high data rate transmission, because DVB-S2 can be used to transmit bit-stream as well
as packetized data, which audio and video applications (MPEG) are just a subset. DVB-S2 uses
large code lengths (16200 bits). As with all Linear Block Codes, larger code block lengths, result in
better LDPC coding performs as compared to other coding methods, such as Turbo Codes (TCs)
that tend to be used with smaller code-lengths. Some near-earth space missions also use the
DVB-S2 transmission standard as the basis for their communication systems, due to the ease of
obtaining off-the-shelf DVB-S2 equipment, taking advantage of the hardware commoditization.
1.3.3
10GBASE-T Ethernet
The 802.3an standard for 10Gb/s Ethernet, requires LDPC [6] coding as FEC mechanism
because the noise levels and attenuation are quite significant for twisted-pair copper cabling at
200MHz transmission frequencies. The particular code used, has an error-floor of 10−13 . It is a
(6,32)-regular RS-LDPC code length 2048 and dimension 1723. The reference encoder boasts a
4
1.3 LDPC and OFDM trends and applications
gate count of ≈27k gates, and produces a codeword within 30ns latency, for a 1MHz clock. The
iterative decoder has a latency of 0.32 µs at 450MHz.
1.3.4
WiMAX
The IEEE 802.16e standard, WiMAX, also includes the usage of LDPC codes - among others
- as FEC mechanism. The stated maximum protocol bandwidth is ≈70Mbit/s, although for non
line-of sight environments, typical speeds of 10Mbit/s for a 2km distance can be achieved. The
reference encoder has a gate count of ≈20k gates, while the iterative reference decoder has a
gate count of ≈125K gates.
1.3.5
Space Communications
Most of National Aeronautics and Space Administration (NASA) and European Space Agency
(ESA) probes use LDPC instead of RS or TC as coding mechanisms [7], since 2000. These
missions are mostly power constrained and thus transmission bandwidth is not a major bottleneck.
Employing LDPC coding lowers the amount of power required for successful transmissions, at the
residual cost of slightly increasing bandwidth.
1.3.6
Hard drives
In other to cope with the increasing bit error levels, consequence of higher hard-disk recording
densities [8], LDPC codes have being proposed as an ECC scheme [9]. Given the low complexity/latency and high throughput expected of an hard-disk drive, these LDPC implementations have
several constrains: code lengths are short (i.e. code parameters (N = 30, M = 5, j = 1, k = 6))
and decoder structures are unfolded instead of being fully iterative, being usually just a few levels
deep (4-6 iterations). In the first generation of hard drives with LDPC as FEC mechanism, LDPC
was used as an inner code while the outer coding was a RS code. Current generations of hard
drives employ a single LDPC code instead of the concatenation of these two separate codes [8].
1.3.7
G.hn
The G.hn/G.9960 are International Telecommunication Union (ITU) draft standards for nextgeneration networking. One of the chief advantages of G.hn specification is unified Physical and
Data Link layers, that can operate over multiple wire types, such as power lines, phone lines
and coaxial cable. The physical layer is based on OFDM as modulation method and LDPC as
the Forward Error Correction (FEC) layer. Besides employing strong FEC for handling with noisy
mediums, Selective ARQ and methods for dealing with line AC cycle are also employed. Expected
throughput values are in the range of 800 MBit/s to 1Gbit/s, for ethernet-link data-links.
5
1. Introduction
1.4
Motivation
Consumer grade PLC systems have been plagued by slow market adoption from its inception,
due to lower apparent performance, and lower installation easiness than its main competitors
technologies (Digital Subscriber Line (DSL), cable). The main factor contributing to the PLC
lower performance is the usage of the power distribution grid, as the communication medium.
The power line medium is a time-changing high noise environment, which heavily hinders the
propagation of the communication signal, degrading performance. Although through the years
several improvements have been made to the transmission apparatus, such as new modulations
and channel equalization techniques, these have topped their usage potential, and no longer
provide an effective efficiency increase in system performance. A different approach must be
taken in order achieve the reliability (and tentatively surpass) of competing technologies.
1.5
Objectives
The present work purpose, is to show that an high level of transmission reliability can be
achieved for PLC systems, using OFDM with LDPC coding. That work is substantiated by the
development of simulation benchmarks, testing several implementation options.
The presented work builds upon previous work developed at Instituto de Engenharia de Sistemas e Computadores - Investigação e Desenvolvimento (INESC-ID), namely a basic communication hardware system with just has plain OFDM, and no ECC ability.
1.6
Dissertation Outline
The dissertation is split into two major parts: The first part (chapters 2 and 4), detail the usage
systems with OFDM and with LDPC as a FEC mechanism, trade-offs, and decisions made in their
implementation. Chapter 3 details the theory behind LDPC codes.
The second part of the thesis (chapters 5 and 6) deals with the application of the methods
developed in the first part to an OFDM communication system in a PLC environment and its result
and considerations. At the end some hints for future work are pointed out.
6
2
Multi-carrier Modulation and
Modeling Transmission Channels
Contents
2.1
2.2
2.3
2.4
2.5
2.6
Introduction . . . . . .
Channels . . . . . . . .
Noise Scenario . . . . .
OFDM . . . . . . . . . .
OFDM Implementation
Conclusions . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 8
. 8
. 9
. 10
. 12
. 13
7
2. Multi-carrier Modulation and Modeling Transmission Channels
2.1
Introduction
This chapter introduces several channels and modulation schemes used. Channel modeling
of Frequency Division Multiplexing (FDM) modulation is detailed, including simplifications and
assumptions.
The most significant advantage of FDM modulation schemes regarding frequency-selective
noise, is that in the event of a portion of the frequency spectrum being rendered useless, transmission is still possible using the parts of the spectrum not affected by such noise. The PLC
environment is heavily affected by this type of noise, where a single home-appliance, perhaps a
simple electric motor or a Switched-Mode Power Supply (SMPS), can pollute bands of the electromagnetic spectrum.
2.2
Channels
In evaluating the response of a given system to noise/perturbations, it is possible to use different types of noisy channel, where each type of model usually highlights some specific kind of
real-world perturbation.
Usually, for communication systems that employ LDPC codes, the following three channels
tend to be used in modeling the various kinds of errors (figure 2.1) a communication system is
subjected to:
(a) Model and parameters of
BSC channel
(b) Model and parameters of
BEC channel
(c) Model
and parameters of
BPSK-AWGN channel
Figure 2.1: Channels used for simulation several types of noise
The first channel (figure 2.1a) is the Binary Symmetric Channel, a channel that models the
kinds of noise that appear as bit flips. The BSC is a channel where a sent bit has a probability
pc (probability of cross-over) of being flipped, and a 1 − pc probability of being transmitted without
being affected by noise.
Figure 2.1b depicts the Binary Erasure Channel. The BEC models the types of noise that
erase transmitted bits - that is, the receiver is unable to reach a conclusion whether the original
bit was either a 1 or 0. The probability of a given bit being erased is pe , while the probability of a
bit being transmitted without being erased is 1 − pe .
8
2.3 Noise Scenario
The last channel (2.1c) is a Binary Phase-Shift keying (BPSK) modulated channel with Additive
White Gaussian Noise (AWGN). This channel models the case of AWGN, one of the most common cases of “real-world” noise, where the original bits are disturbed by an amount of noise
proportional to σ 2 .
Of these three, only the BSC and the BPSK-AWGN channels will be amply used in this thesis.
The Binary Erasure Channel (BEC) will not the used, since for small-to-medium size of LDPC
codes - the target of this thesis - small LPDC codes don’t recover efficiently erasures, especially
burst erasures [5, 9]. Real-world systems that employ small-to-medium LDPC codes, tend to use
an outer code such as Reed-Solomon (RS) code - which encapsulates the LDPC payload [8] - to
deal with burst erasures. The inner/outer split is done because different families of code, perform
differently in the presence of different kinds of noise. Large LDPC codes can deal admirably well
with burst erasures, but those large codes aren’t the target of this thesis (see chapter 6).
2.3
Noise Scenario
As previously stated, it is assumed that the proposed communication system operates in a
frequency-selective noise environment, typical of PLC or DSL environments. The best way to
deal with frequency-selective noise, is to discard all sub-bands affected by noise, while using the
remainder sub-bands. By design OFDM systems already split modulated data through several
subcarriers / sub-bands. In this thesis, it is introduced a modification for the Binary Symmetric
Channel (BSC) that takes into account frequency-selective noise. The standard BSC channel is
composed into a bank-like structure, where each subcarrier, is a single standard BSC - figure 2.2.
Each subchannel 1,2, . . . , N, has its own probability of cross over, pc1 , pc1 . . . pcN . In this stacked
model, each single BSC is intended to model a particular frequency of frequency -selective noise.
Here lies the major assumption in this thesis: for the modifications made to the LDPC decoder,
it is irrelevant where in the electromagnetic spectrum the first and subsequent subcarriers are
located [Hz], how each one is spaced, interleaved, what was the modulation type, etc. The
additions and modifications done to the LDPC decoder result that the decoder is only concerned
with the provenance of every bit and through what channel did a particularly bit come through.
The reasoning is that each subcarrier is essentially sampling the noise of that band of spectrum.
Thus, all uncorrected bits coming from that subcarrier, are sampling the same sub-band of the
spectrum, regardless of the modulation scheme. As long as such bit vs channel accounting is
possible the work is this thesis is applicable.
9
2. Multi-carrier Modulation and Modeling Transmission Channels
Figure 2.2: Frequency-selective noise BSC bank channel
2.4
OFDM
Orthogonal Frequency-Division Multiplexing is a digital multi-carrier modulation scheme, firstly
proposed in 1966 [10]. Regarding other FDM systems, OFDM boasts advantages such as improved spectral efficiency, and robustness against channel interference, though these advantages
come at the expense increased system complexity. Table 2.1 lists present-day communication
systems and services employing OFDM.
Usage
System / Service
Broadband
ADSL and PLC (both wired)
Computer networks
WiFi, IEEE 802.11a/n and WiMAX
Digital radio
DAB, DAB+, Digital Radio Mondiale, HD Radio, T-DMB
and ISDB-TSB
Terrestrial TV
DVB-T, DVB-H, T-DMB, ISDB-T and MoCA (wired)
Satellite TV
DVB-S2
Cellular communication
Flash-OFDM
Personal Area Networks
UWB
Mobile broadband
3GPP and HSOPA
Table 2.1: List of present-day communication systems employing OFDM
The basic principle of OFDM, like all FDM schemes, is to assign several frequency ranges
to different signals. However, the orthogonality principle allows to go beyond the tight packing
of non-overlapping subcarriers of FDM: with OFDM it is possible to achieve reliable transmission
with overlapping adjacent subcarriers, thus reducing the required bandwidth (figure 2.3). These
10
2.4 OFDM
subcarriers are modulated with standard modulations such as BPSK, Quadrature Amplitude Modulation (QAM), etc.
Figure 2.3: OFDM vs FDM spectral efficiency
As can be seen from the figure 2.3, as the number of subcarriers, Nc , grows, OFDM allows
for tighter and tighter packing of subcarriers, since it is possible to overlap adjoining subcarriers.
For the bottom example, where Nc = 3, for OFDM the spectral usage is BW = 4R/3 versus the
BW = 2R for FDM. Thus more subcarriers can be fitted into the same bandwidth window, BW ,
which means an higher spectral efficiency for OFDM vs FDM.
Another major feature of OFDM is splinting the original bitstream into lower-rate subcarriers.
This lower bitrate of each subcarrier allows using guard intervals between symbols, reducing
propagation delay errors, lowering Inter Symbolic Interference (ISI).
Any frequency mis-synchronization between transmitter and receiver degrades the performance of an OFDM receiver. This is a consequence of the detection method, time-integration
of the incoming signal. Any jitter between both ends, may cause an incoming symbol to fall outside the integration time window of the decoder, thus increasing the symbol error rate.
An overview of a complete OFDM modulator/demodulator system is shown in figure 2.4. At
the transmitter side, the modulation process starts with a serial-to-parallel transform applied to the
input bitstream, which is split among N substreams. Next, each substream is individually mapped
with a standard modulation such as BPSK. Then, the FFT is computed for each substream. The
OFDM symbol is created by simply summing all the N FFT outputs. This symbol is then converted
into the analog domain where it is shifted into an appropriate RF carrier.
At the receiver end, the reverse process takes places: After downmixing the analog signal
from its RF carrier, the baseband signal is converted back into the digital domain. The digital
samples of the received OFDM symbol are then demodulated via a FFT into the same number, N,
11
2. Multi-carrier Modulation and Modeling Transmission Channels
Transmitter side
Original
message
0101 1001 1100
Serial to
parallel
conversion
011
101
000
110
Modulated
message
OFDM
Mod.
Noisy
Channel
Receiver side
De-modulated
message
Noisy
Channel
OFDM
Demod.
011
101
000
110
Received
message
Parallel to
serial
conversion
0101 1001 1100
Figure 2.4: OFDM modulation/demodulation functional block
of subcarriers. Once these individual lower rate subcarriers are demodulated, they are regrouped
into an output bitstream via a parallel-to-serial transformation.
2.5
OFDM Implementation
The intended OFDM system used in this thesis, is a simple one, firstly because the thesis
focus is coding theory, and secondly because the features of OFDM that are the attention of this
work - its wide-spread adoption and its serial-to-parallel transmission architecture, that allows to
perform the bit vs carrier accounting mentioned earlier - are already built in the basis of OFDM.
Features such as cyclic prefix, training pilots, changing modulation type according to channel SNR
are omitted.
The implemented OFDM system has the general architecture presented in figure 2.4), which
is a standard OFDM modem, but implemented as in figure 2.5.
The modulator block is simply serial-to-parallel converter, followed by BPSK modulation step,
followed by the last step where an IFFT block that generates the OFDM symbol.
The demodulator performs the reverse transformations: IFFT, followed by BPSK demodulation, and finally performs parallel-to-serial conversion, but retaining the information of which bits
traveled through which carrier.
Figure 2.5: Simple OFDM modulation/demodulation functional block
12
2.6 Conclusions
2.6
Conclusions
This chapter presented various channels typically used in Coding Theory, and also the type of
channels employed in this thesis. The major idea and assumption of this thesis was introduced:
That from the standpoint of coding theory, the LDPC decoder is only concerned with the provenance of every bit and through what subchannel/subcarrier did a particularly bit come through no other aspect of communication systems theory is taken into account.
The implemented OFDM solution was presented and the assumptions regarding the coupling
to the LDPC decoder were introduced.
13
2. Multi-carrier Modulation and Modeling Transmission Channels
14
3
Low-Density Parity-Check Coding
Contents
3.1 Introduction . . . . . . . . . . .
3.2 LDPC codes defined . . . . . .
3.3 LDPC encoding . . . . . . . . .
3.3.1 Fast encoding . . . . . . .
3.4 Decoding linear block codes . .
3.4.1 LDPC decoding . . . . . .
3.4.2 Noisy channel decoding .
3.4.3 Iterative decoding . . . . .
3.4.4 Node update equations . .
3.4.5 Iterative decoding example
3.5 Conclusions . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
18
19
21
22
22
23
24
25
28
15
3. Low-Density Parity-Check Coding
3.1
Introduction
Low-Density Parity-Check (LDPC) codes are a class of linear block codes that can achieve
near channel capacity [3]. They were first proposed in the 1960’s by Gallager [1], in his doctoral
dissertation.
This chapter starts by presenting the definition, parameters and structure of LDPC codes, then
details the encoding and decoding processes, their performance and shortcomings.
3.2
LDPC codes defined
As a linear-block code, an LDPC code has a parity-check matrix representation, denoted by
H, although to be considered as a LDPC code, it has to satisfy some specific construction rules
and parameters. All LDPC code parameters are linked to several properties of the (M × N ) H
matrix. The LDPC parameters are: (N, M, j, k), where N is code block-length, M is the number
of constraints - or check nodes - j and k are respectively H column and row weight (weight: the
number of non-zero elements in a row/column). The codeword size, N , is related to the message
size K, by the expression N = M + K. The code rate (the portion that is used for message data)
is given by R = (N − M )/N = 1 − M/N
A code is said sparse or low-density (hence its name) when k N and j M . This is the
first main “feature” of LDPC codes: the H matrix sparseness/low-density.
An example of an (N = 8, M = 4, j = 2, k = 4) LDPC code (non-sparse for demonstration
only purposes), is the following 4 × 8 matrix:

1 0 1
1 0 0
H=
0 1 1
0 1 0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0

0
1

0
1
(3.1)
The rate for this code is R = 1 − 4/8 = 0.5 which is a code rate of 50%. Thus for every 4
message bits another 4 bits are added as redundancy.
The code presented in the previous matrix is regular since every row has the same number of
1’s, and every column has also the same number of 1’s:
X
H= 2
2
2
2
2
columns
2
2
2
 
4
X
4

H=
4
rows
4
Regular codes verify the equation N · j = M · k. Irregular codes are codes that have non-uniform
distribution in the number of 1’s per row/column.
Besides the parity-check matrix representation shown above, LDPC codes have a undirected
bipartite graph representation, as introduced by Tanner in [11]. This type of graphs, which are
particular useful for studying the decoding process of LDPC codes, are called Tanner Graphs in
16
3.2 LDPC codes defined
his honor. The graph is called bipartite because there are two different types of nodes connected
by the edges: variable-nodes depicted as circles (#), and check-nodes depicted as boxes (2)
(following the notation in [12] henceforth referred as v-nodes and c-nodes). The Tanner graph for
the previous example of H is shown in the figure 3.1:
Figure 3.1: Example H matrix and associated Tanner graph representation
Each H non-zero element is an edge in a Tanner graph. Each edge connection from check
node cm to a variable node vn (or vice-versa) corresponds to a non-zero H entry, Hm,n 6= 0.
As can be seen from figure 3.1, there are M = 4 rows (4 check nodes) and N = 8 columns
(8 variable nodes). Notice the correspondence between the graph and the H matrix: From the
graph, it can be seen that the first check node (top-left) is connected to the 0th, 2nd, 4th and 7th
check-nodes. This corresponds exactly to H’s first row non-zero elements. From a variable node
perspective, the first v-node (bottom-left) is connected the 0th and the 1st c-node. This matches
the first column of H non-zero elements. Thus, the M rows of H define the connections of each
cm and the N columns of H define the connections of each vn .
Check nodes receive their name because each node can be seen as an check equation that
detects the even-parity of the codeword bits present at the adjacent v-nodes. These v-nodes
contain the values depicted in figure 3.2, which has the following check-node equations, where ⊕
is the binary XOR operator:
c0 = v0 ⊕ v2 ⊕ v4 ⊕ v6
c1 = v0 ⊕ v3 ⊕ v5 ⊕ v7
(3.2)
c2 = v1 ⊕ v2 ⊕ v5 ⊕ v6
c3 = v1 ⊕ v3 ⊕ v4 ⊕ v7
This is the second main “feature” of LDPC codes: the parity-checking ability.
As an example, the codeword x = [0 1 0 1 1 0 1 1], present at the v-nodes (figure 3.2) verifies
17
3. Low-Density Parity-Check Coding
Figure 3.2: Codeword x = [0 1 0 1 1 0 1 1] parity-checking
all check equations (equation 3.2):
c0 = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0
c1 = 0 ⊕ 1 ⊕ 0 ⊕ 1 = 0
(3.3)
c2 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
c3 = 1 ⊕ 1 ⊕ 1 ⊕ 1 = 0
This example codeword also satisfies the linear block-code check equation xHT = 0, because
any LDPC code is also a linear block-code.
3.3
LDPC encoding
(a) H in sparse representation
(b) H in systematic form
Figure 3.3: Graphic representation of a generator matrix in systematic form
Because LDPC codes are block codes, the same encoding methods apply. The textbook
approach for encoding linear block codes is a standard vector-matrix operation, x = uG. The
generator matrix usually has the form G = [Ik |P], where P is a dense matrix containing the parity
information, obtained by reducing the original H matrix to the systematic form H = −PT |In−k
through Gaussian elimination. Figure 3.3b is graphical representation of an example parity check
matrix in systematic form, where black pixels represent non-zero elements. The original H in
sparse representation is depicted in 3.3a.
The generator matrix G of the example code is presented in figure 3.4. Most of the generator
matrix is a largely an identity matrix. Generating a codeword, x = uG, is thus an inexpensive
18
3.3 LDPC encoding
Figure 3.4: Generator matrix graphical representation for H
n-m
n-m
m
1
1
g
m-g
1
1
1
1
1
0
1
1
m
1
1
1
1
1
1
B
A
T
m
C
D
1
1
0
1
E
1
m-g
1
g
1
n
n
(a) Parity-check matrix in lower triangular systematic
form
(b) Parity-check matrix in approximate lower triangular
form
Figure 3.5: Parity-check matrix in systematic and fast encoding forms
operation (software or hardware wise) for the Ik part of G. The expensive part is the dense
right-side block.
For dense matrices, an n sized vector-matrix multiplication has complexity O(n2 ). Thus, for
large values of n the computational effort required for encoding via generator matrix can be quite
large.
To achieve linear encoding, methods such as restricting the structure of the code, or forcing
the parity-check matrix to have a lower triangular form (figure 3.5a) have been proposed since
the appearance of LDPC codes, but these simplifications and/or restrictions in the code structure
always result in loss of coding performance [3].
3.3.1
Fast encoding
After the re-discovery [13] of LDPC codes, one of the major drawbacks towards their widespread
usage was high encoder complexity, specially compared to Turbo-Codes, which boasted lineartime encoding. Richardson & Urbanke in 2001 [14] introduced a method that allowed efficient
encoding of LDPC codes in linear time, with the provable maximum complexity:
C(n) = 0.0172 n2 + O(n)
(3.4)
19
3. Low-Density Parity-Check Coding
Because the constant affecting the quadratic term is very small, their method can be used even
for large codes. The algorithm has two parts: an offline (prepossessed) and an online part.
In the prepossessed part of the algorithm, the matrix H is firstly rearranged into an approximate triangular form (figure 3.5b) suitable for fast encoding. This is achieved by iteratively permuting the row/columns until a suitable partition of H is found (the limiting criterion is given in the
explanation of equation 3.9). The partitioning process splits H into six sub-matrices:
A B T
H=
C D E
(3.5)
The sub-matrices sizes (figure 3.5) are: A is (m − g, n − m), B is (m − g, g), T is (m − g, m − g),
C is (g, n − m), D is (g, g) and E is (g, m − g). Left multiplying H by
I
0
−ET−1 I
achieves:
A
B
H=
−ET−1 A + C −ET−1 B + D
T
0
(3.6)
Splitting a codeword into x = [u, p1 , p2 ], where p1 and p2 are intermediary parity vectors, the
parity check equation HxT = 0 results into:
AuT + BpT1 + TpT2 = 0
(3.7)
(−ET−1 A + C)uT + (−ET−1 B + D)pT1 = 0
(3.8)
p1 can be easily obtained from the last equation (3.8):
pT1 = φ−1 (−ET−1 A + C)uT
(3.9)
where φ = (−ET−1 B+D). In the event of φ being singular, another partition for H must be found,
possibly with another value for g.
The intermediary parity vector p1 , can be rewritten as
pT1 = Moff uT
(3.10)
where the Moff matrix can be fully pre-computed. This greatly reduces the number of computations required in the online part of the encoding algorithm.
In a similar manner, pT2 can be obtained from equation 3.8:
pT2 = −T−1 (AuT + BpT1 )
(3.11)
In the online part of the algorithm (i.e. the actual encoding), a LDPC codeword vector is
obtained by the concatenation of the user bits (n − m row vector) and the intermediate p1 and p2
parity vectors.
20
3.4 Decoding linear block codes
Operation
T
Moff · u
A · uT
B · pT1
−1
T · A · uT
Comments
Complexity
dense matrix multiplication
sparse matrix multiplication
sparse matrix multiplication
sparse matrix multiplication, performed by backsubstitution, because T−1 is lower triangular and
also sparse
O(g × (n − m))
O(n)
O(n)
O(n)
Table 3.1: Complexity of online part of the encoding process
In the previous equations, A and B are sparse matrices, while Mof f is a dense (g, n − m)
matrix. The computation of Moff is the most complex part of the whole encoding process. Table
3.1 details the online encoding process complexity namely, equations 3.10 and 3.11.
In conclusion, the “efficient encoding” algorithm [14] goal is to provide a fast encoding method
for LDPC codes. This is achieved by rearranging and partition the H matrix with a gap parameter,
g, as small as possible, because, as can be seen from table 3.1, the most expensive step is the
dense matrix multiplication with complexity O(g × (n − m)). Thus, as stated in equation 3.4, the
encoding process complexity is set by g.
Another advantage of this encoding process is storage savings: There is no need to store
the generator matrix G, because a full encoder/decoder system can perform both operations with
only the parity-check matrix H.
3.4
Decoding linear block codes
A message (a sequence of K user bits, u = [u0 u1 . . . uK−1 ]) in encoded through linear block
coding into a N bit sequence, called a codeword, x = [x0 x1 . . . xN −1 ]. The encoding transform
adds redundancy to the user bits, with the purpose of performing error detection/recovery upon
reception. The process of linear block encoding can be mathematically expressed as x = u G
where G is a specially crafted matrix (generator matrix) which has the rules for adding redundancy
to u. Unreliable and/or noisy channels can introduce errors in the transmitted codeword. However,
the receiver must be able to i) check if the received codeword is valid and error-free, ii) perform
its decoding in order to retrieve the original user bits, and iii) in case of errors, perform some kind
of error correction.
From a generator matrix, a parity-check matrix H can be derived, where H = −PT |In−k ,
if and only if the G matrix has a decomposition such as G = [Ik |P]. The H matrix has all the
verification rules that a given codeword must satisfy in order to be declared error free [1]. For linear
block codes, satisfying the condition x HT = 0 proves that a codeword is valid and error-free. This
property, however, allows only detecting errors, not correcting them.
In order to correct errors, one can apply methods such as the algebraic syndrome decoding
method, or a probabilistic method such as the Viterbi Algorithm (VA) [15], which minimizes the
21
3. Low-Density Parity-Check Coding
probability of decoding error in a given codeword. Although the VA decoding was conceived for
convolutional decoding, the work by [16] showed that soft decoding techniques of convolutional
decoding could be applied to block codes. This brought the power of maximum likelihood decoding
to block codes, because the algebraic decoding, although quite powerful, only performs well in
low-noise/linear channels.
3.4.1
LDPC decoding
One of the major challenges in implementing LDPC coding system is the complexity or feasibility of the decoder. Although LDPC decoding is a NP problem, Gallager also introduced a
near-optimal decoding [17] algorithm. The decoding algorithm has different names, since it was
“invented” several times in distinct domains: Sum-Product Algorithm (SPA), the Belief-Propagation
Algorithm (BPA), and the Message-Passing Algorithm (MPA).
3.4.2
Noisy channel decoding
The working basis of every decoder placed at the receiving end of a noisy communication
channel is “infer the original input, given the channel output”. In the probability domain, this can
be restated as: “for a given channel input x, from a probability ensemble X, the output y is related
to x by the following joint ensemble XY ”:
P (x, y) = P (y|x) P (x)
(3.12)
Using Bayes’ Theorem, the probability of a received codeword y, given the input, x can be
computed as:
P (y|x) =
(a) Binary Erasure Channel
P (y|x) P (x)
P (y)
(3.13)
(b) Binary Symmetric Channel
Figure 3.6: Two example of noisy channel models
The BEC, the BSC and the AWGN channel are the most used models of noisy channels,
because most problems in communication theory can be reduced to analyzing these models.
22
3.4 Decoding linear block codes
In the BEC (figure 3.6a), a binary symbol X has a probability pe of being “erased”, that is the
receiver has no idea what the original bit was. Bits not erased are assumed to be error free.
In the BSC (figure 3.6b), a binary symbol X has a probability pc of “crossing over”, that is
flipping from 1 → 0 or from 0 → 1.
The AWGN channel the input symbols are impaired with the addition of wide band white noise
having a Gaussian distribution of amplitude. The channel parameters are the mean and the
variance of such noise (µ, σ).
3.4.3
Iterative decoding
The purpose of iterative decoding algorithms applied to the noisy channel problem is to compute and estimate of original codeword x given the sampled channel output y, while minimizing
the decoded sequence’s bit error rate, x̂. This is achieved by computing the Maximum a posteriori
probability (MAP) for P (x|y).
For LDPC decoding, the most efficient known method for computing each of the xn bits is the
a posteriori probability (APP), P (xn = 1|y). Because the decoding is performed on graphs, the
particular algorithm used for computing the APP is the Message-Passing Algorithm (MPA). This
method iteratively computes the probability of a transmitted codeword bit (xn ) being 1, given all
received codeword’s bits y = [y0 y1 . . . yN −1 ], that is P (xn = 1|y).
Instead of having to deal separately with the P (xn = 1|y) or P (xn = 0|y), the APP ratio can
be used:
. P (xn = 1|y)
l(xn ) =
P (xn = 0|y)
(3.14)
Or, for better numerical stability, the log APP ratio, Log-Likelihood Ratio (LLR), can be used:
λ xn
.
≡ ln (xn ) = ln
P (xn = 1|y)
P (xn = 0|y)
(3.15)
The MPA is an iterative algorithm based on the code’s graph for the computation of P (x = 1|y),
l(xn ) or λxn . The decoder operates as follow: i) iteratively, the decoder evaluates the codeword’s
check-constraints, ii) notifies neighboring nodes of the confidence level of that bit being correct.
iii) Each node, given the new incoming confidence level, recomputes his own confidence levels,
and again iv notifies neighboring nodes. This confidence propagation occurs through all edges,
from c-nodes to v-nodes, and back again, several times, until a predefined number of iteration is
reached, or the codeword is valid.
The estimate of a given bit be 0 or 1 in the log-likelihood domain is given by:
(
λxn > 0 ⇒ x̂n = 1
λxn < 0 ⇒ x̂n = 0
(3.16)
Thus the estimate that a received bit being 0 or 1 is depends only on the sign of λxn , x̂n =
sign(λxn ). Establishing the value of x̂n only using the sign information is quite a coarse evaluation.
23
3. Low-Density Parity-Check Coding
The magnitude of the λxn carries the reliability of the estimate of x̂n being towards 0 or 1. For
example, for λxn = 0, x̂n has the same likeliness of being a 0 or 1.
Because the computation of the log-MAP via the MPA (computing the estimate of each xn
value), occurs on a graph, two sources of reliabilities are available: the reliability of xn given yn ,
and the reliability of xn given all the bits of y except yn , that is: y\n . Taking into account these
two sources of reliabilities, and applying Bayes’ theorem to both the numerator and denominator
of equation 3.15:
P (xn = 1|yn , y\n )
=
P (xn = 0|yn , y\n )
P (yn , bn = 1, y\n )
P (yn , y\n )
= ln
· ln
=
P (yn , y\n )
P (yn , bn = 0, y\n )
P (yn |bn = 1, y\n ) · P (xn = 1, y\n )
P (yn |y\n ) · P (y\n )
= ln
·
P (yn |y\n ) · P (y\n )
P (yn |bn = 0, y\n ) · P (xn = 0|y\n )
λxn = ln
(3.17)
The received channel’s sample yn is independent of the set of received samples (y\n ). Thus,
the previous expression simplifies to:
λxn = ln
P (yn |xn = 1) · P (xn = 1|y\n )
P (yn |xn = 0) · P (xn = 0|y\n )
(3.18)
Which in turn can be split in order to highlight the contributions of each xn and y\n towards
computing λxn :
λxn = ln
|
P (yn = 1|y\n )
P (yn |xn = 1)
+ ln
P (yn |xn = 0)
P (yn = 0|y\n )
{z
} |
{z
}
Intrinsic
(3.19)
Extrinsic
The first term of (3.19), contains the intrinsic information, that is the reliability of xn based on
the channel sampling yn . The second term contain the extrinsic information, produced by the
decoder using all the channel samples except the current bit n.
The intrinsic information is dependent of the type of channel and modulation used. For the
AWGN channel with BPSK modulation, the intrinsic information is (see equation A.4, section
A.2.1 for details):
λxn ,int. =
3.4.4
2yn
σ2
Node update equations
Having introduced the LLR for evaluation the MAP algorithm in equation 3.19 hereafter the
extrinsic information is given by
λxn ,extr. , ln
24
P (bn = 1|y\n )
P (bn = 0|y\n )
(3.20)
3.4 Decoding linear block codes
3.4.5
Iterative decoding example
Consider a BPSK modulated noisy codeword symbol, z, present at the input of the decoder,
after traveling through an AWGN channel with noise vector e (see section A.2.1 for the derivation
details). A BPSK z symbol is given by:
z = (2x − 1) + e
(3.21)
The example codeword (notice it’s a valid codeword, because it satisfies xHT = 0)
x = [0, 1, 0, 1, 1, 0, 1, 1]
is sent through an AWGN channel with error vector e:
e = [−0.1077, −0.3408, −0.6059, 0.2683, 0.0531, −0.2545, −1.0363, 0.1343]
which has an AWGN parameter σ 2 = 0.20 ⇔ Eb /N0 = 5 dB (see equation A.5).
The noisy symbol vector at the channel output, z, is thus:
z = [−1.1077, 0.6592, −1.6059, 1.2683, 1.0531, −1.2545, −0.0363, 1.1343]
The channel reliabilities, that is the intrinsic information for this channel type with AWGN (equation A.4) is:
λx,int. = [−11.0770, 6.5923, −16.0592, 12.6834, 10.5309, −12.5455, −0.3630, 11.3425]
(3.22)
Performing hard decoding (equation 3.16) on the previous reliability will produce a wrong result
for the estimate of the original codeword:
x̂ = λx,int. > 0 ⇔
⇔ x̂ = [ 0, 1 , 0 , 1 , 1 , 0 , 1 , 0 ]
The underlined element is an hard-decoding error: bit x̂7 = 0 is ill-decoded, because the original
codeword bit value was x7 = 1.
Notice the dissimilar log-magnitudes of the channel’s output reliabilities (equation 3.22): as
high as λx2 ,int. = 16.0592 and, as low as λx6 ,int. = 0.3630. Low log-magnitudes mean low reliability/confidence that a particular x̂n trustworthy represents the original bit value. For the bit-error in
x̂7 , the corresponding reliability is low: λx7 ,int. = 1.1343.
A decoder has two equivalent methods for detecting errors: One is checking if the decoded
estimate x̂ verifies x̂HT = 0 (which for this example fails, x̂HT = [0, 1, 0, 1]T 6= 0). Another is to
check the LDPC code parity equations (equation 3.23):
c0 = v 0 ⊕ v 2 ⊕ v 4 ⊕ v 6 = 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0
c 1 = v0 ⊕ v3 ⊕ v5 ⊕ v 7 = 0 ⊕ 1 ⊕ 0 ⊕ 0 = 1
(3.23)
c 2 = v1 ⊕ v2 ⊕ v 5 ⊕ v 6 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0
c 3 = v1 ⊕ v3 ⊕ v4 ⊕ v7 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1
25
3. Low-Density Parity-Check Coding
Choosing one method over the other is a matter of picking the method most suited for the
decoder implementation. This is however only error detection. In order to perform error correction,
decoding via the MPA must be performed on the code’s graph.
The decoding process takes place by exchanging node reliability messages through the graph’s
edges. Edge numbering schemes can have a v-node or c-node perspective. In the current work,
v-node perspective numbering was chosen, as presented in figure 3.7.
c0
0
1
v0
c1
2
5
3 4
v1
v2
c3
c2
9 10 11 12
7 8
6
v3
v4
v5
13 14
v6
15
v7
Figure 3.7: Edge numbering scheme
(0)
When the decoding process starts, the messages present at the check nodes, λcm ,vn , are 0,
which means an equal likeliness of the input being a 0 or a 1. Thus on the first iteration, the
variable nodes only spread the channel reliabilities (equation 3.22) through the graph, along each
corresponding edge (figure 3.8a).
On the next iteration, the check-nodes send back to all neighboring nodes the update mes(1)
sages λcm ,vn (figure 3.8a).
Each time the variable node equations are re-evaluated, the reliability estimation of the bits
presented at the input of the decoder increases. As can be seen from table 3.3, the decoding
algorithm is able to remove the error in the codeword presented at its inputs. Further iterations
would only strengthen the reliabilities, without changing the output codeword. Thus, the algorithm
stops as soon as it finds a codeword that satisfies all parity check equations, but only after running
for at least for 2 iterations, in order to assure that enough reliability messages were exchanged
between check and variables nodes.
26
3.4 Decoding linear block codes
v0
v0
-1
1.0
7
-11.0
770
70
v1
c0
2
.059
- 16
30
9
10
.5
-0
.3 6
c1
12
20
v3
25
11.34
12
.40
10
v6
v7
(a) Bit-nodes updates
c2
6
0
-0.362 6.589
-
-10
.07
17
.53
09
-10
.7 1
94
30
-0.
36
11
.3
v7
v5
c3
42
5
v6
10
6
64
.5
-6
-0.
5
-12.545
v5
v4
c2
0
363
c1
-10.3856
923
4
83
.6
5
45
2 .5
-1
c0
59
.08
- 10
v4
30
0
12.6834
-0.36
58
630
-0.3
v2
6.5
v3
v1
63
0.3
92
3
6.0
5
92
-1
6.5
v2
10
.89
-6
.58
14
c3
08
-6.57
(b) Check-nodes updates
Figure 3.8: Message flow for bit-nodes and check nodes update process
Edge
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(0)
(0)
(1)
λcm ,vn
λvn ,cm
λcm ,vn
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
−11.0770
−11.0770
6.5923
6.5923
−16.0592
−16.0592
12.6834
12.6834
10.5309
10.5309
−12.5455
−12.5455
−0.3630
−0.3630
11.3425
11.3425
−0.3630
10.8958
0.3630
−10.0859
−0.3630
−0.3620
−10.3856
−6.5646
0.3630
−6.5814
10.4012
−0.3620
−10.0717
−6.5896
−10.7194
−6.5708
(1)
λvn ,cm
−0.1812
−11.4400
−3.4936
6.9553
−16.4212
−16.4222
6.1188
2.2978
3.9495
10.8939
−12.9075
−2.1443
−6.9526
−10.4347
4.7717
0.6231
(2)
λcm ,vn
−3.9010
4.5404
2.1441
−0.5039
−0.1740
1.9170
−4.7702
−0.6219
0.1809
−0.5029
4.5396
3.4927
−0.1744
1.9172
−6.1129
−2.2883
(2)
λvn ,cm
−6.5366
−14.9780
6.0884
8.7364
−14.1422
−16.2332
12.0615
7.9132
10.0280
10.7118
−9.0528
−8.0059
1.5542
−0.5374
9.0542
5.2296
Table 3.2: Decoding evolution of the message passing algorithm
27
3. Low-Density Parity-Check Coding
(0)
Node
0
1
2
3
4
5
6
7
λvn
−11.0770
6.5923
−16.0592
12.6834
10.5309
−12.5455
−0.3630
11.3425
x̂(0)
0
1
0
1
1
0
0
1
(1)
λ vn
−0.5442
−3.1306
−16.7842
−4.2667
4.3124
−2.5063
−17.0243
−5.9476
x̂(1)
0
0
0
0
1
0
0
0
(2)
λ vn
−10.4376
8.2325
−14.3162
7.2914
10.2089
−4.5132
1.3799
2.9414
x̂(2)
0
1
0
1
1
0
1
1
Table 3.3: Evolution of soft and hard decoding results at the decoder output x̂
3.5
Conclusions
In this chapter the LDPC codes were introduced. The details and code generation were presented, as well as the steps takes in order to assure that the generated code is good-performing.
Fast methods for real time encoding LDPC codes were presented. The LDPC decoding algorithm was introduced and detailed.
28
4
Building LDPC Codes
Contents
4.1 Introduction . . . . . . . . . . . . . . . . . . . .
4.2 Performance analysis of LDPC parameters . .
4.2.1 Equivalence of ensembles of LDPC codes
4.2.2 Girth and small-cycles removal . . . . . .
4.2.3 Regular vs Irregular codes . . . . . . . . .
4.3 Conclusions . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
31
32
33
35
37
29
4. Building LDPC Codes
4.1
Introduction
Several parameters dictate the performance of LDPC codes regardless any other implementation details or the system’s operating conditions. But even a code designed for the utmost coding
performance must also have an efficient run-time encoding and decoding methods (section 3.3.1),
else it isn’t suitable for real-time and/or low-latency usage.
Dozens of LPDC building methods or improvements to existing methods continue to be proposed annually. Cyclic geometries, finite-geometries [18], progressive edge growth and its many
variants [19], combinatorial constructions [20], and so on. The list of methods is truly extensive. Although most of these proposals introduce gains in the efficiency of LDPC error correcting, these gains are at the expense of run-time performance and/or system complexity. Successful applications of LDPC systems tend to prefer simpler codes with simple encoder/decoder
structure (whether regular or irregular) though throughly tested, such as the LPDC code used in
10GBASE-T Ethernet, where the validation and optimization of that code took 2 weeks in a 256
node computer cluster [6].
In this thesis, all the methods employed in the construction of LDPC are built upon simple
algebraic operations over an parity-check matrix and/or its adjacency matrix. These are mostly
simple operations such as 1’s insertion, and rows/column swaps, governed by simple heuristics.
The flowchart in figure 4.1 presents the order of the steps required to achieve a well performing
code: Given the inputs (N, R, j, k) - (blocklength, code rate, column weight, row weight) - the
LDPC code generator algorithm starts by creating an empty M by N matrix, where the number
of constraints M is derived from the input parameters N and R (block size and code rate). For
irregular codes, j and k contain the desired distribution of 1’s by column and row respectively. For
regular codes, j and k cardinality is 1.
Several algorithms can be employed from distributing the 1’s throughout the parity-check matrix. Two different algorithms can be used, a i) random placement of 1’s while complying with
the code (j, k) parameters or ii) a random opportunistic greedy filling algorithm than given a
target row/column weight distribution (j, k) or (λl , λr ), tries on each iteration to fill still vacant
rows/columns, while avoiding violating weighting distribution rules. This last method allows for
fast encoding of LDPC codes, and is the method introduced in [3]. After the filling process ends,
and because such process is non-deterministic, a code must be checked for compliance with the
input parameters. Non-compliant codes are discarded and the process restarts.
The next phase in the process tries to break small loops into larger loops. The smallest loop
in a LDPC code/graph is a loop with 4 cycles: It is the minimum path from a given node back to
itself (figure 4.3). See section 4.2.2 for more details. If most of the small loops were removed, the
process continues into the next phase. Else, the process restarts with a new empty matrix.
The next step in the building process, generate a fast encoding representation from the current
30
4.2 Performance analysis of LDPC parameters
Figure 4.1: Flowchart for Finding high-performant LDPC codes
code, is responsible for the existence of a fast encoding process, implementing the ideas of [14].
One question that might arise regarding the filling algorithm is why an almost brute-force (NP
complexity) approach is used instead of other approaches such as Progressive Edge Growth
(PEG) algorithms (which is still an NP hard problem) that have better changes in producing codes
with large girths. The reasoning is that the partitioning process is an extremely selective process,
rejecting a very large number of codes, thus being the bottleneck (resource-wise). Implementing
any of the PEG methods, yielding perhaps above-than-good-average codes, might have been a
sensible thing to do regarding completeness, but it can also be seen as a waste in resources
since most codes would be rejected because they would not have a fast-encoding representation.
4.2
Performance analysis of LDPC parameters
The ultimate benchmark for a LDPC code usually is its ECC ability. In [17], is stated on of
the most basic results of coding theory: The larger the code, the better it performs as an error
correction construct. Regardless any other considerations larger codes (for the same code rate)
perform better than smaller codes.
31
4. Building LDPC Codes
Other parameters and properties can also affect a code performance. These, girth size, and
code structure. These parameters are detailed in the following sub-sections.
4.2.1
Equivalence of ensembles of LDPC codes
Consider the set ensemble of (N = 140, M = 35, j = 3, k = 12) LDPC codes, with code rate
R = 1 − 35/140 = 0.75. There is an almost infinite number of codes that satisfy these constrains.
Let Ha , Hb and Hc be the PCMs of three different codes from the previous ensemble. Ha and
Hb are randomly generated while Hc is generated while having a fast enconding structure.
Figure 4.2 details the results of the three codes performance over the AWGN channel.
Figure 4.2: Coding performance of 3 identical sized codes
As can be seen from the figure, all three codes have similar ECC performance in the waterfall
region, although the Hc code has slightly lower performance. As stated previously, finding a code
with structure amenable to easy encoding usually mean that can has degraded performance
compared to other codes of the same size. This is specially true for small codes.
For reference, the code’s girth histogram is detailed in table 4.1. The girth histogram is quite
similar for all three codes.
Code
Number of n-cycles
4
6
8
10
Ha
294
3273
17490
2
Hb
262
3337
17226
0
Hc
256
3347
17190
0
Table 4.1: Girth histogram for the (N = 140, M = 35, j = 3, k = 12) ensemble
32
4.2 Performance analysis of LDPC parameters
4.2.2
Girth and small-cycles removal
The girth is define as the smallest loop/cycle (the path from a given node back to itself) within
a code’s graph representation. A code’s minimum girth is the parameter that mostly affects performance, particularly for small-sized codes.
Because codes have finite block-length, any cycles on its graph are bounded. Thus at every
node there are many possible paths that revert back to the original node. Messages over larger
cycles take more iterations to travel back to a given starting node, but have the opportunity to
gather reliability updates from more distant nodes. For small cycles the reverse is true: spanning the entire cycle takes fewer iterations, and fewer nodes are reached. Thus, smaller cycles
biases incoming messages of all its spanning nodes towards the reliability updates of the cycles
members.
c1
c0
c3
c2

1
1
H=
0
0
v0
v1
v2
v3
v4
v5
v6
0
0
1
1
1
0
1
0
0
1
0
1
1 0 1
0 1 0
0 1 1
1 0 0

0
1

0
1
v7
Figure 4.3: Thick solid: A 4-loop defined by vertexes v3 c1 v7 c3 , in both tanner graph (left) and
parity-check matrix forms (right). Dashed: a 6-loop defined by vertexes v3 c1 v5 c2 v1 c3
Smaller cycles, (see figure 4.3) mean that less reliability for a given bit can be gathered by the
decoder. Consider the (dashed) small loop (4-cycle) depicted in the figure, spanning the vertexes
c1 , v3 , c3 and v7 : At variable node v3 , there can be only reliability updates coming from c1 and
c3 . After 2 iterations (two “up” and two “down” half-iterations), v3 will receive updated reliabilities
weighting the whole v3 c1 v7 c3 cycle. There are of course larger cycles that also have v3 as a
vertex (see the dashed 6-cycle v3 c1 v5 c2 v1 c3 ). But the consequence is that every 2 iterations v3
will receive through c1 /c3 similar updates, weighting mostly c1 v7 c3 . Messages from distant nodes
will arrive at a slower place: reliabilities over the whole dashed 6-cycle will arrive every 3 iterations.
Thus, the reliability updates received at v3 will be heavily biased towards the information updates
that happen over the small 4-cycle.
This is a limiting result, because the condition of convergence of the MPA assumes that the
cycles spanning at each node are infinite.
Most authors [21] acknowledge the desirability of removing small loops in LDPC graphs, due
to the loss of error coding performance caused by such small cycles. The typical algorithm for
generating LDPC codes usually makes a minimal effort to discard at least 4-cycles, because they
33
4. Building LDPC Codes
are easy to spot in a parity-check matrix: search for columns with two 1s in identical positions
(thus forming a rectangle of four 1s in the matrix - figure 4.3). With some shuffling and row/column
swapping it is usually possible to remove a 4-cycle. Longer cycles, aren’t as easily removed as
4-loops. Approaches such as given in [13] which just delete small cycles, tend to deeply change
the properties of a LDPC code.
An effective small loop removal process must perform and assure the following two conditions:
i) be able to locate all nodes with a girth of size n. ii) to be able to remove a n-loop without
introducing smaller n-loops.
In order to efficiently locate loops of any length, the removal process is performed over a code’s
adjacency matrix. Because the parity-check matrix of LDPC codes represents a bipartite graph,
the adjacency matrix A is simply:
A=
0
HT
H
0
(4.1)
where 0 is the all-zero matrix.
As presented in [22], the following observations regarding A stand:
Theorem 1. The (i, j)-entry of An is the number of paths of length n from vi to vj
Theorem 2. In a graph with girth n, two nodes vi and vj are opposite each other (i.e. connected
via a 3rd node) iff:
n/2
Aij
(n/2)−2
Aij
(4.2)
≥2
=0
(4.3)
With theorem 2, its possible to identify which nodes have a particular girth. Once an unwanted
loop is found, the next step is to remove it from the graph. This is performed on a edge-by-edge
basis. Care must be taken in order to avoid creating smaller loops. The details and the needed
cautionary steps required to successfully perform a loop removal are detailed in [22]. Succinctly,
the removal process is as follows: in order to efficiently remove a small loop, a random edge from
that loop is selected, with nodes vi and vj . From the set of the remainder adjacent nodes of vj ,
a node vk is selected giving rise to a new edge e = vj vk . Then, from the set of all nodes with a
distance greater than n − 1 from both vj and vk (set Se ), a random node vc is selected. From the
previous set Se , an edge e0 = vl vm with both ends in that set is selected. The actual loop removal
step, deletes both e and e0 from the graph, and replaces them with e2 = vj vm and e02 = vl vk . See
the appendix, for a graphical explanation of this process.
In order to show the detrimental effect of small cycles, a random LDPC code (N = 140, N =
35, j = 3, k = 12) with PCM H1 is introduced. H2 is the PCM of the same code but with most
of the small cycles removed, which was obtained from the first PCM by applying the small-girth
34
4.2 Performance analysis of LDPC parameters
removal process described previously. Table 4.2 details the girth removal algorithm results. For
each code (first column), the number of {4, 6, 8}-cycles in that code are detailed.
Code
Number of n-cycles
4
6
8
H1
276
1252
984
H2
10
2098
56
Table 4.2: Listing of each code n-cycles before and after the removal of small cycles
Its easily noticeable from table 4.2 that the number and type of cycles of H2 has changed.
There are less much less 4-cycles than in the original PCM, H1 , but the number of 6-cycles
almost doubles in H1 . Notice that for a given code, the total number of cycles before and after the
removal of small cycles is not constant. This is due to the way how the removal process works,
merging smaller cycles into larger cycles, thus decreases the total number of cycles in a graph.
The next figure represents the Bit Error Rate (BER) vs SNR for a simulation performed over
the AWGN channel.
Figure 4.4: H1 vs H2 - with girth removal step applied
4.2.3
Regular vs Irregular codes
One of the improvements (with associated tradeoffs) that can be done to systems using LDPC,
is to employ irregular codes. This increases ECC performance, but at the expense of decoder
complexity.
LDPC codes can be of two different classes regarding the code graph representation: regular
35
4. Building LDPC Codes
and irregular. In regular codes, all check nodes have the same number of incident edges, and
also, all variable nodes have the same number of incident edges. In irregular codes none of these
assumptions stands, so the number of incident edges at each node can vary.
Regarding hardware implementations, for irregular codes, where different nodes can have a
varying number of incident edges, this "extra" variety increases the number of hardware resources
need at the decoder, and, it also puts extra demands on the scheduling algorithms that sequences
the MPA. A regular code only needs to have one type of hardware block to compute check
equations, while an irregular code needs to have distinct hardware blocks to perform all different
types of check equations. For example, consider a k = 4 regular code. The decoder needs to have
(at least one) hardware block that implements the function cm = fk=4 (va , vb , vc , vd ). For a irregular
code, with some check nodes having k = 3, others k = 5 and yet others with k = 2, the decoder
needs to have hardware blocks for computing all the different check equations: cm = fk=2 (va , vb ),
cm = fk=4 (va , vb , vc , vd ) and cm = fk=5 (va , vb , vc , vd , ve ).
In order to demonstrate the performance differences between these two classes of LDPC
codes, two codes are introduced: Hreg , exactly the same code as H1 - a (N = 140, M = 35, j =
3, k = 12) LDPC code - and an irregular code, Hirr , which was created by just deleting and
merging all 4-cycles from Hreg into other loops, increasing the number of 6-cycles, and almost
tripling the number of 8-cycles. The codes girth histogram is presented in table 4.3.
Code
Number of n-cycles
4
6
8
Hreg
276
1252
984
Hirr
0
1308
3738
Table 4.3: Listing n-cycles for a regular and irregular codes
Figure 4.5: Coding performance of regular vs irregular codes
As can be seen in figure 4.5 (depicting the performance of Hreg vs Hirr ), the irregular code
36
4.3 Conclusions
is better performing in regards of ECC compared to the regular code. Another advantage of
the irregular code is that it takes on average less cycles to successfully decode a codeword,
as detailed on table 4.4. Although this last result holds true for software implementations, the
hardware scheduling of the MPA in decoding irregular codes might offset this decoding speed-up.
Code
Iterations taken
Hreg
20 20 20 20 20 20 20 20 6
4
4
4
4
4
5
5
5
4
4
4
Hirr
20 20 20 20 20 8
5
4
4
4
5
4
4
4
4
4
4
8
8
4
Table 4.4: Average number of iterations taken to decode a codeword, for regular and irregular
code
These last results were obtained with the maximum number of LDPC decoding iterations
bounded to 20, and the minimum to 4 (where 4 iterations is the minimum number of iterations
that allows the MPA to travel along a 4-cycle - the shortest cycle possible)
4.3
Conclusions
This chapter presented methods for improving an LDPC code through changes in its structure.
A workflow for generating good codes was presented, along with all the methods and algorithms
for performing such generation.
Regarding LDPC codes parameters, and how those parameter affect their ECC performance,
the following conclusions apply:
• A random generated (N, M, j, k) code performs similar to other random generated (N, M, j, k).
• For the same block-length, irregular codes perform better than regular codes.
• Larger girth translates into better code performance, and is one of the major parameters
that dictates the ECC performance of a LDPC code.
37
4. Building LDPC Codes
38
5
Multi-channel parameter estimation
Contents
5.1 Introduction . . . . . . . . . . . . . . . . . . . . .
5.2 Typical LDPC decoding architecture . . . . . . .
5.3 Channel noise parameter estimation . . . . . . .
5.3.1 Estimation via Bayesian inference . . . . . .
5.3.2 Channel error probability distribution function
5.4 System Architecture . . . . . . . . . . . . . . . .
5.5 System performance . . . . . . . . . . . . . . . .
5.6 Conclusions and Remarks . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
40
41
42
43
44
45
46
39
5. Multi-channel parameter estimation
5.1
Introduction
This chapter introduces the final goal of the developed work, introducing herein an architecture
that:
Delivers improvements to the decoding stage of multicarrier LDPC-coded systems, without
resorting to high-complexity LDPC implementations, or increasing the complexity of existing
ones.
As previously stated, LDPC decoding can be made into a near-Shannon process [3], although
this comes at the cost of a massive increase in decoder complexity and run-time. Improvements
to LDPC systems can be split into two areas: i) LDPC code structure (chapters 3,4) and ii) LDPC
encoding/decoding algorithms. This chapter deals with improvements to the LDPC decoding
process, specifically to channel noise estimation.
5.2
Typical LDPC decoding architecture
The block diagram and signal flow of a typical LDPC decoder is as follows:
Figure 5.1: LDPC decoder block diagram
From the figure 5.1 (and as detailed in section 3.4.1) at the noisy channel end, each bit measure, yn plus associated noise, en , is assigned a log-probability ratio, LLR, λxn ,int. . This intrinsic
LLR quantity is the only information/measurement available at the end of the noisy channel, and
it is this information that enters the LDPC decoder. Inside the decoder, an iterative process called
the Message-Passing Algorithm (MPA) takes place, which will check and infer whether the reliability of a given bit (given all other bits measured at the channel’s exit) represents accurately a given
bit. At each iteration the degree of confidence increases by successively harvesting all extrinsic
LLRs. After a preset number of iterations, hard-decisioning is performed yielding the estimated
decoded codeword ŷn .
The intrinsic LLR quantity is a function of two parameters: a channel bit observation yn ∈
{0, 1}, and channel noise conditions. As an example, for the AWGN channel (see section A.2.1)
40
5.3 Channel noise parameter estimation
the intrinsic LLR for bit xn is:
2yn
λxn ,intrinsic yn , σ 2 = 2
σ
(5.1)
As evidenced by 5.1, both the bit observation yn and the AWGN channel noise parameter, σ 2 ,
are the parameters that define the intrinsic LLR.
Different channels types have different expressions for the LLRs (as detailed in section A.2)
which mirrors that particular channel noise model. Thus any uncertainty in the estimate of channel
noise parameter will also be reflected as uncertainty in the intrinsic LLR value.
As shown in [23], intrinsic LLR values that result from estimating the channel noise as greater
than the real noise value, don’t affect the ECC ability of the LDPC decoder. However, if the LDPC
decoder is feeded with intrinsic LLRs computed over a more optimistic noise parameter, lower
than the real noise value, the efficiency of the LDPC decoder and/or its ECC ability decreases.
5.3
Channel noise parameter estimation
The generic parameter estimation approach is to take a set of measured data and try to infer
some unknown model parameter from the measured data.
The unknown parameter of interest here is the channel noise. The available/measured data
is the data at the input and output of the decoder. Herein is introduced the hypothesis that by
comparing how many bits are corrected between the LDPC decoder input and output, it is possible
to infer the channel noise, and thus compute a better estimate for the intrinsic LLR.
The problem of estimation is introduced as follows: given the number of bits corrected by the
LDPC decoder, estimate the value of channel (or subchannel) noise. For the BSC this means estimating pc - the probability of cross-over, and, for the BPSK-AWGN channel this means estimating
the variance, σ 2 .
The method introduced here is suitable to single channel and multichannel systems. For
generalization, the multichannel approach is the one detailed here, presented in figure 5.2.
Figure 5.2: Subchannel bit accounting at LDPC decoder side
41
5. Multi-channel parameter estimation
For the multichannel case, in order to perform multichannel estimation, any bits corrected
by the decoder must be accounted to a specific subchannel. For instance, from figure 5.2 for
computing the noise on the first subchannel, only the bits 1, 4 and 7 would be used. For the
second subchannel only bits 2 and 5, and so on. Thus the whole accounting process records how
many bits were corrected by the LDPC decoder per subchannel.
5.3.1
Estimation via Bayesian inference
Estimating a channel noise parameter uses the accounting of bits corrected between the input
and the output of the LDPC decoder, as detailed above. Several methods could be used, such as
a simple frequentist interpretation as in equation 5.2, where P (·) denotes a probability, and the #
symbol the cardinality of the given event:
P (error) =
#bits corrected
#total number of bits
(5.2)
The frequentist method has the disadvantage that a large number of samples are required, and
also, since this method does not require any knowledge of the underlying probability distribution,
the method converges slowly to the expected result.
Since the underlying probability distribution process is known (see section 5.3.2), methods
such as Bayesian inference can be used to better (and faster) estimate the channel noise parameter.
The Bayes theorem, used herein as the method for estimation is as follows [24]:
P (X|Y, I) =
P (Y |X, I) × P (X|I)
P (Y |I)
(5.3)
Replacing X by “hypothesis” and Y by “data”, and where I is the information (or experiment/sampling context), the data analysis and inference capability becomes apparent:
P (hypothesis|data, I) ∝ P (data|hypothesis, I) × P (hypothesis|I)
(5.4)
Regarding iterative estimation - which is used herein - the general estimation procedure for
Bayesian estimation is the Bayes theorem in the following form:
P (new hypothesis) =
P (previous hypothesis) × P (new data)
normalization f actor
(5.5)
Equation 5.5 is just an informal representation of Bayes Theorem [24]. P (new hypothesis) is
a pdf, where the x-axis value of the maximum is the desired estimated value of the channel noise
parameter.
In this application - where the only concern is the x-axis value of the maximum, the normalization factor can be omitted, so there is no need to keep the normalization factor.
Figure 5.3 details the iterative unfolding of an example estimation process – As can be seen
from figure 5.3a - just displaying one subcarrier for simplicity - the estimation process starts with
42
5.3 Channel noise parameter estimation
a prior (initial P (previous hypothesis)) showing “full ignorance”, that is the estimated parameter
could be uniformly distributed in the whole 0 to 1 probability interval. As the process iterates and
new information is available, it starts to bend and narrow the range were the estimated parameter
might lie. By the last three iterations (from a total of nine), figures 5.3 (g) (h) and (i), the maximum
of the pdf is already located near the real pc = 0.30.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
Figure 5.3: Posteriori evolution of an error process with a pc = 0.30
5.3.2
Channel error probability distribution function
Regarding the source of P (new hypothesis), in the Binary Symmetric Channel (BSC), there
are only two possible outcomes for a received bit y, given a channel input x. This is Bernoulli trial,
which has an binomial distribution model. The pmf the binomial distribution is:
f (k, n, p) =
n k
n−k
p (1 − p)
k
(5.6)
where n is the number of trials, k successes (in this case "success" is the event of cross-over),
and p ≡ pc , which is the parameter being estimated.
43
5. Multi-channel parameter estimation
For the BPSK with AWGN channels the problem might seem intractable. The binomial distribution maps Bernoulli trials with associate parameters into directly into probabilities, but the AWGN
has no probability value in its parameters, only (µ, σ) - the mean, and variance - while the binomial
has the probability p ≡ pc which can be estimated through the maximum of its associated pdf.
A solution is to use the Normal approximation to the binomial distribution [24], where instead
of the usual N µ, σ 2 there is the approximation N µ = np, σ 2 = np(1 − p) - see this chapter
conclusion for remarks on this approximation. This broad interpretation means that the BPSKAWGN channel, from the point of view of the LDPC decoder is also a BSC bank channel, as
presented in section 2.3.
5.4
System Architecture
Figure (5.4) presents the overall system architecture, encoders, decoder, modulator, demodulators, channels, but without the subchannel error estimation block.
Figure 5.4: Overall System Architecture
The operation of this system is as follows: consider the five bit message u (top left corner
- represented as numbers inside circles). These are encoded into an LDPC codeword, x (bits
1 to 7) where the boxes 6 and 7 are the redundancy bits introduced by the LDPC encoder.
These bits then are introduced into a multi-channel modulator - while being conveyed from serial
to parallel ordering. The multi-channel modulator can be an OFDM modulator or a BSC channel
bank. Notice how different bits are transported through different subchannels/subcarriers, where
each subchannel can have different noise profiles (modulates bits represented by triangles). Then
the bits are demodulated and serialized into and estimated codeword y, which is sent to the LDPC
decoder, yielding at the output an estimate for the original message u.
The LDPC decoder presented in chapter 3 was introduced in a graph-like perspective. A blockoriented representation is depicted in figure 5.5. Again, the core of the LDPC decoding algorithm
is the Message-Passing Algorithm (MPA). The MPA, iteratively tries to i) gather and ii) increase
the assurance that a particular bit is either a one or zero.
44
5.5 System performance
Figure 5.5: Inner block structure of an LDPC decoder with the herein proposed addition of “Intrinsic LLR estimator”
In the starting decoding iteration, the MPA is supplied with an intrinsic Log-Likelihood Ratio
(LLR) that measures the reliability of a given bit being a one or zero given the channel conditions
yn + en . This LLR is then added (or composed) to the extrinsic LLR computed by the MPA in
an iteratively fashion. After a preset number of iterations, a hard-decisioning is performed on the
extrinsic LLR values yielding a decoded (and/or corrected) codeword ŷn .
The proposed addition is an “Intrinsic LLR estimator”, that through the account of which bits
were modified on a given subchannel, tries to infer subchannel noise parameters, and thus compute a more reliable value for the intrinsic LLR that enters the LDPC decoder in order to improve
the decoder ECC performance.
5.5
System performance
Figure 5.6 is the result of a simulation test with two subcarriers (two, for display simplicity) with
channel noises pe1 = 0.1 and pe2 = 0.4. The evolution of the estimation for pe in shown.
As can be seen by the graphs in figure 5.6, the estimator block is able to find the subchannels
noise parameters, although, as can be seen from the last iteration, pˆe1 = 0.02 and pˆe2 = 0.47,
almost matching the real values of pe1 = 0.1 and pe2 = 0.4.
To measure any performance gains of the estimator block, two runs were performed. Run
1 with the augmented LLR estimator - figure 5.2 - and run 2 with just a plain multicarrier LDPC
coded system, as figure 5.4. In order to dismiss any performance differences caused by the
random generation of source messages u and the random generation of channel noise, the two
runs were performed with a pre-generated batch of source messages, and pre-generated BSC
noise, and these two batches were replayed for each test run. The LDPC code employed was an
(n = 140, m = 35, j = 3, k = 12), Ha from subsection 4.2.1.
As can be seen from table 5.1 in Run 1 the total number of iterations and total number of
errors is lower than Run 2, where no LLR estimator was used.
45
5. Multi-channel parameter estimation
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
Figure 5.6: Posteriori evolution of an error process with a pe1 = 0.1 (dashed line) and pe2 = 0.4
(solid line)
Test
Iterations
Errors
Run 1
268242
6726
Run 2
287480
9978
Table 5.1: Number of LDPC decoder iterations taken, uncorrected errors, with and without LLR
estimator block
5.6
Conclusions and Remarks
This chapter introduced the overall system architecture, and introduced the addition of an
intrinsic LLR estimator to a LDPC decoder system - in order to better estimate each subchannel
noise parameters. The concept of estimating and then applying that estimation was detailed. The
assumptions and rules that govern the estimation process via subcarrier corrected-bit accounting
were presented, and the Bayesian inference estimation process was detailed.
A performance run, of two systems, one with the LLR estimator, and another without this block,
showed that it is possible to reduced the number of iterations taken by the LDPC decoder.
46
5.6 Conclusions and Remarks
As a final remark, regarding using the Gaussian approach of the binomial distribution, better
methods for estimating the variance could have been derived, by finding the inverse Gaussian-like
distribution, or even find a closed form expression via the Bayes Theorem, by taking into account
the methods presented in [24]. But due to the sheer size of that undertaking, both are tasks for
future work.
47
5. Multi-channel parameter estimation
48
6
Conclusions and Future Work
Contents
6.1 Conclusions and Recommendations . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
49
6. Conclusions and Future Work
6.1
Conclusions and Recommendations
This work introduced several types of methods to improve the performance of LDPC coded
systems. These improvements range from offline methods that deal with code structure and its
representation - chapter 4 - trying thus to improve code performance trough structural parameters
optimization.
Chapter 3 present methods for fast encoding, and decoding of LDPC codes, highlighting the
importance of having code that allow for fast encoder/decoder performance in order to assure low
encoding/decoding latency with maintaining high throughput.
Chapter 5 presents a novel way, of using just the bit information present at the end of an LDPC
decoder, to try to build an accurate model of the channel noise, thus improving the reliabilities
(LLRs) entering a LDPC decoder.
When building a communication system from the ground up which will employ LDPC as the
FEC method, if not constrained by i) hardware process; ii) maximum number of gates; iii) memory;
iv) power or v) area/density, then adopt an LDPC code with the largest block code length, N , as
possible, with an irregular structure.
But this is a “perfect world scenario”, without any sort of financial and/or engineering constraints. Although the larger the code, the closer it is to the optimal code - as defined by Hamming
and referenced by Gallager [1] - this code, and its associated decoder tends to be exponentially
complex, memory and/or implementation wise. The present-day major hurdle for larger block
LDPC codes is the sheer amount of memory required to i) store the Parity-Check Matrix, even
with a sparse representation; ii) store and move all message-updates of the Message-Passing
Algorithm and iii) store/buffer in-flight data, while trying to maintain high-throughput and latency.
Usually a compromise is required. Small to medium LDPC codes tend to perform “just good
enough”, while keeping the system complexity envelop under check. It is this kind of codes that
were targeted in this thesis. As shown in chapter 5 its is possible to reduced the number of
decoding iterations taken for decoding an valid LDPC codeword, while slightly increasing the
error recovery rate of existing system.
For high SNR environments, the present work becomes transparent, since the FEC capability
of the LDPC code (or most kinds of ECC) can just simply correct all errors, without any further
assistance.
6.2
Future Work
Regarding chapter 4, for completeness, the Progressive Edge Growth (PEG) method for building low-density parity-check matrices could also have been implemented. The proposed advantage of such method is building in one single procedure H matrices that are guaranteed to have
50
6.2 Future Work
a fast encoding representation while having high girths. Disadvantages, include heavy computational burden upon code generation (possibly weeks [6]), and, the inability to prevent deviation
from the code’s desired input parameters.
The probability formulation and estimation presented in chapter 5 should be the subject of
more extensive study, through better pdf modeling and/or finding closed form expressions for alternative pdf s. Regarding the same chapter, some of the presented contents could be formulated
under the framework of stochastic optimization theory.
Another avenue for future work is the realization of the proposed architecture, first in a Hardware Description Language - including all the steps of simulation, validation, etc - followed by
a physical hardware realization, integrating the proposed system in a full-blown communication
system, for performing testing and performance measuring in real world scenarios.
51
6. Conclusions and Future Work
52
A
Appendix
Contents
A.1 Conditional probability and Likelihood . . . . . . . .
A.2 Intrinsic Information . . . . . . . . . . . . . . . . . . .
A.2.1 AWGN Channel with BPSK modulation . . . . .
A.2.2 Binary symmetric channel . . . . . . . . . . . .
A.2.3 Binary erasure channel . . . . . . . . . . . . . .
A.3 Estimating BER via Importance Sampling . . . . . .
A.4 Fast addition rule for check-node update equations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
54
54
54
55
55
56
58
53
A. Appendix
A.1
Conditional probability and Likelihood
Given two observations assigned to the variables a and b, the conditional probability of a given
b, P (a|b), can have different names according to the types of a and b:
If P (a|b = const), where b is a constant value, it’s called conditional probability. The probability
is a function of first argument, a, with b held fixed.
If P (a = const|b), it’s called likelihood. The probability is a function of the second argument,
b, with a held fixed. Likelihood can be interpreted as the ability to perform reasoning (inference)
backwards, from a given set of data.
A.2
A.2.1
Intrinsic Information
AWGN Channel with BPSK modulation
For BPSK modulation, a symbol zn is given by:
(A.1)
zn = (2xn − 1)
where xn is the nth encoded bit.
At the output of the Additive White Gaussian Noise (AWGN) the received symbol yn expression
is:
(A.2)
yn = (2xn − 1) + nn
where nn is a normal random variable with zero mean and variance σ 2 :
P (yn |xn ) = √
1
2πσ 2
· e−
(yn −xn )2
2σ 2
(A.3)
With the pdf it’s now possible to calculate the intrinsic information for bit xn :
λxn ,int. ≡ ln
P (yn |xn = 1)
P (yn |xn = 0)
= ln
P (yn |xn = 1)
P (yn |xn = 0)

= ln
−
e
e−
(yn −1)2
2σ 2
(yn +1)2
2σ 2

=
(yn + 1)2
(yn − 1)2
(yn2 − yn2 ) + (2yn + 2yn ) + (1 − 1)
−
=
=
2σ 2
2σ 2
2σ 2
2yn
= 2
σ
=
(A.4)
The relationship between the σ 2 and the channel noise is:
Eb /N0 =
1
2σ 2 ηM R
[dB]
where ηM is the bit/symbol ratio (modulation efficiency) and R the code rate.
54
(A.5)
A.2 Intrinsic Information
A.2.2
Binary symmetric channel
From figure 3.6b, the conditional probabilities for the BSC channel are:
P (yn = 0|xn = 0) = 1 − pc
P (yn = 1|xn = 0) = pc
P (yn = 0|xn = 1) = pc
P (yn = 1|xn = 1) = 1 − pc
where pc is the cross-over probability. The pdf for the channel, given all channel output symbols
xn = {0, 1} is:
(
pc
P (yn |xn = 1) =
1 − pc
for yn = 0
for yn = 1
(A.6)
(
1 − pc
P (yn |xn = 0) =
pc
for yn = 0
for yn = 1
(A.7)
Thus, the log-domain intrinsic information for the BSC comes as:
 
pc
ln 1−p
for yn = 0
P (yn |xn = 1)
c
≡ ln
=
1−p
c
ln
P (yn |xn = 0)
for yn = 1
pc
 ln pc
for yn = 0
1−p
c =
− ln pc
for yn = 1
1−pc
pc
y
= (−1) n ln
1 − pc
λxn ,int.
A.2.3
(A.8)
Binary erasure channel
The conditional probabilities for the BEC (figure 3.6a) are:
P (yn = 0|xn = 0) = 1 − pe
P (yn = 1|xn = 0) = 0
P (yn = |xn = 0) = pe
P (yn = 1|xn = 1) = 1 − pe
P (yn = 0|xn = 1) = 0
P (yn = |xn = 1) = pe
where pe is the probability of occurring an erasure. The channel pff, given the channel output
symbols xn = {0, 1, } is:


0e
P (yn |xn = 1) = 1 − pe


1/2
for yn = 0
for yn = 1
for yn = (A.9)
55
A. Appendix


1 − pe
P (yn |xn = 0) = 0


1/2
for yn = 0
for yn = 1
for yn = (A.10)
The intrinsic information for the BEC comes as:
λxn ,int. ≡ ln
P (yn |xn = 1)
P (yn |xn = 0)

e
ln 1−p

+

0
for yn = 0

0
for yn = 1
= ln 1−pe


1/2
ln
for yn = 1/2


ln (+∞) for yn = 0
= ln (0)
for yn = 1


ln (1)
for yn = 

+∞ for yn = 0
= −∞ for yn = 1


0
for yn = A.3
(A.11)
Estimating BER via Importance Sampling
The standard method for estimating BER in communication systems, assumes a Laplacian
probability approach: An experiment has only two possible outcomes, success or failure, and
there is no a priori knowledge of the outcomes’s plausibilities.
P (x) =
ℵS
ℵN
(A.12)
where ℵS is the number of successful outcomes of event x, and ℵN is the total number of outcomes.
Typical assays of BER values, range from 100 to 10−15 . In order to have a 10% BER confidence
level, the ℵN must be:
ℵN ≥
10
BER
(A.13)
For example, a typical communication system test at BER = 10−9 , a total of ℵN = 1010 assays
have to be performed.
xi
yi
H ( xi )
Figure A.1: Memoryless system H(xi ), where xi is a signal + noise sample, with pdf fX (x).
From [25], for a memoryless receiver model (figure A.1) the probability of a sequence of output
bits y, falling inside an error region E is:
Pe ≡ BER = P (y ∈ E) =
Z
fY (y) dy
E
where the decoding operation is H(·).
56
(A.14)
A.3 Estimating BER via Importance Sampling
The integral over the error region,
R
E
, where E can be a fuzzily defined region, can be replaced
by an error indicator function 1E (τ ):
(
1
1E (τ ) =
0
if τ ∈ E
if τ ∈
/E
Using the indicator function, equation A.14 becomes:
Z
+∞
Pe =
1E (y)fY (y) dy
−∞
Z +∞
=
(A.15)
1E (x) (H(x)) fX (x) dx
−∞
Thus, for each output, the indicator function 1E (x) (H(x)) is also evaluated.
Monte Carlo method
Evaluating the integral in A.15 over the full probability space [−∞, +∞] , can be a difficult or
even impossible task. An estimator for the value of Pe is thus required. A standard estimator for
Bernolli trials, is the MC estimator is:
P̂M C =
1
N
MC
X
NM C
i=1
1E (xi ) (H(xi ))
(A.16)
where P̂M C is the BER-MC estimator and NM C is the number of Bernoulli trials in the experiment.
Importance Sampling method
The purpose of the Importance Sampling (IS) is to modify the statistics of the Monte Carlo (MC)
estimator, with the goal of making success outcomes more frequent. This of course biases the MC
estimator, but because the biasing function is known, its possible to adjust the estimator, resulting
in an unbiased estimator.
In the IS method, the biasing is performed by multiplying the system’s output, H(x), by a
∗
biased probability density function (pdf) fX
:
Z
+∞
Pe =
1E (x) (H(x))
−∞
+∞
Z
=
∗
fX
(x)
∗ (x) fX (x) dx
fX
(A.17)
∗
1E (x) (H(x)) w(x)fX
(x) dx
−∞
where the weighting function w(x) is defined as:
w(x) =
fX (x)
∗ (x)
fX
(A.18)
57
A. Appendix
∗
Notice that Pe is now inferred from the biased pdf, fX
, instead of the original one (equation
A.17)
This biasing is reversed in the estimator expression, by weighting the modified system output
by w(x):
P̂IS =
A.4
NIS
1 X
1E (xi ) (H(xi )) w(x)
NIS i=1
(A.19)
Fast addition rule for check-node update equations
The check-node update equation isn’t well suited for machine computation, because it contains
two computationally expensive trigonometric functions, tanh and tanh−1 . A more efficient method
is needed for Very-Large-Scale Integration (VLSI) implementations [26]. To this aim, the LLRs are
rewritten in the following form:
(A.20)
λ = sgn(λ) · |λ|
Thus, the check-node update equation A.21 becomes:
(l)
tanh −
λcm ,bn
(l−1)
!
2
=
Y
tanh −
i ∈ Nm , i6=n

λ(l)
c
,b
m n
(l)
=
tanh sgn −λcm ,bn ·
2
λbi ,cm
!
2


Y
(l−1)
tanh sgn −λbi ,cm
i ∈ Nm , i6=n
(l−1) 
λbi ,cm 
−
2
(A.21)
Because tanh is odd (tanh(x) = − tanh(−x)) the previous equation can be restated as:
 (l) 
λcm ,bn (l)
=
sgn −λcm ,bn · tanh 
2
 (l−1) 
λbi ,cm (l−1)

sgn −λbi ,cm · tanh 
2
Y
(A.22)
i ∈ Nm , i6=n
It is possible to decouple the sign and magnitude components, obtaining two equations, one
for the sign update rule, and another for the magnitude update rule. The decoupled sign update
equation is:
(l)
sgn −λcm ,bn =
Y
i ∈ Nm , i6=n
(l−1)
sgn −λbi ,cm =
⊕
i ∈ Nm , i6=n
(l−1)
sgn −λbi ,cm
(A.23)
Here the ⊕ operator is the exclusive-or (XOR). Thus, the sign of the LLR message leaving the
check-node is just the XOR sum of all incoming messages signs. The magnitude update equation
is:
58
A.4 Fast addition rule for check-node update equations
 (l) 
λcm ,bn =
tanh 
2
Y
i ∈ Nm , i6=n
 (l−1) 
λbi ,cm 
tanh 
2
(A.24)
Applying − log(·) to both sides of (A.26):
 (l) 
λcm ,bn  = −
− log tanh 
2

X
i ∈ Nm , i6=n
 (l−1) 
λbi ,cm 
tanh 
2
(A.25)
which yields:


(l) λcm ,bn = F −1

X
i ∈ Nm , i6=n


(l−1) F λbi ,cm 
(A.26)
where F (·) is defined as:
x x = log coth
=
F (x) = − log tanh
2
2
ex/2 + e−x/2
ex + 1
= log x/2
=
log
ex − 1
e
− e−x/2
(A.27)
F (·), represented in figure A.2, is monotonically decreasing, and has the following properties:
F (x) =

 lim F (x) = 0
(A.28)
x→∞
 lim F (x) = ∞
x→0
Both sign (A.23) and magnitude (A.26) equations are much simpler to compute, than the full
update equation (A.21).
7
6
5
F(x)
4
3
2
1
00
1
2
3
x
4
5
6
7
Figure A.2: Plot of F (x)
59
A. Appendix
60
Bibliography
[1] R. G. Gallager, “Low-Density Parity-Check Codes,” Ph.D. dissertation, M.I.T., 1963.
[2] D. J. C. MacKay and R. M. Neal, “Good codes based on very sparse matrices,” Cryptography
and Coding 5th IMA Conference, no. 1025, pp. 100–111, 1995.
[3] S.-Y. Chung, G. D. Forney, T. J. Richardson, and R. Urbanke, “On the Design of Low-Density
Parity-Check Codes within 0.0045 dB of the Shannon Limit,” IEEE Communications Letters,
vol. 5, no. 2, February 2001.
[4] D. J. C. MacKay, Information Theory, Inference, and Learning Algorithms.
Cambridge Uni-
versity Press, 2003.
[5] European Telecommunications Standards Institute, “Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting,
Interactive Services, News Gathering and other broadband satellite applications (DVB-S2),”
August 2009.
[6] AIST. (2004, Sep.) Error correcting code for 10 gb/s twisted pair wire ethernet accepted
as ieee standards. [Online]. Available: http://www.aist.go.jp/aist_e/latest_research/2004/
20040906/20040906.html
[7] Consultive Committee for Space Data Systems, “Low density parity check codes for use in
near-earth and deep space applications,” National Aeronautics and Space Administration,
Office of Space Communication (Code M-3), NASA, Washington, DC 20546, USA, Tech.
Rep. 1, August 2006, ccsds 131.1-O-1.
[8] R. Galbraith and T. Oenning, “Iterative detection read channel technology in hard disk drives,”
White paper, Hitachi Global Storage Technologies, November 2008.
[9] T. Morita, M. Ohta, and T. Sugawara, “Efficiency of Short LDPC Codes Combined With Long
Reed-Solomon Codes for Magnetic Recording Channels,” IEEE Transactions on Magnetics,
vol. 40, no. 4, July 2004.
[10] R. W. Chang, “Synthesis of band-limited orthogonal signals for multichannel data transmission,” Bell Systems Technology Journal, vol. 45, pp. 1775–1796, December 1966.
61
Bibliography
[11] R. M. Tanner, “A recursive approach to low complexity codes,” IEEE Trans. Information
Theory, vol. 27, no. 5, pp. 533–547, September 1981.
[12] W. E. Ryan,
CRC Handbook for Coding and Signal Processing for Recording Systems.
CRC Press, 2004, ch. An Introduction to LDPC Codes.
[13] D. MacKay and R. Neal, “Near Shannon limit performance of low density parity check codes,”
Electronic Letters, vol. 32, no. 18, pp. 1645–1646, August 1996.
[14] T. J. Richardson and R. Urbanke, “Efficient Encoding of Low-Density Parity-Check Codes,”
IEEE Transactions on Information Theory, vol. 47, no. 2, February 2001.
[15] G. D. F. Jr, “The Viterbi algorithm,” Proceedings of the IEEE, vol. 61, no. 3, pp. 268–278,
March 1973.
[16] G. Solomon and H. C. A. Tilborg, “A connection between block and convolutional codes,”
SIAM Journal of Applied Mathematics, vol. 37, no. 2, pp. 358–369, October 1979.
[17] R. G. Gallager, “Low-Density Parity-Check Codes,” IRE Transactions on Information Theory,
vol. 8, no. 1, pp. 21–28, January 1962.
[18] L. Lan, L. Zeng, T. Y.Y., L. Chen, S. Lin, and Abdel-Ghaffar, “Construction of Quasi-Cyclic
LDPC Codes for AWGN and Binary Erasure Channels: A Finite Field Approach,” IEEE
Transactions on Information Theory, vol. 53, no. 7, pp. 2429–2458, July 2007.
[19] G. Richter, “An Improvement of the PEG Algorithm for LDPC Codes in the Waterfall Region,”
EUROCON, 2005.
[20] K. M. Krishnan, R. Singh, L. S. Chandran, and P. Shankar, “A Combinatorial Family of Near
Regular LDPC Codes,” IEEE International Symposium on Information Theory, pp. 761–765,
June 2007.
[21] D. J. C. MacKay, “Good Error-Correcting Codes Based on Very Sparse Matrices,” IEEE
Transactions on Information Theory, vol. 45, pp. 399–431, March 1999.
[22] J. A. McGowan and R. C. Williamson, “Removing Loops from LDPC Codes,” Australian
Communication Theory Workshop Proceedings, 2003.
[23] D. J. C. MacKay and C. P. Hesketh, “Performance of Low Density Parity Check Codes as
a Function of Actual and Assumed Noise Levels,” Electronic Notes in Theoretical Computer
Science, no. 74, 2003.
[24] D. S. Sivia, Data analysis: A Bayesian tutorial.
Oxford University Press, 1996.
[25] A. Bohdanowicz, “On Efficient BER Evaluation of Digital Communication Systems via Importance Sampling,” Ubiquitous Communications Program, 2001.
62
Bibliography
[26] M. Rovini, “Low-Density Parity-Check Codes: a Tutorial,” ESA/ESTEC, The Netherlands,
Tech. Rep. ESA STR-245, May 2004.
63