1: \documentclass[10pt,conference]{IEEEtran}
2: % some very useful LaTeX packages include:
3:
4: \usepackage{graphicx}
5: \usepackage{subfigure}
6: \usepackage{cite}
7: \usepackage{amssymb, amsmath}
8: %\usepackage[flushleft]{paralist}
9:
10: % Needed to enable the \thanks command
11: \IEEEoverridecommandlockouts
12:
13: \interdisplaylinepenalty=2500
14:
15: % correct bad hyphenation here
16: % \hyphenation{IEEEtran}
17:
18: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19:
20: \exhyphenpenalty=10000
21: \hyphenpenalty=10000
22:
23: %\renewcommand{\topfraction}{1.00}
24: %\renewcommand{\floatpagefraction}{1.00}
25: %\renewcommand{\textfraction}{0.00}
26: %\renewcommand{\dbltopfraction}{1.00}
27: %\renewcommand{\dblfloatpagefraction}{1.00}
28:
29: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
30:
31: \begin{document}
32:
33: % Configure the IEEE bibliography in advance
34: \bstctlcite{TurboRef:BSTcontrol}
35:
36: % paper title
37: \title{A Union Bound Approximation for Rapid Performance Evaluation of Punctured Turbo Codes}
38:
39: % author names and affiliations
40: % use a multiple column layout for up to three different
41: % affiliations
42:
43: \author{\authorblockN{Ioannis Chatzigeorgiou, Miguel R. D. Rodrigues, Ian J. Wassell}
44: \authorblockA{Digital~Technology~Group,~Computer~Laboratory\\
45: University~of~Cambridge,~United~Kingdom\\
46: Email:~\{ic231,~mrdr3,~ijw24\}@cam.ac.uk} \and
47: \authorblockN{Rolando Carrasco}
48: \authorblockA{School~of~EE\&C~Engineering\\
49: University~of~Newcastle,~United~Kingdom\\
50: Email:~r.carrasco@ncl.ac.uk}
51: \thanks{This work is supported by EPSRC
52: under Grant GR/S46437/01.}}
53:
54: % make the title area
55: \maketitle
56:
57: \begin{abstract}
58: In this paper, we present a simple technique to approximate the
59: performance union bound of a punctured turbo code. The bound
60: approximation exploits only those terms of the transfer function
61: that have a major impact on the overall performance. We revisit the
62: structure of the constituent convolutional encoder and we develop a
63: rapid method to calculate the most significant terms of the transfer
64: function of a turbo encoder. We demonstrate that, for a large
65: interleaver size, this approximation is very accurate. Furthermore,
66: we apply our proposed method to a family of punctured turbo codes,
67: which we call pseudo-randomly punctured codes. We conclude by
68: emphasizing the benefits of our approach compared to those employed
69: previously. We also highlight the advantages of pseudo-random
70: puncturing over other puncturing schemes.
71: \end{abstract}
72:
73: \IEEEpeerreviewmaketitle
74:
75: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76: \section{Introduction}
77: % no \PARstart
78: \label{Intro}
79:
80: Turbo codes, originally conceived by Berrou \textit{et al}.
81: \cite{Berrou96} are widely known for their astonishing performance
82: on the additive white Gaussian noise (AWGN) channel. Methods to
83: evaluate an upper bound on the bit error probability (BEP) of a
84: parallel-concatenated coding scheme have been proposed by Divsalar
85: \textit{et al}. \cite{Divsalar95} as well as Benedetto and Montorsi
86: \cite{Benedetto96a}. In addition, guidelines for the optimal design
87: of the constituent convolutional codes were presented in
88: \cite{Benedetto96b}.
89:
90: The rate of a turbo code can be increased by puncturing the outputs
91: of the turbo encoder. Guidelines and design considerations for
92: punctured turbo codes have been derived by analytical
93: \cite{Acikel99,Babich02,Kousa02} as well as simulation-based
94: approaches \cite{FanMo99,Land00}. Upper bounds on the bit error
95: probability (BEP) can be easily evaluated based on the techniques
96: presented in \cite{Kousa02} and \cite{Chatzigeorgiou06b}. However,
97: computation of the upper bound can be complex and time-consuming,
98: when a large interleaver size and certain puncturing patterns are
99: used.
100:
101: %Note that it is feasible to apply our approach, presented in
102: %\cite{Chatzigeorgiou06b}, only if the puncturing rules used, allow
103: %simplification of the augmented state diagrams of the constituent
104: %codes.
105:
106: The motivation for this paper is to derive simple expressions for
107: the calculation of the dominant term of the performance union bound
108: for punctured parallel concatenated convolutional codes (PCCCs).
109: Previously, complex approaches based on the full transfer function
110: of each constituent code, have been used. In Section
111: \ref{PerfEvalPunc} we demonstrate that for a large interleaver size,
112: the dominant term can be used as an accurate approximation of the
113: overall performance union bound. In Section \ref{Structure_PuncRSC}
114: we analyze the properties of constituent convolutional encoders so
115: as to obtain exact expressions for the dominant term. A case study
116: considering pseudo-random puncturing is presented in Section
117: \ref{CaseStudy} and the paper concludes with a summary of the main
118: contributions.
119:
120: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
121:
122: \section{An Upper Bound to the Error Probability of Punctured Turbo Codes and its Approximation}
123: \label{PerfEvalPunc}
124:
125: Turbo codes, in the form of rate-1/3 PCCCs, consist of two rate-1/2
126: recursive systematic convolutional (RSC) encoders separated by an
127: interleaver of size $N$ \cite{Berrou96}. The information bits are
128: input to the first constituent RSC encoder, while an interleaved
129: version of the information bits are input to the second RSC encoder.
130: The output of the turbo encoder consists of the systematic bits of
131: the first encoder, which are identical to the information bits, the
132: parity-check bits of the first encoder and the parity-check bits of
133: the second encoder.
134:
135: Rates higher than 1/3 can be obtained by periodic elimination of
136: specific codeword bits from the output of a rate-1/3 turbo encoder.
137: Punctured codes are classified as systematic (S), partially
138: systematic (PS) or non-systematic (NS) depending on whether all,
139: some or none of their systematic bits are transmitted \cite{Land00}.
140: Note that a punctured PCCC can also be seen as a PCCC constructed
141: using two constituent punctured RSC codes.
142:
143: Puncturing of a rate-1/2 RSC to obtain a higher rate RSC is
144: represented by an $2\times M$ matrix as follows:
145: \begin{equation}
146: \label{punc_pattern} \mathbf{P}=\left[
147: \begin{matrix}
148: \mathbf{P}_{U}\\
149: \mathbf{P}_{Z}
150: \end{matrix}\right]=\left[
151: \begin{matrix}
152: p_{1,1}&p_{1,2}&\ldots&p_{1,M}\\
153: p_{2,1}&p_{2,2}&\ldots&p_{2,M}
154: \end{matrix}\right],
155: \end{equation}where $M$ is the puncturing period and $p_{i,m}\in\{0,1\}$, with $i\!=\!1,2$ and
156: $m\!=\!1,\ldots,M$. For $p_{i,m}\!=\!0$, the corresponding output
157: bit is punctured. The puncturing pattern $\mathbf{P}$ for the
158: rate-1/2 encoder consists of the puncturing vector $\mathbf{P}_{U}$
159: for the systematic output sequence and the puncturing vector
160: $\mathbf{P}_{Z}$ for the parity-check output sequence.
161:
162: It was shown in \cite{Divsalar95} and \cite{Benedetto96a} that
163: performance bounds for a PCCC can be obtained from the transfer
164: functions, or equivalently the weight enumerating functions (WEFs),
165: of the terminated constituent RSC codes. A WEF provides all paths of
166: length $N$ that start from the zero state, can remerge with and
167: diverge from the zero state more than once, and terminate at the
168: zero state.
169:
170: More specifically, the conditional WEF (CWEF) of a punctured
171: convolutional code $\mathcal{C}'$, denoted as
172: $A^{\mathcal{C}'}(w,U,Z)$, assumes the form \cite{Benedetto96a}
173: \begin{equation}
174: \label{Cprime_CWEF}
175: \small{A^{\mathcal{C}'}(w,U,Z)=\:\sum\limits_{u}\sum\limits_{z}
176: A^{\mathcal{C}'}_{w,u,z}U^{u}Z^{z}},
177: \end{equation}where $A^{\mathcal{C}'}_{w,u,z}$ is the number of codeword sequences composed of a
178: systematic and a parity-check sequence having weights $u$ and $z$,
179: respectively, which were generated by input sequences of a given
180: weight $w$. The overall weight of a codeword sequence is $u+z$.
181:
182: The input-redundancy WEF (IRWEF), $A^{\mathcal{C}'}(W,U,Z)$,
183: provides all codeword sequences for all possible values of input
184: information weight, and is related to the CWEF as follows
185: \cite{Benedetto96a}
186: \begin{equation}
187: \label{Cprime_CWEFtoIRWEF}
188: \small{A^{\mathcal{C}'}(W,U,Z)=\:\sum\limits_{w}
189: A^{\mathcal{C}'}(w,U,Z)W^{w}}.
190: \end{equation}
191:
192: A relationship between the CWEF of a PCCC and the CWEFs of the
193: constituent codes, $\mathcal{C}'_{1}$ and $\mathcal{C}'_{2}$
194: respectively, can be easily derived only if we assume the use of a
195: uniform interleaver of size $N$, an abstract probabilistic concept
196: introduced in \cite{Benedetto96a}. More specifically, if
197: $A^{\mathcal{C}'_{1}}(w,U,Z)$ and $A^{\mathcal{C}'_{2}}(w,U,Z)$ are
198: the CWEFs of the constituent codes, the CWEF of the PCCC,
199: $A(w,U,Z)$, is equal to
200: \begin{equation}
201: \label{PCCCprime_CWEF} \small{A(w,U,Z) =
202: \frac{A^{\mathcal{C}'_{1}}(w,U,Z)\cdot
203: A^{\mathcal{C}'_{2}}(w,U=1,Z)} {\displaystyle \binom{N}{w}}}.
204: \end{equation}The systematic output sequence
205: of the second constituent encoder is not transmitted, therefore it
206: does not contribute to the overall weight of the turbo codeword
207: sequences, so it is eliminated by setting $U\!\!=\!\!1$ in
208: $A^{\mathcal{C}'_{2}}(w,U,Z)$. The IRWEF of the PCCC, $A(W,U,Z)$,
209: can be computed from the CWEF, $A(w,U,Z)$, in a manner identical to
210: (\ref{Cprime_CWEFtoIRWEF}).
211:
212: The input-output weight enumerating function (IOWEF) provides the
213: number of codewords generated by an input sequence of information
214: weight $w$, whose overall weight is $d$, in contrast with the IRWEF,
215: which distinguishes between the systematic and the parity-check
216: weights. For the case of a punctured PCCC, the corresponding IOWEF
217: assumes the form
218: \begin{equation}
219: \label{PCCCprime_IOWEF}
220: \small{B(W,D)=\:\sum\limits_{w}\sum\limits_{d}B_{w,d}W^{w}D^{d}},
221: \end{equation} where the coefficients $B_{w,d}$ can be derived
222: from the coefficients $A_{w,u,z}$ of the IRWEF, based on the
223: expression
224: \begin{equation}
225: \label{PCCCprime_IOWEF_COEFF}
226: \small{B_{w,d}=\!\sum\limits_{u+z=d}A_{w,u,z}}.
227: \end{equation}
228:
229: The IOWEF coefficients $B_{w,d}$ can be used to determine a tight
230: upper bound, denoted as $P^{u}_{b}$, on the BEP $P_{b}$, for
231: maximum-likelihood (ML) soft decoding for the case of an AWGN
232: channel, as follows \cite{Benedetto96a}
233: \begin{equation}
234: \label{PB}\small{P_{b}\leq P^{u}_{b}=\sum\limits_{w}P(w)},
235: \end{equation}where $P(w)$ is the union bound of all error
236: events with information weight $w$, and is defined as
237: \begin{equation}
238: \label{Pw}\small{P(w)=\:\sum\limits_{d}\frac{w}{N}B_{w,d}
239: Q\left(\sqrt{\frac{2R\cdot E_{b}}{N_{0}}\cdot d} \right)},
240: \end{equation}where $R$ is the rate of the punctured turbo code.
241:
242: In \cite{Benedetto96b}, Benedetto \textit{et al.} investigated the
243: performance of rate-1/3 PCCCs and observed that the union bound
244: $P(w_{\text{min}})$ of all error events with the lowest information
245: weight $w_{\text{min}}$, becomes dominant as the interleaver size
246: $N$ increases. Owing to the structure of an RSC encoder, the minimum
247: information weight of a terminated RSC code is always equal to two,
248: i.e., $w_{\text{min}}\!=\!2$. Consequently, the overall performance
249: bound $P^{u}_{b}$ can be approximated by $P(2)$, when a large
250: interleaver size is used. The same trend is also observed in the
251: case of punctured turbo codes. The contribution, as a percentage, of
252: $P(2)$ and $P(3)$ to $P^{u}_{b}$ is illustrated in
253: Fig.\ref{figContrib}. As an example, rate-1/2 S-PCCC(1, 17/15,
254: 17/15) is considered, using a uniform interleaver of size either
255: $N\!=\!1,000$ or $N\!=\!10,000$. It is apparent that $P(2)$ becomes
256: the dominant contribution over a broad range of BEP values, as the
257: interleaver size increases.
258:
259: \begin{figure}[t]
260: \centering
261: \includegraphics[width=0.80\linewidth]{contrib_SR12_R15F17.eps}
262: \caption{Contribution to the union bound for rate-1/2 S-PCCC(1,17/15,17/15) using an interleaver of size $N\!=\!1,000$ and $N\!=\!10,000$ bits}
263: \label{figContrib}
264: \end{figure}
265:
266: We see from (\ref{Pw}) that $P(2)$ depends heavily on the minimum
267: weight of the turbo codeword sequences, commonly known as free
268: effective distance $d_{\text{free,eff}}$ \cite{Benedetto96b}. We use
269: the notation $d^{\mathcal{C}'_{1}}_{\text{min}}$ to denote the
270: minimum weight of the codeword sequences generated by the first
271: constituent encoder and $z^{\mathcal{C}'_{2}}_{\text{min}}$ to
272: denote the minimum weight of the parity-check output sequences,
273: generated by the second constituent encoder. In both cases an input
274: sequence of information weight 2 is assumed. Therefore, the free
275: effective distance of a PCCC can be expressed as
276: \begin{equation}
277: \label{free_effective_generic}
278: d_{\text{free,eff}}=d^{\mathcal{C}'_{1}}_{\text{min}}+z^{\mathcal{C}'_{2}}_{\text{min}}.
279: \end{equation}The free effective distance is the most significant
280: parameter that influences the PCCC performance. The constituent
281: encoders should be chosen to maximise
282: $d^{\mathcal{C}'_{1}}_{\text{min}}$ and
283: $z^{\mathcal{C}'_{2}}_{\text{min}}$, and consequently
284: $d_{\text{free,eff}}$.
285:
286: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
287:
288: \section{Computing the Upper Bound Approximation}
289: \label{Structure_PuncRSC}
290:
291: In order to compute $P(2)$ and thus obtain a good approximation to
292: the overall performance bound $P^{u}_{b}$, we only need to calculate
293: the CWEF of each constituent code for $w\!=\!2$, i.e.,
294: $A^{\mathcal{C}'_{1}}(2,U,Z)$ and $A^{\mathcal{C}'_{2}}(2,U,Z)$.
295:
296: Both CWEFs could be obtained by brute-force, i.e., input all
297: possible sequences of weight 2 to each constituent encoder and group
298: the output codeword sequences according to their systematic and
299: parity-check weights. Although this approach is conceptually simple,
300: it is extremely time-consuming, especially when a large interleaver
301: size is used.
302:
303: The techniques proposed in \cite{Kousa02} and
304: \cite{Chatzigeorgiou06b} are more complex but less time-consuming.
305: They both use the state diagram of a parent RSC code and introduce
306: the puncturing patterns to obtain the full CWEF of the corresponding
307: punctured RSC code. However, for large interleaver sizes and
308: puncturing patterns with a long period, complexity becomes a
309: prohibiting factor for the implementation of either approach.
310:
311: In this section we use the properties of the trellis structure of
312: RSC codes to express the CWEF, for $w\!=\!2$, of an RSC encoder as a
313: function of its memory size, generator polynomials, and puncturing
314: pattern. Consequently, derivation of the state equations and
315: computation of the full transfer function of each constituent code,
316: required in \cite{Kousa02} and \cite{Chatzigeorgiou06b}, is not
317: necessary. Hence, PCCCs using both a large interleaver and a long
318: puncturing pattern can now be easily supported.
319:
320: \subsection{Unpunctured Rate-1/2 RSC Encoders}
321: A rate-1/2 RSC encoder, $\mathcal{C}$, is characterised by its
322: feedback and feedforward polynomials, $G_{R}(D)$ and $G_{F}(D)$
323: respectively. The degree of each polynomial is equal to the memory
324: size $\nu$ of the encoder. A hypothesis commonly made
325: \cite{Berrou96,Benedetto96b} so as to facilitate analysis of RSC
326: codes is that $G_{F}(D)$ is a monic function and that the initial
327: state of the encoder is the zero state, for every input sequence of
328: length $N$.
329:
330: Input sequences of weight 2 force the trellis path to diverge from
331: the zero state and re-merge with it, after a number of time-steps.
332: More specifically, the input sequence will change the state from $0$
333: to $2^{\nu-1}$, when the first non-zero bit is input to the encoder,
334: as it is illustrated in Fig.\ref{RSC_Trellis_Short}. For as long as
335: a trail of zeros follows the first non-zero input bit, the RSC
336: encoder behaves like a pseudo-random generator, with the same state
337: transitions being repeated every $L$ time-steps, where $L$ is the
338: period of the feedback polynomial. In order for the path to re-merge
339: with the zero state, the second non-zero bit should be input to the
340: encoder when state $1$ is reached, i.e., after $kL+1$ time-steps,
341: where $k\!=\!1,2,\ldots,\lfloor (N\!-\!1)/L\rfloor$ and $\lfloor
342: (N-1)/L\rfloor$ is the integer part of $(N\!-\!1)/L$. Furthermore,
343: as it is depicted in Fig.\ref{RSC_Trellis_Short}, when a non-zero
344: input bit causes the path to diverge from or re-merge to the zero
345: state, both the systematic and the parity-check outputs give a
346: logical 1. Therefore, if $z^{\mathcal{C}}_{\text{core}}$ is the
347: parity-check weight due to the transitions of the encoder from state
348: $2^{\nu-1}$ to state $1$, the overall weight $z$ of a parity-check
349: sequence can be expressed as
350: \begin{equation}
351: \label{zk} z(k)=kz^{\mathcal{C}}_{\text{core}}+2,\quad\text{for
352: }k\!=\!1,2,\ldots,\lfloor (N-1)/L\rfloor.
353: \end{equation}Note that the state sequence during the transitions
354: from state $2^{\nu-1}$ to state $1$ and, consequently, the value of
355: $z^{\mathcal{C}}_{\text{core}}$, depend on the selected feedback
356: polynomial. The minimum parity-check weight
357: $z^{\mathcal{C}}_{\text{min}}$ can be derived from $z(k)$ by setting
358: $k\!=\!1$, i.e.,
359: \begin{equation}
360: \label{zm_func_of_zk} z^{\mathcal{C}}_{\text{min}}=z(1).
361: \end{equation}
362:
363: \begin{figure}[b]
364: \centering
365: \includegraphics[width=0.85\linewidth]{RSC_Trellis_Short.eps}
366: \caption{Trellis diagram for codeword sequences of information weight
367: two. Dashed lines correspond to paths generated when the
368: rate-1/2 RSC encoder operates as a pseudo-random generator. A pair $x_{i}/y_{i}$ next to a branch denotes the input and
369: parity-check output bits, respectively, generated at the end of a state transition.}
370: \label{RSC_Trellis_Short}
371: \end{figure}
372:
373: Based on (\ref{Cprime_CWEF}) and (\ref{zk}), the CWEF for $w\!=\!2$,
374: $A^{\mathcal{C}}(2,U,Z)$, of the rate-1/2 RSC code when no
375: puncturing is applied, assumes the form
376: \begin{equation}
377: \label{CWEF_B} A^{\mathcal{C}}(2,U,Z)=\:\sum\limits_{k=1}^{\lfloor
378: (N-1)/L\rfloor}A^{\mathcal{C}}_{2,2,z(k)}U^{2}Z^{z(k)},
379: \end{equation}where $A^{\mathcal{C}}_{2,2,z(k)}$ is the number of codeword sequences with parity-check weight $z(k)$, given by
380: \begin{equation}
381: \label{alpha} A^{\mathcal{C}}_{2,2,z(k)}=N-kL.
382: \end{equation}
383:
384: When the feedback polynomial, $G_{R}(D)$, of an RSC encoder is
385: selected to be primitive, the encoder visits all possible
386: $2^{\nu}\!-\!1$ states with a maximum period of
387: $L\!=\!2^{\nu}\!-\!1$ time-steps \cite{Macwilliams76}, if the
388: information weight of the input sequence is 2. As pointed out in
389: \cite{Perez96}, maximization of $L$ increases the length of the
390: shortest weight 2 input sequence, therefore increasing the chance of
391: achieving a high weight $z^{\mathcal{C}}_{\text{core}}$ and,
392: consequently, $z^{\mathcal{C}}_{\text{min}}$. An exact expression
393: for $z^{\mathcal{C}}_{\text{core}}$ can be derived based on the
394: properties of pseudo-random sequences \cite{Macwilliams76} or the
395: analysis in \cite{Benedetto96b}, i.e.,
396: \begin{equation}
397: \label{zcore_primitive} z^{\mathcal{C}}_{\text{core}}=2^{\nu-1},
398: \end{equation}provided that $G_{R}(D)\neq G_{F}(D)$.
399:
400: Since $z^{\mathcal{C}}_{\text{core}}$ only depends on the memory
401: size of the encoder, so does the CWEF of each constituent code,
402: $A^{\mathcal{C}}(2,U,Z)$ and, consequently, the union bound of all
403: error events with information weight $2$, $P(2)$. Therefore, the
404: performance of a rate-1/3 PCCC, using a large interleaver size,
405: mainly depends on the memory size of each constituent RSC encoder
406: and not the underlying code, provided that the feedforward
407: polynomial of each RSC encoder is different from the feedback
408: primitive polynomial.
409:
410: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
411:
412: \subsection{Punctured RSC Encoders}
413:
414: Rates higher than 1/2 can be achieved using a $2\times M$ puncturing
415: pattern $\mathbf{P}$ on a parent rate-1/2 RSC encoder $\mathcal{C}$.
416: At a time step $i$ $(0\!\leq\!i\!<\!N)$, the weights of the
417: systematic and parity-check output bits of the punctured encoder
418: $\mathcal{C}'$ will be $x_{i}\cdot p_{1,m}$ and $y_{i}\cdot
419: p_{2,m}$, respectively, where $x_{i}$, $y_{i}$ are the output bits
420: of the parent rate-1/2 encoder and $p_{1,m}$, $p_{2,m}$ are the
421: elements of column-$m$ $(1\!\leq\!m\!\leq\!M)$ of the puncturing
422: pattern $\mathbf{P}$. Note that, owing to the systematic nature of
423: the encoder, $x_{i}$ also represents the input information bit. The
424: relationship between $m$ and $i$ is
425: \begin{equation}
426: \label{time_and_pattern} m=\text{rem}(i+1,M),
427: \end{equation}
428: where $\text{rem}(i+1,M)$ denotes the remainder from the division
429: $(i+1)/M$. Since the period of $\mathbf{P}$ is $M$, its elements are
430: repeated in such a way that $p_{1,m}\!=\!p_{1,(m+jM)}$ and
431: $p_{2,m}\!=\!p_{2,(m+jM)}$, where $j$ is a non-negative integer.
432:
433: In order to compute the CWEF of the punctured RSC for information
434: weight $w\!=\!2$, i.e., $A^{\mathcal{C}'}(2,U,Z)$, we need to derive
435: an expression for the weight of the systematic and parity-check
436: output sequences. Although information sequences with $w\!=\!2$
437: generate paths of length $kL\!+\!1$, we first consider paths of
438: length $L\!+\!1$, i.e., $k\!=\!1$, for simplicity. The weight
439: $u(k\!=\!1,m)$ of a systematic sequence, whose path diverges from
440: the zero state when $p_{1,m}$ is active, is given by
441: \begin{equation}
442: \label{u_k1} u(k\!=\!1,m)=p_{1,m}+p_{1,(m+L)},
443: \end{equation}
444: since the two non-zero bits occur at the very beginning and at the
445: very end of the path. Similarly, the weight $z(k\!=\!1,m)$ of the
446: parity-check sequence, whose path diverges from the zero state when
447: $p_{2,m}$ is active, assumes the form
448: \begin{equation}
449: \label{z_k1} z(k\!=\!1,m)=p_{2,m}+z^{m+1}_{\text{core}}+p_{2,(m+L)},
450: \end{equation}since the parity-check bits at the beginning and at the
451: end of the path are non-zero, while the weight of the remaining path
452: is $z^{m+1}_{\text{core}}$, as it is illustrated in
453: Fig.\ref{RSC_Trellis_Punc}. In order to calculate $z(k\!=\!1,m)$ for
454: every value of $m$, we first need to derive $z^{1}_{\text{core}},
455: z^{2}_{\text{core}}, \ldots, z^{M}_{\text{core}}$, by applying the
456: $M$ circularly shifted versions of the puncturing vector
457: $[p_{2,1},\ldots,p_{2,M}]$ to the corresponding output parity-check
458: bits of the parent rate-1/2 RSC encoder, i.e,
459: \begin{equation}
460: \label{z_core_punc}
461: z^{m}_{\text{core}}=\:\sum\limits_{i=1}^{L-1}\left(y_{i}\cdot
462: p_{2,(i+m-1)}\right).
463: \end{equation}
464:
465: \begin{figure}[t]
466: \centering
467: \includegraphics[width=0.70\linewidth]{RSC_Trellis_Punc.eps}
468: \caption{Trellis diagram for the weight calculation of parity-check sequences}
469: \label{RSC_Trellis_Punc}
470: \end{figure}
471:
472: If we extend our analysis to codewords associated with paths of
473: length $kL\!+\!1$, we obtain the generic expressions for $u(k,m)$
474: and $z(k,m)$ as follows
475: \begin{equation}
476: \label{u_k_any} u(k,m)=p_{1,m}+p_{1,(m+kL)}
477: \end{equation}
478: \begin{equation}
479: \label{z_k_any}
480: z(k,m)=p_{2,m}+{\sum\limits_{j=0}^{k-1}z^{m+jL+1}_{\text{core}}}+
481: p_{2,(m+kL)},
482: \end{equation}
483: where $z^{m+jM}_{\text{core}}\!=\!z^{m}_{\text{core}}$, due to the
484: periodicity of the puncturing pattern. Since any codeword sequence,
485: generated by an input sequence of weight $2$, can be described by a
486: polynomial $U^{u(k,m)}Z^{z(k,m)}$ for a given $k$ and $m$, the
487: summation of all polynomials of the form $U^{u(k,m)}Z^{z(k,m)}$ over
488: all possible values of $k$ and $m$ will give the CWEF,
489: $A^{\mathcal{C}'}(2,U,Z)$, of the punctured RSC code
490: \begin{equation}
491: \label{CWEF_Punc}
492: A^{\mathcal{C}'}(2,U,Z)=\:\sum\limits_{k=1}^{\lfloor
493: (N-1)/L\rfloor}\sum\limits_{m=1}^{M}A^{\mathcal{C}'}_{k,m}U^{u(k,m)}Z^{z(k,m)},
494: \end{equation}
495: where $A^{\mathcal{C}'}_{k,m}$ is the total number of codeword
496: sequences with systematic weight $u(k,m)$ and parity-check weight
497: $z(k,m)$. Coefficients $A^{\mathcal{C}'}_{k,m}$ can be easily
498: derived if we observe that there are $N-kL$ codeword sequences of
499: length $kL+1$ each. The codeword sequences are grouped into $M$
500: groups, whose members share the same weights $u(k,m)$ and $z(k,m)$.
501: Thus, the number of codeword sequences in the $m$-th group is given
502: by
503: \begin{equation} \label{alpha_Punc}
504: {\small A^{\mathcal{C}'}_{k,m}=\left\{\begin{array}[\relax]{ll}
505: \left\lfloor\frac{N-kL}{M}\right\rfloor,& \; \text{if rem}\left((N-kL),M\right)<m\\[3pt]
506: \left\lfloor\frac{N-kL}{M}\right\rfloor+1,& \; \text{otherwise.}
507: \end{array}\right.}
508: \end{equation}
509: %\begin{equation} \label{alpha_Punc}
510: %A^{\mathcal{C}'}_{k,m}=\left\lfloor\frac{N-kL}{M}\right\rfloor +
511: %a_{k,m},
512: %\end{equation}where
513: %\begin{equation}
514: %\label{small_alpha} a_{k,m}=\left\{\begin{array}[\relax]{ll}
515: %0,& \quad \text{if rem}\left((N-kL),M\right)<m\\
516: %1,& \quad \text{if rem}\left((N-kL),M\right)\geq m.
517: %\end{array}\right.
518: %\end{equation}
519:
520: Using (\ref{CWEF_Punc}), we can accurately and efficiently derive
521: $P(2)$, i.e., the probability of all error events with information
522: weight 2, which is a good approximation of the union bound
523: $P^{u}_{b}$, for a large interleaver size. In the example shown in
524: Fig.\ref{figBoundsRate12}, we see that $P(2)$ closely matches
525: $P^{u}_{b}$, when the interleaver reaches the size of $N\!=\!10,000$
526: bits.
527:
528: \begin{figure}[t]
529: \centering
530: \includegraphics[width=0.80\linewidth]{bound_comp_SR12_R15F17.eps}
531: \caption{Exact union bounds and their approximation for a rate-1/2 S-PCCC(1,17/15,17/15) using interleavers of various sizes}
532: \label{figBoundsRate12}
533: \end{figure}
534:
535:
536: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
537:
538: \section{Case Study: Pseudo-random Puncturing}
539: \label{CaseStudy}
540:
541: In this section we consider constituent RSC encoders employing
542: primitive feedback polynomials, therefore the period $L$ assumes the
543: maximum value of $2^{\nu}-1$. Furthermore, we assume that the
544: elements of the puncturing vector $\mathbf{P}_{Z}$, for the
545: parity-check output, form a pseudo-random sequence of period
546: $M\!=\!L$, generated by the same primitive polynomial as that of the
547: RSC encoder.
548:
549: Since the puncturing period $M$ is equal to the period $L$ of the
550: feedback polynomial, $u(k,m)$ and $z(k,m)$ are reduced to
551: \begin{equation}
552: \label{u_k_any_sp1} u(k,m)=u(m)=2p_{1,m},
553: \end{equation}
554: \begin{equation}
555: \label{z_k_any_sp1} z(k,m)=kz^{m+1}_{\text{core}}+2p_{2,m}.
556: \end{equation} Calculation of $z(k,m)$ and, consequently,
557: $A^{\mathcal{C}'}(2,U,Z)$, requires knowledge of the $L$ values of
558: $z^{m}_{\text{core}}$. However, the assumption of pseudo-random
559: puncturing can further simplify the computation of $z(k,m)$.
560:
561: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
562:
563: \subsection{Derivation of the Minimum Weight Values}
564: \label{Configurations_Punc}
565:
566: In order to express $z^{m}_{\text{core}}$ in a more compact form, we
567: first need to consider the autocorrelation function $\phi(j)$ of a
568: polar sequence, which is defined as \cite{Proakis01}
569: \begin{equation}
570: \label{autocorrelation_polar}
571: \phi(j)=\:\sum\limits_{i=1}^{L}(2y_{i}-1)(2y_{i+j}-1)
572: \end{equation}
573: where $y_{i}\!=\!\{0,1\}$ is the output of the parent rate-1/2 RSC
574: encoder at time-step $i$ for an input sequence of information weight
575: 2, and $0\leq j<L$. The parity-check sequence generated during the
576: time period from $i\!=\!1$ until $i\!=\!L$ is a pseudo-random
577: sequence, provided that the encoder does not return to the zero
578: state. In this case, the autocorrelation function can be reduced to
579: \cite{Macwilliams76,Sarwate80}
580: \begin{equation}
581: \label{autocorrelation_polar_PRBS}
582: \phi(j)=\left\{\begin{array}[\relax]{ll}
583: 2^{\nu}-1,& \quad \text{if }j=0\\
584: -1,& \quad \text{if }1\leq j<L.
585: \end{array}\right.
586: \end{equation}Combining (\ref{autocorrelation_polar}) and
587: (\ref{autocorrelation_polar_PRBS}) we find that
588: \begin{equation}
589: \label{autocorrelation_AND} \sum\limits_{i=1}^{L}(y_{i}\cdot
590: y_{i+j})=\left\{\begin{array}[\relax]{ll}
591: 2^{\nu-1},& \quad \text{if }j=0\\
592: 2^{\nu-2},& \quad \text{if }1\leq j<L.
593: \end{array}\right.
594: \end{equation}Since the puncturing vector for the parity-check bits, $\mathbf{P}_{Z}\!=\![p_{2,i}]$, is
595: also a pseudo-random sequence generated by the same primitive
596: polynomial $G_{R}(D)$, such that $p_{2,i+1}\!=\!y_{i}$, we can
597: rewrite expression (\ref{autocorrelation_AND}) as follows
598: \begin{equation}
599: \label{autocorrelation_punc} \sum\limits_{i=1}^{L}(y_{i}\cdot
600: p_{2,(i+m)})=\left\{\begin{array}[\relax]{ll}
601: 2^{\nu-1},& \quad \text{if }m=1\\
602: 2^{\nu-2},& \quad \text{if }2\leq m\leq L
603: \end{array}\right.
604: \end{equation}where $j$ was replaced by $m\!-\!1$. Due to the structure of the RSC encoder, the last bit of the parity-check sequence is always zero, i.e., $y_{L}\!=\!0$, therefore
605: \begin{equation}
606: \label{z_core_sp1} \sum\limits_{i=1}^{L-1}(y_{i}\cdot
607: p_{2,(i+m)})=z^{m+1}_{\text{core}}=\left\{\small{\begin{array}[\relax]{ll}
608: 2^{\nu-1},& \text{if }m=1\\
609: 2^{\nu-2},& \text{if }2\leq m<L
610: \end{array}}\right.
611: \end{equation}so $z^{m}_{\text{core}}$ is now a function of the memory $\nu$ of the RSC
612: encoder. Having in mind that $p_{2,L+1}\!=\!0$ since $y_{L}\!=\!0$,
613: and so is $p_{2,1}$, and that $L\!=\!2^{\nu}-1$, the weight of a
614: parity-check sequence assumes the form
615: \begin{equation}
616: \label{z_k_any_sp2} z(k,m)=\left\{\begin{array}[\relax]{ll}
617: k2^{\nu-1},& \quad \text{if }m\!=\!1\\
618: k2^{\nu-2}+2p_{2,m},& \quad \text{if }2\leq m\leq2^{\nu}\!-1
619: \end{array}\right.
620: \end{equation}where $2^{\nu-1}$ elements of the puncturing vector $\mathbf{P}_{Z}$
621: are equal to 1 and the remaining $2^{\nu-1}\!-\!1$ are equal to 0,
622: since the elements of $\mathbf{P}_{Z}$ form a pseudo-random sequence
623: \cite{Macwilliams76,Sarwate80}.
624:
625: The minimum weight of the parity-check sequences,
626: $z^{\mathcal{C}'}_{\text{min}}$ can be expressed as
627: \begin{equation}
628: \label{z_min_punc} z^{\mathcal{C}'}_{\text{min}}=\min_{m=1\ldots
629: L}\left\{z(k=1,m)\right\}=\left\{\begin{array}[\relax]{ll}
630: 2,& \text{for }\nu=2\\
631: 2^{\nu-2},& \text{for }\nu>2
632: \end{array}\right.
633: \end{equation}whereas the minimum weight of the codeword sequences,
634: $d^{\mathcal{C}'}_{\text{min}}$ assumes the form
635: \begin{equation}
636: \label{d_min_punc} d^{\mathcal{C}'}_{\text{min}}=\min_{m=1\ldots
637: L}\left\{u(m)+z(k=1,m)\right\}.
638: \end{equation}
639:
640: As in the case of rate-1/3 PCCCs, we conclude that when a large
641: interleaver is used, the performance of a PCCC whose parity-check
642: sequences were punctured using pseudo-random patterns, mainly
643: depends on the memory size of the constituent RSC encoders, and not
644: the exact underlying codes.
645:
646: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
647:
648: \subsection{Example Configurations for Rate-1/2 PCCCs}
649: \label{Configurations_Punc}
650:
651: In order to maximize the minimum weight of the codeword sequences,
652: $d^{\mathcal{C}'_{1}}_{\text{min}}$, generated by the first
653: constituent RSC encoder of a PCCC, we can set the puncturing vector
654: for the systematic output, $\mathbf{P}_{U}\!=\![p_{1,m}]$, to be the
655: complement of the puncturing vector for the parity-check output
656: $\mathbf{P}_{Z}\!=\![p_{2,m}]$, i.e.,
657: $p_{1,m}\!=\!\overline{p_{2,m}}$. This configuration prevents $u(m)$
658: and $z(k,m)$ from assuming the smallest values at the same time.
659: Therefore, expression (\ref{d_min_punc}) becomes
660: \begin{equation}
661: \label{d_min_PS-RSC} d^{\mathcal{C}'_{1}}_{\text{min}}=2+2^{\nu-2},
662: \end{equation}for $\nu\geq2$.
663:
664: A code rate of 1/2 can be achieved, if the parity-check output of
665: the second RSC encoder is not punctured. In that case,
666: $z^{\mathcal{C}'_{2}}_{\text{min}}$ can be derived from
667: (\ref{zm_func_of_zk}) and (\ref{zcore_primitive}). The free
668: effective distance of the corresponding PS-PCCC assumes the form
669: \begin{equation}
670: \label{dfree_rate12_PseudoA} d_{\text{free,eff}}=4+3(2^{\nu-2}).
671: \end{equation}We refer to this example configuration as ``Pseudo A''.
672:
673: If our objective is to obtain a turbo code whose BEP performance
674: quickly converges to the union bound but experiences a high error
675: floor, we need to increase the number of transmitted systematic bits
676: \cite{Crozier05,Chatzigeorgiou06b,Blazek02}. The parity-check output
677: of both the first and the second constituent encoder is punctured
678: using the same vector $\mathbf{P}_{Z}$. Bearing in mind that
679: $\mathbf{P}_{U}$ is taken to be the complement of $\mathbf{P}_{Z}$,
680: we need to replace all but one of the 0's in $\mathbf{P}_{U}$ with
681: 1's, in order to achieve a code rate of 1/2. The minimum codeword
682: weight $d^{\mathcal{C}'_{1}}_{\text{min}}$ for the first constituent
683: encoder is given by (\ref{d_min_PS-RSC}), while the minimum
684: parity-check weight $z^{\mathcal{C}'_{2}}_{\text{min}}$ for the
685: second constituent encoder is given by (\ref{z_min_punc}). The
686: summation of the two minimum weights yields the free effective
687: distance of the PS-PCCC
688: \begin{equation}
689: \label{dfree_rate12_PseudoB}
690: d_{\text{free,eff}}=\left\{\begin{array}[\relax]{ll}
691: 5,& \quad \text{for }\nu=2\\
692: 2+2^{\nu-1},& \quad \text{for }\nu>2.
693: \end{array}\right.
694: \end{equation}We refer to this example configuration as ``Pseudo B''.
695:
696: The particular puncturing patterns of each example configuration for
697: the case of PCCC(1, 17/15, 17/15) are presented in Table
698: \ref{PuncPatterns}. The configuration denoted as ``Litt A'' achieves
699: a very low error floor and it was obtained through exhaustive search
700: using \cite{Chatzigeorgiou06b}, whereas ``Litt B'' is the
701: conventional approach for obtaining rate-1/2 turbo codes.
702:
703: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
704:
705: \subsection{The Benefits of Pseudo-random Patterns} \label{benefits}
706:
707: Good punctured PCCCs can only be found by means of an exhaustive
708: search among all possible patterns of a specific puncturing period
709: $M$. The selection of a good pattern is not intuitive, since it can
710: lead to catastrophic puncturing \cite{Crozier05}, i.e.,
711: $d^{\mathcal{C}'}_{\text{min}}\!=\!0$, or semi-catastrophic
712: puncturing, i.e., $z^{m}_{\text{core}}\!=\!0$ for some values of
713: $m$, of a constituent code $\mathcal{C}'$. Furthermore, calculation
714: of $d^{\mathcal{C}'}_{\text{min}}$ and
715: $z^{\mathcal{C}'}_{\text{min}}$ requires prior knowledge of the $M$
716: values of $z^{m}_{\text{core}}$.
717:
718: The selection of a pseudo-random puncturing pattern guarantees that
719: $z^{m}_{\text{core}}\!>\!0$, and consequently,
720: $d^{\mathcal{C}'}_{\text{min}}\!>\!0$. Moreover,
721: $z^{m}_{\text{core}}$ can be expressed as a function of the memory
722: size $\nu$ of $\mathcal{C}'$, permitting the immediate derivation of
723: the minimum weights that characterize the PCCC. For the given
724: puncturing rate of the parity-check output, the minimum value of
725: $z^{m}_{\text{core}}$ is maximised, and so is
726: $z^{\mathcal{C}'}_{\text{min}}$, due to the properties of
727: pseudo-random sequences.
728:
729: In Fig.\ref{BER_comparison_rate12} we have plotted the performance
730: of all four rate-1/2 PCCC(1, 17/15, 17/15) configurations, presented
731: in Table \ref{PuncPatterns}. We observe that ``Pseudo B'' slightly
732: outperforms the conventional ``Litt B'' configuration, while the
733: performance of the PCCC based on the easy to derive ``Pseudo A''
734: pattern is close to the performance of the PCCC based on the ``Litt
735: A'' pattern, obtained through exhaustive search.
736: %which was obtained by means of an exhaustive search among all
737: %available patterns of period $M\!=\!4$.
738:
739: \begin{table}[t]
740: \caption{Puncturing patterns for rate-1/2 PCCC(1,17/15,17/15)}
741: \label{PuncPatterns} \centering
742: \begin{tabular}{|c|c|c|c|c|}
743: \hline
744: & Pseudo A & Pseudo B & Litt A & Litt B\\
745: \hline
746: Vector for Sys.Output & [1000101] & [1111101] & [0010] & [11]\\
747: \hline
748: Vector for 1st Par.Output & [0111010] & [0111010] & [1101] & [10]\\
749: \hline
750: Vector for 2nd Par.Output & [1111111] & [0111010] & [1111] & [01]\\
751: \hline
752: \end{tabular}
753: \end{table}
754:
755: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
756:
757: \section{Conclusions}
758: \label{conclusion}
759:
760: We presented a simple approach to calculate the CWEF of punctured
761: RSC codes, for input sequences of minimum information weight, which
762: facilitates the approximation of the upper bound to the BEP, for
763: punctured PCCCs using large interleaver sizes. Our technique offers
764: the advantage of simplicity and reduced complexity, compared to
765: time-hungry approaches, such as brute-force, or the more complex
766: methods developed in \cite{Kousa02,Chatzigeorgiou06b}.
767:
768: Furthermore, we considered pseudo-random puncturing patterns as a
769: case study for our technique and we demonstrated that they prevent
770: catastrophic or semi-catastrophic puncturing and facilitate the
771: calculation of the minimum output weights of a turbo encoder, which
772: characterize the performance of PCCCs. We concluded that
773: pseudo-random puncturing could be used to obtain rate-1/2 PCCCs
774: exhibiting low error floors, while specific puncturing patterns that
775: achieve either a lower error floor or quicker convergence to the ML
776: performance bound, could be determined by a subsequent search.
777:
778: \begin{figure}[t]
779: \centering
780: \includegraphics[width=0.80\linewidth]{BER_comparison.eps}
781: \caption{Bounds for various rate-1/2 PCCC(1,17/15,17/15) configurations, using an interleaver of size 1,000 bits}
782: \label{BER_comparison_rate12}
783: \end{figure}
784:
785: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
786: \bibliographystyle{IEEEtran}
787: \bibliography{IEEEabrv,TurboRef}
788: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
789:
790: \end{document}
791: