The embodiments of the present invention provide a decoding method and a decoding device for a polar code cascaded with CRC. The decoding method includes: performing SC-List decoding on a polar code according to the number of survival paths l to obtain l survival paths, where l is a positive integer; performing cyclic redundancy check on the l survival paths respectively; and increasing the number of survival paths when all the l survival paths fail to pass the cyclic redundancy check, and acquiring a decoding result of the polar code according to the increased number of survival paths. In the embodiments of the present invention, the path number of survival paths is adjusted according to a result of the cyclic redundancy check, so as to output paths as much as possible, where the output paths can pass the cyclic redundancy check, thereby improving decoding performance.

Patent
   RE47936
Priority
Jan 20 2012
Filed
Nov 02 2017
Issued
Apr 07 2020
Expiry
May 25 2032
Assg.orig
Entity
Large
0
17
currently ok
0. 11. A method, performed by an encoding device, comprising:
obtaining a plurality of non-frozen bits;
performing a cyclic redundancy check (CRC) on the non-frozen bits, to obtain CRC checked bits;
adding one or more frozen bits to the CRC checked bits;
performing a polar encoding process on the CRC checked bits and the frozen bits, to obtain a polar code; and
outputting the polar code.
0. 24. A non-transitory computer-readable storage medium storing program codes which, when executed, cause an encoding device to:
obtain a plurality of non-frozen bits;
perform a cyclic redundancy check (CRC) on the non-frozen bits, to obtain CRC checked bits;
add one or more frozen bits to the CRC checked bits;
perform a polar encoding process on the CRC checked bits and the frozen bits to obtain a polar code; and
output the polar code.
0. 17. An encoding device, comprising a processor and a memory storing program codes for execution by the processor, wherein the program codes, when executed by the processor, cause the encoding device to:
obtain a plurality of non-frozen bits;
perform a cyclic redundancy check (CRC) on the non-frozen bits, to obtain CRC checked bits;
add one or more frozen bits to the CRC checked bits;
perform a polar encoding process on the CRC checked bits and the frozen bits to obtain a polar code; and
output the polar code.
1. A decoding method for decoding a polar code cascaded with cyclic redundancy check CRC, performed by a decoding device, the method comprising:
receiving a polar code, wherein the polar code is obtained by encoding information bits;
performing, according to a number of survival paths l, a successive-cancellation-list (SC-List) decoding on a the polar code, to obtain l survival paths, wherein l is a positive integer;
performing a cyclic redundancy check on each of the l survival paths respectively;
increasing the number of survival paths by ΔL in response to all the l survival paths failing to pass the cyclic redundancy check, wherein ΔL is a positive integer; and
acquiring a decoding result of the polar code according to the increased number of survival paths l+ΔL; and
outputting the decoding result.
6. A decoding device for decoding a polar code cascaded with cyclic redundancy check CRC, the device comprising:
a processor and a memory coupled to the processor;
wherein, by executing program codes stored in the memory, the processor is configured to:
a decoder, configured to perform, according to a number of survival paths l, a successive-cancellation-list (SC-List) decoding on a the polar code to obtain l survival paths, wherein the polar code is obtained by encoding information bits, and wherein l is a positive integer;
a checker, configured to perform cyclic redundancy check respectively on each of the l survival paths that are obtained by the decoder; and
a selector, configured to increase the number of survival paths by ΔL in response to all the l survival paths failing to pass the cyclic redundancy check and, wherein ΔL is a positive integer;
acquire a decoding result of the polar code according to the increased number of survival paths l+ΔL; and
output the decoding result.
2. The method according to claim 1, wherein acquiring the decoding result of the polar code according to the increased number of survival paths, l+ΔL comprises:
if the increased number of survival paths is less than or equal to a threshold value, re-executing the method according to the increased number of survival paths to acquire the decoding result of the polar code; or
if the increased number of survival paths l+ΔL is greater than a threshold value, outputting a survival path with a greatest probability value among the l+ΔL survival paths as the decoding result of the polar code.
3. The method according to claim 1, wherein increasing the number of survival paths by ΔL comprises:
increasing the number of survival paths l by m, wherein m is a positive integer, or
multiplying the number of survival paths l by n, wherein n is greater than 1.
4. The method according to claim 1, further comprising:
if one or multiple of the l survival paths pass the cyclic redundancy check, outputting a survival path with a greatest probability value of the one or multiple of survival paths as the decoding result of the polar code.
5. The method according to claim 1, further comprising:
setting an initial value of the number of survival paths according to a demand for decoding complexity or a demand for decoding performance.
7. The device according to claim 6, wherein the selector processor is configured to output the increased number of survival paths to the decoder when the increased number of survival paths is less than or equal to a threshold value, so that the decoder performs the SC-List decoding on the polar code again according to the increased number of survival paths; or output a survival path with a greatest probability value among the l+ΔL survival paths as the decoding result of the polar code when the increased number of survival paths l+ΔL is greater than a threshold value.
8. The device according to claim 6, wherein in increasing the number of survival paths by ΔL, the selector processor is configured to:
increase the number of survival paths l by m, wherein m is a positive integer, or
multiply the number of survival paths l by n, wherein n is greater than 1.
9. The device according to claim 6, wherein the selector processor is further configured to, if one or multiple of the l survival paths pass the cyclic redundancy check, output a survival path with a greatest probability value of the one or multiple of survival paths as the decoding result of the polar code.
10. The device according to claim 6, wherein the decoder processor is further configured to set an initial value of the number of survival paths according to a demand for decoding complexity or a demand for decoding performance.
0. 12. The encoding method according to claim 11, wherein the polar encoding process is expressed as:

x1N=u1NGN,
wherein x1N is the outputting polar code, GN, is a generator matrix for the polar code, and u1N are inputting bits, wherein the inputting bits include the CRC checked bits and the frozen bits.
0. 13. The encoding method according to claim 12, wherein a length of the polar code is N, N=2{circumflex over ( )}n, and n≥0.
0. 14. The encoding method according to claim 11, wherein the polar code is configured for decoding using CRC check of one or more of l survival paths, wherein l is a positive integer.
0. 15. The encoding method according to claim 11, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using CRC check of one or more of l survival paths.
0. 16. The encoding method according to claim 11, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using a number l of survival paths adapted according to a result of CRC check of the survival paths.
0. 18. The encoding device according to claim 17, wherein the polar encoding process is expressed as:

x1N=u1NGN,
wherein x1N is the outputting polar code, GN, is a generator matrix for the polar code, and u1N are inputting bits, wherein the inputting bits include the CRC checked bits and the frozen bits.
0. 19. The encoding device according to claim 18, wherein a length of the polar code is N, N=2{circumflex over ( )}n, and n≥0.
0. 20. The encoding device according to claim 17, wherein the polar code is configured for decoding using CRC check of one or more of l survival paths, wherein l is a positive integer.
0. 21. The encoding device according to claim 17, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using CRC check of one or more of l survival paths.
0. 22. The encoding device according to claim 17, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using a number l of survival paths adapted according to a result of CRC check of the survival paths.
0. 23. The encoding device according to claim 17, wherein the encoding device is a base station or a terminal device.
0. 25. The non-transitory computer-readable storage medium according to claim 24, wherein the polar encoding process is expressed as:

x1N=u1NGN,
wherein x1N is the outputting polar code, GN, is a generator matrix for the polar code, and u1N are inputting bits, wherein the inputting bits include the CRC checked bits and the frozen bits.
0. 26. The non-transitory computer-readable storage medium according to claim 25, wherein a length of the polar code is N, N=2{circumflex over ( )}n, and n≥0.
0. 27. The non-transitory computer-readable storage medium according to claim 24, wherein the polar code is configured for decoding using CRC check of one or more of l survival paths, wherein l is a positive integer.
0. 28. The non-transitory computer-readable storage medium according to claim 24, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using CRC check of one or more of l survival paths.
0. 29. The non-transitory computer-readable storage medium according to claim 24, wherein the polar code is configured for successive-cancellation-list (SC-List) decoding using a number l of survival paths adapted according to a result of CRC check of the survival paths.

This application a non-frozen bit bits (for example, a bit whose the length is 1024 bits) to obtain a corresponding CRC check bit bits (for example, its the length is 1040 bits). Then Polar encoding is performed on the CRC check bit bits and a frozen bit bits (for example, its the length is 1008 bits) to obtain a Polar code (for example, its the length is 2048 bits).

In this embodiment of the present invention, the Polar code obtained in a manner exemplified in FIG. 1 may be decoded. However, it should be noted that a value of the bit length in FIG. 1 is only exemplary and this embodiment of the present invention is not limited to this. For example, a code length of the Polar code that may be decoded in this embodiment of the present invention may not be 2048.

FIG. 2 is a flow chart of a decoding method for a Polar code cascaded with CRC according to an embodiment of the present invention. The method in FIG. 2 is executed by a decoding end.

101: Perform SC-List decoding on a Polar code according to the number of survival paths L to obtain L survival paths, where L is a positive integer.

For example, the Polar code may be a Polar code that is cascaded with CRC and generated in the manner shown in FIG. 1. A manner for performing SC-List decoding on the Polar code is not limited in this embodiment of the present invention, for example, reference may be made to the prior art for performing the SC-List decoding.

102: Perform cyclic redundancy check on the L survival paths respectively.

In a SC-List decoding process of the Polar code, the SC-List decoding is generally decoding in bit-by-bit (Bit) serial. Starting from a first bit, the first bit may be 0 or 1, and a second bit may also be 0 or 1, so that a tree structure may be formed from the first bit to a currently decoded bit. A path is formed from a root node to a leaf node of the tree. A survival path is a path left by screening in a decoding process, which actually indicates a probable result of the decoding.

103: Increase the number of survival paths when all the L survival paths fail to pass the cyclic redundancy check and acquire a decoding result of the Polar code according to the increased number of survival paths.

In this embodiment of the present invention, the path number of survival paths is adjusted according to a result of the cyclic redundancy check, so as to output paths as much as possible, where the output paths can pass the cyclic redundancy check, thereby improving decoding performance.

Optionally, as an embodiment, in step 103, if the increased number of survival paths is less than or equal to a threshold value, the method in FIG. 1 is re-executed according to the increased number of survival paths to acquire a decoding result of the Polar code. Or, if the increased number of survival paths is greater than a threshold value, a survival path with a greatest probability value among the L survival paths is output as the decoding result of the Polar code. In this way, the decoding performance is improved, and meanwhile, it is ensured that the decoding complexity is not excessively high.

Therefore, the complexity of the SC-List decoding may be reduced by lowering the threshold value. In addition, if the threshold value is increased, performance in a high SNR (Signal Noise Ratio, signal noise ratio) interval in this embodiment of the present invention may be improved. A setting manner and a specific value of the threshold value are not limited in this embodiment of the present invention, for example, the setting may be performed according to a demand for the decoding complexity and/or a demand for the decoding performance.

A manner for increasing the number of survival paths is not limited in this embodiment of the present invention, as long as the number of survival paths is increased in a strictly monotonic increasing way. Optionally, as another embodiment, when the number of survival paths is increased in step 103, the number of survival paths may be increased by m, where m is a positive integer, or the number of survival paths is multiplied by n, where n is greater than 1. The foregoing m or n may be a fixed value or a variable value, which is not limited in this embodiment of the present invention.

Optionally, as another embodiment, if one or multiple of the L survival paths pass the cyclic redundancy check, a survival path with a greatest probability value of the one or multiple of survival paths may be output as the decoding result of the Polar code.

Setting an initial value of the number of survival paths is not limited in this embodiment of the present invention. Optionally, as another embodiment, an initial value of the number of survival paths may be set according to a demand for the decoding complexity and/or a demand for the decoding performance. In this way, required time for acquiring the decoding result of the Polar code can be shortened and decoding efficiency can be improved.

Embodiments of the present invention are described in further detail in the following with reference to specific examples. FIG. 3 is a schematic flowchart of a decoding process according to another embodiment of the present invention. The embodiment in FIG. 3 is a specific implementation manner of the method in FIG. 2. The adaptive number of survival paths L is adopted, so that decoding performance is improved.

201: Initialize the number of survival paths L=Linit.

Linit is a positive integer, such as 4, 8, or 16, and indicates an initial value of the number of survival paths. For example, the initial value of the number of survival paths may be set according to a demand for the decoding complexity and/or a demand for the decoding performance. In this way, required time for acquiring a decoding result of a Polar code can be shortened and decoding efficiency can be improved. However, neither a setting manner of Linit nor a specific value of Linit is limited in this embodiment of the present invention.

202: Perform SC-List decoding on a Polar code to obtain L survival paths.

203: Perform CRC (cyclic redundancy check) respectively on the L survival paths that are generated in step 202.

204: Determine, according to a check result in step 203, whether a survival path that passes the CRC exists.

205: If it is determined that one or multiple of survival paths pass the CRC in step 204 (“yes” in step 204), output a survival path with a greatest probability value of the one or multiple of survival paths as a decoding result.

206: Increase the number of survival paths L, for example, L=L+m (m is a positive integer) or L=L×n (n is greater than 1) if all the L survival paths fail to pass the CRC in step 204 (“no” in step 204). m or n may be a fixed value or a variable value, which is not limited in this embodiment of the present invention.

207: Judge whether the increased number of survival paths is greater than a threshold value Lmax. Lmax is greater than 1 and may be a preset value, such as 64, or 128. The threshold value Lmax of the number of survival paths may be set according to a demand for the decoding complexity and/or a demand for the decoding performance. In this way, required time for acquiring the decoding result can be shortened and the decoding efficiency can be improved. A setting manner and a specific value of the threshold value are not limited in this embodiment of the present invention.

If a judging result in step 207 is “no”, namely, L≤Lmax, the method in the FIG. 2 returns to step 202, and step 202 and the procedure after step 202 are re-executed according to the increased number of survival paths, so as to acquire the decoding result.

208: If the judging result in step 207 is “yes”, namely, L>Lmax, output a survival path with a greatest probability value among the current L survival paths as the decoding result.

In this way, in this embodiment of the present invention, the path number of survival paths is adjusted adaptively according to a result of the cyclic redundancy check, so as to output paths as much as possible, where the output paths can pass the cyclic redundancy check, thereby improving the decoding performance. In addition, the threshold value of the number of survival paths is set in this embodiment of the present invention, so that the decoding complexity can also be improved.

FIG. 4 is a block diagram of a decoding device for a Polar code cascaded with CRC according to an embodiment of the present invention. A decoding device 30 in FIG. 4 may be any proper entity and may be used in decoding processing of a Polar code. The decoding device 30 includes a decoder 31, a checker 32, and a selector 33.

The decoder 31 performs SC-List decoding on a Polar code according to the number of survival paths L to obtain L survival paths, where L is a positive integer. The checker 32 performs cyclic redundancy check respectively on the L survival paths that are obtained by the decoder 31. The selector 33 increases the number of survival paths when all the L survival paths fail to pass the cyclic redundancy check of the checker 32 and acquires a decoding result according to the increased number of survival paths.

In this embodiment of the present invention, the path number of the survival paths is adjusted according to a result of the cyclic redundancy check, so that an optimal compromise can be obtained between decoding complexity and decoding performance.

The decoding device 30 in FIG. 4 may execute steps of the method shown in FIG. 2 or FIG. 3. To avoid repetition, no detailed description is provided again.

Optionally, as an embodiment, the selector 33 may output the increased number of survival paths to the decoder 31 when the increased number of survival paths is less than or equal to a threshold value, so that the decoder 31 performs the SC-List decoding on the Polar code again according to the increased number of survival paths. Or, the selector 33 may output a survival path with a greatest probability value among the L survival paths as the decoding result when the increased number of survival paths is greater than a threshold value. In this way, the decoding performance is improved and meanwhile, it is ensured that the decoding complexity is not excessively high.

Optionally, as another embodiment, the selector 33 may increase the number of survival paths by m, where m is a positive integer, or multiply the number of survival paths by n, where n is greater than 1. The foregoing m or n may be a fixed value or a variable value, which is not limited in this embodiment of the present invention.

Optionally, as another embodiment, if one or multiple of the L survival paths pass the cyclic redundancy check, the selector 33 may also output a survival path with a greatest probability value of the one or multiple of survival paths as the decoding result.

Optionally, as another embodiment, the decoder 31 may further set an initial value of the number of survival paths according to a demand for the decoding complexity and/or a demand for the decoding performance. In this way, required time for acquiring the decoding result can be shortened and decoding efficiency can be improved.

FIG. 5 is a block diagram of a decoding device according to another embodiment of the present invention. A decoding device 40 in FIG. 5 is a specific implementation manner of the decoding device 30 in FIG. 3. The adaptive number of survival paths L is adopted, so that decoding performance is improved.

As shown in FIG. 5, the decoding device 40 includes a decoder 41, a checker 42, and a selector 43.

The decoder 41 performs SC-List decoding on a Polar code to obtain L survival paths. For example, the Polar code may be a cascade code generated in the manner shown in FIG. 1. The decoder 41 outputs the L survival paths path1 to pathL to the checker 42 respectively to perform CRC check. In addition, the decoder 41 outputs probability values P1 to PL of the L survival paths to the selector 43 respectively.

To illustrate the drawing clearly, the checker 42 in FIG. 5 is described as L checkers 42-1 to 42-L, but the description is merely exemplary, and is not intended to limit this embodiment of the present invention. Functions of the L checkers 42-1 to 42-L may be implemented by one checker 42. In the specification, the checkers 42-1 to 42-L may be called a checker 42 collectively.

The checker 42 performs CRC check on the L survival paths path1 to pathL respectively, and output check results R1 to RL of the L survival paths to the selector 43 respectively. A check result may indicate whether a survival path passes the CRC check (pass) or fails to pass the CRC check (fail).

The selector 43 determines, according to the check result of the checker 42, whether a survival path that passes the CRC check exists. If k (1≤k≤L, and k is a positive integer) survival paths pass the CRC check, the selector 43 may select a survival path with a greatest probability value as a decoding result according to probability values of the k survival paths output by the decoder 41.

In another aspect, if all the L survival paths fail to pass the CRC check of the checker 42, the selector 43 may increase the number of survival paths, for example, L=L+m (m is a positive integer) or L=L×n (n is greater than 1). If the increased number of survival paths does not exceed a preset threshold value Lmax, the selector 43 returns the increased number of survival paths to the decoder 41. The decoder 41 performs the SC-List decoding on the Polar code again according to the increased number of survival paths, and the checker 42 and the selector 43 execute a subsequent procedure accordingly.

If the increased number of survival paths exceeds the preset threshold value Lmax, the selector 43 selects a path with a greatest probability value among the current L survival paths as the decoding result, instead of returning the increased number of survival paths to the decoder 41.

In this way, in this embodiment of the present invention, the path number of survival paths is adjusted adaptively according to a result of the cyclic redundancy check, so as to output paths as much as possible, where the output paths can pass the cyclic redundancy check, thereby improving the decoding performance. In addition, the threshold value of the number of survival paths is set in this embodiment of the present invention, so that the decoding complexity can also be improved.

Simulation is performed according to an adaptive SC-List decoding scheme and a conventional SC-List decoding scheme in the embodiments of the present invention. In a simulation scene, a code length is 2048, a code rate is ½, and Linit=4 (in the conventional SC-List decoding scheme, the fixed number of paths L=32 is used), the number of survival paths is increased by L=L×2 each time, and Lmax=128.A simulation result indicates that decoding complexity of the adaptive SC-List decoding scheme in the embodiments of the present invention can be decreased to about ⅛, and its decoding performance is better than the performance of the conventional SC-List decoding by 0.2 dB.

Persons of ordinary skill in the art may be aware that the various exemplary units and algorithm steps described with reference to the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether the functions are executed by hardware or software depends on particular applications and design constraint conditions of the technical solutions. Persons skilled in the art may use different methods to implement the described functions for every particular application, but it should not be considered that the implementation goes beyond the scope of the present invention.

It can be clearly understood by persons skilled in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, device and unit, reference may be made to a corresponding process in the method embodiments, and the details are not described herein again.

In the embodiments provided in the present application, it should be understood that the disclosed system, device, and method may be implemented in other manners. For example, the described device embodiments are merely exemplary. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not be performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections are implemented through some interfaces. The indirect couplings or communication connections between the devices or units may be implemented in electronic, mechanical or other forms.

The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one position, or may be distributed on multiple network elements. A part or all of the units may be selected according to an actual requirement to achieve the objectives of the solutions in the embodiments.

In addition, function units in the embodiments of the present invention may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit.

When the functions are implemented in the form of a software function unit and sold or used as a stand-alone product, the functions may be stored in a computer-readable storage medium. Based on such understanding, the essence of the technical solutions in the present invention, or part that makes contributions to the prior art, or part of the technical solution may be embodied in the form of a software product. The computer software product may be stored in a storage medium, and includes several instructions for instructing a piece of computer equipment (for example, a personal computer, a server, or network equipment) to execute all or a part of the steps of the method described in each embodiment of the present invention. The storage medium may be any medium that is capable of storing program codes, such as a USB flash disk, a removable hard disk, a Read-Only Memory (ROM, Read-Only Memory), a Random Access Memory (RAM, Random Access Memory), a magnetic disk, or an optical disk. Persons skilled in the art may understand that the modules in the devices in the embodiments may be arranged in the devices in a distributed manner according to the description of the embodiments, or may be arranged in one or multiple devices which are different from those described in the embodiments. The modules may be combined into one module, and may also be split into multiple submodules.

Li, Bin, Shen, Hui

Patent Priority Assignee Title
Patent Priority Assignee Title
10103752, Oct 17 2012 Huawei Technologies Co., Ltd. Encoding/decoding method, device, and system
9628113, Dec 14 2012 Samsung Electronics Co., Ltd.; Sungkyunkwan University Research & Business Foundation Encoding method and apparatus using CRC code and polar code
9966973, Nov 16 2012 Huawei Technologies Co., Ltd. Method and apparatus for processing data
20020016945,
20130111291,
20140019820,
20150222295,
20170187396,
20180048418,
20180192403,
20180367163,
CN101373978,
CN101488823,
CN101951266,
WO2008011345,
WO2008011345,
WO2017125046,
/
Executed onAssignorAssigneeConveyanceFrameReelDoc
Nov 02 2017Huawei Technologies Co., Ltd.(assignment on the face of the patent)
Date Maintenance Fee Events
Nov 02 2017BIG: Entity status set to Undiscounted (note the period is included in the code).
Apr 19 2023M1552: Payment of Maintenance Fee, 8th Year, Large Entity.


Date Maintenance Schedule
Apr 07 20234 years fee payment window open
Oct 07 20236 months grace period start (w surcharge)
Apr 07 2024patent expiry (for year 4)
Apr 07 20262 years to revive unintentionally abandoned end. (for year 4)
Apr 07 20278 years fee payment window open
Oct 07 20276 months grace period start (w surcharge)
Apr 07 2028patent expiry (for year 8)
Apr 07 20302 years to revive unintentionally abandoned end. (for year 8)
Apr 07 203112 years fee payment window open
Oct 07 20316 months grace period start (w surcharge)
Apr 07 2032patent expiry (for year 12)
Apr 07 20342 years to revive unintentionally abandoned end. (for year 12)