Software Polar Decoder on an Embedded Processor
Bertrand LE GAL, Camille LEROUX and Christophe JEGO
{firstname.lastname}@ims-bordeaux.fr
!
Associate Professor @ Laboratoire IMS - UMR CNRS 5218 Institut Polytechnique de Bordeaux (IPB)
Université de Bordeaux France
IEEE International Workshop on Signal Processing Systems (SiPS)
31.05.2010
1/2
L"Université de Bordeaux publie une étude comparative des initiatives campus verts menées à l"échelon international, qui représente une source précieuse d"informations et de réflexions pour l"élaboration de son nouveau modèle d"Université dans le cadre de l"Opération campus. Elle fait le choix de diffuser en accès libre cette étude, le développement durable étant l"affaire de tous et pour l"intérêt de tous.
L*Université de Bordeaux s*est engagée à bâtir un nouveau modèle d*Université, et parallèlement à de- venir leader en matière de développement durable. C*est en ce sens que début 2009, elle a répondu favorablement, conjointement avec l*Université Bordeaux 1 Sciences Technologies, à la proposition d*Ecocampus-Nobatek et d*EDF : réaliser un retour d*expériences et des analyses sur des projets campus verts en France, Europe et Amérique du Nord.
L*objectif de cette étude (cf. page suivante) a été d*observer et de capturer les bonnes pratiques et ac- tions exemplaires relatives aux grands piliers du développement durable : domaines économiques, so- ciaux, environnementaux et organisationnels. L*Université de Bordeaux va s*y référer pour mettre en Wuvre une gouvernance et une stratégie à long terme au service d*un campus plus vivable et plus équi- table pour l*ensemble de la communauté universitaire.
Avec le Grenelle de l*environnement comme repère à atteindre puis à dépasser, l*Université de Bor- deaux entend constituer un site pilote à travers une démarche de développement durable globale par : - l*intégration permanente des dimensions humaines dans le projet immobilier et l*aménagement (acces- sibilité, santé, lisibilité, confort, cadre de vie) ;
- une transformation énergétique radicale des bâtiments dans le cadre de leur rénovation en démarche HQE® et un schéma directeur énergétique pour une réduction maximale des gaz à effet de serre ; - la mise en valeur et la sanctuarisation d*un parc sur le site universitaire de Talence-Pessac- Gradignan, véritable poumon vert à l*échelle de l*agglomération, atout exceptionnel pour la qualité de vie des usagers et le développement de la biodiversité en milieu urbain ;
- un plan de déplacement sur l*ensemble des domaines du campus universitaire, afin de réduire l*usage individuel de la voiture et son impact en s*appuyant sur des réseaux de transports en commun perfor- mants et le développement des modes alternatifs ;
- une ouverture concertée sur la ville, visant à favoriser le développement économique des territoires, celui de la vie de campus et à créer une mixité sociale et fonctionnelle ;
- et enfin, condition sine qua non de réussite, la mise en place d*un processus d*information et de concer- tation auprès de tous les membres et acteurs de l*Université, pour une compréhension partagée des en- jeux et un apprentissage des comportements responsables.
Aussi, l*Université de Bordeaux entend-elle élaborer un agenda 21 et faire de son campus un site d*expérimentation permettant de développer des approches innovantes à partir des compétences des laboratoires.
L*étude « Initiatives campus verts » est téléchargeable sur le site www.univ-bordeaux.fr
Contacts presse Université de Bordeaux
Anne SEYRAFIAN . Norbert LOUSTAUNAU . T 33 (0)5 56 33 80 84 . communication@univ-bordeaux.fr Contact Nobatek-Ecocampus
Julie CREPIN, chef de projet . T 33 (0)5 56 84 63 72 . jcrepin@nobatek.com
L*Université de Bordeaux
Vers un nouveau modèle d"Université DURABLE
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
Introduction to « Polar codes »
๏ PCs are « young » ECC,
➡
E. Arikan, IEEE Transactions on Information Theory, 2009.
๏ Active topic (algorithm),
➡
Successive Cancellation (2009);
➡
BP decoding (2013);
➡
List decoding (2011);
➡
Stack decoding (2012);
➡
SCAN decoding (2014);
๏ Active topic (implementation)
➡
Hardware (ASIC, FPGA);
➡
Software (GPP, Multi/many-cores).
2
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
๏ Lowest computation complexity compared to others.
๏ Contrary to many ECC it is not an iterative algorithm,
➡ One decoding pass is enough.
๏ SC decoding process input:
➡ N = 2^n channel values,
๏ SC decoding process outputs:
➡ N= 2^n decoded bits,
➡ K = (N * R) information bits,
➡ (N-K) redundant information
(selected during code construction).
3
2
Fig. 2. SC decoding on the factor graph of aN= 8polar code.
II. POLARCODES A. Definition and encoding
Polar codes are linear block codes of sizeN= 2n,nbeing a natural number. In [1], Arıkan defined their construction based on thenthKronecker power of a kernel matrix=
1 0 1 1 . Forn= 3, we have:
⌦3= 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vectorU that includesK information bits andN Kfrozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includesnstages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of aN= 8SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bituibased on the vectorY and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bitui, the decoder computes the following LLR value:
0i = logPr(Y,uˆ0:i 1|ui= 0)
Pr(Y,uˆ0:i 1|ui= 1). (2) The estimated bituˆi is calculated based on the rule that is expressed as:
ˆ ui=
⇢ 0 if 0i >0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if uiis a frozen bit,uˆi= 0regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j)is computed such that:
j i =
8<
: f⇣
j+1 i , j+1i+2j
⌘ ifB(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ ifB(i, j) = 1, (4)
whereB(i, j) ⌘ b2ijcmod2,0i < N and0j < n.
ˆ
sji represents thepartial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 ,ˆs21= ˆu1 ˆu3(modulo-2 sum).f and gfunctions are defined as:
1ˆu0:i 1= [ˆu0...ˆui 1]
Channel information
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
4
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
Channel information LLR informations ( float or fixed point )
Decoded bits
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
5
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
Channel information LLR informations ( float or fixed point )
Decoded bits
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
6
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
7
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
8
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
9
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
10
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
11
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
12
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]
G(a,b,c) = (c == 1) ? b+a : b-a;
F ( a,b ) = sign ( a )^ sign ( b ) * min ( abs ( a ) ,abs ( b ))
H(a) = a > 0 ? 1 : 0;
Channel information LLR informations ( float or fixed point )
Decoded bits
IEEE International Workshop on Signal Processing Systems (SiPS)
Bertrand LE GAL October 20-22, 2014
The Successive Cancellation decoding algorithm
13
2
Fig. 2. SC decoding on the factor graph of a N = 8 polar code.
II. POLAR CODES
A. Definition and encoding
Polar codes are linear block codes of size N = 2n, n being a natural number. In [1], Arıkan defined their construction based on the nth Kronecker power of a kernel matrix =
1 0 1 1 . For n = 3, we have:
⌦3 = 2 66 66 66 66 66 4
1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1
3 77 77 77 77 77 5
. (1)
where ⌦n denotes the nth Kronecker power of . The encoding process consists in multiplying ⌦n by a N-bit vector U that includes K information bits and N K frozen bits, usually set to zero. The location of the frozen bits depends on both the type of channel that is considered and the noise power on the channel. The code rate is R = K/N. The interested reader should refer to [1] for more details about the construction of polar codes.
As shown in Figure 1, a polar code encoder may also be represented graphically. It includes n stages of N2 XORs. The input vector U, on the left hand side, is propagated into the graph in order to get the codeword X, on the right side.
In [22], a method for systematic polar coding is pro- posed. It improves the BER performance while keeping the FER identical compared to a non-systematic polar code. Figure 1 shows the systematic encoding process. The vector U that includes K information bits and N K frozen bits is first multiplied by ⌦n. The resulting vector V is then modified as follows: bits in the frozen location are replaced by zeros and other bits remain unchanged.
A second encoding step is applied in order to get the
Fig. 3. Recursive tree representation of a N = 8 SC decoder.
systematic codeword X. In the remaining of the paper systematic polar codes are used.
B. Successive Cancellation decoding
After being sent over the transmission channel, the noisy version of the codeword X is received in the form of a log likelihood ratio (LLR) vector Y. The decoder successively estimates each bit ui based on the vector Y and the previously estimated bits (ˆu0:i 1)1. In order to estimate each bit ui, the decoder computes the following LLR value:
0i = log Pr(Y,uˆ0:i 1|ui = 0)
Pr(Y,uˆ0:i 1|ui = 1). (2) The estimated bit uˆi is calculated based on the rule that is expressed as:
ˆ ui =
⇢ 0 if 0i > 0,
1 otherwise. (3)
Since the decoder knows the location of the frozen bits, if ui is a frozen bit, uˆi = 0 regardless of 0i value.
As proposed by Arıkan in [1], the factor graph representation of polar codes can be used to efficiently compute the 0i. Figure 2 shows an example of a factor graph for N = 8.
The decoder successively estimates the bits uˆi from the computation of LLRs of the indexed edges. The LLR of edge (i, j) is computed such that:
j i =
8<
: f ⇣
j+1
i , j+1i+2j
⌘ if B(i, j) = 0 g⇣
j+1
i 2j, j+1i ,sˆji 2j
⌘ if B(i, j) = 1, (4)
where B(i, j) ⌘ b2ij c mod 2, 0 i < N and 0 j < n.
ˆ
sji represents the partial sum. It corresponds to the propagation of hard decisions back into the factor graph. For instance, in Figure 2 , sˆ21 = ˆu1 uˆ3 (modulo-2 sum). f and g functions are defined as:
1uˆ0:i 1 = [ˆu0...ˆui 1]