Polar code decoding method and device, electronic device and storage medium
By performing sub-segment division of the polarization code and multi-round path processing, the problem of poor polarization code decoding performance in the prior art is solved, and a better decoding path is achieved.
Patent Information
- Application Number
- CN202210771615.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-30
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2042-06-30
AI Technical Summary
In the prior art, polarized coding performance is poor and the global optimal decoding path cannot be obtained.
By dividing the polarization code to be decoded into multiple sub-segments to be decoded, performing serial cancellation list SCL decoding separately, calculating the occurrence probability and path splitting of the decoded bit value to obtain the horizontal path; then longitudinal sub-segment processing and transverse sub-segment processing of the horizontal path are performed, multiple alternative paths are filtered out, and finally the decoded path is obtained through verification.
The decoding performance of polarized code is improved to ensure that the resulting decoding path is closer to the global optimality.
Smart Images

Figure CN115149966B_ABST
Abstract
Description
Background Art
[0002] In the field of mobile communication technology, the reliability of data transmission can be ensured by encoding and decoding data. Among them, polarization code is a channel coding method that can be theoretically proven to reach the Shannon limit. By decoding the polarization code, the transmitted data can be obtained.
[0003] In the related art, the polar code can be divided into multiple sub-segments to be decoded, and then the multiple sub-segments to be decoded are decoded in parallel to obtain a path that satisfies the local optimum corresponding to each decoding sub-segment, thereby obtaining a complete decoding path.
[0004] However, the method provided by the related art can only screen the locally optimal path corresponding to each decoding sub-segment, so the final complete decoding path may not be able to meet the global optimum, so the performance of polar code decoding of this method is poor.
[0005] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0006] The present disclosure provides a polar code decoding method and device, an electronic device, and a storage medium, which at least to some extent overcome the problem of poor decoding performance of polar codes in related technologies.
[0007] Other features and advantages of the present disclosure will become apparent from the following detailed description, or may be learned in part by the practice of the present disclosure.
[0008] According to one aspect of an embodiment of the present disclosure, a polar code decoding method is provided, including: obtaining a to-be-decoded polar code of length N, dividing the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m, and n are integer powers of 2; performing occurrence probability calculation of decoding bit values of SCL (Successive Cancellation List, serial cancellation list) decoding and path splitting on the m to-be-decoded sub-segments by m sub-segment decoders respectively to obtain split transverse paths; performing longitudinal sub-segment processing on the transverse paths to obtain multiple to-be-selected paths; performing transverse sub-segment processing on the multiple to-be-selected paths to obtain multiple candidate paths; verifying the multiple candidate paths to obtain decoding paths; and obtaining a decoding result of the to-be-decoded polar code according to the decoding paths.
[0009] In some embodiments of the present disclosure, the calculation of the occurrence probability of the decoded bit values of the serial elimination list SCL decoding of the m sub-segments to be decoded and the path splitting are performed by the m sub-segment decoders to obtain the split lateral path, including: performing SCL decoding processing on the j-th bit of the i-th sub-segment to be decoded by the i-th sub-segment decoder to obtain the occurrence probability of the j-th bit and 2l ij lateral paths, where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; 2l ij is the number of split horizontal paths corresponding to the j-th bit of the i-th sub-segment to be decoded.
[0010] In some embodiments of the present disclosure, the horizontal path is processed into vertical sub-segments to obtain multiple paths to be selected, including: the j-th bit of each sub-segment to be decoded in m sub-segments to be decoded is composed into the j-th vertical sub-segment, so that the total length of any vertical sub-segment is m; the m bits in the j-th vertical sub-segment are sequentially split into paths to obtain the split vertical paths, wherein the number of vertical paths corresponding to the i-th bit is 2l vij , when 2l vij >=L v When L with the largest path metric is retained v longitudinal paths, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L v With l vij are all positive integers. The path metric value of any longitudinal path is used to indicate the occurrence probability of any longitudinal path. v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained; according to the longitudinal path of the j-th longitudinal sub-segment that passes the check, the 2l ij Horizontal paths are screened and l ij or 2l ij Paths to be chosen.
[0011] In some embodiments of the present disclosure, the step of performing horizontal sub-segment processing on the multiple candidate paths to obtain multiple candidate paths includes: performing horizontal sub-segment processing on the multiple candidate paths respectively through m sub-segment decoders, wherein the i-th sub-segment decoder is from l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, lhij is equal to L, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L is used to indicate the number threshold of the candidate paths, and L is a positive integer; the i-th sub-segment decoder is l hij Based on the candidate paths, the occurrence probability calculation of the decoded bit value and the path splitting are performed on the j+1th bit of the i-th horizontal subsegment, and the horizontal subsegment is a horizontal path with a length of n; after the occurrence probability calculation of the decoded bit value and the path splitting are performed on the nth bit in the i-th horizontal subsegment, multiple candidate paths with a length of n are obtained, and the path splitting is completed;
[0012] The verifying of the multiple alternative paths to obtain a decoding path includes: respectively verifying the multiple alternative paths of length n of the m sub-segment decoders, and taking the alternative path that passes the verification and has the largest path metric value among the m sub-segment decoders as the decoding path; if no alternative path of any sub-segment decoder passes the verification, taking the alternative path with the largest path metric value among any sub-segment decoder as the decoding path.
[0013] In some embodiments of the present disclosure, obtaining a decoding result of the polar code to be decoded according to the decoding path includes: performing sub-segment transformation on the m decoding paths of the m sub-segment decoders to obtain m target decoding paths with a length of n; forming a target decoding path with a length of N through the m target decoding paths, and obtaining a decoding result of the polar code to be decoded after position permutation.
[0014] In some embodiments of the present disclosure, the longitudinal path of the j-th longitudinal sub-segment that passes the verification is used to determine the 2l ij Horizontal paths are screened and l ij or 2l ij paths to be selected, including: if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0, then 2l ij Only bits with a value of 0 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 1, then 2l ij Only bits with a value of 1 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0 or 1, then 2l ij 21 bits with values of 0 or 1 are reserved in the horizontal path ij Paths to be chosen.
[0015] In some embodiments of the present disclosure, the L of the j-th longitudinal sub-segment vThe j-th longitudinal path is checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained, including: L of the j-th longitudinal sub-segment v A parity check or a cyclic redundancy check is performed on the longitudinal paths, and the longitudinal path of the jth longitudinal sub-segment that passes the check is retained.
[0016] In some embodiments of the present disclosure, the sub-segment transformation is an exclusive OR operation on the m decoding paths.
[0017] In some embodiments of the present disclosure, the method further includes: performing a calculation on the L of the j-th longitudinal sub-segment. v The vertical paths are checked, and when all the vertical paths fail the check, the decoding stops.
[0018] According to another aspect of the present disclosure, a polar code decoding device is provided, including:
[0019] a to-be-decoded polar code sequence acquisition module, configured to acquire a to-be-decoded polar code of length N, and divide the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m and n are integer powers of 2;
[0020] A horizontal path determination module is used to calculate the occurrence probability of the decoded bit values of the serial elimination list SCL decoding and split the paths of the m sub-segments to be decoded through m sub-segment decoders, and obtain the horizontal paths after the splitting;
[0021] A longitudinal sub-segment processing module, used for performing longitudinal sub-segment processing on the transverse path to obtain multiple paths to be selected;
[0022] A transverse sub-segment processing module, used for performing transverse sub-segment processing on the multiple candidate paths to obtain multiple candidate paths;
[0023] A verification module, used to verify the multiple candidate paths to obtain a decoding path;
[0024] A decoding result determining module is used to obtain a decoding result of the to-be-decoded polar code according to the decoding path.
[0025] In some embodiments of the present disclosure, the horizontal path determination module is used to perform SCL decoding processing on the jth bit of the i-th sub-segment to be decoded through the i-th sub-segment decoder to obtain the occurrence probability of the j-th bit and 2l ij lateral paths, where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; 2l ij is the number of horizontal paths corresponding to the j-th bit of the i-th sub-segment to be decoded.
[0026] In some embodiments of the present disclosure, the vertical sub-segment processing module is used to form the j-th bit of each of the m to-be-decoded sub-segments into the j-th vertical sub-segment, so that the total length of any vertical sub-segment is m; the m bits in the j-th vertical sub-segment are sequentially split into paths, wherein the number of vertical paths corresponding to the i-th bit is 2l vij , when 2l vij >=L v When L with the largest path metric is retained v longitudinal paths, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L v With l vij are all positive integers. The path metric value of any longitudinal path is used to indicate the occurrence probability of any longitudinal path. v The longitudinal paths are checked, the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained, and the 2l ij Horizontal paths are screened and l ij or 2l ij Paths to be chosen.
[0027] In some embodiments of the present disclosure, the horizontal sub-segment processing module is used to perform horizontal sub-segment processing on multiple paths to be selected through m sub-segment decoders, wherein the i-th sub-segment decoder is from l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, l hij is equal to L, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L is used to indicate the number threshold of the candidate paths, and L is a positive integer; the i-th sub-segment decoder is l hij Based on the candidate paths, the occurrence probability calculation of the decoded bit value and the path splitting are performed on the j+1th bit of the i-th horizontal subsegment, and the horizontal subsegment is a horizontal path with a length of n; after the occurrence probability calculation of the decoded bit value and the path splitting are performed on the nth bit in the i-th horizontal subsegment, multiple candidate paths with a length of n are obtained, and the path splitting is completed;
[0028] A verification module is used to verify the multiple alternative paths of length n of the m sub-segment decoders respectively, and use the alternative path that passes the verification and has the largest path metric value among the m sub-segment decoders as the decoding path; if no alternative path of any sub-segment decoder passes the verification, the alternative path with the largest path metric value among any sub-segment decoder is used as the decoding path.
[0029] In some embodiments of the present disclosure, the decoding result determination module is configured to perform sub-segment transformation on the m decoding paths of the m sub-segment decoders to obtain m target decoding paths with a length of n; form a target decoding path with a length of N through the m target decoding paths, and obtain a decoding result of the polar code to be decoded after position permutation.
[0030] In some embodiments of the present disclosure, the longitudinal sub-segment processing module is used to: if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0, then 2l ij Only bits with a value of 0 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 1, then 2l ij Only bits with a value of 1 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0 or 1, then 2l ij 21 bits with values of 0 or 1 are reserved in the horizontal path ij Paths to be chosen.
[0031] In some embodiments of the present disclosure, the longitudinal sub-segment processing module is used to process the L of the j-th longitudinal sub-segment. v A parity check or a cyclic redundancy check is performed on the longitudinal paths, and the longitudinal path of the jth longitudinal sub-segment that passes the check is retained.
[0032] In some embodiments of the present disclosure, the sub-segment transformation is an exclusive OR operation on the m decoding paths.
[0033] In some embodiments of the present disclosure, the verification module is further used to: v The vertical paths are checked, and when all the vertical paths fail the check, the decoding stops.
[0034] According to another aspect of the present disclosure, an electronic device is provided, including: a processor; and a memory, for storing executable instructions of the processor; wherein the processor is configured to perform the above-mentioned polar code decoding method by executing the executable instructions.
[0035] According to another aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the polar code decoding method is implemented.
[0036] The technical solution provided by the embodiment of the present disclosure can perform longitudinal sub-segment processing on the horizontal path corresponding to each sub-segment to be decoded in the polar code to be decoded. Then, the multiple candidate paths obtained by the longitudinal sub-segment processing are further subjected to transverse sub-segment processing. Therefore, the present disclosure can perform global consideration through longitudinal sub-segment processing to avoid considering only the local probability of one of the sub-segments to be decoded when screening multiple candidate paths. Therefore, the present disclosure can improve the decoding performance of the polar code.
[0037] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.
[0039] Figure 1 A schematic diagram showing a system architecture of a polar code decoding method according to an embodiment of the present disclosure;
[0040] Figure 2 A flow chart of a polar code decoding method in an embodiment of the present disclosure is shown;
[0041] Figure 3 A flow chart showing a method for obtaining multiple paths to be selected in an embodiment of the present disclosure is shown;
[0042] Figure 4 A flow chart showing a method for obtaining multiple candidate paths in an embodiment of the present disclosure;
[0043] Figure 5 A schematic diagram of a polar code decoding process in an embodiment of the present disclosure is shown;
[0044] Figure 6 A schematic diagram of a polar code decoding device in an embodiment of the present disclosure is shown; and
[0045] Figure 7 A structural block diagram of an electronic device in an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0046] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the disclosure will be more comprehensive and complete and to fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0047] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0048] Figure 1 A schematic diagram showing an exemplary system architecture that can be applied to the polar code decoding method of the embodiment of the present disclosure is shown.
[0049] like Figure 1 As shown, the system architecture 100 may include a terminal device 101 and a base station 102 .
[0050] The terminal device 101 may send the encoded polarization code to be decoded to the base station 102. The base station 102 may receive the polarization code to be decoded, and decode the polarization code to be decoded by the method provided by the implementation of the present disclosure to obtain a decoding result of the polarization code to be decoded.
[0051] Alternatively, the base station 102 may send the encoded polarization code to be decoded to the terminal device 101. The terminal device 101 may receive the polarization code to be decoded, and decode the polarization code to be decoded by the method provided by the embodiment of the present disclosure to obtain a decoding result of the polarization code to be decoded.
[0052] The terminal device 101 can be various electronic devices, including but not limited to smart phones, tablet computers, laptop computers, desktop computers, wearable devices, augmented reality devices, virtual reality devices, etc.
[0053] It should be noted that the base station 102 can be deployed in a wireless access network to provide a communication connection between a terminal device and a background server. The present disclosure does not limit the type of the base station 102. For example, the base station 102 can be a macro base station, a micro base station, etc. In an LTE (Long Term Evolution) communication system, the base station 102 can be an eNodeB. Alternatively, in an NR (New Radio) communication system, the base station 102 can be a gNB.
[0054] Those skilled in the art will know that Figure 1 The number of terminal devices 101 and base stations 102 in the figure is only for illustration, and any number of terminal devices 101 and base stations 102 may be provided according to actual needs. The embodiments of the present disclosure are not limited to this.
[0055] The present exemplary implementation is described in detail below with reference to the accompanying drawings and embodiments.
[0056] First, an embodiment of the present disclosure provides a polar code decoding method, which can be executed by any electronic device with computing and processing capabilities.
[0057] Figure 2 A flowchart of a polar code decoding method in an embodiment of the present disclosure is shown. Figure 2 As shown, the polar code decoding method provided in the embodiment of the present disclosure includes the following steps S201 to S204.
[0058] S202: Obtain a to-be-decoded polar code of length N, and divide the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m, and n are integer powers of 2.
[0059] Exemplarily, the polar code to be decoded may be represented as a log-likelihood ratio sequence. Exemplarily, the polar code to be decoded may also be a polar code bit sequence. The embodiment of the present disclosure does not limit the length and content of the polar code to be decoded, and the length and content of the polar code to be decoded may be determined according to the application scenario.
[0060] In some embodiments, after obtaining the polar code to be decoded, the polar code to be decoded may be divided into sub-segments to be decoded to obtain m sub-segments to be decoded with a length of n. For example, if the length of the polar code to be decoded is N, then m×n=N (m and n may both be integer powers of 2). For example, the polar code to be decoded may be first divided into m sub-segments with a length of n in sequence, and then the divided sub-segments are respectively subjected to inverse bit order transformation to obtain m sub-segments to be decoded with a length of n.
[0061] S204, performing occurrence probability calculation and path splitting of the decoded bit values of the SCL decoding on the m sub-segments to be decoded respectively by m sub-segment decoders to obtain the split lateral paths.
[0062] In a possible implementation manner, by performing SCL decoding on any sub-segment to be decoded and calculating the occurrence probability of the decoded bit value and splitting the path, a decoding tree can be obtained, which includes multiple horizontal paths obtained by performing SCL decoding on the sub-segment to be decoded.
[0063] Exemplarily, after obtaining m sub-segments to be decoded with a length of n, each sub-segment to be decoded can be decoded in parallel by m sub-segment decoders. In some embodiments, performing SCL decoding on the m sub-segments to be decoded by m sub-segment decoders to calculate the probability of occurrence of the decoded bit values and split the paths to obtain the split lateral paths can include: performing SCL decoding on the j-th bit of the i-th sub-segment to be decoded by the i-th sub-segment decoder to obtain the probability of occurrence of the j-th bit and 2l ij lateral paths, where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; 2l ij is the number of split horizontal paths corresponding to the j-th bit of the i-th sub-segment to be decoded.
[0064] In an exemplary embodiment, after dividing the polar code to be decoded with a length of N into sub-segments to be decoded, 8 sub-segments to be decoded with a length of n can be obtained. At this time, the 8 sub-segment decoders can respectively perform SCL decoding on the 8 sub-segments to be decoded and calculate the probability of occurrence of the decoded bit values and split the paths, wherein each sub-segment decoder is responsible for any of the sub-segments to be decoded. For example, the third sub-segment decoder can first perform SCL decoding on the first bit of a sub-segment to be decoded, and obtain the probability of occurrence of the bit value of the first bit taking 0 and 1, thereby obtaining two horizontal paths. Afterwards, the third sub-segment decoder can perform SCL decoding on the second bit of the sub-segment to be decoded based on the two horizontal paths in which the bit value of the first bit takes 0 and 1, and obtain the probability of occurrence of the bit value of the second bit taking 0 and 1. Thus, on the basis of the above two split paths, four split horizontal paths are obtained. Similarly, if the jth bit of the sub-segment to be decoded is subjected to SCL decoding, 2l can be obtained. ij The lateral path after the split, l ij is the number of split horizontal paths corresponding to the j-1th bit of the sub-segment to be decoded. Where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n. Therefore, taking i = 2, j = 3 as an example, l 23That is, the occurrence probability calculation of the decoded bit value of SCL decoding by the second sub-segment decoder and the number of split horizontal paths corresponding to the third bit of the sub-segment to be decoded after path splitting.
[0065] In the horizontal sub-segment, there are some bits whose bit values are always 0, which can be called constant 0 bits. These constant 0 bits are obtained by XOR operation of an even number of frozen bits. In the probability calculation of the decoding bit value and path splitting of the sub-segment SCL decoding, when the decoding bit is a constant 0 bit, the probability of the bit value 0 is 1, and the probability of the bit value 1 is 0. Therefore, only the path with the bit value 0 needs to be retained, and there is no need to split the path. The above-mentioned horizontal sub-segment is a horizontal path of length n, that is, when the path of SCL decoding of any sub-segment to be decoded is split to the last bit, the horizontal path obtained.
[0066] S206, performing longitudinal sub-segment processing on the transverse path to obtain multiple paths to be selected.
[0067] In some embodiments, the split horizontal paths may be first formed into corresponding vertical sub-segments. Then, according to the results of the SCL decoding process on each sub-segment to be decoded, each vertical sub-segment may be split into vertical paths to obtain multiple paths to be selected. Figure 3 As shown, the method of performing longitudinal sub-segment processing on the transverse path to obtain multiple paths to be selected may include the following steps S302 to S306.
[0068] S302: The j-th bit of each of the m sub-segments to be decoded is combined into a j-th vertical sub-segment, so that the total length of any vertical sub-segment is m.
[0069] In an exemplary embodiment, taking 32 horizontal sub-segments as an example, the total length of any horizontal sub-segment can be 128, so the 32 sub-segments to be decoded can form a total of 128 vertical sub-segments, and the total length of each vertical sub-segment is 32.
[0070] S304, sequentially split the m bits in the j-th longitudinal sub-segment into paths to obtain the split longitudinal paths, where the number of longitudinal paths corresponding to the i-th bit is 2l. vij , when 2l vij >=L v When L with the largest path metric is retained v longitudinal paths, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L v With l vij are all positive integers. The path metric value of any longitudinal path is used to indicate the occurrence probability of any longitudinal path.
[0071] In a possible implementation manner, a decoding tree may be obtained by performing path splitting on any longitudinal sub-segment. The decoding tree includes multiple longitudinal paths obtained by performing path splitting on the longitudinal sub-segment.
[0072] In an exemplary embodiment, taking the first vertical sub-segment composed of the first bit of each horizontal sub-segment as an example, after the m sub-segment decoders have respectively performed SCL decoding on the first bit of each sub-segment to be decoded, the occurrence probabilities of 0 and 1 corresponding to the first bit of each sub-segment to be decoded can be sequentially split into paths, and the first bit of the first horizontal sub-segment obtains two corresponding vertical paths. Afterwards, based on the above two vertical paths, the second bit of the vertical sub-segment, that is, the first bit of the second horizontal sub-segment, is split into paths according to the corresponding occurrence probabilities of 0 and 1, and four corresponding vertical paths are obtained. The other bits of the first vertical sub-segment are sequentially split into paths, and 2l vertical paths can be obtained. vi1 Similarly, by sequentially splitting the m bits in the j-1th vertical sub-segment, we can get 2l vij The vertical path is then split in sequence for the m bits in the jth vertical sub-segment, and 2l can be obtained. vij For example, the 2l corresponding to the j-1th longitudinal sub-segment vij For example, in the longitudinal path, vij Among the split paths, the number of vertical paths where any bit value is 0 is l vij0 ,, the number of longitudinal paths where any bit has a value of 1 is l vij1 , 2l vij Equal to l vij0 and l vij1 The sum of the number of. Where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n. Therefore, taking i = 2, j = 3 as an example, 2l v23 That is, the number of vertical paths corresponding to the second bit in the third vertical subsegment. Or, 2l v23 It can also be called the number of candidate paths corresponding to the second bit in the third vertical sub-segment.
[0073] In an exemplary embodiment, an L may be provided. v When the number of longitudinal paths is greater than L v If the value of L is too large, the vertical paths need to be screened so that the number of vertical paths is always less than or equal to the value of L. v The embodiment of this disclosure does not apply to the value of L v The value of L is limited. v The value of will affect the decoding performance, decoding complexity and early stop timing, and can be set based on technical indicators or application scenarios.
[0074] In some embodiments, the longitudinal paths can be screened by the path metric values of each bit in each longitudinal path. Thus, the L path with the largest path metric value can be retained. v The embodiment of the present disclosure does not limit the method for calculating the path metric value of each bit. For example, the path metric value of each bit can be calculated by the signal-to-noise ratio when the polar code to be decoded is transmitted. For example, the path metric value of each bit corresponding to the j-1th longitudinal sub-segment is vij For example, the longitudinal path, when 2l vij >=L v , then for this 2l vij The split paths are screened and the L paths with the largest path metric are retained. v longitudinal path. v Among the vertical paths, the number of vertical paths where any bit value is 0 is l vij0 , the number of longitudinal paths where any bit value is 1 is l vij1 , 2l vij Equal to l vij0 and l vij1 The embodiment of the present disclosure does not limit the method for expressing the path metric value. Exemplarily, the path metric value can be expressed by a log-likelihood ratio. Since the occurrence probability is prone to overflow and other problems in program calculation, for example, when the length N of the polar code to be decoded is 1024, the occurrence probability of any longitudinal path will be very small, so the occurrence probability can be replaced by using a log-likelihood ratio.
[0075] S306, for the j-th longitudinal sub-segment L v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained; according to the longitudinal path of the j-th longitudinal sub-segment that passes the check, the 2l ij Horizontal paths are screened and l ij or 2l ij Paths to be chosen.
[0076] In some embodiments, the L of the j-th longitudinal subsegment v The j-th longitudinal path is checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained, including: L of the j-th longitudinal sub-segment v The j-th longitudinal sub-segment performs a parity check (Parity Check) or a cyclic redundancy check (CRC) on the longitudinal paths, and retains the longitudinal path of the j-th longitudinal sub-segment that passes the check. The embodiment disclosed herein does not limit the check steps of the parity check and cyclic redundancy check. Alternatively, other applicable check methods may be used here to check the L of the j-th longitudinal sub-segment. vThe vertical path is checked.
[0077] The polar code decoding method provided in the embodiment of the present disclosure may further include: performing a polar code decoding operation on the L of the j-th longitudinal sub-segment. v The vertical paths are checked, and when all the vertical paths fail to pass the check, the decoding is stopped. Exemplarily, if no vertical path passes the check, it proves that the decoding has failed. At this time, the early stop function in the polar code decoding can be implemented, allowing the retransmission process to be started in advance without continuing the decoding. Therefore, the embodiment of the present disclosure can reduce the amount of calculation for polar code decoding and shorten the waiting time for error frame retransmission.
[0078] In some embodiments, according to the longitudinal path of the j-th longitudinal sub-segment that passes the check, 2l ij Horizontal paths are screened and l ij or 2l ij paths to be selected, including: if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0, then 2l ij Only bits with a value of 0 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 1, then 2l ij Only bits with a value of 1 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0 or 1, then 2l ij 21 bits with values of 0 or 1 are reserved in the horizontal path ij Paths to be chosen.
[0079] Exemplarily, taking 128 longitudinal sub-segments as an example, the total length of each longitudinal sub-segment is 32. When the longitudinal path corresponding to the 6th longitudinal sub-segment is checked, it can be assumed that 9 longitudinal paths have passed the check. Moreover, the bit value of the 10th bit in the longitudinal paths that have passed the check can all be 0. Therefore, when the 10th sub-segment SCL decoder calculates the occurrence probability of the decoded bit value of the SCL decoding corresponding to the 7th bit and splits the path, it can only calculate the occurrence probability of the decoded bit value of the SCL decoding and split the path based on the 9 longitudinal paths whose bit value of the 10th bit is 0.
[0080] Similarly, still taking the above 128 longitudinal sub-segments as an example, the total length of each longitudinal sub-segment is 32. When the longitudinal path corresponding to the 12th longitudinal sub-segment is checked, it can be assumed that 10 longitudinal paths pass the check. Moreover, the bit value of the 18th bit in the above 10 longitudinal paths that pass the check can all be 1. Therefore, when the 18th sub-segment SCL decoder calculates the occurrence probability of the decoding bit value of the SCL decoding corresponding to the 13th bit and splits the path, it can only calculate the occurrence probability of the decoding bit value of the SCL decoding and split the path based on the above 10 longitudinal paths where the bit value of the 18th bit is 1.
[0081] Similarly, still taking the above 128 longitudinal sub-segments as an example, the total length of each longitudinal sub-segment is 32. When the longitudinal path corresponding to the third longitudinal sub-segment is checked, it can be assumed that 4 longitudinal paths pass the check. Moreover, the bit value of the 6th bit in the above 4 longitudinal paths that pass the check can include 0 and 1. Therefore, when the 6th sub-segment SCL decoder calculates the occurrence probability of the decoded bit value of the SCL decoding corresponding to the 4th bit and splits the path, it can only calculate the occurrence probability of the decoded bit value of the SCL decoding and split the path based on the 4 longitudinal paths whose bit value of the 6th bit is 0 or 1.
[0082] S208, performing horizontal sub-segment processing on the multiple candidate paths to obtain multiple candidate paths.
[0083] In some embodiments, a method for performing horizontal sub-segment processing on multiple candidate paths to obtain multiple candidate paths may be as follows: Figure 4 shown.
[0084] S402, performing horizontal sub-segment processing on multiple paths to be selected through m sub-segment decoders, wherein the i-th sub-segment decoder performs horizontal sub-segment processing on the multiple paths to be selected from the l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, l hij is equal to L, i=1, 2, 3, ..., m; j=1, 2, 3, ..., n; L is used to indicate the quantity threshold of the alternative paths, and L is a positive integer.
[0085] For example, it is taken that 16 sub-segment decoders are used to process multiple candidate paths in horizontal sub-segments, where the total length of any candidate path is 16. The 16 sub-segment decoders correspond to a certain bit in each candidate path, for example, the first sub-segment decoder may correspond to the first bit in each candidate path. The first sub-segment decoder may further screen the multiple candidate paths obtained above. The above screening method for obtaining the candidate paths may screen the horizontal sub-segments based on the path metric values of the horizontal sub-segments, and retain the one with the largest path metric value. hij In an exemplary embodiment, a value of L may be set. When the number of candidate paths is greater than the value of L, the candidate paths need to be screened so that the number of candidate paths is always less than or equal to the value of L. The embodiment of the present disclosure does not limit the value of L, and the value of L may be set based on technical indicators or application scenarios.
[0086] S404, the i-th sub-segment decoder uses l hij Based on the alternative paths, the occurrence probability of the decoded bit value of the j+1th bit of the ith horizontal subsegment is calculated and the path is split; after the occurrence probability of the decoded bit value of the nth bit in the ith horizontal subsegment is calculated and the path is split, multiple alternative paths with a length of n are obtained, and the path splitting is completed.
[0087] Exemplarily, through the above-mentioned horizontal sub-segment processing method, each sub-segment decoder can calculate the probability of occurrence of the decoding bit value and split the path for the next bit based on the alternative path corresponding to the previous bit, until it is split to the last bit, and finally obtain multiple alternative paths with a length of n.
[0088] S210, verify multiple candidate paths to obtain a decoding path.
[0089] In some embodiments, multiple alternative paths are verified to obtain a decoding path, including: multiple alternative paths of length n of m sub-segment decoders are verified respectively, and the alternative paths that pass the verification and have the largest path metric value among the m sub-segment decoders are used as decoding paths; if no alternative path passes the verification of any sub-segment decoder, the alternative path with the largest path metric value among any sub-segment decoder is used as the decoding path.
[0090] In a possible implementation, if no alternative path of any sub-segment decoder passes the verification, it proves that the decoding has failed. The disclosed embodiment does not limit the method for verifying multiple alternative paths herein. Exemplarily, the method for verifying multiple alternative paths herein can be the same as the method for verifying the longitudinal path described above, and can be a parity check or a cyclic redundancy check or other applicable verification method.
[0091] S212: Obtain a decoding result of the to-be-decoded polar code according to the decoding path.
[0092] In some embodiments, obtaining a decoding result of a polar code to be decoded according to a decoding path includes: performing sub-segment transformation on m decoding paths of m sub-segment decoders to obtain m target decoding paths with a length of n; forming a target decoding path with a length of N through the m target decoding paths, and obtaining a decoding result of the polar code to be decoded after position replacement.
[0093] In some embodiments, the sub-segment transformation is an XOR operation on m decoding paths. Exemplarily, the decoding paths (also referred to as decoding bit sequences) corresponding to the m sub-segment SCL decoders can be a, so the m decoding bit sequences a can obtain m target decoding paths (also referred to as target decoding bit sequences) of length n after the sub-segment transformation, and the above m target decoding paths can be v. The sub-segment conversion formula between a and v can be shown as Formula 1:
[0094]
[0095] in,
[0096] in addition, yes Kronecker product of order.
[0097] It should be noted that and It can be used to indicate the decision value of the decoded bit. Moreover, the decision value is not necessarily the original value at the sending end.
[0098] After that, the target decoding bit sequence can be obtained by expanding Formula 1 as shown below:
[0099]
[0100] It should be noted that in this specification, the decoding path and the decoding bit sequence have the same meaning, so the target decoding path and the target decoding bit sequence have the same meaning, the alternative path and the alternative bit sequence have the same meaning, and the split path and the split bit sequence have the same meaning.
[0101] Exemplarily, if the polar code encoding process of the length N includes a bit order reversal, the position permutation is an inverse process of the bit order reversal; if the polar code encoding process of the length N does not include a bit order reversal, the position permutation can keep the bit order in the decoding result of the length N unchanged.
[0102] Exemplarily, if the sub-segment to be decoded with a length of n includes a bit inversion transformation in the polar code encoding process, then after the sequence to be decoded is divided into m sub-segments to be decoded in sequence, it is necessary to perform a bit inversion transformation accordingly to obtain the sub-segment to be decoded; if the sub-segment to be decoded with a length of n does not include a bit inversion transformation in the polar code encoding process, then after the sequence to be decoded is divided into m sub-segments to be decoded in sequence, it is not necessary to perform a bit inversion transformation, and the position permutation can keep the bit order in the decoding result of the sub-segment to be decoded with a length of n unchanged.
[0103] The method provided by the embodiment of the present disclosure can perform longitudinal sub-segment processing on the split horizontal path corresponding to each sub-segment to be decoded in the polar code to be decoded. Then, the multiple candidate paths obtained by the longitudinal sub-segment processing are further subjected to transverse sub-segment processing. Therefore, the present disclosure can perform global consideration through longitudinal sub-segment processing to avoid considering only the local probability of one of the sub-segments to be decoded when screening multiple candidate paths. Therefore, the present disclosure can improve the decoding performance of the polar code.
[0104] For example, a process diagram of polar code decoding can be as follows: Figure 5 For a polar code to be decoded with a length of N, the polar code to be decoded is divided into m sub-segments to be decoded with a length of n, and SCL decoding can be performed simultaneously by the m sub-segment SCL decoders. The occurrence probability of the decoded bit value of each sub-segment to be decoded is calculated and the path is split to obtain the split lateral path. Exemplarily, the j-th bit of each sub-segment to be decoded is subjected to SCL decoding processing, and 2l ij This step can refer to the above S204 and will not be described in detail here.
[0105] Afterwards, the horizontal path can be processed into vertical sub-segments to obtain multiple paths to be selected. For example, for the jth bit of each sub-segment to be decoded, the jth bit of each sub-segment to be decoded in the m sub-segments to be decoded can be combined into the jth vertical sub-segment. The m bits in the jth vertical sub-segment are sequentially split into paths, where the number of vertical paths corresponding to the i-th bit is 2l vij , when 2l vij >=L v When L with the largest path metric is retained v Then, we can calculate the L of the j-th longitudinal sub-segment v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained. According to the longitudinal path of the j-th longitudinal sub-segment that passes the check, the 2l ij Horizontal paths are screened and l ij or 2l ij This step can refer to the above S206 and will not be described in detail here.
[0106] In getting l ij or 2l ij After there are paths to be selected, you can ij or 2l ij The m sub-segment decoders can be used to process the selected paths horizontally to obtain multiple candidate paths. ij or 2l ij The selected paths are processed horizontally, where the i-th sub-segment decoder starts from l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, l hij is equal to L. This step can refer to the above S208 and will not be described in detail here.
[0107] After obtaining the above-mentioned multiple alternative paths, the sub-segment SCL decoder can be used to perform decoding processing on the next bit according to the multiple alternative paths obtained by the sub-segment SCL decoder. Exemplarily, the above-mentioned multiple alternative paths are the multiple alternative paths obtained by the i-th sub-segment decoder for the j-th bit. When the number of the alternative paths is L, the number of horizontal paths obtained by the SCL decoding processing of the j+1-th bit is 2L. Then, based on the 2L horizontal paths corresponding to the j+1-th bit, the j+1-th vertical sub-segment can be obtained, and the above operation is repeated according to the j+1-th vertical sub-segment, retaining L or 2L paths to be selected. After obtaining L or 2L paths to be selected, the above operation can be repeated according to the L or 2L paths to be selected to obtain L alternative paths.
[0108] Afterwards, the L candidate paths may be checked to obtain a decoding path that has passed the check. Exemplarily, the check may be a CRC check. A position permutation operation is performed on the decoding path to obtain a final decoding result of the polar code to be decoded. This step may refer to the above S210 and S212, and will not be described in detail here.
[0109] Based on the same inventive concept, a polar code decoding device is also provided in the embodiments of the present disclosure, as described in the following embodiments. Since the principle of solving the problem in the device embodiment is similar to that in the above method embodiment, the implementation of the device embodiment can refer to the implementation of the above method embodiment, and the repeated parts will not be repeated.
[0110] Figure 6A schematic diagram of a polar code decoding device in an embodiment of the present disclosure is shown. Figure 6 As shown, the device comprises:
[0111] The to-be-decoded polar code sequence acquisition module 601 is configured to acquire a to-be-decoded polar code of length N, and divide the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m and n are integer powers of 2;
[0112] A horizontal path determination module 602 is used to calculate the occurrence probability of the decoded bit values of the serial elimination list SCL decoding and split the paths of the m sub-segments to be decoded through m sub-segment decoders, and obtain the split horizontal paths;
[0113] A longitudinal sub-segment processing module 603 is used to perform longitudinal sub-segment processing on the transverse path to obtain multiple paths to be selected;
[0114] A horizontal sub-segment processing module 604 is used to perform horizontal sub-segment processing on multiple candidate paths to obtain multiple candidate paths;
[0115] A verification module 605 is used to verify multiple candidate paths to obtain a decoding path;
[0116] The decoding result determination module 606 is configured to obtain a decoding result of the to-be-decoded polar code according to the decoding path.
[0117] In some embodiments of the present disclosure, the horizontal path determination module 602 is used to perform SCL decoding processing on the jth bit of the i-th sub-segment to be decoded through the i-th sub-segment decoder to obtain the occurrence probability of the j-th bit and 2l ij lateral paths, where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; 2l ij is the number of split horizontal paths corresponding to the j-th bit of the i-th sub-segment to be decoded.
[0118] In some embodiments of the present disclosure, the vertical sub-segment processing module 603 is used to form the j-th bit of each of the m to-be-decoded sub-segments into the j-th vertical sub-segment, so that the total length of any vertical sub-segment is m; the m bits in the j-th vertical sub-segment are sequentially split into paths, wherein the number of vertical paths corresponding to the i-th bit is 2l vij , when 2l vij >=L v When L with the largest path metric is retained v longitudinal paths, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L v With l vij are all positive integers. The path metric value of any longitudinal path is used to indicate the occurrence probability of any longitudinal path.v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained. According to the longitudinal path of the j-th longitudinal sub-segment that passes the check, the 2l ij The lateral paths after splitting are screened and l ij or 2l ij Paths to be chosen.
[0119] In some embodiments of the present disclosure, the horizontal sub-segment processing module 604 is used to perform horizontal sub-segment processing on multiple paths to be selected through m sub-segment decoders, wherein the i-th sub-segment decoder is from l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, l hij = L, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L is used to indicate the number threshold of the candidate paths, L is a positive integer; the i-th sub-segment decoder is l hij Based on the candidate paths, the occurrence probability calculation of the decoded bit value of the j+1th bit of the i-th horizontal sub-segment and the path splitting are performed, and the horizontal sub-segment is a horizontal path with a length of n; after the occurrence probability calculation of the decoded bit value of the n-th bit in the i-th horizontal sub-segment and the path splitting are performed, multiple candidate paths with a length of n are obtained, and the path splitting is completed;
[0120] The verification module 605 is used to verify multiple alternative paths of length n of the m sub-segment decoders respectively, and use the alternative path that passes the verification and has the largest path metric value among the m sub-segment decoders as the decoding path; if no alternative path of any sub-segment decoder passes the verification, the alternative path with the largest path metric value among any sub-segment decoder is used as the decoding path.
[0121] In some embodiments of the present disclosure, the decoding result determining module 606 is configured to perform sub-segment transformation on m decoding paths of the m sub-segment decoders to obtain m target decoding paths with a length of n; form a target decoding path with a length of N through the m target decoding paths, and obtain a decoding result of the polar code to be decoded after position permutation.
[0122] In some embodiments of the present disclosure, the longitudinal sub-segment processing module 603 is configured to: if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0, then 2l ijOnly bits with a value of 0 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 1, then 2l ij Only bits with a value of 1 are retained in the horizontal path. ij paths to be selected; if the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0 or 1, then 2l ij 21 bits with values of 0 or 1 are reserved in the horizontal path ij Paths to be chosen.
[0123] In some embodiments of the present disclosure, the longitudinal sub-segment processing module 603 is used to process the L of the j-th longitudinal sub-segment. v A parity check or a cyclic redundancy check is performed on the longitudinal paths, and the longitudinal path of the jth longitudinal sub-segment that passes the check is retained.
[0124] In some embodiments of the present disclosure, the sub-segment transformation is an exclusive-OR operation on m decoding paths.
[0125] In some embodiments of the present disclosure, the verification module 605 is further configured to: v The vertical paths are checked, and when all the vertical paths fail the check, the decoding stops.
[0126] The device provided in the embodiment of the present disclosure can perform longitudinal sub-segment processing on the split horizontal path corresponding to each sub-segment to be decoded in the polar code to be decoded. Then, the multiple candidate paths obtained by the longitudinal sub-segment processing are further subjected to transverse sub-segment processing. Therefore, the present disclosure can perform global consideration through longitudinal sub-segment processing to avoid considering only the local probability of one of the sub-segments to be decoded when screening multiple candidate paths. Therefore, the present disclosure can improve the decoding performance of the polar code.
[0127] Those skilled in the art will appreciate that various aspects of the present disclosure may be implemented as systems, methods or program products. Therefore, various aspects of the present disclosure may be specifically implemented in the following forms, namely: complete hardware implementation, complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as "circuits", "modules" or "systems".
[0128] Refer to the following Figure 7 An electronic device 700 according to this embodiment of the present disclosure is described. Figure 7 The electronic device 700 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0129] like Figure 7As shown, the electronic device 700 is in the form of a general computing device. The components of the electronic device 700 may include but are not limited to: at least one processing unit 710, at least one storage unit 720, and a bus 730 connecting different system components (including the storage unit 720 and the processing unit 710).
[0130] The storage unit stores program codes, which can be executed by the processing unit 710, so that the processing unit 710 executes the steps according to various exemplary embodiments of the present disclosure described in the above “Specific Implementation Methods” section of this specification.
[0131] The storage unit 720 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 7201 and / or a cache storage unit 7202 , and may further include a read-only storage unit (ROM) 7203 .
[0132] The storage unit 720 may also include a program / utility 7204 having a set (at least one) of program modules 7205, such program modules 7205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0133] Bus 730 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0134] The electronic device 700 may also communicate with one or more external devices 740 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 700, and / or communicate with any device that enables the electronic device 700 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 750. Furthermore, the electronic device 700 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) via a network adapter 760. As shown, the network adapter 760 communicates with other modules of the electronic device 700 via a bus 730. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 700, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0135] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0136] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is also provided, which may be a readable signal medium or a readable storage medium. A program product capable of implementing the above-mentioned method of the present disclosure is stored thereon. In some possible implementations, various aspects of the present disclosure may also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to cause the terminal device to execute the steps according to various exemplary implementations of the present disclosure described in the above “Specific Implementation Methods” section of this specification.
[0137] More specific examples of computer-readable storage media in the present disclosure may include, but are not limited to, an electrical connection having one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0138] In the present disclosure, a computer readable storage medium may include a data signal propagated in baseband or as part of a carrier wave, wherein a readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A readable signal medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0139] Alternatively, the program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0140] In a specific implementation, the program code for performing the operations of the present disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).
[0141] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0142] In addition, although the steps of the method in the present disclosure are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.
[0143] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0144] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. The present disclosure is intended to cover any variations, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include common knowledge or customary technical means in the art that are not disclosed in the present disclosure. The description and examples are to be regarded as exemplary only, and the true scope of the present disclosure is indicated by the appended claims.
Claims
1. A polar code decoding method, characterized in that: include: Acquire a to-be-decoded polar code of length N, and divide the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m, and n are integer powers of 2; Through m sub-segment decoders, occurrence probability calculation and path splitting of the decoded bit values of the serial elimination list SCL decoding are performed on the m sub-segments to be decoded respectively, and the split lateral paths are obtained; Performing longitudinal sub-segment processing on the transverse path to obtain a plurality of paths to be selected, wherein the split transverse path is firstly formed into corresponding longitudinal sub-segments, and then, according to the result of performing SCL decoding processing on the m sub-segments to be decoded, longitudinal path splitting is performed on each longitudinal sub-segment to obtain a plurality of paths to be selected; Performing lateral sub-segment processing on the multiple candidate paths to retain multiple candidate paths with maximum path metric values from the multiple candidate paths; Verifying the multiple candidate paths to obtain a decoding path; A decoding result of the to-be-decoded polar code is obtained according to the decoding path.
2. The polar code decoding method according to claim 1, characterized in that: The method of performing occurrence probability calculation and path splitting of the decoded bit values of the serial elimination list SCL decoding on the m sub-segments to be decoded by the m sub-segment decoders to obtain the split lateral paths includes: The i-th sub-segment decoder performs SCL decoding on the j-th bit of the i-th sub-segment to be decoded, and obtains the occurrence probability of the j-th bit and 2l ij lateral paths, where i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; 2l ij is the number of horizontal paths corresponding to the j-th bit of the i-th sub-segment to be decoded.
3. The polar code decoding method according to claim 2, characterized in that: The longitudinal sub-segment processing is performed on the transverse path to obtain multiple paths to be selected, including: The j-th bit of each of the m to-be-decoded sub-segments is grouped into the j-th vertical sub-segment, so that the total length of any vertical sub-segment is m; The m bits in the j-th vertical sub-segment are sequentially split into paths to obtain the split vertical paths, where the number of vertical paths corresponding to the i-th bit is 2l vij , when 2l vij >=L v When L with the largest path metric is retained v longitudinal paths, i = 1, 2, 3, ..., m; j = 1, 2, 3, ..., n; L v With l vij are all positive integers, and the path metric value of any longitudinal path is used to indicate the occurrence probability of any longitudinal path; For the j-th longitudinal sub-segment, L v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained; According to the longitudinal path of the j-th longitudinal sub-segment that passes the check, the 2l ij Horizontal paths are screened and l ij or 2l ij Paths to be chosen.
4. The polar code decoding method according to any one of claims 1 to 3, characterized in that: The performing horizontal sub-segment processing on the multiple candidate paths to obtain multiple candidate paths includes: The m sub-segment decoders are used to perform horizontal sub-segment processing on multiple candidate paths, wherein the i-th sub-segment decoder is used to process the selected paths from l ij or 2l ij The path with the largest metric value among the candidate paths is retained. hij alternative paths, when l ij or 2l ij When it is less than L, l hij Equal to l ij or equal to 2l ij , when l ij or 2l ij When L is greater than or equal to L, l hij is equal to L, i=1, 2, 3, ..., m; j=1, 2, 3, ..., n; L is used to indicate the number threshold of the alternative paths, and L is a positive integer; The i-th sub-segment decoder is hij Based on the candidate paths, the occurrence probability of the decoded bit value is calculated and the path is split for the j+1th bit of the i-th horizontal sub-segment, and the horizontal sub-segment is a horizontal path with a length of n; After the occurrence probability of the decoded bit value of the nth bit in the i-th horizontal sub-segment is calculated and the path is split, multiple candidate paths of length n are obtained, and the path splitting is completed; The verifying the multiple candidate paths to obtain a decoding path includes: The multiple alternative paths of length n of the m sub-segment decoders are checked respectively, and the alternative paths that pass the check and have the largest path metric value among the m sub-segment decoders are taken as the decoding path; if no alternative path of any sub-segment decoder passes the check, the alternative path with the largest path metric value among any sub-segment decoder is taken as the decoding path.
5. The polar code decoding method according to claim 4, characterized in that: The obtaining, according to the decoding path, a decoding result of the to-be-decoded polar code includes: Performing sub-segment transformation on the m decoding paths of the m sub-segment decoders to obtain m target decoding paths with a length of n; A target decoding path with a length of N is formed through m target decoding paths, and a decoding result of the polar code to be decoded is obtained after position permutation.
6. The polar code decoding method according to claim 3, characterized in that: According to the longitudinal path of the j-th longitudinal sub-segment that passes the check, ij Horizontal paths are screened and l ij or 2l ij There are several possible paths, including: If the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 0, then 2l ij Only bits with a value of 0 are retained in the horizontal path. ij Paths to be selected; If the value of the i-th bit in the longitudinal path of the j-th longitudinal sub-segment that passes the check is 1, then 2l ij Only bits with a value of 1 are retained in the horizontal path. ij Paths to be selected; If the value of the i-th bit in the longitudinal path of the j-th longitudinal subsegment that passes the check is 0 or 1, then 2l ij 21 bits with values of 0 or 1 are reserved in the horizontal path ij Paths to be chosen.
7. The polar code decoding method according to claim 3, characterized in that: The L of the j-th longitudinal sub-segment v The longitudinal paths are checked, and the longitudinal path of the j-th longitudinal sub-segment that passes the check is retained, including: For the j-th longitudinal sub-segment, L v A parity check or a cyclic redundancy check is performed on the longitudinal paths, and the longitudinal path of the jth longitudinal sub-segment that passes the check is retained.
8. The polar code decoding method according to claim 5, characterized in that: The sub-segment transformation is an exclusive-OR operation on the m decoding paths.
9. The polar code decoding method according to claim 3, characterized in that: The method further comprises: For the j-th longitudinal sub-segment, L v The vertical paths are checked, and when all the vertical paths fail the check, the decoding stops.
10. A polar code decoding device, characterized in that: include: a to-be-decoded polar code sequence acquisition module, configured to acquire a to-be-decoded polar code of length N, and divide the to-be-decoded polar code into m to-be-decoded sub-segments of length n, where N, m and n are integer powers of 2; A horizontal path determination module is used to calculate the occurrence probability of the decoded bit values of the serial elimination list SCL decoding and split the paths of the m sub-segments to be decoded through m sub-segment decoders, and obtain the horizontal paths after the splitting; A longitudinal sub-segment processing module, used for performing longitudinal sub-segment processing on the transverse path to obtain a plurality of paths to be selected, wherein the split transverse paths are firstly formed into corresponding longitudinal sub-segments, and then, according to the result of SCL decoding processing on the m sub-segments to be decoded, longitudinal path splitting is performed on each longitudinal sub-segment to obtain a plurality of paths to be selected; A transverse sub-segment processing module, configured to perform transverse sub-segment processing on the plurality of candidate paths, so as to retain a plurality of candidate paths with the largest path metric values from the plurality of candidate paths; A verification module, used to verify the multiple candidate paths to obtain a decoding path; A decoding result determining module is used to obtain a decoding result of the to-be-decoded polar code according to the decoding path.
11. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the polar code decoding method according to any one of claims 1 to 9 by executing the executable instructions.
12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the polar code decoding method according to any one of claims 1 to 9 is implemented.
Citation Information
Patent Citations
Polar code SCL decoding method, polar code SCL decoding device and electronic device
CN108462558A
Polarization code decoding apparatus and method
CN109004939A