SlideShare a Scribd company logo
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 442
FPGA IMPLEMENTATION OF LINEAR LDPC ENCODER
Chetna N. Kharkar1
, M. M. Jadhav2
, A. M. Sapkal3
1
Sr.Design Engineer, Qualitat Systems,Pune,Maharashtra,India,chetnakharkar@gmail.com
2
Asso. Professor, E&TC, Sinhagad college of Engineering, Pune, Maharashtra,India,makj123@yahoo.com
3
HOD, E&TC, Government College of Engineering, Pune, Maharashtra, India, hod.extc@coep.ac.in
Abstract
In this paper, a FPGA implementation of linear time LDPC encoder is presented. This encoder implementation can handle large size
of input message. Linear Time encoder hardware architecture reduces the Complexity and area of encoder than generator matrix
based encoder techniques. This encoder is simulated on different platform which includes Matlab & High level languages for 1/2 rate
& up to 4096 code length. FPGA implementation of the encoder is done on Xilinx Spartan 3E Starter Kit. The result shows the speed
& area comparison for different FPGA platform.
Keywords— LDPC codes, dual-diagonal, Linear encoding, Generator matrix complexity, FPGA Implementation
---------------------------------------------------------------------***---------------------------------------------------------------------
1. INTRODUCTION
As their name suggests, LDPC codes are block codes with
parity-check matrices that contain only a very small number of
non-zero entries proposed by Gallager in 1962 [1] and has
gained popularity due to their capacity-approaching error
correcting performance [2].
In LDPC codes sparseness of H guarantees both a decoding
complexity and minimum distance which increases only
linearly with the code length, however, finding a sparse parity-
check matrix for an existing code is not practical. Instead
LDPC codes are designed by constructing a sparse parity-
check matrix first and then determining a generator matrix for
the code afterwards.
In order to reduce encoding complexity, LDPC codes with
dual diagonal structure is adopted by the latest next-generation
wireless LAN standard, IEEE 802.11n [3]. The LDPC
encoding algorithm used is near-linear time proposed by [4] &
[5].An LDPC code parity-check matrix is called (wc,wr)-
regular if each code bit is contained in a fixed number, wc, of
parity checks and each parity-check equation contains a fixed
number, wr, of code bits. An efficient encoding algorithm [6]
is used to reduce the encoding complexity.
In this paper we have implemented the low complexity
Encoder algorithm on hardware platform on Xilinx Spartan 3E
FPGA & simulated using Matlab 2012, Modelsim & c code.
The Synthesis results shows the area & speed comparison on
different FPGA platform. The encoded codeword is decoded
using belief propagation algorithm [7] & results are verified
using Matlab program.
2. LDPC CONSTRUCTION
The construction of binary LDPC codes involves assigning a
small number of the values in an all-zero matrix to be 1 so
that the rows and columns have the required degree
distribution.
The original LDPC codes presented by Gallager are regular
and defined by a banded structure in H. The rows of
Gallager‟s parity-check matrices are divided into wc sets
with M/wc rows in each set. The first set of rows contains wr
consecutive ones ordered from left to right across the
columns. (i.e. for i ≤ M/wc, the i-th row has non zero entries
in the ((i − 1)K + 1)-th to i-th columns). Every other set of
rows is a randomly chosen column permutation of this first
set. Consequently every column of H has a „1‟ entry once in
every one of the wc sets. Since LDPC codes are often
constructed pseudo-randomly we often talk about the set (or
ensemble) of all possible codes with certain parameters (for
example a certain degree distribution) rather than about a
particular choice of parity-check matrix with those
parameters. LDPC codes are often represented in graphical
form by a Tanner graph.
The Tanner graph as shows in figure-1, consists of two sets
of vertices: n vertices for the code word bits (called bit
nodes), and m vertices for the parity-check equations (called
check nodes). An edge joins a bit node to a check node if
that bit is included in the corresponding parity-check
equation and so the number of edges in the Tanner graph is
equal to the number of ones in the parity-check matrix.
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 443
Fig 1: The Tanner graph representation of the parity-check a
6-cycle is shown in bold.
A cycle in a Tanner graph is a sequence of connected
vertices which start and end at the same vertex in the graph,
and which contain other vertices no more than once. The
length of a cycle is the number of edges it contains, and the
girth of a graph is the size of its smallest cycle. The Mackay
Neal construction method for LDPC codes can be adapted to
avoid cycles of length 4, called 4-cycles, by checking each
pair of columns in H to see if they overlap in two places.
The construction of 4-cycle free codes using this method is
given in Algorithm 1. Input is the code length n, rate r, and
column and row degree distributions v and h. The vector α is
a length n vector which contains an entry i for each column
in H of weight i and the vector β is a length m vector which
contains an entry i for each row in H of weight i.
Algorithm 1: H Matrix Generation
Procedure
MNCONSTRUCTION (n, r, v, h) ⊲Required length, rate
and degree distributions
H = all zero n(1 − r) × n matrix ⊲ Initialization
α = [];
for i = 1 : max(v) do
for j = 1 : vi × n do
α = [α, i]
end for
end for
β = []
for i = 1 : max(h) do
for j = 1 : hi × m do
β = [β, i]
end for
end for
for i = 1 : n do ⊲ Construction
c = random subset of β, of size αi
for j = 1 : αi do
H(cj , i) = 1
end for
α = α − c
end for
repeat
for i = 1 : n − 1 do ⊲ Remove 4-cycles
for j = i + 1 : n do
if |H(:, i)
S
H(:, j)| > 1 then
permute the entries in the j-th column
end if
end for
end for
until cycles removed
end procedure
3. ENCODING USING GENERATOR MATRIX
For a linear block code, the sum of any two code words results
in another code word. LDPC code construction is also done in
similar way of linear block code. From a given parity check
matrix, H, a generator matrix, G is derived. Data, m = m1,
m2…..mn is encoded by multiplying it with the generator
matrix, c = mG where m is a string of information bits. It has
to be noted that putting H in systematic form, H= [P T
| IM], no
longer has fixed column or row weights and P is very likely to
be dense. The denseness of P determines the encoder
computational complexity. A dense generator matrix requires
a large number of operations when doing the matrix
multiplication with the data to be sent. The encoding
complexity could be reduced for some codes by parity check
matrix pre-processing. An efficient encoding technique has
been developed to reduce the encoding complexity by
rearranging the parity check matrix before encoding. The
encoding complexity also depends on the structure of the code
The construction of LDPC codes is categorized mainly into
two: Random constructions and structured constructions. The
type of construction is determined by the connections between
check nodes and variable nodes in Tanner graph. Each type of
constructions has their advantages over the other. Random
constructions refer to the unstructured row-column
connections in the parity check matrix with no predefined
pattern. Random codes have better performance compared to
structured codes in case of long codes. They are used in cases
we want to increase the girth or rate of a given size. But longer
length random LDPC codes require large memory storage in
practical implementation which affects the computational
efficiency of the code. The uncertainty of guaranteeing an
asymptotically optimum performance in random constructions
leads to the use of structured construction of LDPC codes.
Structured construction method put constraints on row –
column connections to get a desired or predefined connection
pattern that is easier to implement in hardware.
3.1 LDPC Encoding Example
0 1 0 1 1 0 0 1
H = 1 1 1 0 0 1 0 0
0 0 1 0 0 1 1 1
1 0 0 1 1 0 1 0
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 444
The NMH  parity check matrix defines a rate NKR  ,
 KN, code where MNK  .
Code word is said to be valid if it satisfies the syndrome
calculation:
0.  T
Hcz
We can generate the code word in by multiplying message m
with generator matrix G
c = m.G
We can obtain the generator matrix G from parity check
matrix H by:
1. Arranging the parity check matrix in systematic form
using row and column operations
 KMMsys PIH 












110100
111010
101001
sysH
2. Rearranging the systematic parity check matrix
 K
T
MK IPG  ,











100111
010110
001011
G
3. We can verify our results as 0. T
HG
4. LINEAR-TIME ENCODING FOR LDPC CODES
Instead of finding a generator matrix for H, an LDPC code
can be encoded using the parity-check matrix directly by
transforming it into upper triangular form and using back
substitution. The idea is to do as much of the transformation as
possible using only row and column permutations so as to
keep as much of H as possible sparse.
Firstly, using only row and column permutations, the parity-
check matrix is put into approximate lower triangular form:
Ht =
Where the matrix T is a lower triangular matrix (that is T has
ones on the diagonal from left to right and all entries above the
diagonal zero) of size
(m − g) × (m − g)
If Ht is full rank the matrix B is size
m − g × g
And A is size
m − g × k
The g rows of H left in C, D, and E are called the gap of the
approximate representation and the smaller g the lower the
encoding complexity for the LDPC code.
Step 1
Instead of putting H into reduced row-echelon form we put it
into approximate lower triangular form using only row and
column swaps. For this H we swap the 2-nd and 3-rd rows and
6-th and 10-th columns to obtain:
Ht =
1 1 0 1 1 0 0 1 0 0
0 0 0 1 0 1 0 1 1 0
0 1 1 0 1 0 1 0 0 1
1 1 0 0 0 0 1 0 1 1
0 0 1 0 0 1 0 1 0 1
With a gap of two
Once in upper triangular format, Gauss-Jordan elimination is
applied to clear E which is equivalent to multiplying Ht by
,
To give
where
And
From Step 1
A B T
C D E
Im-g 0
-ET-1
Ig
Im-g 0
H= -ET-1
Ig̃
C = -ET-1
A+C̃
D = -ET-1
B+D̃
A B T
Ht = C D 0̃ ̃
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 445
Step 2
And
To give
When applying Gauss-Jordan elimination to clear E only C
and D are affected, the rest of the parity-check matrix remains
sparse. Finally, to encode using H the code word
c = [c1c2, . . . , cn]
Is divided into three parts,
c = [u, p1, p2],
Where
u = [u1, u2, . . . , uk]
Is the k-bit message
p1 = [p11 , p12 , . . . , p1g ],
Holds the first g parity bits and
p2 = [p21 , p22 , . . . , p2m−g ]
Holds the remaining parity bits
The code word
c = [u, p1, p2]
Must satisfy the parity-check equation c H T
=0 and so
Au + Bp1 + Tp2 = 0, ---- (1)
And
Cu + Dp1 + 0p2 = 0. ---- (2)
Since E has been cleared, the parity bits in p1 depend only on
the message bits, and so can be calculated independently of
the parity bits in p2. If D is invertible, p1 can be found from
Equation (2)
p1 = D−1 Cu. ---- (3)
If D is not invertible the columns of H can be permuted until it
is. By keeping g as small as possible the added complexity
burden of the matrix multiplication in Equation (3), which is
(g2), is kept low. Once p1 is known p2 can be found from
Equation (1)
p2 = −T−1(Au + Bp1), ---- (4)
Where the sparseness of A, B and T can be employed to keep
the complexity of this operation low and, as T is upper
triangular, p2 can be found using back substitution.
From Step 2 we partition the length 10 codeword c = [c1, c2, .
. . , c10] as c = [u, p1, p2] where p1 = [c6, c7] and p2 = [c8,
c9, c10]. The parity bits in p1 are calculated from the message
using Equation 3
Step 3
As T is upper-triangular the bits in p2 can then be calculated
using back substitution
and the code word is c =
Again column permutations were used to obtain Ht from H
and so either Ht, or H with the same column permutation
applied, will be used at the decoder.
5. ENCODER DESIGN & IMPLEMENTATION
Hardware implementation of Encoder is done on Xilinx
Spartan 3E FPGA starter kit. Figure 2 shows the flow diagram
for encoder implementation. We have implemented the ½ rate
encoder for different matrix size 4X8, 16X32, 32X64, 64X128
1 0 0
T-1
= 1 1 0
0 0 1
̃
̃
̃
̃
̃ ̃
̃ ̃
̃
̃
p21 = u1 u2 u4 u5= 1 1 0 1=1
p22 = u4 p11 p21=0 1 1 =0
p23= u2 u3 u5 p12 = 1 0 1 0 = 0
1 1 0 0 1 1 0 1 0 0
̃
Im-g 0
-ET-1
Ig =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0 ,
1 1 1 1 0
1 0 1 0 1
1
1
1 0 0 1 1 0 0 0 = 1 0
1 1 1 0 0 1 0 0
1
p1= D-1
C =̃ ̃
̃H =
1 1 0 1 1 0 0 1 0 0
0 0 0 1 0 1 0 1 1 0
0 1 1 0 1 0 1 0 0 1
0 1 1 0 0 1 0 0 0 0
1 0 0 1 0 1 1 0 0 0
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 446
on FPGA.We have used the Xilinx Vivado high level
synthesis tool for design of FPGA based encoder. This tool
supports the High level synthesis feature, using this feature we
have done synthesis of our high level program. The Encoder
design is synthesized on different FPGA & results are
compared in terms of area & speed.
Fig-2 Encoder Implementation flow
6. IMPLEMENTATION RESULTS
We have simulated the ldpc encoder & log domain decoder
algorithm in Matlab & results are verified both in simulation
& implementation. Figure-4 shows Matlab simulation results.
We have implemented linear-time Encoder for LDPC codes.
This algorithm is implemented on Xilinx Spartan 3E board
using ISE 13.1 & Xilinx High Level synthesis vivado HLS
tool.
The synthesis results for Spartan 3E FPGA are shown in
Figure 3.
Fig -3 Device Utilization for Spartan 3E FPGA
Table-1 Comparison of Area & speed
Selected Device Number of Slice
Registers
Clock
Frequency
3s500efg320-4 1506 (out of 4656 ) 71.782MHz
6slx4tqg144-3 2321 (out of 4800 ) 117.427MHz
7a30tcsg324-3 1918 ( out of 42000) 187.337MHz
Encoder performance is verified on different FPGA platform
table 1 shows the comparison of area & speed, from the table
it is clear that Xilinx 7a30tcsg device Supports
Faster design speed.
Fig-4 Result of Encoding & Decoding in Matlab simulation
CONCLUSIONS
We have implemented the linear time encoder in simulation &
synthesis is done using Xilinx Tool. Xilinx Spartan 3E starter
board is used for hardware implementation. The algorithm
accepts the inputs as a input Message, H-matrix size &
generates the Encoded codeword as a output.
This algorithm we have simulated on various platform
including Matlab, C code, ISE13.2 & Modelsim .Building the
Encoded codeword using Generator matrix is complicated for
large size of parity check matrix .This Linear Time encoder
algorithm provides an alternative for generator matrix creation
& suitable for large parity check matrix .We have simulated &
implemented LDPC encoder algorithm for smaller as well as
larger codeword.
Parity Check
Matrix H
Perform Row &
column swapping
Check H for
lower
Triangular
Apply Gauss-Jordan
to clear E
No
Yes
If E matrix
clear
Yes
No
New H matrix
IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308
__________________________________________________________________________________________
Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 447
REFERENCES
[1]. R. G. Gallager, “Low density parity check codes,”IRE
Trans. Inform. Theory, vol. IT-8, pp. 21–28, Jan. 1962.
[2]. D. J. C. MacKay and R. M. Neal, “Near Shannon limit
performance of low density parity check codes,” Electron.
Lett., vol. 32, p. 1645, 1996.
[3]. T.J. Richardson and R.L. Urbanke, “Efficient encoding of
low density parity-check codes,” IEEE Trans. Inform. Theory,
vol.47, no.2 pp. 638- 656, Feb. 2001
[4]. D. J. C. MacKay, “Good error-correcting codes based on
very sparse matrices,”IEEE Trans. Inform. Theory, vol. 45, no.
2, pp. 399–431, March
1999.
[5]. C. Yoon, J.-E. Oh, M. Cheong Cheong, and S.-K. Lee, “A
hardware efficient LDPC encoding scheme for exploiting
decoder structure and resources,” IEEE Vehicular Technology
Conference (VTC2007-Spring), pp. 2445-2449, April 2007.
[6]. Susmitha Remmanapudi,and Balaji Bandaru, “An FPGA
Implementation of low density Parity-check codes
construction & Decoding” Devices ,Circuits & Systems
International conference, pp .216-220,April 2012.
BIOGRAPHIES
Chetna N. Kharkar, She has completed her
Graduation in Electronics &
telecommunication Engineering. Currently
working as a Sr. Design Engineer at Qualitat
systems, Pune (India).She has a 6+ years of
experience in Embedded domain. Perusing
Master of Engineering from Sinhagad college of Engineering,
Pune
M. M. Jadhav, he has Completed his
graduation & Post graduation from
Government college of Engineering, Pune.
Presently perusing PHD from Government
college of Engineering, Pune in the field of
communication He has guided graduates & more than ten Post
graduates students, His area of Interest is communication
system
Dr. A. M. Sapkal, HOD of E&TC
Department at government college of
Engineering, Pune.He has 23 years of
experience in teaching, 3 years Industrial &
14 years of Research experience. He has
guided More than 100 post graduates
students. He is a Chairman of Central Library of College of
Engineering Pune.He is a member of THE IET U.K., IEEE,
MIETE India.

More Related Content

PDF
Fpga implementation of linear ldpc encoder
PDF
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
PDF
International Journal of Engineering Research and Development (IJERD)
PDF
Fpga implementation of (15,7) bch encoder and decoder
PDF
40120130406011 2-3
PDF
Low complexity design of non binary ldpc decoder using extended min-sum algor...
PDF
An Efficient Low Power Convolutional Coding with Viterbi Decoding using FSM
PDF
C04922125
Fpga implementation of linear ldpc encoder
Belief Propagation Decoder for LDPC Codes Based on VLSI Implementation
International Journal of Engineering Research and Development (IJERD)
Fpga implementation of (15,7) bch encoder and decoder
40120130406011 2-3
Low complexity design of non binary ldpc decoder using extended min-sum algor...
An Efficient Low Power Convolutional Coding with Viterbi Decoding using FSM
C04922125

What's hot (19)

PDF
IRJET- Review Paper on Study of Various Interleavers and their Significance
PDF
Welcome to International Journal of Engineering Research and Development (IJERD)
PDF
Implementation of error correcting methods to the asynchronous Delay Insensit...
PDF
Design and implementation of log domain decoder
PDF
Performance Analysis of Steepest Descent Decoding Algorithm for LDPC Codes
PDF
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
PPTX
02 ldpc bit flipping_decoding_dark knight
PDF
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
PDF
Performance analysis of new binary orthogonal codes for ds cdma communicat
PDF
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
PDF
Energy-Efficient LDPC Decoder using DVFS for binary sources
PDF
An Efficient Fault Tolerance System Design for Cmos/Nanodevice Digital Memories
PDF
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
PDF
GROUP SESSION KEY EXCHANGE MULTILAYER PERCEPTRON BASED SIMULATED ANNEALING GU...
PPTX
LDPC - Low Density Parity Check Matrix
PPTX
A short introduction to Network coding
PDF
NON-STATISTICAL EUCLIDEAN-DISTANCE SISO DECODING OF ERROR-CORRECTING CODES OV...
PPTX
LDPC Encoding
PPTX
My review on low density parity check codes
IRJET- Review Paper on Study of Various Interleavers and their Significance
Welcome to International Journal of Engineering Research and Development (IJERD)
Implementation of error correcting methods to the asynchronous Delay Insensit...
Design and implementation of log domain decoder
Performance Analysis of Steepest Descent Decoding Algorithm for LDPC Codes
REDUCED COMPLEXITY QUASI-CYCLIC LDPC ENCODER FOR IEEE 802.11N
02 ldpc bit flipping_decoding_dark knight
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Performance analysis of new binary orthogonal codes for ds cdma communicat
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
Energy-Efficient LDPC Decoder using DVFS for binary sources
An Efficient Fault Tolerance System Design for Cmos/Nanodevice Digital Memories
Design and Performance Analysis of Convolutional Encoder and Viterbi Decoder ...
GROUP SESSION KEY EXCHANGE MULTILAYER PERCEPTRON BASED SIMULATED ANNEALING GU...
LDPC - Low Density Parity Check Matrix
A short introduction to Network coding
NON-STATISTICAL EUCLIDEAN-DISTANCE SISO DECODING OF ERROR-CORRECTING CODES OV...
LDPC Encoding
My review on low density parity check codes
Ad

Viewers also liked (16)

PDF
High performance novel dual stack gating technique for reduction of ground bo...
PDF
Removal of chromium (vi) by activated carbon derived from mangifera indica .
PDF
Evaluation of punching shear in flat slabs
PDF
Effect of fly ash on the rheological and filtration properties of water based...
PDF
Localization using filtered dgps
PDF
Detection of chlorpyrifos pesticide in various water samples using gold nanop...
PDF
Numerical simulation of tidal circulation in the pichavaram mangrove estuary ...
PDF
An efficient information retrieval ontology system based indexing for context
PDF
Degradation of phenol using sequential batch reactor
PDF
Evaluation of performance of intake tower dam for recent earthquake in india
PDF
Study on the correct tilt of the navigation of agricultural machinery based o...
PDF
Lclr filter design and modelling for harmonic mitigation in interconnected mi...
PDF
Frequency regulation of deregulated power system having grc integrated with r...
PDF
Preparation, characterization and application of sonochemically doped fe3+ in...
PDF
Seismic analysis of low to medium rise building for base isolation
PDF
Stability analysis of orthotropic reinforce concrete shear wall
High performance novel dual stack gating technique for reduction of ground bo...
Removal of chromium (vi) by activated carbon derived from mangifera indica .
Evaluation of punching shear in flat slabs
Effect of fly ash on the rheological and filtration properties of water based...
Localization using filtered dgps
Detection of chlorpyrifos pesticide in various water samples using gold nanop...
Numerical simulation of tidal circulation in the pichavaram mangrove estuary ...
An efficient information retrieval ontology system based indexing for context
Degradation of phenol using sequential batch reactor
Evaluation of performance of intake tower dam for recent earthquake in india
Study on the correct tilt of the navigation of agricultural machinery based o...
Lclr filter design and modelling for harmonic mitigation in interconnected mi...
Frequency regulation of deregulated power system having grc integrated with r...
Preparation, characterization and application of sonochemically doped fe3+ in...
Seismic analysis of low to medium rise building for base isolation
Stability analysis of orthotropic reinforce concrete shear wall
Ad

Similar to Fpga implementation of linear ldpc encoder (20)

PDF
Fpga implementation of (15,7) bch encoder and decoder for text message
PPTX
Error control coding techniques
PDF
LDPC Encoding and Hamming Encoding
PDF
An efficient reconfigurable code rate cooperative low-density parity check co...
PDF
Ab4102211213
PDF
Bivariatealgebraic integerencoded arai algorithm for
PDF
Reduced Complexity Maximum Likelihood Decoding Algorithm for LDPC Code Correc...
PDF
Ebc7fc8ba9801f03982acec158fa751744ca copie
PDF
Reduced Energy Min-Max Decoding Algorithm for Ldpc Code with Adder Correction...
PDF
Optimizing Data Encoding Technique For Dynamic Power Reduction In Network On ...
PPT
LDPC_CODES.ppt
PDF
Data detection with a progressive parallel ici canceller in mimo ofdm
PDF
coding.pdf
PPTX
simulation of turbo encoding and decoding
PDF
GF(q) LDPC encoder and decoder FPGA implementation using group shuffled beli...
PDF
Wireless communication without pre shared secrets using spread spectrum techn...
PDF
Iisrt jona priyaa(1 5)
PDF
Analysis of LDPC Codes under Wi-Max IEEE 802.16e
PDF
www.ijerd.com
Fpga implementation of (15,7) bch encoder and decoder for text message
Error control coding techniques
LDPC Encoding and Hamming Encoding
An efficient reconfigurable code rate cooperative low-density parity check co...
Ab4102211213
Bivariatealgebraic integerencoded arai algorithm for
Reduced Complexity Maximum Likelihood Decoding Algorithm for LDPC Code Correc...
Ebc7fc8ba9801f03982acec158fa751744ca copie
Reduced Energy Min-Max Decoding Algorithm for Ldpc Code with Adder Correction...
Optimizing Data Encoding Technique For Dynamic Power Reduction In Network On ...
LDPC_CODES.ppt
Data detection with a progressive parallel ici canceller in mimo ofdm
coding.pdf
simulation of turbo encoding and decoding
GF(q) LDPC encoder and decoder FPGA implementation using group shuffled beli...
Wireless communication without pre shared secrets using spread spectrum techn...
Iisrt jona priyaa(1 5)
Analysis of LDPC Codes under Wi-Max IEEE 802.16e
www.ijerd.com

More from eSAT Journals (20)

PDF
Mechanical properties of hybrid fiber reinforced concrete for pavements
PDF
Material management in construction – a case study
PDF
Managing drought short term strategies in semi arid regions a case study
PDF
Life cycle cost analysis of overlay for an urban road in bangalore
PDF
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
PDF
Laboratory investigation of expansive soil stabilized with natural inorganic ...
PDF
Influence of reinforcement on the behavior of hollow concrete block masonry p...
PDF
Influence of compaction energy on soil stabilized with chemical stabilizer
PDF
Geographical information system (gis) for water resources management
PDF
Forest type mapping of bidar forest division, karnataka using geoinformatics ...
PDF
Factors influencing compressive strength of geopolymer concrete
PDF
Experimental investigation on circular hollow steel columns in filled with li...
PDF
Experimental behavior of circular hsscfrc filled steel tubular columns under ...
PDF
Evaluation of punching shear in flat slabs
PDF
Evaluation of performance of intake tower dam for recent earthquake in india
PDF
Evaluation of operational efficiency of urban road network using travel time ...
PDF
Estimation of surface runoff in nallur amanikere watershed using scs cn method
PDF
Estimation of morphometric parameters and runoff using rs & gis techniques
PDF
Effect of variation of plastic hinge length on the results of non linear anal...
PDF
Effect of use of recycled materials on indirect tensile strength of asphalt c...
Mechanical properties of hybrid fiber reinforced concrete for pavements
Material management in construction – a case study
Managing drought short term strategies in semi arid regions a case study
Life cycle cost analysis of overlay for an urban road in bangalore
Laboratory studies of dense bituminous mixes ii with reclaimed asphalt materials
Laboratory investigation of expansive soil stabilized with natural inorganic ...
Influence of reinforcement on the behavior of hollow concrete block masonry p...
Influence of compaction energy on soil stabilized with chemical stabilizer
Geographical information system (gis) for water resources management
Forest type mapping of bidar forest division, karnataka using geoinformatics ...
Factors influencing compressive strength of geopolymer concrete
Experimental investigation on circular hollow steel columns in filled with li...
Experimental behavior of circular hsscfrc filled steel tubular columns under ...
Evaluation of punching shear in flat slabs
Evaluation of performance of intake tower dam for recent earthquake in india
Evaluation of operational efficiency of urban road network using travel time ...
Estimation of surface runoff in nallur amanikere watershed using scs cn method
Estimation of morphometric parameters and runoff using rs & gis techniques
Effect of variation of plastic hinge length on the results of non linear anal...
Effect of use of recycled materials on indirect tensile strength of asphalt c...

Recently uploaded (20)

PPTX
web development for engineering and engineering
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
Sustainable Sites - Green Building Construction
PPTX
Construction Project Organization Group 2.pptx
PDF
Digital Logic Computer Design lecture notes
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PPT
Project quality management in manufacturing
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Geodesy 1.pptx...............................................
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
Welding lecture in detail for understanding
web development for engineering and engineering
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CH1 Production IntroductoryConcepts.pptx
Lecture Notes Electrical Wiring System Components
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Sustainable Sites - Green Building Construction
Construction Project Organization Group 2.pptx
Digital Logic Computer Design lecture notes
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Project quality management in manufacturing
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
CYBER-CRIMES AND SECURITY A guide to understanding
Lesson 3_Tessellation.pptx finite Mathematics
OOP with Java - Java Introduction (Basics)
Geodesy 1.pptx...............................................
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Operating System & Kernel Study Guide-1 - converted.pdf
Welding lecture in detail for understanding

Fpga implementation of linear ldpc encoder

  • 1. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 442 FPGA IMPLEMENTATION OF LINEAR LDPC ENCODER Chetna N. Kharkar1 , M. M. Jadhav2 , A. M. Sapkal3 1 Sr.Design Engineer, Qualitat Systems,Pune,Maharashtra,India,chetnakharkar@gmail.com 2 Asso. Professor, E&TC, Sinhagad college of Engineering, Pune, Maharashtra,India,makj123@yahoo.com 3 HOD, E&TC, Government College of Engineering, Pune, Maharashtra, India, hod.extc@coep.ac.in Abstract In this paper, a FPGA implementation of linear time LDPC encoder is presented. This encoder implementation can handle large size of input message. Linear Time encoder hardware architecture reduces the Complexity and area of encoder than generator matrix based encoder techniques. This encoder is simulated on different platform which includes Matlab & High level languages for 1/2 rate & up to 4096 code length. FPGA implementation of the encoder is done on Xilinx Spartan 3E Starter Kit. The result shows the speed & area comparison for different FPGA platform. Keywords— LDPC codes, dual-diagonal, Linear encoding, Generator matrix complexity, FPGA Implementation ---------------------------------------------------------------------***--------------------------------------------------------------------- 1. INTRODUCTION As their name suggests, LDPC codes are block codes with parity-check matrices that contain only a very small number of non-zero entries proposed by Gallager in 1962 [1] and has gained popularity due to their capacity-approaching error correcting performance [2]. In LDPC codes sparseness of H guarantees both a decoding complexity and minimum distance which increases only linearly with the code length, however, finding a sparse parity- check matrix for an existing code is not practical. Instead LDPC codes are designed by constructing a sparse parity- check matrix first and then determining a generator matrix for the code afterwards. In order to reduce encoding complexity, LDPC codes with dual diagonal structure is adopted by the latest next-generation wireless LAN standard, IEEE 802.11n [3]. The LDPC encoding algorithm used is near-linear time proposed by [4] & [5].An LDPC code parity-check matrix is called (wc,wr)- regular if each code bit is contained in a fixed number, wc, of parity checks and each parity-check equation contains a fixed number, wr, of code bits. An efficient encoding algorithm [6] is used to reduce the encoding complexity. In this paper we have implemented the low complexity Encoder algorithm on hardware platform on Xilinx Spartan 3E FPGA & simulated using Matlab 2012, Modelsim & c code. The Synthesis results shows the area & speed comparison on different FPGA platform. The encoded codeword is decoded using belief propagation algorithm [7] & results are verified using Matlab program. 2. LDPC CONSTRUCTION The construction of binary LDPC codes involves assigning a small number of the values in an all-zero matrix to be 1 so that the rows and columns have the required degree distribution. The original LDPC codes presented by Gallager are regular and defined by a banded structure in H. The rows of Gallager‟s parity-check matrices are divided into wc sets with M/wc rows in each set. The first set of rows contains wr consecutive ones ordered from left to right across the columns. (i.e. for i ≤ M/wc, the i-th row has non zero entries in the ((i − 1)K + 1)-th to i-th columns). Every other set of rows is a randomly chosen column permutation of this first set. Consequently every column of H has a „1‟ entry once in every one of the wc sets. Since LDPC codes are often constructed pseudo-randomly we often talk about the set (or ensemble) of all possible codes with certain parameters (for example a certain degree distribution) rather than about a particular choice of parity-check matrix with those parameters. LDPC codes are often represented in graphical form by a Tanner graph. The Tanner graph as shows in figure-1, consists of two sets of vertices: n vertices for the code word bits (called bit nodes), and m vertices for the parity-check equations (called check nodes). An edge joins a bit node to a check node if that bit is included in the corresponding parity-check equation and so the number of edges in the Tanner graph is equal to the number of ones in the parity-check matrix.
  • 2. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 443 Fig 1: The Tanner graph representation of the parity-check a 6-cycle is shown in bold. A cycle in a Tanner graph is a sequence of connected vertices which start and end at the same vertex in the graph, and which contain other vertices no more than once. The length of a cycle is the number of edges it contains, and the girth of a graph is the size of its smallest cycle. The Mackay Neal construction method for LDPC codes can be adapted to avoid cycles of length 4, called 4-cycles, by checking each pair of columns in H to see if they overlap in two places. The construction of 4-cycle free codes using this method is given in Algorithm 1. Input is the code length n, rate r, and column and row degree distributions v and h. The vector α is a length n vector which contains an entry i for each column in H of weight i and the vector β is a length m vector which contains an entry i for each row in H of weight i. Algorithm 1: H Matrix Generation Procedure MNCONSTRUCTION (n, r, v, h) ⊲Required length, rate and degree distributions H = all zero n(1 − r) × n matrix ⊲ Initialization α = []; for i = 1 : max(v) do for j = 1 : vi × n do α = [α, i] end for end for β = [] for i = 1 : max(h) do for j = 1 : hi × m do β = [β, i] end for end for for i = 1 : n do ⊲ Construction c = random subset of β, of size αi for j = 1 : αi do H(cj , i) = 1 end for α = α − c end for repeat for i = 1 : n − 1 do ⊲ Remove 4-cycles for j = i + 1 : n do if |H(:, i) S H(:, j)| > 1 then permute the entries in the j-th column end if end for end for until cycles removed end procedure 3. ENCODING USING GENERATOR MATRIX For a linear block code, the sum of any two code words results in another code word. LDPC code construction is also done in similar way of linear block code. From a given parity check matrix, H, a generator matrix, G is derived. Data, m = m1, m2…..mn is encoded by multiplying it with the generator matrix, c = mG where m is a string of information bits. It has to be noted that putting H in systematic form, H= [P T | IM], no longer has fixed column or row weights and P is very likely to be dense. The denseness of P determines the encoder computational complexity. A dense generator matrix requires a large number of operations when doing the matrix multiplication with the data to be sent. The encoding complexity could be reduced for some codes by parity check matrix pre-processing. An efficient encoding technique has been developed to reduce the encoding complexity by rearranging the parity check matrix before encoding. The encoding complexity also depends on the structure of the code The construction of LDPC codes is categorized mainly into two: Random constructions and structured constructions. The type of construction is determined by the connections between check nodes and variable nodes in Tanner graph. Each type of constructions has their advantages over the other. Random constructions refer to the unstructured row-column connections in the parity check matrix with no predefined pattern. Random codes have better performance compared to structured codes in case of long codes. They are used in cases we want to increase the girth or rate of a given size. But longer length random LDPC codes require large memory storage in practical implementation which affects the computational efficiency of the code. The uncertainty of guaranteeing an asymptotically optimum performance in random constructions leads to the use of structured construction of LDPC codes. Structured construction method put constraints on row – column connections to get a desired or predefined connection pattern that is easier to implement in hardware. 3.1 LDPC Encoding Example 0 1 0 1 1 0 0 1 H = 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 0
  • 3. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 444 The NMH  parity check matrix defines a rate NKR  ,  KN, code where MNK  . Code word is said to be valid if it satisfies the syndrome calculation: 0.  T Hcz We can generate the code word in by multiplying message m with generator matrix G c = m.G We can obtain the generator matrix G from parity check matrix H by: 1. Arranging the parity check matrix in systematic form using row and column operations  KMMsys PIH              110100 111010 101001 sysH 2. Rearranging the systematic parity check matrix  K T MK IPG  ,            100111 010110 001011 G 3. We can verify our results as 0. T HG 4. LINEAR-TIME ENCODING FOR LDPC CODES Instead of finding a generator matrix for H, an LDPC code can be encoded using the parity-check matrix directly by transforming it into upper triangular form and using back substitution. The idea is to do as much of the transformation as possible using only row and column permutations so as to keep as much of H as possible sparse. Firstly, using only row and column permutations, the parity- check matrix is put into approximate lower triangular form: Ht = Where the matrix T is a lower triangular matrix (that is T has ones on the diagonal from left to right and all entries above the diagonal zero) of size (m − g) × (m − g) If Ht is full rank the matrix B is size m − g × g And A is size m − g × k The g rows of H left in C, D, and E are called the gap of the approximate representation and the smaller g the lower the encoding complexity for the LDPC code. Step 1 Instead of putting H into reduced row-echelon form we put it into approximate lower triangular form using only row and column swaps. For this H we swap the 2-nd and 3-rd rows and 6-th and 10-th columns to obtain: Ht = 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 With a gap of two Once in upper triangular format, Gauss-Jordan elimination is applied to clear E which is equivalent to multiplying Ht by , To give where And From Step 1 A B T C D E Im-g 0 -ET-1 Ig Im-g 0 H= -ET-1 Ig̃ C = -ET-1 A+C̃ D = -ET-1 B+D̃ A B T Ht = C D 0̃ ̃
  • 4. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 445 Step 2 And To give When applying Gauss-Jordan elimination to clear E only C and D are affected, the rest of the parity-check matrix remains sparse. Finally, to encode using H the code word c = [c1c2, . . . , cn] Is divided into three parts, c = [u, p1, p2], Where u = [u1, u2, . . . , uk] Is the k-bit message p1 = [p11 , p12 , . . . , p1g ], Holds the first g parity bits and p2 = [p21 , p22 , . . . , p2m−g ] Holds the remaining parity bits The code word c = [u, p1, p2] Must satisfy the parity-check equation c H T =0 and so Au + Bp1 + Tp2 = 0, ---- (1) And Cu + Dp1 + 0p2 = 0. ---- (2) Since E has been cleared, the parity bits in p1 depend only on the message bits, and so can be calculated independently of the parity bits in p2. If D is invertible, p1 can be found from Equation (2) p1 = D−1 Cu. ---- (3) If D is not invertible the columns of H can be permuted until it is. By keeping g as small as possible the added complexity burden of the matrix multiplication in Equation (3), which is (g2), is kept low. Once p1 is known p2 can be found from Equation (1) p2 = −T−1(Au + Bp1), ---- (4) Where the sparseness of A, B and T can be employed to keep the complexity of this operation low and, as T is upper triangular, p2 can be found using back substitution. From Step 2 we partition the length 10 codeword c = [c1, c2, . . . , c10] as c = [u, p1, p2] where p1 = [c6, c7] and p2 = [c8, c9, c10]. The parity bits in p1 are calculated from the message using Equation 3 Step 3 As T is upper-triangular the bits in p2 can then be calculated using back substitution and the code word is c = Again column permutations were used to obtain Ht from H and so either Ht, or H with the same column permutation applied, will be used at the decoder. 5. ENCODER DESIGN & IMPLEMENTATION Hardware implementation of Encoder is done on Xilinx Spartan 3E FPGA starter kit. Figure 2 shows the flow diagram for encoder implementation. We have implemented the ½ rate encoder for different matrix size 4X8, 16X32, 32X64, 64X128 1 0 0 T-1 = 1 1 0 0 0 1 ̃ ̃ ̃ ̃ ̃ ̃ ̃ ̃ ̃ ̃ p21 = u1 u2 u4 u5= 1 1 0 1=1 p22 = u4 p11 p21=0 1 1 =0 p23= u2 u3 u5 p12 = 1 0 1 0 = 0 1 1 0 0 1 1 0 1 0 0 ̃ Im-g 0 -ET-1 Ig = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 , 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 = 1 0 1 1 1 0 0 1 0 0 1 p1= D-1 C =̃ ̃ ̃H = 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 0 0
  • 5. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 446 on FPGA.We have used the Xilinx Vivado high level synthesis tool for design of FPGA based encoder. This tool supports the High level synthesis feature, using this feature we have done synthesis of our high level program. The Encoder design is synthesized on different FPGA & results are compared in terms of area & speed. Fig-2 Encoder Implementation flow 6. IMPLEMENTATION RESULTS We have simulated the ldpc encoder & log domain decoder algorithm in Matlab & results are verified both in simulation & implementation. Figure-4 shows Matlab simulation results. We have implemented linear-time Encoder for LDPC codes. This algorithm is implemented on Xilinx Spartan 3E board using ISE 13.1 & Xilinx High Level synthesis vivado HLS tool. The synthesis results for Spartan 3E FPGA are shown in Figure 3. Fig -3 Device Utilization for Spartan 3E FPGA Table-1 Comparison of Area & speed Selected Device Number of Slice Registers Clock Frequency 3s500efg320-4 1506 (out of 4656 ) 71.782MHz 6slx4tqg144-3 2321 (out of 4800 ) 117.427MHz 7a30tcsg324-3 1918 ( out of 42000) 187.337MHz Encoder performance is verified on different FPGA platform table 1 shows the comparison of area & speed, from the table it is clear that Xilinx 7a30tcsg device Supports Faster design speed. Fig-4 Result of Encoding & Decoding in Matlab simulation CONCLUSIONS We have implemented the linear time encoder in simulation & synthesis is done using Xilinx Tool. Xilinx Spartan 3E starter board is used for hardware implementation. The algorithm accepts the inputs as a input Message, H-matrix size & generates the Encoded codeword as a output. This algorithm we have simulated on various platform including Matlab, C code, ISE13.2 & Modelsim .Building the Encoded codeword using Generator matrix is complicated for large size of parity check matrix .This Linear Time encoder algorithm provides an alternative for generator matrix creation & suitable for large parity check matrix .We have simulated & implemented LDPC encoder algorithm for smaller as well as larger codeword. Parity Check Matrix H Perform Row & column swapping Check H for lower Triangular Apply Gauss-Jordan to clear E No Yes If E matrix clear Yes No New H matrix
  • 6. IJRET: International Journal of Research in Engineering and Technology eISSN: 2319-1163 | pISSN: 2321-7308 __________________________________________________________________________________________ Volume: 02 Issue: 11 | Nov-2013, Available @ http://www.ijret.org 447 REFERENCES [1]. R. G. Gallager, “Low density parity check codes,”IRE Trans. Inform. Theory, vol. IT-8, pp. 21–28, Jan. 1962. [2]. D. J. C. MacKay and R. M. Neal, “Near Shannon limit performance of low density parity check codes,” Electron. Lett., vol. 32, p. 1645, 1996. [3]. T.J. Richardson and R.L. Urbanke, “Efficient encoding of low density parity-check codes,” IEEE Trans. Inform. Theory, vol.47, no.2 pp. 638- 656, Feb. 2001 [4]. D. J. C. MacKay, “Good error-correcting codes based on very sparse matrices,”IEEE Trans. Inform. Theory, vol. 45, no. 2, pp. 399–431, March 1999. [5]. C. Yoon, J.-E. Oh, M. Cheong Cheong, and S.-K. Lee, “A hardware efficient LDPC encoding scheme for exploiting decoder structure and resources,” IEEE Vehicular Technology Conference (VTC2007-Spring), pp. 2445-2449, April 2007. [6]. Susmitha Remmanapudi,and Balaji Bandaru, “An FPGA Implementation of low density Parity-check codes construction & Decoding” Devices ,Circuits & Systems International conference, pp .216-220,April 2012. BIOGRAPHIES Chetna N. Kharkar, She has completed her Graduation in Electronics & telecommunication Engineering. Currently working as a Sr. Design Engineer at Qualitat systems, Pune (India).She has a 6+ years of experience in Embedded domain. Perusing Master of Engineering from Sinhagad college of Engineering, Pune M. M. Jadhav, he has Completed his graduation & Post graduation from Government college of Engineering, Pune. Presently perusing PHD from Government college of Engineering, Pune in the field of communication He has guided graduates & more than ten Post graduates students, His area of Interest is communication system Dr. A. M. Sapkal, HOD of E&TC Department at government college of Engineering, Pune.He has 23 years of experience in teaching, 3 years Industrial & 14 years of Research experience. He has guided More than 100 post graduates students. He is a Chairman of Central Library of College of Engineering Pune.He is a member of THE IET U.K., IEEE, MIETE India.