Low Complexity LDPC Codes for Partial Response Channels Hongwei Song Vijayakumar Bhagavatula Data Storage Systems Center Carnegie Mellon University Pittsburgh, PA 15213 November 20, 2002
[email protected]
1
Motivation As hard disk drive densities are pushed towards Tb/in2, channels must cope with Low SNRs (7 to 12 dB) High ISI (PW50/T >3) Data rates needed are Gbps and faster Corrected BER requirements are 10-12 to 10-15 Current PRML approaches will not be good enough Codes must be of high rate (8/9 and higher) Investigating the use of low-complexity, high-rate LDPC codes to meet above goals 2
Outline Systematic construction of column weight j=2 LDPC codes Girth and distance property of constructed j=2 codes. Density evolution analysis of LDPC codes concatenated with partial response channels Simulation results
3
Quasi-cyclic j=2 LDPC Codes Typically, LDPC codes with column weights > 2 are considered; here we look at j=2 codes Low complexity encoding and decoding implementation (bandwidth and memory). Lower computational complexity due to smaller column weight j=2. Short cycle free, i.e., girth g=8 or 12. Minimum distance dmin and its multiplicity A(dmin) can be easily computed. 1
1 1
1 1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1
1 1
1 1 1
1 1
1
1 1
1
Parity check matrix 4
Quasi-cyclic j=2 LDPC Code Construction
Disjoint difference sets (DDS) LDPC codes Permutation matrix based LDPC codes Graph based LDPC codes Random interleaver used with structured codes H = [H1
1
1 1
1 1 1
1
1 1
1 1 1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1 1
1 1
1 1
1
1 1
1
1
1 1
1
1 1
1
1 1
1 1
1 1
1
1
1 1
1
1
1 1
1
I " I I I H= 1 2 p −1 I σ σ " σ
" Ht ]
H2
1
1 1
1 1
1
5
Graph Based Large Girth j=2 LDPC Codes
Case 1
Case 2
…
Lemma 1. A j=2 LDPC code having girth g=12 and block length n = k (k 2 − k + 1) exists, if k-1 is a prime number, where k is the row weight. Lemma 2. A j=2 LDPC code constructed in Lemma 1 has A(d min ) = k (k − 1)3 (k 2 − k + 1) / 6 number of codewords with minimum distance d min = 6 , where k is row weight.
Must avoid Case 1 and Case 2 to achieve girth 12 6
Encoding Algorithm t
qi '
pi ⊕ ...
xi1
xi2
xik −1
The parity bits can be computed from the information bits as follows: pi = xi1 ⊕ xi2 ⊕ ⋅⋅ ⋅ ⊕ xik −1 qi ' = pi '1 ⊕ pi '2 ⊕ ⋅⋅ ⋅ ⊕ pi 'k −1 t = q1 ⊕ q2 ⊕ ⋅ ⋅ ⋅ ⊕ qk −1
# op = (1 + 2( k − 1) + 2( k − 1)2 )(k − 2) ≈ 2n linear encoding complexity! 7
Word Error Rates for j=2 codes over AWGN 0
10
ML Bound, code(456, k=8) Simulation, code(456, k=8) ML Bound, code(5526, k=18) Simulation, code(5526, k=18)
-1
10
-2
W E R
10
Rate R = 1-(2/k) -3
10
-4
10
-5
10
3.5
4
4.5
5
5.5
6
6.5
Eb/N0 (dB)
ML union bound N
PE ≤
∑
d = d min
A( d )Q
(
)
2d ⋅ R ⋅ Eb / N 0 ≈ A( d min )Q
(
2d min ⋅ R ⋅ Eb / N 0
)
Iterative soft decoding is fairly close to ML decoding for these codes 8
Density Evolution Analysis Track the evolution of the probability density function (pdf) Assume infinite block length and Gaussian pdf, define SNR = m 2 / σ 2 Eb / N 0
SNRin
Channel Detector
L
SNRin
L
SNRout
LDPC Decoder
C
SNRout
= fC ( SNRinC , Eb / N 0 )
SNRout = f L ( SNRin ) L
L
DE of EPR4, SNR=5.0dB, rate8/9 1
Normalized pdf
C
C
SNRout
0.5
Iter 1...5
0
Empirically measured histograms of an EPR4 channel detector at SNR = 5.0 dB -20
-10
0
10
20
LLR
9
Extrinsic Information Transfer Functions 8
8 L
7
6
6
5
5
SNRin
L
LDPC Decoder
SNRout
SNRLo ut
SNRCout
) B d( t u o C R N S
7
4
4 3
E /N b
2
C
SNRin
1 0 0
0
C
Channel SNRout Detector
1
2
3
3
PR4 EPR4 EEPR4 PR1 PR2 PR3 EPR4, 1/(1+D2) 4
5
2
j=2 j=3 j=4 j=6
1 0
3
3.5
4
4.5
6
SNR Cin (dB)
SNRout = fC ( SNRin , Eb / N 0 = 4.75dB ) C
C
5
5.5
6
SNRLin
SNRout = f L ( SNRin ) L
L
Transfer functions of PR channel (computed via Monte-Carlo) without precoder flatten out and saturate to the same output. LDPC code with column weight j=2 provides higher output SNR than codes with j>2 for low input SNR; situation reverses at high input SNR
10
Estimated Vs. Simulated BER for AWGN -2
-2
10
10
E stimate , 1 iter E stimate , 2 iter E stimate , 3 iter S imulate d, 1 iter S imulate d, 2 iter S imulate d, 3 iter
-4
-3
10
-4
10
BER
BER
10
-6
10
j=4, LDPC N= 4360 Girth g=6 Rate = 0.9394
-8
10
-5
10
j=2, LDPC N=5526 Girth g=12 Rate=8/9
-6
10
-7
10
6
2
4
-8
-10
10
E stimate , 2 iter E stimate , 4 iter E stimate , 6 iter E stimate , 7 iter S imulate d, 2 iter S imulate d, 4 iter S imulate d, 6 iter S imulate d, 7 iter
3
4
5
6 7 E b /N0 (dB)
8
9
10
10
3
4
5
6
7
8
9
Eb /N0 (dB)
Larger girth estimates and simulation results are closer than for small girth
11
BER for PR Channels -1
20 18 16
j=2 LDPC decoder channel detector
PR4 EPR4 PR2 Predicted (PR4)
-2
10
Eb = 4.0 : 0.5 : 7.0dB N0
-3
12 10 8
10
3 Channel decoding iterations
BER
C SNRLout , SNRin
14
10
-4
10
6 4
-5
fixed points
10
2 -6
0 2
10 3
4
5
6
7
8
9
10
SNRLin , SNRCout
4
5
5.5
6
Eb /N0 (dB)
SNR = SNRout ( fixed ) + SNRin ( fixed ) L
4.5
L
BER = Q
(
SNR
6.5
7
)
PR4 predicted BER and simulated BER match well At high SNRs, all three PR targets yield similar BER performance 12
Single Convolutional Code as Outer Code 30
PR4 EPR4 EEPR4 E3PR4 PR1 PR2 PR3 j=2 code
-1
Conv.(31,23)8
10
j=2 LDPC code j=6 LDPC code
25
-2
10
-3
10
BER
SNRCout
20
15
R E B
10
-4
10
-5
10
5
-6
0
10 3
4
5
6
7 C
SNR in
8
9
10
3
4
5
6
7
8
SNR (dB)
BER curves based on single rate 8/9 RSC (31,23)8 concatenated with PR At low SNR, PR1 and PR4 are better Different PR channels have similar BER performance at high SNR j=2 LDPC code worse than the convolutional code for low SNR, better at high SNR; both suffer error floor
13
Density Evolution Vs. Simulations -1
10
10 EPR4, w/o precoding EPR4, w precoding j=2 LDPC code, 3 iter j=3 LDPC code, 3 iter
9 8
uncoded EPR4 j=2 DD S LDPC, no precoding 2 j=2 DD S LDPC, 1/(1+D ) j=3 random LDPC j=4 random LDPC
-2
10
-3
6
BER
10
5
L
C
SNRout, SNRi n
7
-4
4
10
3 2
-5
10
1 0
-6
2
3
4 5 L C S NR in , SNR out
6
7
10
4
4.5
5
5.5
6
6 .5
7
7.5
8
Eb /N0 (dB )
j=2 LDPC code with proper precoding outperforms LDPC codes with j≥3, while precoding adds little complexity to encoding and decoding. LDPC codes with j≥3 have narrow “tunnel” compared to j=2 code, which results in significantly different block error statistics. Inclusion of precoding narrows the “tunnel”. 14
Block Error Statistics j=3 LDPC code
j=2 LDPC code 100
15000
SNR=5.375 BER=8.4e-5 Blocks=38599
SNR=5.5 BER=9.6e-005 Blocks=167072
10000
50
5000 0
5
10
15
20
0
20
40
60
80
100
120
140
160
30
15000
SNR=5.625 BER=6.1e-005 Blocks=228894
10000 5000 0
0
25
0
2
4
6
8
10
12
14
16
# of blocks
# of blocks
0
SNR=5.5 BER=7.6e-6 Blocks=19728
20 10 0
0
50
100
150
30 6000
SNR=5.75 BER=3.7e-005 Blocks=155269
SNR=5.625 BER=8.9e-7 Blocks=162492
20
4000
10
2000 0
0
1
2
3
4
5
6
7
8
# of errors
9 10 11 12 13 14
0
0
20
40
60 # of errors
80
100
j=2 LDPC code exhibits block error statistics more compatible with an outer Reed-Solomon (RS) code, due to wider “tunnel”. 15
Conclusions Systematic construction of column weight j=2 LDPC codes Investigated girth and distance properties Sum-product algorithm is fairly close to ML decoding for these codes. j=2 LDPC code exhibits block error statistics more compatible with an outer RS code, attractive for magnetic recording channels.
16