Packet encoding and decoding method and apparatus
10320522 ยท 2019-06-11
Assignee
- Samsung Electronics Co., Ltd. (Suwon-Si, Gyeonggi-do, KR)
- Sungkyunkwan University Research & Business Foundation (Suwon-si, KR)
Inventors
- Hongsil Jeong (Suwon-si, KR)
- Sang-Hyo Kim (Seoul, KR)
- Jong-Hwan Kim (Suwon-si, KR)
- Daehyeon Ryu (Seongnam-si, KR)
- Seho Myung (Seoul, KR)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/451
ELECTRICITY
H03M13/09
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H03M13/29
ELECTRICITY
H03M13/09
ELECTRICITY
H03M13/45
ELECTRICITY
Abstract
A method for encoding and decoding information data using a polar code is provided. The method for encoding includes segmenting information data into a plurality of first packets, generating a plurality of second packets corresponding to the plurality of first packets by adding a corresponding packet Cyclic Redundancy Check (CRC) code to each of the plurality of first packets, fragmenting each of the plurality of second packets into a plurality of data blocks, polar code encoding each of the plurality of data blocks included in a corresponding second packet of the plurality of second packets, and generating a plurality of third packets corresponding to the plurality of second packets by concatenating each polar code encoded data block included in the corresponding second packet. The method for decoding includes decoding the third packet to obtain the information data based on the method for encoding.
Claims
1. A method for encoding information data to transmit to a receiver in a transmitting device, the method comprising: segmenting, by the transmitting device, the information data into a plurality of first packets; generating, by the transmitting device, a second packet by adding a packet among the plurality of first packets to bits of cyclic redundancy check (CRC) code for the packet; fragmenting, by the transmitting device, the second packet into a plurality of data blocks; generating, by the transmitting device, a plurality of third packets by adding the plurality of data blocks to bits of CRC code for the plurality of data blocks; polar code encoding, by the transmitting device, each of the plurality of third packets; and transmitting, by the transmitting device, the plurality of encoded third packets, wherein a data block of the plurality of data blocks includes a portion of the information data and the bits of CRC code for the packet, and remaining data blocks of the plurality of data blocks only include the information data.
2. The method of claim 1, further comprising: receiving, by the receiver, the plurality of encoded third packets; and decoding, by the receiver, the plurality of encoded third packets, wherein the decoding of the plurality of encoded third packets comprises: acquiring, by the receiver, the plurality of data blocks constituting each of the plurality of second packets; extracting, by the receiver, a plurality of codeword candidates corresponding to each of the plurality of data blocks; selecting, by the receiver, some of the plurality of codeword candidates in a descending order based on a posterior probability among the plurality of codeword candidates, that a corresponding codeword is a correct codeword for decoding a corresponding data block of the plurality of data blocks; combining, by the receiver, the selected codeword candidates into a plurality of codeword combinations; selecting, by the receiver, a codeword combination having a highest posterior probability and having passed a CRC test without error, among the plurality of codeword combinations; and decoding, by the receiver, the selected codeword combination.
3. An electronic device comprising: a transceiver; and at least one processor coupled to the transceiver and configured to control the electronic device to: segment information data into a plurality of first packets, generate a second packet by adding a packet among the plurality of first packets to bits of cyclic redundancy check (CRC) code for the packet, fragment the second packet into a plurality of data blocks, generate a plurality of third packets by adding the plurality of data blocks to bits of CRC code for the plurality of data blocks, polar code encode each of the plurality of third packets, and transmit the plurality of encoded third packets, wherein a data block of the plurality of data blocks includes a portion of the information data and the bits of CRC code for the packet, and remaining data blocks of the plurality of data blocks only include the information data.
4. A system for encoding and decoding information data, the system comprising: a transmitter device configured to encode the information data; and a receiver device configured to decode the encoded information data, wherein the transmitter device is further configured to: segment the information data into a plurality of first packets, generate a second packet by adding a packet among the plurality of first packets to bits of cyclic redundancy check (CRC) code for the packet, fragment the second packet into a plurality of data blocks, generate a plurality of third packets by adding the plurality of data blocks to bits of CRC code for the plurality of data blocks, polar code encode each of the plurality of third packets, and transmit the plurality of encoded third packets, wherein a data block of the plurality of data blocks includes a portion of the information data and the bits of CRC code for the packet, and remaining data blocks of the plurality of data blocks only include the information data, and wherein the receiver device is further configured to: receive the plurality of encoded third packets, acquire the plurality of data blocks constituting each of the plurality of second packets, extract a plurality of codeword candidates corresponding to each of the plurality of data blocks, select some of the plurality of codeword candidates in a descending order based on a posterior probability among the plurality of codeword candidates, that a corresponding codeword is a correct codeword for decoding a corresponding data block of the plurality of data blocks, combine the selected codeword candidates into a plurality of codeword combinations, select a codeword combination having a highest posterior probability and having passed a CRC test without error, among the plurality of codeword combinations, and decode the selected codeword combination.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other aspects, features, and advantages of certain embodiments of the present disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19) Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures.
DETAILED DESCRIPTION
(20) The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the present disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the present disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
(21) The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the present disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the present disclosure is provided for illustration purpose only and not for the purpose of limiting the present disclosure as defined by the appended claims and their equivalents.
(22) It is to be understood that the singular forms a, an, and the include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to a component surface includes reference to one or more of such surfaces.
(23) By the term substantially it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide.
(24) Some elements are exaggerated, omitted, or simplified in the drawings and the elements may have sizes and/or shapes different from those shown in drawings, in practice. The same reference numbers are used throughout the drawings to refer to the same or like parts.
(25) An embodiment of the present disclosure is directed to a method for decoding polar codewords concatenated in a unit of packets using a Successive Cancellation List (SCL) decoder. The encoder/decoder uses a packet Cyclic Redundancy Check (CRC) code concatenated to the packet in CRC decoding instead of the CRC code concatenated to the polar codeword in a unit of blocks. The decoding method is capable of reducing the coding rate with the CRC code concatenated to each block, resulting in improvement of polar code decoding performance.
(26) The packet decoding methods according to various embodiments of the present disclosure can be applied to various communication systems transmitting data in a unit of packets. Each packet is split into blocks and polar-coded to be transmitted to the recipient. The encoder/decoder according to an embodiment of the present disclosure removes the CRC code concatenated to each block to prevent coding rate loss so as to improve the packet decoding performance. The encoder does not concatenate the CRC code to each block in the coding process. The decoder does not perform codeword decoding on every block in the decoding procedure using the SCL decoder but leaves codeword candidates in size M so as to improve packet decoding performance using combinations of the codeword candidates.
(27) A decoder which decodes codewords concatenated in a unit of packets. The large size information is split into multiple data units for facilitating transmission and such a data unit is called a packet. At this time, a CRC code is concatenated to each packet in order for the recipient to determine whether the received data is erroneous. In wireless data communication, when encoding a large packet, the packet is fragmented into multiple blocks which are coded respectively and then concatenated back together.
(28)
(29)
(30) Referring to
(31) Polar Code Encoding Procedure
(32) The information data 410 to be transmitted by the transmitter is fragmented into multiple packets 420 and 440. A CRC code 421 is added to each fragment to form a packet 420. Each packet is segmented into a plurality of data blocks. For example, the packet 420 is split into the blocks 422, 425, 428, and 431. The CRC codes 423, 426, 429, and 432 are concatenated to the segments to form the blocks 422, 425, 428, and 431. The CRC codes 423, 426, 429, and 432 are used for maximizing the decoding performance of the polar code with the SCL decoder. The blocks 422, 425, 428, and 431 having the respective CRC codes 423, 426, 429, and 432 are polar coded by the respective polar coder 424, 427, 430, and 433 and transmitted to the receiver. The CRC codes 421 and 441 added to the respective packets are referred to as packet CRC codes, and the CRC codes 423, 426, 429, and 432 added to the respective blocks are referred to as block CRC codes.
(33) Polar Code Decoding Procedure
(34)
(35) The packets 420 and 440 constituting the information data 410 are received by the receiver distorted due to the noise, multipath fading, interference, and the like. Accordingly, the signal carrying the packets is recovered through a decoding process. The received signal is decoded by using the SCL decoder. The SCL decoder generates L codeword candidates 452 to the signal vector (that is, a polar code block 451) received in a unit block. Among L codeword candidates 452, the codeword candidates in which any error is detected through CRC test with the block CRC code are removed. Among the codeword candidates that passed the CRC test, one codeword having the highest posterior probability (that is, probability in which the corresponding codeword is likely to be the correct codeword) is selected. The methods of obtaining the posterior probability have been well-known. Each packet is recovered by concatenating the codewords decoded from blocks 451, 454, and 455. The receiver detects for an error on the concatenated codewords using the packet CRC code. If an error is detected at a certain phase of the decoding procedure, the receiver sends the transmitter a Negative acknowledgement (NACK) to request for retransmission and, otherwise, an Acknowledgement (ACK).
(36) Referring to
(37) The technique of concatenating the CRC code in performing polar coding on the blocks of the data packet shows the best decoding performance in SCL decoding from the view point of a signal block. However, concatenating the CRC code to the individual blocks causes coding rate loss and thus, causes performance degradation from the view point of entire decoding performance. Since the packet CRC code is used for determining packet data integrity, this is also one of the causes of performance degradation. Therefore, there is a need of a more efficient encoding and decoding method.
(38) The packet-based concatenation polar code decoding method according to an embodiment of the present disclosure is capable of performing SCL decoding with the packet CRC code instead of block CRC code concatenated to individual blocks which causes coding rate loss.
(39) Polar Code Encoding Procedure
(40)
(41)
(42) Referring to
(43) Referring to
(44) Through operations 574, 576, 578, and 580, the transmitter performs polar coding on the individual blocks 520, 530, 540, and 550. Although the description is directed to the case of polar coding, the present disclosure is applicable to coding schemes without departing from the scope of the present disclosure. At operation 574, i is set to 1 (i=1). The transmitter performs polar coding on the i.sup.th block at operation 576. The transmitter determines whether i is equal to K (i=K) at operation 578. For example, the transmitter determines whether all of the blocks have been polar-coded. If not all of the blocks have been polar-coded, the transmitter increments i by 1 at operation 580. Afterward, the transmitter repeat operations 576, 578, and 580 until all of the blocks are polar-coded, i.e., until i=K.
(45) Referring to
(46) Although
(47) The encoding method depicted in
(48) The packet encoder performing the encoding procedure as described with
(49) In the present disclosure, two embodiments of the decoding procedure are proposed, and the proposed decoding procedures may operate independently.
(50) Polar Code Decoding Procedure According to a First Embodiment
(51)
(52)
(53) The packets carrying data is distorted by noise, multipath fading, interference, and the like, on the propagation channel to the receiver. In order to decode the signal correctly, the signal needs to be recovered. The received signal recovery procedure is described hereinafter.
(54) Referring to
(55) The receiver sets k to 1 at operation 610. The receiver generates combinations of codeword candidates of k.sup.th and (k+i).sup.th blocks at operation 615. The receiver determines whether k+1 is equal to the number of blocks constituting a packet at operation 620. If it is determined at operation 620 that k+1 is less than the number of blocks constituting a packet, the receiver increment k by 1 at operation 625 and generates new combinations using the previously generated codeword combinations and the codeword candidates (M) of the (k1).sup.th block at operation 630. This process is repeated until k+1 reaches the number of blocks constituting a packet. In the embodiment of
(56) The receiver combines M codewords (i.e., codeword 1.sub.1 and codeword 2.sub.1) acquired from the polar code block 1 710 and M codewords (i.e., codeword 1.sub.2 and codeword 2.sub.2) acquired from the polar code block 2 720. This generates four codeword combinations as denoted by reference number 730. If M is identical in all of the blocks, the number of codeword combinations is M.sup.K.
(57) If it is determined at operation 620 that k+1 reaches the number of blocks constituting a packet, the receiver performs error detection on the codeword combinations 730 using the packet CRC code at operation 635. The receiver determines whether there is any codeword combination having no error at operation 640. If it is determined at operation 640 that there is no codeword combination without error, the receiver selects all of the codeword combinations and the procedure goes to operation 650. However, if it is determined at operation 640 that there is any codeword combination without error, the procedure goes to operation 645. At operation 645, the receiver selects the codeword combination(s) without error and discards the rest. At operation 650, the receiver calculates the posterior probabilities of the codeword combinations and selects the codeword combination having the highest posterior probability.
(58) According to an alternative embodiment, if there is no codeword combination without error at operation 640, the receiver regards this as reception failure and sends the transmitter a NACK. Operations 635, 640, 645, and 650 are the process of selecting a codeword combination having the highest posterior probability among the codeword combinations that passed the CRC test. Accordingly, it is possible to acquire the same result by performing CRC test on the codeword combinations in the descending order of posterior probability.
(59) The posterior probability of the codeword combination is calculated as the product of the posterior probabilities of the combined codewords. For example, if the posterior probabilities of the combined codewords 1.sub.1 and 2.sub.2 are a and b respectively, the posterior probability of the codeword probability is ab. The receiver performs decoding on the selected combination at operation 650 and, if the combination is decoded successfully, sends an ACK to the transmitter.
(60) In the above embodiment, M is set arbitrarily at operation 605. However, M may be set as follows depending on the embodiment.
(61) P (codeword X.sub.k) denotes the posterior probability of the codeword having X.sup.th highest posterior probability in the codeword candidate list corresponding to k.sup.th codeword block. The threshold value is expressed as Th. The size of M may be set differently or identically for the blocks. In the following, the description is directed to the case where the size of M is set differently for the blocks. M is equal to or less than L. However, M has to be set to a value less than L for at least one of the blocks. The receiver may set M to M1 if f(P(1.sub.t), . . . , P(L.sub.t)) is equal to or greater than Th for the t.sup.th block. In contrast, if f(P(1.sub.t), . . . , P(L.sub.t))<Th, the receiver may set M to M2. Here, the function f( ) is the function having the code block of the corresponding block as input.
(62) For example, f(P(1.sub.k), . . . , P(L.sub.k))=P(1.sub.k)P(2.sub.k). For example, if the difference between the highest and the second highest posterior probabilities among the posterior probabilities of the L codewords acquired from the k.sup.th block is equal to or greater than the threshold value, M=M1. This means that M for the k.sup.th block is set to M1 if P(1.sub.k)P(2.sub.k)Th. In contrast, M for the k.sup.th block may be set to M2=M1+1 if P(1.sub.k)P(2.sub.k)<Th. The receiver may determine the size of the threshold value depending on the channel condition.
(63) The embodiment of
(64)
(65) Referring to
(66) For the polar code block 1 810, M codewords (1.sub.1, 2.sub.1, . . . , M.sub.1) are selected. For the polar code block 2 830, M codewords (1.sub.2, 2.sub.2, . . . , M.sub.2) are selected. At operation 615 of
(67) Polar Code Decoding Procedure According to a Second Embodiment
(68) The polar code decoding procedure according to the second embodiment is similar to the polar code decoding procedure of the first embodiment in generating the codeword combinations of the blocks with the exception that a number of combinations having the highest posterior probabilities are selected among the codeword combinations between the blocks and the rest are discarded.
(69)
(70)
(71) Referring to
(72) The receiver sets k to 1 at operation 910. The receiver generates combinations of codeword candidates of k.sup.th and (k+i).sup.th blocks at operation 915. The receiver selects M codeword combinations having the highest posterior probabilities among the generated codeword combinations and rules out the rest at operation 920. The posterior probability of the codeword combination is identical with the posterior probability of the codeword combination in the first embodiment. Although the same value of M is used for selecting some of the codeword candidates at operation 905 and some of codeword combinations at operation 920, different values may be used at operations 905 and 920 in an alternative embodiment.
(73) The receiver determines whether k+1 is equal to the number of blocks constituting one packet at operation 925. If it is determined at operation 925 that k+1 is less than the number of blocks constituting one packet, the receiver increments k by 1 at operation 930 and generates new codeword combinations using the previously generated codeword combinations and the codeword candidates (M) of the (k+1).sup.th block at operation 935. The receiver selects M codeword combinations having the highest posterior probabilities among the generated codeword combinations at operation 940. The process is repeated until the k+1 reaches the number of blocks constituting one packet. In the embodiment of
(74) The receiver combines M codewords (i.e., codeword 1.sub.1, codeword 2.sub.1) acquired from the polar code block 1 1010 and m codewords (i.e., codeword 1.sub.2, codeword 2.sub.2) acquired from the polar code block 2 1020. As a consequence, four (M.sup.2) codeword combinations are acquired as denoted by reference number 1030. The receiver selects M (i.e., 2) codeword combinations having the highest posterior probabilities among the four codeword combinations 1030. In the embodiment of
(75) The receiver performs error detection on the codeword combinations 1030 using the packet CRC code at operation 945. The receiver determines whether there is any codeword combination without error at operation 950. If there is no codeword combination without error, the receiver selects all of the codeword combinations and the procedure goes to operation 960. If there is any code combination without error, the procedure goes to operation 955. At operation 955, the receiver calculates the posterior probability of each codeword combination and selects the codeword combination having the highest posterior probability.
(76) According to an alternative embodiment of the present disclosure, if there is no codeword combination without error at operation 950, the receiver regards this as reception failure and sends the transmitter a NACK.
(77) Operations 945, 950, 955, and 960 are the process of selecting a codeword combination having the highest posterior probability among the codeword combinations that passed the CRC test without error. Accordingly, it is possible to acquire the same result by performing CRC test on the codeword combinations in the descending order of posterior probability.
(78) At operation 960, the receiver performs decoding on the selected codeword combination and, if the codeword combination is decoded successfully, sends the transmitter an ACK.
(79) In the above embodiment, M is set arbitrarily at operation 905. However, M may be set as follows depending on the embodiment.
(80) P (codeword X.sub.k) denotes the posterior probability of the codeword having X.sup.th highest posterior probability in the codeword candidate list corresponding to k.sup.th codeword block. The threshold value is expressed as Th. The size of M may be set differently or identically for the blocks. In the following, the description is directed to the case where the size of M is set differently for the blocks. M is equal to or less than L. However, M has to be set to a value less than L for at least one of the blocks. The receiver may set M to M1 if f(P(1.sub.t), . . . , P(L.sub.t)) is equal to or greater than Th for the t.sup.th block. In contrast, if f(P(1.sub.t), . . . , P(L.sub.t))<Th, the receiver may set M to M2. Here, the function f( ) is the function having the code block of the corresponding block as input.
(81) For example, f(P(1.sub.k), . . . , P(L.sub.k))=P(1.sub.k)P(2.sub.k). For example, if the difference between the highest and the second highest posterior probabilities among the posterior probabilities of the L codewords acquired from the k.sup.th block is equal to or greater than the threshold value, M=M1. This means that M for the k.sup.th block is set to M1 if P(1.sub.k)P(2.sub.k)Th. In contrast, M for the k.sup.th block may be set to M2=M1+1 if P(1.sub.k)P(2.sub.k)<Th. The receiver may determine the size of the threshold value depending on the channel condition.
(82) The posterior probability of the codeword combination is calculated as the product of the posterior probabilities of the combined codewords as in the first embodiment.
(83)
(84) Referring to
(85) The packet decoding apparatus for performing the procedures of the first and second embodiments may include a communication unit and a control unit. The communication unit may receive/acquire the blocks constituting the packet under the control of the control unit as described in the first and second embodiments. The control unit controls the decoding apparatus to decode the received blocks according to any of the first and second embodiments.
(86) The decoding method according to an embodiment of the present disclosure is capable of improving decoding performance of the polar code concatenated in a unit of packets as compared to the method of the related art.
(87)
(88) In
(89)
(90) Referring to
(91)
(92) Referring to
(93) Referring to
(94) As described above, the packet encoding and decoding apparatus and method of the present disclosure is capable of encoding and decoding packets efficiently.
(95) It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational operations to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
(96) Furthermore, the respective block diagrams may illustrate parts of modules, segments or codes including at least one or more executable instructions for performing specific logic function(s). Moreover, it should be noted that the functions of the blocks may be performed in different order in several modifications. For example, two successive blocks may be performed at the same time, or may be performed in reverse order according to their functions.
(97) The term module according to the embodiments of the disclosure, means, but is not limited to, a software or hardware component, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), which performs certain tasks. A module may advantageously be configured to reside on the addressable storage medium and configured to be executed on one or more processors. Thus, a module may include, by way of example, components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided for in the components and modules may be combined into fewer components and modules or further separated into additional components and modules. In addition, the components and modules may be implemented such that they execute one or more Central Processing Units (CPUs) in a device or a secure multimedia card.
(98)
(99)
(100) While the present disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents.