• Aucun résultat trouvé

Bertrand LE GAL, Camille LEROUX and Christophe JEGO

N/A
N/A
Protected

Academic year: 2022

Partager "Bertrand LE GAL, Camille LEROUX and Christophe JEGO"

Copied!
30
0
0

Texte intégral

(1)

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

(2)

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

(3)

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 byn. 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

(4)

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 = ˆu13 (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;

(5)

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 = ˆu13 (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;

(6)

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 = ˆu13 (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

(7)

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 = ˆu13 (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

(8)

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 = ˆu13 (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

(9)

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 = ˆu13 (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

(10)

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 = ˆu13 (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

(11)

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 = ˆu13 (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

(12)

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 = ˆu13 (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

(13)

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 = ˆu13 (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

Références

Documents relatifs

Dans cet ouvrage, vous découvrirez les différentes méthodes de création de projets VBA pour Excel, Visual Basic (le langage de programmation proprement dit) et les outils

Different evaluation of the approach have demonstrated that (a) the system reduces the execution time of the message analysis task (b) hardware complexity of hardware accelerators

Figure 9 compares the floating-point decoding simulation performance with the fixed-point implemented decoders. For each of the five investigated LDPC codes, the BER per- formance

(pour l’anglais SHift Left) d´ecale tous les bits d’une position vers la gauche et place un z´ero comme bit le plus ` a droite. Lorsqu’il y a d´ebordement, l’indicateur

(pour l’anglais SHift Left) d´ecale tous les bits d’un registre ou d’une case m´emoire d’une position vers la gauche et place un z´ero comme bit le plus ` a droite, ce

Please at- tach a cover sheet with a declaration http://tcd-ie.libguides.com/plagiarism/declaration confirming that you know and understand College rules on plagiarism1. On the

Bien que ces tailles de clés soient jugées accepta- bles à l’heure actuelle, l’analyse a permis d’arriver à la conclusion que 14 bits supplémentaires dans la longueur de

• Effort nécessaire à réaliser les attaques: 2 57 opérations pour établir les deux listes + 2 56 blocs de 64 bits de stockage pour mémoriser les résultats