Professional Documents
Culture Documents
fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
Abstract—Many studies were carried out for the construction LDPC codes in high density storage systems such as NAND
of low density parity-check (LDPC) codes. They usually focused flash memory aroused great interests in academia [4] [5] [6].
on introducing the construction methods for good LDPC codes An LDPC code whose parity-check matrix has a constant
instead of a general method for code optimization. This paper
proposes a method with high versatility, called the parallel vector column weight γ and a constant row weight ρ is said to be
message passing-based edge exchange (PMPE), for optimizing a regular and called a (γ, ρ)-regular LDPC code. An LDPC code
type of graph-based LDPC codes, without changing the code whose parity-check matrix does not have a unique column
parameters of mother codes such as the code length, code rate weight or row weight is called an irregular LDPC code [7]. The
and degree distribution. With the approximately nearest codewords overwhelming majority of the methods for constructing LDPC
(ANC) searching approach, we find the optimization method can
increase the Hamming distance of the LDPC codes. For the codes can be divided into two types: the algebraic-based and
quasi-cyclic (QC) LDPC codes, an optimization method, called the graph-based methods, also known as the structured and the
the parallel vector message passing oriented-to the QC-LDPC codes random methods, respectively. Algebraic-based constructions
(QC-PMP), is further suggested, with which the quasi-cyclic of LDPC codes are mainly developed based on the finite fields
characteristics of QC-LDPC codes can remain unchanged in the [8] [9] and the finite geometries [10] [11]. The PEG (progres-
optimization. To evaluate the performance of the parity-check
matrix corresponding to a Tanner graph, a very simple metric, sive edge growth) [7] and the protograph-based methods [12]
the Cycles Metric (CM), is introduced to work with the proposed [13] are among the most well-known graph-based construction
PMPE and QC-PMP algorithms. The experimental results show methods.
that the performance of the LDPC codes optimized with the Generally, LDPC codes constructed with random methods
proposed PMPE can be improved significantly at low BER range have good performance because they increase the girth of the
compared to the mother codes of the random codes, including
the regular MacKay code of rate 0.5 and the regular PEG code Tanner graph or avoid short cycles in constructing the Tanner
of rate 0.9. For the case of the regular and irregular QC-LDPC graph or the parity-check matrix as possible as they can.
codes with different code lengths and code rates, the optimized Among them, the PEG algorithm is the most effective random
LDPC codes with the proposed QC-PMP algorithm significantly construction method. Many PEG-based algorithms [14] [15]
outperform the mother codes. with extrinsic message degree (EMD) or approximate cycle
Index Terms—Low density parity-check (LDPC) codes; quasi- EMD (ACE) properties [16] are proposed to further enhance
cyclic codes; optimization; parallel vector message passing; cycles the performance of the PEG-based LDPC codes. The EMD
metric. and ACE properties emphasize that not only the length of
cycles, but also the vertex connectivity in Tanner graphs play
I. I NTRODUCTION important roles in error-floor performance. Some short cycles
with good graph connectivity are allowed, while long cycles
Ow density parity-check (LDPC) codes, first introduced
L by Gallager in 1962 [1], and rediscovered by Mackay et
al. in 1996 [2], are currently ones of the most popular coding
with poor graph connectivity are precluded. Applying EMD or
ACE properties to the design of LDPC codes, the PEG-based
algorithm can reduce the number of small stopping sets [17] or
techniques for error control in communication and storage trapping sets [18], which determine the error floors of LDPC
systems such as the DVB-S2, the IEEE 802.11 (Wi-Fi), the codes. Nevertheless, the construction algorithms of the PEG-
IEEE 802.16e standard for WiMAX, and the patterned media based codes and even all of the graph-based codes, are greedy
storage [3], due to their capacity-approaching performance in maximizing the local girth of each symbol node, because
and practically implementable decoding algorithms. Numerous the Tanner graphs are constructed through establishing edges
studies have been focused on the construction, encoding, or connections between variable nodes and check nodes in
decoding, and application of LDPC codes. Recently, long an edge-by-edge manner. Each edge to be established is just
LDPC codes were adopted for one of the standard channel optimal to the subgraph in the current round of construction.
codes in the 5G mobile communications. The application of The edges established at early stages have many available
nodes while the edges to be established at later stages of code
The work was supported by the National Natural Science Foundation of
China (Grant Nos. 61572534 and 61602531). construction have few ones, which results in a small local
Xingcheng Liu and Shuo Liang are with the School of Electronics and girth for some symbol nodes, especially in the construction of
Information Technology, Sun Yat-sen University, Guangzhou, 510006, China high-rate LDPC codes.
(e-mail: isslxc@mail.sysu.edu.cn). Xingcheng Liu is also currently affiliated
with Xinhua College of Sun Yat-sen University, Guangzhou, 510520. Feng X- The ACE spectrum [19] is a useful tool for design and
iong was with the School of Electronics and Information Technology, Sun evaluation of LDPC codes. It is a good metric to measure
Yat-sen University, Guangzhou, 510006. Now, he is with the FiberHome the quality of a Tanner graph [20] as a whole. A generalized
Technologies Group, Wuhan, 430205, China. Zhongfeng Wang is with the
School of Electronic Science and Engineering, Nanjing University, Nanjing, ACE constrained design based on the ACE spectrum is shown
210023, China. to be more flexible and efficient than the original proposal
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
[16]. However, by increasing the ACE spectrum components the codes constructed with these methods are just different in
(a dmax -tuple, and dmax is the depth of the ACE spectrum), the modes that the elements of base matrix are mapped into the
the generalized ACE constrained design [19] leads to computa- CPMs. The code optimization is performed through adjusting
tional complexity problems since finding appropriate value for the elements of a given base matrix without changing the basic
each entry of the dmax -tuple is an unsolvable task. To tackle parameters of codes, such as the code lengths and the code
this problem, a method called decoder-optimized progressive rates. The total CM of a parity-check matrix to which the
edge growh (DO-PEG) algorithm [21] has been put forward. current base matrix is associated is computed with the PMP
In this method, the edge placement is enhanced by use of algorithm after each adjustment. The principle of optimization
the Sum Product algorithm in the design of the parity-check is to decrease the total CM until it can not go down further.
matrix. The main idea is comparing the performance of the Experimental results show that the codes constructed with the
code under the current graph setting for each of the candidate proposed method perform well and how low the error floor
CNs with the maximum distance possible from the current occurs.
VN. Moreover, the application of the DO-PEG is limited to The rest of the paper is organized as follows. Section
be employed in optimizing the LDPC codes generated with II briefly introduces notations and preliminaries about the
the PEG method. By contrast, the proposed PMPE can be graph-based method. Section III presents the CM to measure
employed on a given code generated with methods not limited the quality of a Tanner graph, and the PMP algorithm for
to the PEG to get improved performance. In this paper, we computing the CM more efficiently. In Section IV, a versatile
introduce a very simple metric called the Cycles M etric algorithm, called PMPE, is introduced for optimizing the
(CM) to measure the performance of the parity-check matrix Tanner graphs constructed with the random construction of
corresponding to a Tanner graph. Furthermore, an efficient LDPC code, and the proposed CM and PMP are further
method called parallel vector message passing (PMP) for employed in the optimization of QC-LDPC codes. Section
computing the CM of a Tanner graph is designed based on V presents the simulation results and gives analyses of the
the message passing algorithm (MPA) [22] [23]. On this basis, proposed algorithms. Finally, Section VI concludes the paper
a method called parallel vector message passing-based edge with comments.
exchange (PMPE) is proposed to optimize the global Tanner
graph. Although the algorithm in [22] may be recast in a form II. N OTATIONS AND P RELIMINARIES
equivalent to the proposed PMP and PMPE, the PMP and Denote n as the number of variable nodes (VNs), m as the
PMPE both target at the optimization from the whole Tanner number of check nodes (CNs), Ne as the number of edges,
graph, and can be employed for a given code to get improved vj , j = 0, 1, ..., n − 1 as the j-th VN, ci , i = 0, 1, ..., m − 1
performance. Since the metric, CM, considers all the cycles- as the i-th CN, dvj as the degree of variable node vj , Ej,i as
2l in the Tanner graph as a whole, it gives a weight value to the edge connecting vj with ci , and cycle-t as the cycle with
each cycle-2l to measure the magnitude of the harm on the length t in a Tanner graph.
error floor performance. A smaller value of CM means that the
number of cycles is fewer and/or their lengths are longer on the
whole Tanner graph. Consequently, reducing the cycles metric, A. Basic Definitions
CM, intuitively improves the error correction performance of In the construction of LDPC codes, many considerations
the codes. The experimental evidence is also provided in the such as ACE property [16] [19], EMD property [15], and
numerical result section to support this claim. Accordingly, trapping set [18] have been taken into account in measuring
the code construction is carried out for decreasing the CM of the quality of a Tanner graph. Some basic definitions related
a Tanner graph. to LDPC code construction are provided as follows.
Compared to the random LDPC codes, the QC-LDPC Definition 1: Let V be a set of VNs, and Γ(V) be the set
codes [24] have advantages in hardware implementations of of adjacent CNs of V. A subgraph induced by V is the graph
encoding and decoding. Encoding of a QC-LDPC code can containing nodes in V∪Γ(V) and the edges between V and
be efficiently implemented with simple shift registers. In hard- Γ(V).
ware implementation of a QC-LDPC decoder, the quasi-cyclic Definition 2: A stopping set (SS) is a set of VNs to which
structure of the code simplifies the wire routing for message every adjacent CN of this set is connected at least twice [17].
passing. Furthermore, well designed QC-LDPC codes perform It is worth noting that the empty set is a stopping set, and the
as well as any other types of random LDPC codes in the stopping set connected to only one CN does not form a cycle.
waterfall region. All these advantages will inevitably make the If the degree of each VN is at least 2 in a subgraph induced
QC-LDPC codes become the mainstream of study on LDPC by a stopping set, the subgraph always contains cycles. Large
codes. In this paper, we propose a method to optimize binary stopping sets can be recursively derived by small ones, and
QC-LDPC codes, whose parity-check matrices are composed there is no efficient algorithm for explicitly identifying and
of arrays of zero matrices (ZMs) and circulant permutation removing them [27].
matrices (CPMs). In code optimization, we present a simple Definition 3: A trapping set (TS) [18] is a non-empty set
and very flexible method for optimizing the base matrices of VNs in a Tanner graph with parameters a and b, where a
of QC-LDPC codes based on the finite fields [8] [9] or the is the number of VNs in this set and b is the number of CNs
pseudo-random methods [25] [26]. The QC-LDPC codes can with odd degrees in the subgraph induced by the a VNs and
be uniquely determined by their respective base matrices since their adjacent CNs. We denote this set as TS (a, b).
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
(PMP) for computing the number of short cycles in a Tanner where, j = J and i = I at the present stage and
1
graph is designed based on the message passing algorithm Xk (J, I) shows that the initial V2C message of Ej,i
(MPA) [22] [23]. In this section, we first give an introduction contains only 1 vector Xk (J, I) and no other ones.
to the PMP, then to the CM. 2) Iterative Message Passing:
a) Update all the messages from CNs to VNs (C2V)
by computing
A. Parallel Vector Message Passing c →vj
Nk i
The message passing algorithm (MPA) [22] [23] is a rep- mci →vj = {Xk (J, I) | k ∈ [0, Ne − 1]}, (2)
resentative for counting the number of short cycles. Just like where, mci →vj represents the message from check
the sum-product algorithm (SPA) [33] in LDPC decoding, the node ci to variable node vj . mci →vj is a set that
message that a CN c passes to a VN v equals the product of consists of Ne vectors with different counts since
the messages that c collects from all the VNs connected to the vj may receive any one of the Ne initial vectors
CN c except the VN v. during the iterative message passing procedure.
The MPA is also an iterative method with three procedures, c →v
The number of Xk (J, I) in mci →vj , i.e., Nk i j ,
initialization, iterative message passing, and stopping. After equals the sum of the counts of Xk (J, I) from all
several iterations, the original MPA [22] can count the number the variable nodes in V (ci )\vj to ci . We can get
of cycles with length 2l (2 ≤ l ≤ (g − 1)), where l is the c →v
Nk i j by computing
number of iterations and g is the girth of the Tanner graph. The
c →v
∑ v ′ →ci
improvement [23] to MPA can count the number of cycles with Nk i j = Nk j , (3)
length greater than (2g − 2). Both of them are implemented vj ′ ∈V (ci )\vj
sequentially, i.e., calculating short cycles of all the nodes in v ′ →ci
a Tanner graph one by one. At the beginning, MPA uses an where, Nk j denotes the number of Xk (J, I)
integer to initialize the edge’s message in order to distinguish in mvj′ →ci .
different initial messages corresponding to different edges. b) Update all the messages from VNs to CNs (V2C)
During iterative message passing, the product of integers from by computing
v →ci
different edges is used to update the edges’ messages. In the Nk j
mvj →ci = {Xk (J, I) | k ∈ [0, Ne − 1]}, (4)
calculation of iterative message passing procedure, the division
operations are performed to find the number of different where, the computational principle of mvj →ci is
v →c
integers corresponding to the initial messages of different the same as that of mci →vj , and Nk j i can be
edges. computed by
v →c
∑ c ′ →vj
In the following sections, we need to compute the Cycles Nk j i = Nk i . (5)
Metric of each edge or node in a Tanner graph with MPA ci′ ∈C(vj )\ci
efficiently. Thus the parallel vector message passing (PMP)
is devised with some modifications to MPA [22]. In the c) Calculate the number of cycles-2l involving edge
initialization procedure, we set the initial message of each Ej,i by
∑ c ′ →vj
edge to a unique vector Xk (J, I) based on the Tanner graph. j,i
N2l = Nk i , (6)
Xk (J, I) can be represented by the index row vector [J I], ci′ ∈C(vj )\ci
which denotes the k-th edge EJ,I in the Tanner graph with
the J-th variable node vJ connected with the I-th check node, where, l is the current number of iterations. If
cI . The indices fall in the range of [0, n − 1] for J, [0, m − 1] two edges, Ej,i1 and Ej,i2 , are involved in one
for I, and [0, Ne − 1] for k. In the iterative message passing (or more) cycle(s)-2l, the initial vector message
procedure, we just record the number of different vectors when of edge Ej,i1 , i.e., Xk (j, i1 ), will appear in the
updating the edge messages from CNs to VNs (C2V) or from C2V message of edge Ej,i2 , i.e., mci2 →vj , after
VNs to CNs (V2C). Then we compute the number of cycles l iterations of message passing. The number of
involving each edge according to this edge’s last C2V message times that Xk (j, i1 ) appears in Ej,i2 equals the
in the stopping procedure. For the sake of clarity, the notations number of cycles-2l which Ej,i1 and Ej,i2 are
in the proposed PMP algorithm are shown in TABLE I. The both involved in. It is noted that the girth of the
j,i
detailed procedures of the PMP are described as follows. Tanner graph, g, is obtained when N2l does not
equal 0 for the first time. If only we continuously
1) Initialization:
increase the number of iterations, the girth g can
Initialize all vector messages from all the edges of a
be computed by g = 2l′ , where l′ is the minimum
Tanner graph. For example, Xk (J, I) = [J I] represents j,i
number of iterations that holds N2l ̸= 0.
the initial vector message to which EJ,I is associated.
That is, there is a one-to-one mapping between Xk (J, I), 3) Stopping Procedure:
[J I], and EJ,I . It is clear that there are Ne initial If the algorithm runs till the specified number of itera-
vectors. Then, the initial message from vj to ci can be tions, it ends, else it goes back to Step 2) and continues
initialized as follows: the message passing.
The PMP algorithm has a computational complexity O(Ne )
1 1 1
mvj →ci = Xk (j, i) = Xk (J, I) = [J I] , (1) in the initialization procedure. Here, we consider a regular
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
Tanner graph as an example. In the iterative message passing Finally, the total CM of a Tanner graph (or a check-parity
procedure, each node , say vj , has a computation complexity matrix) can be calculated by
O((dvj − 1)Ne ) when updating the C2V message. Therefore,
∑
n−1
if the number of check nodes in this Tanner graph is n, the av- MT = Mvj . (9)
erage computation complexity of Step 2a) is O(n(dvj −1)Ne ), j=0
i.e., O(Ne 2 ). By the same token, the computation complexity
for Step 2b) is O(Ne 2 ). In the meantime, Step 2c) has a com- Example 2: The shortest cycles are the most harmful to the
putation complexity O(dvj − 1). According to the above, the decoding performance of an LDPC code. Hence, a weight val-
total computation complexity of PMP algorithm is O(lNe 2 ) ue is simply given to each cycle-2l to measure the magnitude
with l iterations, which is equivalent to the complexity of of this harm. The weight of influence for a cycle-2l on the
MPA. However, the PMP is easy to be implemented in parallel decoding performance is set to be β l−2 . Based on this weight
with a little cost in memory requirements. It is easy to see that set, the weight of influence for a cycle of cycle-4 will be 1,
the same computation complexity also applies to the irregular the one for a cycle of cycle-6 will be 0.1 if β is set to 0.1, and
Tanner graph. With the PMP algorithm, we can efficiently that one for a cycle of cycle-8 will be 0.01. Accordingly, it is
obtain the number of short cycles in the Tanner graph, which easily understood that 10 cycles of cycle-6 are as equivalently
is beneficial to computing Cycles Metric of a Tanner graph. harmful as 1 cycle of cycle-4 to the decoding performance,
and that 10 cycles of cycle-8 are also as harmful as 1 cycle
of cycle-6.
B. Cycles Metric The number of edges in the Tanner graph is constant for the
proposed algorithm. Hence, when the number of cycles with
The SPA assumes that all nodes are independent in the length 2l decreases, the number of cycles with other lengths
decoding of LDPC codes of finite lengths. However, the cycles may increase. Then, all the cycles of cycle-2l in the Tanner
in a Tanner graph contradict with this assumption. Short cycles graph are considered as a whole and measured with MT . The
are considered to be harmful to the decoding performance of MT takes the number of cycles and their lengths into account
LDPC codes. Therefore, the PEG-based algorithms all focus in order to find a balance between the cycles and lengths.
on maximizing the local girth or reducing the number of short That is, the performance of LDPC codes is evaluated using
cycles in each stage of edge establishment. Some of them add the MT . A smaller value of MT means that the number of
the ACE constraint to increase the connectivity of cycles with cycles is fewer and/or their lengths are longer on the entire
the rest of a Tanner graph while some short cycles with a good Tanner graph.
graph connectivity are allowed. However, all of these algo-
rithms just take the local optimum into consideration, where,
IV. O PTIMIZATION OF LDPC C ODES
the selected CN is just optimal to the current subgraph. The
result is that the previously established edges will influence In this section, two optimization algorithms for construction
the available CNs in the subsequent construction and selection of LDPC codes, the PMPE for random LDPC codes and the
procedures. Thus, the finally established Tanner graph is not QC-PMP for quasi-cyclic LDPC codes, are proposed based
necessarily optimal when taking it as a whole. To cope with on the parallel vector message passing (PMP). In view of
this problem, we propose a new metric to evaluate the code the global optimization, the two proposed algorithms aim to
parameters that affect the overall performance of a Tanner minimize MT . For ease of exposition, the PMPE and the
graph as follows. QC-PMP are to be introduced in two subsections. Moreover,
Definition 6: The cycles with length 2l (2 ≤ l ≤ g − 1) that to provide proofs for the improvement of the optimization
contains Ej,i can be quantified as a whole by a parameter, method on LDPC codes, the distributions of codewords with
which is called the Cycles Metric (CM). The CM of Ej,i can low Hamming weights are estimated with the bit-reversing
be computed by method [34].
∑
g−1
j,i A. Parallel Vector Message Passing-Based Edge Exchange
Mvj ,ci = β l−2 · N2l , (7)
l=2 The MacKay codes and PEG codes establish a Tanner graph
getting trapped in the local optimum. To solve or alleviate the
j,i
where, N2l is the number of cycles-2l involving edge Ej,i problem, we can try to rearrange some of the established edges
and it can be computed by (6) in the PMP algorithm. g is in the whole graph. That is, we can change some edges to
the girth of a Tanner graph and also can be obtained with make MT as small as possible. Here we give some definitions
the PMP algorithm. It is noted that we only take cycles with related to edges and nodes as follows.
length from 4 to 2g − 2 into consideration. β (0 < β < 1) is Definition 7: An edge exchange is said to appear in a
a constant and β l−2 represents the weight of influence that a Tanner graph if two edges in the Tanner graph exchange their
cycle with length 2l has to the overall Tanner graph. Then the connected CNs.
CM of vj equals the sum of the CMs of its adjacent edges, Definition 8: In a Tanner graph, a direct connection between
computed by two edges exists when the edges connect a common VN or
∑
Mvj = Mvj ,ci . (8) CN, while an indirect connection between two edges occurs if
ci ∈C(vj ) two edges are not connected directly but there exists another
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
TABLE I
N OTATIONS EMPLOYED IN PMP
Xk (J, I) the vector message corresponding to edge EJ,I (there are Ne vectors)
Xk (J, I)b the number of vector Xk (J, I) is b
mvj →ci the message from vj to ci (it is a set that contains Ne vectors with different counts)
mci →vj the message from ci to vj (it is a set that contains Ne vectors with different counts)
v →ci
Nk j the number of vector Xk (J, I) in mvj →ci
c →v
Nki j
the number of vector Xk (J, I) in mci →vj
C(vj ) the set of CNs connected with vj
V (ci ) the set of VNs connected with ci
C(vj )\ci the set of CNs connected with vj except ci
V (ci )\vj the set of VNs connected with ci except vj
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
TABLE II
H AMMING WEIGHT DISTRIBUTION ( ESTIMATED VALUES ) OF THE M AC K AY AND PMPE CODES
w 6 8 10 12 14 16 18 20 22
Nw - MacKay(96,48) 1 4 53 509 4845
Nw - PMPE(96,48) 1 2 44 442 4377
Nw - MacKay(204,102) 1 1 5 43 304
Nw - PMPE(204,102) 0 0 2 12 154
Nw - MacKay(408,204) 1 1 12 26 162
Nw - PMPE(408,204) 0 1 0 11 52
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
TABLE III
H AMMING WEIGHT DISTRIBUTION ( ESTIMATED VALUES ) OF THE 802.11 AD AND QC-PMP CODES
w 8 9 10 11 12 13 14
Nw - 802.11ad(648,486) 27 0 81 135 654 1683 4706
Nw - QC-PMP(648,486) 0 27 54 81 339 1626 4061
Nw - 802.11ad(1944,1620) 162 405 1117 4058 12195 28985
Nw - QC-PMP(1944,1620) 0 162 1038 2498 8111 20659
−2 −1
10 10
MacKay (408,204)
PMPE (408,204)
−2
−3 MacKay (204,102) 10
10
PMPE (204,102)
MacKay (96,48)
−3
PMPE (96,48) 10
−4
10
−4
BER/FER
10
BER
−5
10
−5
10 BER, PEG(500,451)
−6
10 BER, PMPE(500,451)
−6
10 BER, PEG(440,396)
BER, PMPE(440,396)
−7 FER, PEG(500,451)
10 −7
10 FER, PMPE(500,451)
FER, PEG(440,396)
−8
10 −8 FER, PEG(440,396)
2 3 4 5 6 7 10
4 4.5 5 5.5 6 6.5 7 7.5
E /N (dB) Eb/N0(dB)
b 0
Fig. 3. Error correction performance of the PMPE optimized codes and the Fig. 4. Error correction performance of the (440, 396) and (500, 451) PMPE
MacKay codes. codes and PEG codes.
−4
10
A. Performance of PMPE Codes
BER/FER
−5
In this subsection, we optimize some relatively short random 10
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
10
−1 −1
10 10
BER, 802.16e
−2
FER, 802.16e
−2 10 BER, SQC−LDPC
10 FER, SQC−LDPC
−3 BER, QC−PMP
10
−3 FER, QC−PMP
10
−4
BER/FER
10
−4
BER/FER
10
−5
10
−5
10 −6
10
−6 −7 0.2 dB
10 10
BER, QC−PMP −8
−7
10 FER, QC−PMP 10
2.8 3 3.2 3.4 3.6 3.8 4 4.2 4.4
BER, CPM−QC E /N (dB)
b 0
−8 FER, CPM−QC
10
1.5 2 2.5 3
E /N (dB)
b 0
Fig. 8. Error correction performance of the (2304, 1920) irregular QC-PMP,
802.16e [37] and SQC-LDPC codes with rate 5/6.
10 BER, C
2
−7
FER, C3 parameters (δ 2d = 4, δ ACE = 4) [40] for construction and the
10 BER, C2’ proposed QC-PMP for optimization, we can obtain one more
FER, C2’
10
−8
BER, C ’
irregular QC-LDPC code, C3 (4032, 3264), and its optimized
3
FER, C3’ version, C3 ′ (4032, 3264).
As shown in Fig. 7, the performance of C2 ′ based on C2
−9
10
2.8 3 3.2 3.4 3.6 3.8
Eb/N0(dB)
is improved greatly. It gains about 0.15 dB compared with
C2 at BER = 8 × 10−8 . At the beginning of the point,
Fig. 7. Error correction performance of the (4032, 3264) irregular QC-LDPC Eb /No =3.5dB, the slope of curve C2 begins to reduce signifi-
codes with rate 17/21. cantly. Hence, the error floor appears for code C2 . Meanwhile,
C3 ′ outperforms C3 in the range of BER < 4 × 10−8 .
contain those used in academia [36] [37] [40] and in industry In addition, with a different column weight distribution
[38]. λ(x) = 0.125x2 + 0.4167x3 + 0.4583x4 and the uniform row
Firstly, we validate the proposed algorithm on the regular weight of 20, a 4 × 24 base matrix with L = 96, W4 , can
QC-LDPC code. We can construct a 4 × 12 base matrix be generated [37]. Through mapping each entry of W4 to a
with L = 330, [W1 ]4×12 , of a CPM-QC LDPC code [36]. 96 × 96 submatrix, a 384 × 2304 parity-check matrix, H4 , can
Through mapping each entry of W1 to a 330 × 330 submatrix, be achieved. The null space of H4 gives an irregular QC-LDPC
a 1320 × 3960 parity-check matrix, H1 , can be obtained. code, C4 (2304, 1920), called the SQC-LDPC code (QC-LDPC
The null space of H1 gives a (3, 9)-regular CPM-QC LDPC code with single-weight circulants) [37]. The SQC-LDPC code
code, C1 (3960, 2640). Then, we apply the proposed QC- shows a lower error floor than the 802.16e standard code with
PMP algorithm to W1 , resulting in an optimized base matrix, the same basic code parameters as those in [37]. Thus, we
W1 ′ , and a parity-check matrix, H1 ′ . Consequently, the null apply the proposed QC-PMP algorithm to W4 . The optimized
space of the matrix, H1 ′ , gives a (3, 9)-regular QC-PMP code, base matrix, W4 ′ , and the parity-check matrix, H4 ′ , can be
C1 ′ (3960, 2640). formed. The null space of H4 ′ gives an irregular QC-PMP
From Fig. 6, we can see that the two codes behave the same code, C4 ′ (2304, 1920).
in the range of BER ≥ 2 × 10−6 . However, in the range of Fig. 8 shows the error correction performance of the irreg-
the BER < 2 × 10−6 , the QC-PMP code outperforms the ular QC-PMP, SQC-LDPC and 802.16e standard codes. It is
CPM-QC code, exhibiting a lower error floor. noted that the experimental result of the 802.16e standard code
With the column weight distribution λ(x) = 0.4052x3 + is extracted from [37]. From the curve of BER vs. Eb /N0 ,
0.3927x4 + 0.1466x7 + 0.0555x8 and the row weight distri- we can see that the QC-PMP code based on the SQC-LDPC
bution ξ(x) = 0.1667x22 + 0.8333x23 [40], a 12 × 63 base code gains about 0.1 dB compared with the SQC-LDPC code
matrix with L = 64, [W2 ]12×63 , can be obtained by using the at BER = 3 × 10−8 and about 0.2 dB compared with the
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
11
−2
QC-PMP code, C6 ′ (1944, 1620). It is noted that the elements
10
BER, 802.11ad from column-(n − m + 1) to column-n of W5 and W6 are not
FER, 802.11ad
−3
10 BER, QC−PMP
adjusted during the optimization process, in order to maintain
FER, QC−PMP the block dual-diagonal (BDD) structure of the 802.11ad code.
−4
10 Figures 9 and 10 show the performance of QC-PMP code
(C5 ′ and C6 ′ ) vs. 802.11ad code (C5 and C6 ). From the
curves, we can see the QC-PMP code, C5 ′ , gains about 0.2 dB
−5
BER/FER
10
−6
compared with the 802.11ad code, C5 , at BER = 3 × 10−8 .
10
Finally, the QC-PMP code, C6 ′ , outperforms the 802.11ad
−7
10
code, C6 , in the range of the BER < 8 × 10−6 . At
BER = 1 × 10−8 , the optimized code, C6 ′ , gains about 0.15
−8
10 dB compared with its corresponding code, C6 .
Regardless of the 802.16e code or the 802.11ad code, the
−9
10
3 3.5 4 4.5 5 QC-PMP can optimize the cycles of parity-check matrix as a
Eb/N0(dB) whole. It makes the number of cycles become fewer and the
length of cycles larger by continuously reducing the CM of
Fig. 9. Error correction performance of the (648, 486) QC-PMP and 802.11ad
a parity-check matrix. The number and the length of cycles
codes with rate 3/4. within a Tanner graph have a better balance, making the
performance improved to certain degree in the error floor
10
−2
range. As shown in all of the above simulation results,
BER, 802.11ad
FER, 802.11ad reducing the metric, CM, leads to an exceptional effect of
−3
10 BER, QC−PMP
FER, QC−PMP significantly improving the error correction performance of
−4 the LDPC codes.
10
BER/FER
−5
10 VI. C ONCLUSION
10
−6 In this paper, we have proposed two optimization methods,
the PMPE algorithm for random codes and the QC-PMP
0.15 dB
10
−7
algorithm for QC-LDPC codes. The proposed algorithms can
decrease the number of short cycles in the Tanner graphs
−8
10
without changing the code parameters, such as the code length,
3 3.2 3.4 3.6 3.8 4 4.2 4.4 4.6 4.8
E /N (dB)
b 0
code rate and degree distribution after optimization. The
approximately nearest codewords (ANC) searching approach
shows that the optimized codes have fewer codewords of low
Fig. 10. Error correction performance of the (1944, 1620) QC-PMP and
802.11ad codes with rate 5/6. weights, compared with the original ones, which means that
the optimized codes have a lower probability to become the
other permissible codes than the original ones when large
802.16e code at BER = 2 × 10−7 .
noises occur over the channel. Experimental results show
Finally, we demonstrate the validity of the proposed algo-
that the PMPE algorithm can improve the error correction
rithm on the 802.11ad standard code [38]. With the column
performance of the MacKay codes with code rate around
weight distribution λ(x) = 0.2083x2 + 0.5x3 + 0.2917x6 and
0.5 and the PEG code with code rate around 0.9. For the
the row weight distribution ξ(x) = 0.3333x14 + 0.6667x15 ,
QC-LDPC codes, experimental results have shown that the
a 6 × 24 base matrix with L = 27, W5 , can be obtained.
performance of codes with different code rates and lengths,
Through mapping each entry of W5 to a 27 × 27 submatrix,
including the regular codes and irregular ones, are significantly
a 162 × 648 parity-check matrix, H5 , can be built. The null
improved with the proposed QC-PMP algorithm.
space of H5 gives an irregular 802.11ad code, C5 (648, 486).
Then, we apply the proposed QC-PMP algorithm to W5 ,
resulting in the optimized base matrix, W5 ′ , and the parity- VII. ACKNOWLEDGMENT
check matrix, H5 ′ . The null space of H5 ′ gives an irregular The authors wish to thank the editor, Enrico Paolini, and
QC-PMP code, C5 ′ (648, 486). Meanwhile, with the column the anonymous reviewers for their comments on this paper
weight distribution λ(x) = 0.125x2 + 0.4583x3 + 0.4167x4 which significantly improved the presentation and the quality
and the row weight distribution ξ(x) = 0.25x19 + 0.75x20 , of this work. In particular, the simulation example of the
we can obtain a 4 × 24 base matrix with L = 81, W6 . unstructured LDPC code optimized with different algorithms
Through mapping each entry of W6 to an 81×81 submatrix, a was added to the paper as a result of such comments. The
324×1944 parity-check matrix, H6 , can be achieved. The null authors are very thankful to the fellow researchers, Prof.
space of H6 gives an irregular 802.11ad code, C6 (1944, 1620). Vojin Senk, Dr. Dejan Vukobratovic, Prof. Bane Vasic and Dr.
Then, we apply the proposed QC-PMP algorithm to W6 , Milos Ivkovic, for their support in providing their algorithm
resulting in the optimized base matrix, W6 ′ , and the parity- details of constructing unstructured LDPC codes. Especially,
check matrix, H6 ′ . The null space of H6 ′ gives an irregular we wish to thank Dr. Dejan Vukobratovic for providing us
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
12
their parity check matrices and explaining how to obtain the [20] R. Tanner, “A recursive approach to low complexity codes,” IEEE
excellent performance of the optimized algorithm. The above Transactions on Information Theory, vol. 27, no. 5, pp. 533–547, Sep.
1981.
mentioned researchers greatly speeded up the modification and [21] C. T. Healy and R. C. D. Lamare, “Decoder-optimised progressive edge
significantly improved our revised version of this work. growth algorithms for the design of LDPC codes with low error floors,”
IEEE Communications Letters, vol. 16, no. 6, pp. 889–892, June 2012.
[22] M. Karimi and A. H. Banihashemi, “Message-passing algorithms for
R EFERENCES counting short cycles in a graph,” IEEE Transactions on Communica-
tions, vol. 61, no. 2, pp. 485–495, Feb. 2013.
[1] R. Gallager, “Low-density parity-check codes,” IRE Transactions on [23] J. Li, S. Lin, and K. Abdel-Ghaffar, “Improved message-passing al-
Information Theory, vol. 8, no. 1, pp. 21–28, Jan. 1962. gorithm for counting short cycles in bipartite graphs,” in 2015 IEEE
[2] D. MacKay and R. Neal, “Near Shannon limit performance of low- International Symposium on Information Theory (ISIT), Hong Kong,
density parity-check codes,” IEEE Electronics Letters, vol. 32, no. 18, June 14–19, 2015, pp. 416–420.
pp. 1645–1646, Aug. 1996. [24] M. P. C. Fossorier, “Quasi-cyclic low-density parity-check codes from
[3] X. Liu, F. Xiong, Z. Zhou, Y. Yin, and L. Zhang, “Construction of QC- circulant permutation matrices,” IEEE Transactions on Information
LDPC cycle codes over GF(q) based on cycle entropy and applications Theory, vol. 50, no. 8, pp. 1788–1793, Aug. 2004.
on patterned media storage,” IEEE Transactions on Magnetics, vol. 51, [25] Z. Li and B. V. K. V. Kumar, “A class of good quasi-cyclic low-density
no. 11, pp. 1–5, Nov. 2015. parity check codes based on progressive edge growth graph,” in 2004
[4] J. Kim, D. h. Lee, and W. Sung, “Performance of rate 0.96 (68254, Asilomar Conference on Signals, Systems and Computers., vol. 2, Pacific
65536) EG-LDPC code for NAND flash memory error correction,” in Grove, California, USA, Nov. 7–10, 2004, pp. 1990–1994.
2012 IEEE International Conference on Communications (ICC), Ottawa, [26] X. Liu, W. Zhang, and Z. Fan, “Construction of quasi-cyclic LDPC
ON, Canada, Jun. 10-15, 2012, pp. 7029–7033. codes and the performance on the PR4-equalized MRC channel,” IEEE
[5] Y.-M. Lin, H.-T. Li, M.-H. Chung, and A.-Y. Wu, “Byte-reconfigurable Transactions on Magnetics, vol. 45, no. 10, pp. 3699–3702, Oct. 2009.
LDPC codes design with application to high-performance ECC of [27] K. M. Krishnan and P. Shankar, “Computing the stopping distance of
NAND flash memory systems,” IEEE Transactions on Circuits and a Tanner graph is NP-hard,” IEEE Transactions on Information Theory,
Systems I: Regular Papers, vol. 62, no. 7, pp. 1794–1804, Jul. 2015. vol. 53, no. 6, pp. 2278–2280, Jun. 2007.
[6] K. C. Ho, C. L. Chen, and H. C. Chang, “A 520k (18900, 17010) array [28] M. Karimi and A. H. Banihashemi, “Efficient algorithm for finding dom-
dispersion LDPC decoder architectures for NAND flash memory,” IEEE inant trapping sets of LDPC codes,” IEEE Transactions on Information
Transactions on Very Large Scale Integration (VLSI) Systems, vol. 24, Theory, vol. 58, no. 11, pp. 6942–6958, Nov. 2012.
no. 4, pp. 1293–1304, Apr. 2016. [29] D. J. C. MacKay, “Good error-correcting codes based on very sparse
[7] X. Hu, E. Eleftheriou, and D. Arnold, “Regular and irregular progressive matrices,” IEEE Transactions on Information Theory, vol. 45, no. 2, pp.
edge-growth Tanner graphs,” IEEE Transactions on Information Theory, 399–431, Mar. 1999.
vol. 51, no. 1, pp. 386–398, Jan. 2005. [30] D. MacKay, “David MacKay’s Gallager code resources,” Available: http:
[8] L. Zeng, L. Lan, Y. Tai, S. Song, S. Lin, and K. Abdel-Ghaffar, //www.inference.phy.cam.ac.uk/mackay/codes, Aug. 19, 2008, [Online].
“Constructions of nonbinary quasi-cyclic LDPC codes: A finite field [31] A. Venkiah, D. Declercq, and C. Poulliat, “Design of cages with a
approach,” IEEE Transactions on Communications, vol. 56, no. 4, pp. randomized progressive edge-growth algorithm,” IEEE Communications
545–554, Apr. 2008. Letters, vol. 12, no. 4, pp. 301–303, Apr. 2008.
[9] Q. Diao, Q. Huang, S. Lin, and K. Abdel-Ghaffar, “A matrix-theoretic [32] M. Diouf, D. Declercq, S. Ouya, and B. Vasic, “A PEG-like LDPC
approach for analyzing quasi-cyclic low-density parity-check codes,” code design avoiding short trapping sets,” in 2015 IEEE International
IEEE Transactions on Information Theory, vol. 58, no. 6, pp. 4030– Symposium on Information Theory (ISIT), Hong Kong, June 14–19,
4048, Jun. 2012. 2015, pp. 1079–1083.
[10] B. Zhou, J. Kang, Y. Y. Tai, S. Lin, and Z. Ding, “High performance [33] F. R. Kschischang, B. J. Frey, and H. A. Loeliger, “Factor graphs and
non-binary quasi-cyclic LDPC codes on Euclidean geometries,” IEEE the sum-product algorithm,” IEEE Transactions on Information Theory,
Transactions on Communications, vol. 57, no. 5, pp. 1298–1311, May vol. 47, no. 2, pp. 498–519, Feb. 2001.
2009. [34] X.-Y. Hu, M. P. C. Fossorier, and E. Eleftheriou, “On the computation
[11] M. Esmaeili and M. Gholami, “Geometrically-structured maximum-girth of the minimum distance of low-density parity-check codes,” in 2004
LDPC block and convolutional codes,” IEEE Journal on Selected Areas IEEE International Conference on Communications, Paris, France, June
in Communications, vol. 27, no. 6, pp. 831–845, Aug. 2009. 20–24, 2004, pp. 767–771.
[12] D. Divsalar, S. Dolinar, and C. Jones, “Low-rate LDPC codes with [35] L. Lan, L. Zeng, Y. Y. Tai, L. Chen, S. Lin, and K. Abdel-Ghaffar, “Con-
simple protograph structure,” in 2005 IEEE International Symposium struction of quasi-cyclic LDPC codes for AWGN and binary erasure
on Information Theory, Adelaide, SA, Australia, Sept. 4–9, 2005, pp. channels: A finite field approach,” IEEE Transactions on Information
1622–1626. Theory, vol. 53, no. 7, pp. 2429–2458, Jul. 2007.
[13] ——, “Construction of protograph LDPC codes with linear minimum [36] J. Li, K. Liu, S. Lin, and K. Abdel-Ghaffar, “Algebraic quasi-cyclic
distance,” in 2006 IEEE International Symposium on Information The- LDPC codes: Construction, low error-floor, large girth and a reduced-
ory, Seattle, WA, USA, July 6–12, 2006, pp. 664–668. complexity decoding scheme,” IEEE Transactions on Communications,
[14] X. He, L. Zhou, J. Du, and Z. Shi, “The multi-step PEG and ACE con- vol. 62, no. 8, pp. 2626–2637, Aug. 2014.
strained PEG algorithms can design the LDPC codes with better cycle- [37] X. Wu, M. Jiang, and C. Zhao, “Construction of high-rate QC-LDPC
connectivity,” in 2015 IEEE International Symposium on Information codes with multi-weight circulants,” in 2016 9th International Sym-
Theory (ISIT), Hong Kong, June 14–19, 2015, pp. 46–50. posium on Turbo Codes and Iterative Information Processing (ISTC),
[15] C. T. Healy and R. C. d. Lamare, “Design of LDPC codes based on mul- Brest, France, Sep. 5–9, 2016, pp. 21–25.
tipath EMD strategies for progressive edge growth,” IEEE Transactions [38] The 802.11 Working Group, “IEEE standard for information
on Communications, vol. 64, no. 8, pp. 3208–3219, Aug. 2016. technology–Telecommunications and information exchange between
[16] T. Tian, C. Jones, J. Villasenor, and R. Wesel, “Selective avoidance systems local and metropolitan area networks–Specific requirements -
of cycles in irregular LDPC code construction,” IEEE Transactions on Part 11: Wireless LAN medium access control (MAC) and physical layer
Communications, vol. 52, no. 8, pp. 1242–1247, Aug. 2004. (PHY) specifications,” IEEE Std 802.11-2016 (Revision of IEEE Std
[17] C. Di, D. Proietti, I. E. Telatar, T. J. Richardson, and R. L. Urbanke, 802.11-2012), IEEE-SA Standards Board, pp. 3293–3295, Dec. 2016.
“Finite-length analysis of low-density parity-check codes on the binary [39] D. Vukobratovic and V. Senk, “Evaluation and design of irregular LDPC
erasure channel,” IEEE Transactions on Information Theory, vol. 48, codes using ACE spectrum,” IEEE Transactions on Communications,
no. 6, pp. 1570–1579, Jun. 2002. vol. 57, no. 8, pp. 2272–2279, Aug. 2009.
[18] B. Vasić, S. K. Chilappagari, D. V. Nguyen, and S. K. Planjery, [40] G. Han, Y. L. Guan, and L. Kong, “Construction of irregular QC-LDPC
“Trapping set ontology,” in 2009 47th Annual Allerton Conference on codes via masking with ACE optimization,” IEEE Communications
Communication, Control, and Computing (Allerton), Monticello, IL, Letters, vol. 18, no. 2, pp. 348–351, Feb. 2014.
USA, Sept. 30–Oct. 2, 2009, pp. 1–7.
[19] D. Vukobratovic, A. Djurendic, and V. Senk, “ACE spectrum of LDPC
codes and generalized ACE design,” in 2007 IEEE International Con-
ference on Communications, Glasgow, Scotland, June 24–28, 2007, pp.
665–670.
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCOMM.2017.2783624, IEEE
Transactions on Communications
13
Xingcheng Liu (SM’12) was born in Anfu County, Shuo Liang was born in Yinchuan, Ningxia, China.
Jiangxi, China. He received the B.E. and M.E. He received the B.E. degree from Sichuan University
degrees in electrical engineering from Huazhong U- in 2012, and the M.E. degree from Sheffield Univer-
niversity of Science and Technology, Wuhan, China, sity in October 2014, both in electrical engineering.
and the Ph.D. degree from Sun Yat-sen University He is a PhD candidate in Sun Yat-sen Universi-
(SYSU), Guangzhou, China. ty, Guangzhou, China. His main research interests
He received the Royal Society KC Wong Fel- include channel coding theory and mobile commu-
lowship of the U.K. to do post-doctoral research at nications.
the University of Southampton, Southampton, U.K., Mr. Liang is a student member of the China
during May 2002 - May 2003. He was a visiting Institute of Electronics.
scientist at Oregon State University, Corvallis, USA,
from 2004 to 2005. He is a full professor with the School of Electronics and
Information Technology, SYSU. He is also currently affiliated with Xinhua
College of SYSU as a leader in the field of electrical engineering and
automation. His main research interests include channel coding theory and
applications, mobile communications, wireless sensor networks, and Internet
of Things. He has authored over 100 peer-reviewed papers in journals and
conferences. He is now the primary investigator of several projects on wireless
communications and networking.
Dr. Liu is a Senior Member of the IEEE and the China Institute of
Communications.
0090-6778 (c) 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.