Polar code decoding methods, devices, communication equipment, chips and chip modules
By constructing monotonic and bitonical sequences of path metric increments in polar code decoding, direct sorting reduces the number of comparisons and swaps in traditional methods, solves the problem of high computational overhead in traditional polar code decoding, and improves decoding efficiency and resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SPREADTRUM COMM (TIANJIN) INC
- Filing Date
- 2026-02-28
- Publication Date
- 2026-06-02
AI Technical Summary
Traditional polar code decoding techniques suffer from high computational overhead, resulting in low efficiency. In particular, during path expansion, it is necessary to select the optimal path from multiple paths, leading to high computational latency and resource consumption.
By obtaining the path metric increments under the same parent path in polar code decoding, an increment sequence is constructed. The increment sequence includes monotonic and bitonic sequences. The path metric increments are directly sorted according to the manually set ones, reducing the number of comparisons and swaps and reducing computational overhead.
It effectively reduces the computational overhead of polar code decoding, improves decoding efficiency, and reduces computational latency and resource consumption.
Smart Images

Figure CN122137404A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of wireless communication technology, and in particular to a polar code decoding method, apparatus, communication equipment, chip, and chip module. Background Technology
[0002] Polar codes are theoretically capable of reaching the Shannon limit for channel coding and have significant application value in systems such as 5G NR and satellite communication. Traditionally, polar code decoding typically employs the Successive Cancellation List (SCL) algorithm. This algorithm calculates a path metric (PM) for each possible decoding path and selects the most reliable path based on the PM ranking to complete the decoding. However, the SCL algorithm is a serial decoding algorithm, decoding 1 bit at a time, and subsequent decoding depends on the results of previous decoding steps, leading to a large number of iterations and low efficiency. To improve efficiency, researchers have proposed… An algorithm that can decode in one step. This algorithm reduces the number of iterations and improves decoding efficiency, but during path expansion, it needs to start from... Filtering from the path The optimal path is limited, but the computational cost is significant. Therefore, current polar code decoding techniques suffer from high computational overhead. Summary of the Invention
[0003] Therefore, it is necessary to provide a polar code decoding method, apparatus, communication equipment, chip, chip module, computer-readable storage medium, and computer program product that can reduce computational overhead in response to the above-mentioned technical problems.
[0004] Firstly, this application provides a polar code decoding method, including:
[0005] Obtain the path metric increment under the same parent path in polar code decoding;
[0006] Obtain the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence.
[0007] The decoding result of the polar code is determined based on the incremental sequence.
[0008] In one embodiment, determining the decoding result of the polar code decoding based on the increment sequence includes:
[0009] Based on the incremental sequence, determine the target path metric increment in the path metric increment;
[0010] Based on a predetermined correspondence, the decoding bits corresponding to each target path metric increment are obtained; the correspondence includes decoding bits corresponding to different path metric increments.
[0011] The decoding result of the polar code is obtained based on each of the decoding bits.
[0012] In one embodiment, before obtaining the path metric increment under the same parent path in polar code decoding, the method further includes:
[0013] Obtain the path metric increment corresponding to different bit indices;
[0014] Determine the encoded sequence corresponding to each bit index, and obtain the unencoded sequence corresponding to each bit index based on the encoded sequence;
[0015] The pre-encoded sequence is associated with the path metric increment based on the bit index to obtain the correspondence.
[0016] In one embodiment, obtaining the path metric increment corresponding to different bit indices includes:
[0017] Determine the approximate increment corresponding to each bit in the bit index;
[0018] Based on each of the approximate increments, the path metric increment corresponding to the bit index is obtained.
[0019] In one embodiment, obtaining the decoded bits corresponding to each target path metric increment according to a predetermined correspondence includes:
[0020] Based on the correspondence, determine the target pre-encoding sequence corresponding to the target path metric increment;
[0021] Based on the target pre-encoding sequence, the decoded bits corresponding to the target path metric increment are obtained.
[0022] In one embodiment, determining the target path metric increment in the path metric increments based on the incremental sequence includes:
[0023] The bitonic sequences in the increment sequence are compared and swapped to obtain the processed increment sequence.
[0024] Based on the pre-set number of paths, the target path metric increment is selected from the processed incremental sequence.
[0025] Secondly, this application also provides a polar code decoding apparatus, comprising:
[0026] The first acquisition module is used to acquire the path metric increment under the same parent path in polar code decoding;
[0027] The second acquisition module is used to acquire the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence.
[0028] The result output module is used to determine the decoding result of the polar code decoding based on the incremental sequence.
[0029] Thirdly, this application also provides a communication device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the method provided in the first aspect above.
[0030] Fourthly, this application also provides a chip including a processor and a communication interface, the processor being configured to cause the chip to perform the steps of the method provided in the first aspect above.
[0031] Fifthly, this application also provides a chip module, including a communication module, a power module, a storage module, and a chip, wherein:
[0032] The power module is used to provide power to the chip module;
[0033] The storage module is used to store data and instructions;
[0034] The communication module is used for internal communication within the chip module, or for communication between the chip module and external devices.
[0035] The chip is used to perform the steps of the method provided in the first aspect above.
[0036] In a sixth aspect, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method provided in the first aspect above.
[0037] In a seventh aspect, this application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method provided in the first aspect above.
[0038] The aforementioned polar code decoding method, apparatus, communication equipment, chip, chip module, computer-readable storage medium, and computer program product obtain the path metric increments under the same parent path in polar code decoding, and obtain an increment sequence obtained by sorting the path metric increments. The increment sequence contains sequence groups, and the path metric increments within a sequence group constitute a monotonic sequence. The path metric increments of two adjacent sequence groups together constitute a bitonic sequence. Based on the increment sequence, the decoding result of the polar code decoding is determined. In the sorting stage of polar code decoding, the manually set bitonic path metric increments can be directly sorted, avoiding the sorting of random path metric values in traditional methods. This reduces the number of comparisons and exchanges, and lowers the computational overhead of polar code decoding. Attached Figure Description
[0039] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0040] Figure 1 This is a schematic diagram of a traditional Bitonic algorithm 16-input 8-output fully sorted network;
[0041] Figure 2 This is a flowchart illustrating a polar code decoding method in one embodiment;
[0042] Figure 3 This is a simplified 16-input 8-output fully sorted network for m=2 in one embodiment;
[0043] Figure 4 This is a simplified 16-input 8-output fully sorted network for m=3 in one embodiment;
[0044] Figure 5 This is a flowchart illustrating the PM sorting process for polar code decoding in one embodiment;
[0045] Figure 6 This is a flowchart illustrating the polar code decoding method in another embodiment;
[0046] Figure 7 This is a structural block diagram of a polar code decoding device in one embodiment;
[0047] Figure 8 This is an internal structure diagram of a communication device in one embodiment;
[0048] Figure 9 This is an internal structure diagram of a chip module in one embodiment. Detailed Implementation
[0049] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0050] It should be noted that the terms "first," "second," etc., used in this application can be used to describe various elements, but these elements are not limited by these terms. These terms are only used to distinguish the first element from the second element. The terms "comprising" and "having," and any variations thereof, used in this application, are intended to cover non-exclusive inclusion. The term "multiple" used in this application refers to two or more. The term "and / or" used in this application refers to one of the embodiments, or any combination of multiple embodiments.
[0051] In polar code decoding, The algorithm can decode each time. The traditional SCL algorithm can be viewed as reducing the number of feedback iterations by using bits. The algorithm in The situation at that time. In the algorithm, PM can be approximated as:
[0052] ;
[0053] In this context, a new decoding PM can be represented by the sub-path PM increment and the parent node's historical PM. For the PM increment, This refers to the historical PM of the parent node. Among them, For current parallel processing Candidate value combinations for the bits to be decoded; For the front Group of parallel bits (per group) (number) of historical decoding results; Calculate the log-likelihood ratio (LLR) of the preceding nodes for PM; Basic matrix go through The Kronecker Product is generated to describe the encoding mapping relationship of polar codes; For the sign function, in At that time ,exist The time is 0.
[0054] The sorting process is more complex than the traditional SCL algorithm, requiring... Select from the paths Item, among which The list size is the width of the list. Complex sorting can lead to computational delays that limit throughput and increase resource consumption. Figure 1 This diagram illustrates the traditional Bitonic sorting algorithm. The 16 horizontal lines on the left represent the PM values of 16 paths under the same parent node, and the 8 horizontal lines on the right represent the 8 smaller PM values selected by the Bitonic sorting algorithm, corresponding to the 8 selected paths. (The arrows are also shown.) This indicates that the two PM values connected by the arrow are sorted in ascending order. This indicates that the two PM values connected by the arrow are sorted in descending order, where both ascending and descending sorting are achieved through Compare and Swap (CAS) operations.
[0055] In traditional techniques, 16 PM values can be randomly input into the sorting network. At time 0, comparisons and swaps can be used to group every 4 PM values into a bitone sequence, resulting in 4 bitone sequences. After bitone merging at times 1 and 2, every 8 PM values can be grouped into a bitone sequence, resulting in 2 bitone sequences. Then, at time 3, cross-half-zone comparisons can be performed, followed by bitone merging at times 4 and 5, resulting in every 16 PM values into a bitone sequence, resulting in 1 bitone sequence. At time 6, cross-half-zone comparisons can be performed on this bitone sequence, moving the 8 smaller PM values to the 8 horizontal lines below, thus selecting 8 paths with smaller PM values. Then, bitone merging can be used to sort the PM values of these 8 paths, resulting in 8 paths with PM values from smallest to largest. It can be seen that the traditional 16-input 8-output Bitonic full sorting requires 10 levels of CAS comparisons and 68 CAS units. Therefore, traditional polar code decoding techniques suffer from high computational overhead.
[0056] Based on the aforementioned traditional techniques, the polar code decoding method provided in this application obtains the path metric increments under the same parent path in polar code decoding, and obtains an increment sequence obtained by sorting the path metric increments. The increment sequence contains sequence groups, and the path metric increments within a sequence group constitute a monotonic sequence. The path metric increments of two adjacent sequence groups together constitute a bitonic sequence. Based on the increment sequence, the decoding result of the polar code is determined. In the sorting stage of polar code decoding, the manually set bitonic path metric increments can be directly sorted, avoiding the traditional method of sorting random path metric values. This reduces the number of comparisons and exchanges, and lowers the computational overhead of polar code decoding.
[0057] In one exemplary embodiment, such as Figure 2As shown, a polar code decoding method is provided. The example of applying this method to a terminal illustrates the concept. It is understood that this method can also be applied to base stations or chips / chip modules with data processing capabilities; no limitation is made here. In this embodiment, the method includes the following steps:
[0058] Step S102: Obtain the path metric increment under the same parent path in polar code decoding.
[0059] Here, the path metric increment refers to the PM increment, for example, in the aforementioned PM approximation formula. .
[0060] Optionally, during the polar code decoding process, the terminal can obtain multiple PM increments under the same parent path, for example, obtain the increments under the parent path. PM increment.
[0061] Step S104: Obtain the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments within a sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence.
[0062] Incremental sequences refer to sequences obtained by sorting PM increments. Sequence groups can be groups composed of several PM increments from the incremental sequences. Monotonic sequences are sequences that are monotonically increasing or monotonically decreasing. Bitonic sequences are sequences that first increase and then decrease, or first decrease and then increase.
[0063] Optionally, after obtaining multiple PM increments under the same parent path, the order of the multiple PM increments can be manually set so that the resulting increment sequence contains at least two sequence groups, and the PM increments within the same sequence group form a monotonic sequence, while the PM increments of two adjacent sequence groups together form a bitonic sequence. This increment sequence is then input into the terminal, and the terminal obtains the increment sequence accordingly. It is understood that in practical applications, the increment sequence can also be obtained by automatic computer sorting, and this is not limited here.
[0064] For example, let's say , Then PM can be represented as:
[0065] ;
[0066] PM increment Taking a portion as an example, consider its truth table, as shown in Table 1.
[0067]
[0068] According to Table 1, if Sign bit and encoded bits If the XOR result is 1, then The result is ,because If the number is always non-negative, you can remove the sign bit and use its absolute value. Replace; otherwise, if Sign bit and encoded bits If the XOR result is 0, then The result is 0.
[0069] Define sequence ,in It consists of 4 LLR sign bits. The encoded sequence, If it is the corresponding bit XOR, then Each combination corresponds to an approximate calculation of the PM increment, as shown in Table 2.
[0070]
[0071] As you can see, The PM increments corresponding to different combinations have a clear magnitude relationship, therefore, it is possible to analyze the PM increments under the same parent path. The PM increments can be sorted. For example, the 16 PM increments under the same parent path can be grouped into groups of 4 and arranged into an increment sequence of monotonically decreasing, monotonically increasing, monotonically decreasing, and monotonically increasing. This sequence contains 2 bitone sequences. Alternatively, the 16 PM increments under the same parent path can be grouped into groups of 8 and arranged into an increment sequence of monotonically decreasing and monotonically increasing. This sequence contains only 1 bitone sequence.
[0072] Step S106: Determine the decoding result of the polar code based on the increment sequence.
[0073] Optionally, the terminal can directly use the incremental sequence obtained from the sorting to perform subsequent Bitonic sorting, resulting in a PM increment with a smaller increment. There are several paths, and since these paths correspond to the same parent path and have the same historical PM of the parent node, the PM values of these paths are also relatively small. Polar code decoding can be performed based on these paths to obtain the decoding result. For example, if the 16 PM increments under the same parent path are grouped into groups of 4 and arranged into an increment sequence of monotonically decreasing, monotonically increasing, monotonically decreasing, and monotonically increasing, and this increment sequence contains 2 bitone sequences, then execution can directly start from time sequence 3 of the traditional Bitonic sorting algorithm, such as... Figure 3 As shown, eight paths with smaller PM increments are selected, and these eight paths also have smaller PM values. If the 16 PM increments under the same parent path are grouped into sets of eight and arranged into a sequence of monotonically decreasing and monotonically increasing increments, and this increment sequence contains one bitone sequence, then execution can directly start from time sequence 6 of the traditional Bitonic sorting algorithm, as shown. Figure 4As shown, we can also select 8 paths with smaller PM increments, and correspondingly, these 8 paths also have smaller PM values.
[0074] The aforementioned polar code decoding method obtains the path metric increments under the same parent path in polar code decoding, and then obtains an increment sequence by sorting the path metric increments. The increment sequence contains sequence groups, and the path metric increments within a sequence group constitute a monotonic sequence. The path metric increments of two adjacent sequence groups together constitute a bitonic sequence. Based on the increment sequence, the decoding result of the polar code is determined. In the sorting stage of polar code decoding, the manually set bitonic path metric increments can be directly sorted, avoiding the sorting of random path metric values in traditional methods. This reduces the number of comparisons and swaps, and lowers the computational overhead of polar code decoding.
[0075] In an exemplary embodiment, step S106 may specifically include: determining the target path metric increment in the path metric increment based on the increment sequence; obtaining the decoding bits corresponding to each target path metric increment according to a predetermined correspondence; the correspondence includes the decoding bits corresponding to different path metric increments; and obtaining the decoding result of polar code decoding according to each decoding bit.
[0076] The target path metric increment refers to a specified number of path metric increments selected from the increment sequence. The decoding bits can be several bits from polar code decoding.
[0077] Optionally, the terminal can predetermine the decoding bits corresponding to different path metric increments to obtain the correspondence between path metric increments and decoding bits. The terminal can also perform Bitonic sorting on the increment sequence, select several relatively small path metric increments from the increment sequence to obtain the target path metric increment, and use the decoding bits corresponding to the target path metric increment as the decoding result of polar code decoding according to the predetermined correspondence.
[0078] For example, in a known sequence and LLR sign bit In this case, it can be done according to the formula The encoded sequence is obtained by bitwise XOR. ,get and The correspondence, the encoded sequence is known. With the sequence before encoding The mapping relationship is Then the possible decoded values can be obtained. and The correspondence, and thus obtain and The correspondence is then determined according to Table 2. The correspondence between the PM increment and the possible decoding value can be derived. The correspondence between PM increments and PM values. Based on this, according to... Figure 3 or Figure 4 After the sorting network filters out the 8 PM increments arranged in ascending order, it can be based on... The correspondence between PM increments directly determines the corresponding values for the eight PM increments. The polar code decoding result is obtained.
[0079] In this embodiment, the target path metric increment is determined based on the increment sequence. According to the pre-determined correspondence, the decoding bits corresponding to each target path metric increment are obtained. Based on each decoding bit, the decoding result of the polar code is obtained. By pre-determining the decoding bits corresponding to different PM increments, after filtering out a small specified number of PM increments, the corresponding decoding bits can be obtained directly from the filtered PM increments, which improves the efficiency of polar code decoding.
[0080] In an exemplary embodiment, prior to step S102, the method may further include: obtaining the path metric increment corresponding to different bit indices; determining the encoded sequence corresponding to each bit index, and obtaining the unencoded sequence corresponding to each bit index based on the encoded sequence; and associating the unencoded sequence with the path metric increment based on the bit index to obtain the correspondence.
[0081] Here, the bit index refers to the pre-set index value for different PM increments, which can be represented by a binary sequence. The encoded sequence can be the output codeword sequence of the polar code. The unencoded sequence can be the input bit sequence of the polar code.
[0082] Alternatively, the bit index can be predefined manually. And index the bits Different bit indices are obtained by correlating with PM increments. The corresponding PM increments are shown in Table 2 of the aforementioned embodiments. (Bit indexing) The correlation between PM increment and other parameters is input into the terminal, which can then use the formula... , index the known bits With LLR sign bit Bitwise XOR operation yields the encoded sequence. and according to the formula Perform mapping to obtain the encoded sequence. Corresponding pre-encoding sequence This is how different bit indices are obtained. Corresponding pre-encoding sequence In cases where different bit indices are known The corresponding PM increment, and different bit indices Corresponding pre-encoding sequence In this case, bit indexing can be used. Sequence before encoding Correlating with PM increments yields the pre-encoded sequence. The correspondence between PM increments, where the pre-encoded sequence This can be understood as the possible decoded values for polar code decoding.
[0083] In this embodiment, by obtaining the path metric increment corresponding to different bit indices, the encoded sequence corresponding to each bit index is determined. Based on the encoded sequence, the pre-encoded sequence corresponding to each bit index is obtained. Based on the bit index, the pre-encoded sequence is associated with the path metric increment to obtain the correspondence. This allows for the pre-determination of possible decoding values for polar codes corresponding to different PM increments, facilitating direct decoding based on the PM increment and improving decoding efficiency.
[0084] In an exemplary embodiment, the step of obtaining the path metric increment corresponding to different bit indices may specifically include: determining the approximate increment corresponding to each bit in the bit index; and obtaining the path metric increment corresponding to the bit index based on each approximate increment.
[0085] Here, the approximate increment refers to the approximate value of the PM increment corresponding to a bit in the bit index.
[0086] Optionally, in PM increments Taking a portion as an example, we can obtain the truth table as shown in Table 1. Therefore, if Sign bit and encoded bits If the XOR result is 1, then The result is ,because Always non-negative, can be represented by absolute value. The substitute, that is, the approximate value of PM increment, is ;like Sign bit and encoded bits If the XOR result is 0, then The result is 0, meaning the approximate value of the PM increment is 0. Similarly, the bit index... The Middle The approximate increment corresponding to each bit is Bit index The approximate increments of all bits are summed to form the bit index. The corresponding PM increments can be used to obtain the bit indices shown in Table 2. The correspondence between PM increments and PM values.
[0087] In this embodiment, by determining the approximate increment corresponding to each bit in the bit index, and obtaining the path metric increment corresponding to the bit index based on each approximate increment, different PM increments can be associated with the bit index. This allows the decoding value corresponding to the PM increment to be directly derived based on the bit index, thereby improving decoding efficiency.
[0088] In an exemplary embodiment, the step of obtaining the decoding bits corresponding to each target path metric increment based on a predetermined correspondence may specifically include: determining the target pre-encoding sequence corresponding to the target path metric increment based on the correspondence; and obtaining the decoding bits corresponding to the target path metric increment based on the target pre-encoding sequence.
[0089] Among them, the target pre-encoding sequence refers to the pre-encoding sequence corresponding to the target path metric increment.
[0090] Optionally, by using bitonic sorting, a specified number of path metric increments are selected from the increment sequence to obtain the target path metric increment. After obtaining the target path metric increment, the terminal can directly determine the pre-encoded sequence corresponding to the target path metric increment based on a pre-determined correspondence between the pre-encoded sequence and the path metric increment, thus obtaining the target pre-encoded sequence. This target pre-encoded sequence is then used as the decoding bit corresponding to the target path metric increment. For example, given the pre-encoded sequence... The correspondence between PM increment and PM increment is based on Figure 3 or Figure 4 After the sorting network filters out the 8 smaller PM increments, the sequence before encoding can be directly used. The correspondence between PM increments was used to determine the pre-encoded sequence for each PM increment. These pre-encoded sequences As decoding bits.
[0091] In this embodiment, by determining the target pre-encoding sequence corresponding to the target path metric increment based on the correspondence, and obtaining the decoding bits corresponding to the target path metric increment based on the target pre-encoding sequence, the decoding result can be directly determined based on the Bitonic sorting result, thereby improving decoding efficiency.
[0092] In an exemplary embodiment, the step of determining the target path metric increment in the path metric increment based on the incremental sequence may specifically include: comparing and exchanging the bitonic sequences in the incremental sequence to obtain the processed incremental sequence; and selecting the target path metric increment from the processed incremental sequence according to the preset number of paths.
[0093] Here, the processed increment sequence refers to the increment sequence after comparison and swapping. The number of paths refers to the number of paths that need to be selected from multiple paths; for example, in polar code decoding, the number of paths that need to be selected from multiple paths is... Filter from the path Paths, among which This represents the number of paths.
[0094] Optionally, the terminal can perform a comparison-swapping operation on each bitone sequence in the increment sequence, sort the path metric increments in the increment sequence to obtain a processed increment sequence. Then, according to a pre-set number of paths, it can extract several relatively small path metric increments from the processed increment sequence and sort these path metric increments in ascending order to obtain the target path metric increment. Figure 3 Taking this as an example, without the need for bitone merging in time series 1 and 2, every 8 PM increments can be directly grouped into one bitone sequence, resulting in an increment sequence containing two bitone sequences. This increment sequence is then input into the sorting network. In time series 3, cross-half-zone comparisons can be performed on each bitone sequence. After bitone merging in time series 4 and 5, an increment sequence containing one bitone sequence is obtained. In time series 6, cross-half-zone comparisons can be performed on this increment sequence, moving the 8 smaller PM increments to the lower 8 positions to obtain the processed increment sequence. Then, based on the pre-set number of paths (8), the PM increments in the lower 8 positions can be selected. The PM increments in the lower 8 positions are then sorted by bitone merging to obtain the 8 PM increments arranged from smallest to largest, which are the target PM increments.
[0095] In this embodiment, the bitonic sequence in the increment sequence is compared and exchanged to obtain the processed increment sequence. According to the preset number of paths, the target path metric increment is selected from the processed increment sequence. A specified number of relatively small PM increments can be selected by sorting. Since the historical PM values of the parent nodes corresponding to each PM increment are equal, the current node PM values corresponding to these PM increments are also small. The selected target path can be obtained directly based on these PM increments, thereby improving the decoding efficiency.
[0096] To facilitate a deeper understanding of the embodiments of this application by those skilled in the art, a specific example will be used for illustration below.
[0097] To reduce the time and space complexity of the path metric sorting process in polar code decoders, decrease latency and implementation resources, and improve the throughput of polar code decoders, this application proposes a polar code decoding PM sorting method. This method uses path metric indexing to characterize the size relationship between different path metric values. It can utilize the inherent relationship between the sizes of different decoded values to artificially construct the order of path metric values before sorting logic, reducing unnecessary sorting. The artificially constructed PM arrangement order conforms to the PM arrangement order in the intermediate calculation process of bitonic sorting.
[0098] This application is in Based on the algorithm, the inherent difference in the size of PMs in different decoding stages is utilized to reduce unnecessary sorting and simplify the Bitonic algorithm in the sorting stage. This reduces both the number of CAS stages and the number of CAS operations. The specific implementation method of this application is as follows:
[0099] by For example, if the list width is 8, PM can be represented as:
[0100] ;
[0101] PM increment Taking a portion as an example, consider its truth table, as shown in Table 1 of the aforementioned embodiments.
[0102] If can be obtained Sign bit and encoded bits If the XOR result is 1, then The result is And it is always a non-negative number; otherwise, it is 0. For non-negative numbers, the sign bit can be removed and the absolute value used. replace.
[0103] Define sequence ,in It consists of 4 LLR sign bits. The encoded sequence, If it is the corresponding bit XOR, then Each combination corresponds to an approximate calculation of the PM increment, as shown in Table 2 of the aforementioned embodiments.
[0104] The PM increments corresponding to different combinations show a clear magnitude relationship. Before inputting into the sorting module, according to... Arrange the PMs according to the known order, and according to... Reverse deduction This allows us to obtain the binding relationship between PM and the decoded value, and then select the minimum 8 paths of PM by sorting PM.
[0105] In one exemplary embodiment, such as Figure 5 As shown, the above polar code decoding PM sorting method may include the following steps:
[0106] Step 1: Group the PM increments into sets of four and place them in a bitonic order at the input of the sorting module. This step ensures the order of PMs by controlling the arrangement of the sequence P.
[0107] The following is an example of a PM exhibiting a monotonically decreasing, monotonically increasing, monotonically decreasing, monotonically increasing sequence, as shown in Table 3.
[0108]
[0109] This example uses a CAS (Compare-and-Swap) mechanism to determine the size of PM corresponding to 10 and 01.
[0110] Step 2: According to the formula According to the known sequence and LLR sign bit The sequence is obtained by bitwise XOR. .
[0111] Step 3: Based on the encoded sequence ,according to Mapping yields the sequence before encoding This leads to the possible decoded values. The binding relationship with PM, the encoded sequence With the sequence before encoding The mapping relationship between them is shown in Table 4.
[0112]
[0113] Step 4: Simplify the traditional Bitonic sorting structure. Starting from the middle node of the known order of 4 adjacent PMs, compare and swap PMs to obtain the sub-paths corresponding to the 8 smallest PMs in each path, such as... Figure 3 As shown.
[0114] Step 5: Based on the PM increment calculated in Step 4, add the parent node's... Update the PM value to the full path.
[0115] Step 6: Complete the PM sorting of the remaining paths.
[0116] The traditional 16-input 8-output Bitonic full sorting algorithm requires 10 levels of CAS comparisons and 68 CAS units. In the implementation example of this application, a single CAS is used for LLR absolute value comparison, which reduces the PM sorting stage by 3 levels of CAS, accounting for approximately 30% of the traditional Bitonic sorting network, and reduces the number of CAS units by 23, accounting for approximately 33.8% of the Bitonic sorting network.
[0117] refer to Figure 4 If we go further That is, when there are 8 PMs in a group, using 6 CAS to compare LLR can reduce the PM sorting stage by 6 CAS levels, reducing latency by 60%, reducing CAS by 42, and reducing resource usage by 61.7%. The benefits are more considerable. It is understandable that different... The corresponding benefits are not entirely the same. The embodiments in this application are merely examples of the PM sorting method for polar code decoding and do not limit the above parameters.
[0118] The above methods can be implemented in different devices or components such as chips, chip modules, terminals, and base stations. They can be implemented using ASICs or software.
[0119] In one exemplary embodiment, such as Figure 6 As shown, a polar code decoding method is provided, which includes the following steps:
[0120] Step S201: Obtain the path metric increment corresponding to different bit indices;
[0121] Step S202: Determine the encoded sequence corresponding to each bit index, obtain the unencoded sequence corresponding to each bit index based on the encoded sequence, and associate the unencoded sequence with the path metric increment based on the bit index to obtain the correspondence between the unencoded sequence and the path metric increment.
[0122] Step S203: Obtain the path metric increment under the same parent path in polar code decoding;
[0123] Step S204: Obtain the increment sequence obtained by sorting the path metric increments under the same parent path; the increment sequence contains sequence groups, the path metric increments within the sequence group form a monotonic sequence, and the path metric increments of two adjacent sequence groups together form a bitonic sequence.
[0124] Step S205: Compare and exchange the bitonic sequences in the increment sequence to obtain the processed increment sequence. Based on the preset number of paths, select the target path metric increment from the processed increment sequence.
[0125] Step S206: Based on the correspondence, determine the target pre-encoding sequence corresponding to the target path metric increment, and obtain the decoding bits corresponding to the target path metric increment based on the target pre-encoding sequence.
[0126] Step S207: Obtain the decoding result of the polar code based on each decoding bit.
[0127] Optionally, the terminal can pre-obtain different bit indices as shown in Table 2, which are set manually. The corresponding PM increment, according to the formula , index the known bits With LLR sign bit Bitwise XOR operation yields the encoded sequence. and according to the formula Perform mapping to obtain the encoded sequence. Corresponding pre-encoding sequence This allows the use of bit indexes. Sequence before encoding Correlating with PM increments yields the pre-encoded sequence. The correspondence between PM increments and the target PM increments. During polar code decoding, the terminal can obtain the PM increments under the same parent path and obtain the increment sequence obtained by manually sorting these PM increments. The increment sequence can contain at least two sequence groups. The PM increments within the same sequence group form a monotonic sequence, and the PM increments of two adjacent sequence groups together form a bitonic sequence. The terminal can directly perform comparison and exchange operations on the bitonic sequences in the increment sequence to sort the PM increments in the increment sequence. Then, it can extract several relatively small PM increments from the top of the processed increment sequence, sort these PM increments in ascending order, and obtain the target PM increment. The terminal can then use the pre-encoding sequence... The correspondence between PM increments is used to determine the pre-encoded sequence for each target PM increment. , before encoding the sequence As decoding bits, the decoding result of polar code decoding is obtained based on the decoding bits of each target PM increment.
[0128] The aforementioned polar code decoding method obtains the path metric increments under the same parent path in polar code decoding, and then obtains an increment sequence by sorting the path metric increments. The increment sequence contains sequence groups, and the path metric increments within a sequence group constitute a monotonic sequence. The path metric increments of two adjacent sequence groups together constitute a bitonic sequence. Based on the increment sequence, the decoding result of the polar code is determined. In the sorting stage of polar code decoding, the manually set bitonic path metric increments can be directly sorted, avoiding the sorting of random path metric values in traditional methods. This reduces the number of comparisons and swaps, and lowers the computational overhead of polar code decoding.
[0129] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps. It is understood that the steps in different embodiments can be freely combined as needed, and all non-contradictory solutions formed by such combinations are within the scope of protection of this application.
[0130] Based on the same inventive concept, this application also provides a polar code decoding apparatus for implementing the polar code decoding method described above. This apparatus can be applied to or integrated into a chip or chip module, for example. The solution provided by this apparatus is similar to the implementation scheme described in the above method; therefore, the specific limitations in one or more polar code decoding apparatus embodiments provided below can be found in the limitations of the polar code decoding method described above, and will not be repeated here.
[0131] In one exemplary embodiment, such as Figure 7 As shown, a polar code decoding device is provided, comprising: a first acquisition module 302, a second acquisition module 304, and a result output module 306, wherein:
[0132] The first acquisition module 302 is used to acquire the path metric increment under the same parent path in polar code decoding;
[0133] The second acquisition module 304 is used to acquire the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence.
[0134] The result output module 306 is used to determine the decoding result of the polar code decoding based on the incremental sequence.
[0135] In an exemplary embodiment, the result output module 306 is further configured to determine the target path metric increment in the path metric increment based on the increment sequence; obtain the decoding bits corresponding to each target path metric increment according to a predetermined correspondence; the correspondence includes decoding bits corresponding to different path metric increments; and obtain the decoding result of the polar code decoding according to each decoding bit.
[0136] In an exemplary embodiment, the polar code decoding apparatus further includes a relationship determination module, configured to obtain path metric increments corresponding to different bit indices; determine the encoded sequence corresponding to each bit index; obtain the unencoded sequence corresponding to each bit index based on the encoded sequence; and associate the unencoded sequence with the path metric increment based on the bit index to obtain the correspondence.
[0137] In an exemplary embodiment, the relationship determination module described above is further configured to determine the approximate increment corresponding to each bit in the bit index; and to obtain the path metric increment corresponding to the bit index based on each approximate increment.
[0138] In an exemplary embodiment, the result output module 306 is further configured to determine the target pre-encoding sequence corresponding to the target path metric increment based on the correspondence; and to obtain the decoded bits corresponding to the target path metric increment based on the target pre-encoding sequence.
[0139] In an exemplary embodiment, the result output module 306 is further configured to compare and exchange the bitonic sequences in the increment sequence to obtain the processed increment sequence; and select the target path metric increment from the processed increment sequence according to the preset number of paths.
[0140] Regarding the modules / units included in the various devices and products described in the above embodiments, they can be software modules / units, hardware modules / units, or a combination of both. For example, for various devices and products applied to or integrated into a chip, all of their modules / units can be implemented using hardware methods such as circuits, or at least some modules / units can be implemented using software programs that run on a processor integrated within the chip, while the remaining (if any) modules / units can be implemented using hardware methods such as circuits; for various devices and products applied to or integrated into a chip module, all of their modules / units can be implemented using hardware methods such as circuits, and different modules / units can be located in the same component (e.g., chip, circuit module, etc.) or different components of the chip module, or at least some modules / units can be implemented using hardware methods such as circuits. The components can be implemented using software programs that run on the processor integrated within the chip module. The remaining (if any) modules / units can be implemented using hardware methods such as circuits. For various devices and products applied to or integrated into the terminal, each of its components / units can be implemented using hardware methods such as circuits. Different modules / units can be located in the same component (e.g., chip, circuit module, etc.) or in different components within the terminal. Alternatively, at least some modules / units can be implemented using software programs that run on the processor integrated within the terminal, while the remaining (if any) modules / units can be implemented using hardware methods such as circuits.
[0141] In one exemplary embodiment, a communication device is provided, which may be a terminal, and its internal structure diagram may be as follows. Figure 8As shown, the communication device includes a processor, memory, input / output interface, communication interface, display unit, and input device. The processor, memory, and input / output interface are connected via a system bus, and the communication interface, display unit, and input device are also connected to the system bus via the input / output interface. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The input / output interface is used for exchanging information between the processor and external devices. The communication interface is used for wired or wireless communication with external terminals; wireless communication can be achieved through Wi-Fi, mobile cellular networks, Near Field Communication (NFC), or other technologies. When the computer program is executed by the processor, it implements a polar code decoding method. The display unit is used to form a visually visible image and can be a display screen, projection device, or virtual reality imaging device. The display screen can be an LCD screen or an e-ink screen. The input device of the communication device can be a touch layer covering the display screen, or buttons, trackballs, or touchpads set on the casing of the communication device, or external keyboards, touchpads, or mice, etc.
[0142] Those skilled in the art will understand that Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the communication device to which the present application is applied. Specific communication devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0143] In one exemplary embodiment, a communication device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above-described method embodiments.
[0144] Based on the same inventive concept, this application also provides a chip, including a processor and a communication interface; the communication interface is used to receive or send data; the processor is configured to cause the chip to perform the following steps:
[0145] Obtain the path metric increment under the same parent path in polar code decoding;
[0146] Obtain the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence.
[0147] The decoding result of the polar code is determined based on the incremental sequence.
[0148] In one embodiment, the processor is configured to cause the chip to perform the following steps:
[0149] Based on the incremental sequence, determine the target path metric increment in the path metric increment;
[0150] Based on a predetermined correspondence, the decoding bits corresponding to each target path metric increment are obtained; the correspondence includes decoding bits corresponding to different path metric increments.
[0151] The decoding result of the polar code is obtained based on each of the decoding bits.
[0152] In one embodiment, the processor is configured to cause the chip to perform the following steps:
[0153] Obtain the path metric increment corresponding to different bit indices;
[0154] Determine the encoded sequence corresponding to each bit index, and obtain the unencoded sequence corresponding to each bit index based on the encoded sequence;
[0155] The pre-encoded sequence is associated with the path metric increment based on the bit index to obtain the correspondence.
[0156] In one embodiment, the processor is configured to cause the chip to perform the following steps:
[0157] Determine the approximate increment corresponding to each bit in the bit index;
[0158] Based on each of the approximate increments, the path metric increment corresponding to the bit index is obtained.
[0159] In one embodiment, the processor is configured to cause the chip to perform the following steps:
[0160] Based on the correspondence, determine the target pre-encoding sequence corresponding to the target path metric increment;
[0161] Based on the target pre-encoding sequence, the decoded bits corresponding to the target path metric increment are obtained.
[0162] In one embodiment, the processor is configured to cause the chip to perform the following steps:
[0163] The bitonic sequences in the increment sequence are compared and swapped to obtain the processed increment sequence.
[0164] Based on the pre-set number of paths, the target path metric increment is selected from the processed incremental sequence.
[0165] It is understood that the chip involved in the embodiments of this application may be a field-programmable gate array (FPGA), may include an application-specific integrated circuit (ASIC), may be a system on chip (SoC), may be a central processor unit (CPU), may be a network processor (NP), may be a digital signal processor (DSP), may be a microcontroller unit (MCU), may be a programmable logic device (PLD), or other integrated chips, etc.
[0166] Based on the same inventive concept, this application also provides a chip module, such as... Figure 9 As shown, the chip module includes a communication module, a power module, a storage module, and a chip. Among them:
[0167] The power module is used to provide power to the chip module; the storage module is used to store data and instructions; the communication module is used for internal communication within the chip module, or for communication between the chip module and external devices; this chip corresponds to the chip in the above chip embodiment.
[0168] The implementation method of this chip module can be found in the relevant content of the above chip embodiment, and will not be repeated here.
[0169] In one exemplary embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps in the above-described method embodiments.
[0170] In one exemplary embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above-described method embodiments.
[0171] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.
[0172] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.
[0173] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0174] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A polar code decoding method, characterized in that, The method includes: Obtain the path metric increment under the same parent path in polar code decoding; Obtain the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence. The decoding result of the polar code is determined based on the incremental sequence.
2. The method according to claim 1, characterized in that, Determining the decoding result of the polar code based on the incremental sequence includes: Based on the incremental sequence, determine the target path metric increment in the path metric increment; Based on a predetermined correspondence, the decoding bits corresponding to each target path metric increment are obtained; the correspondence includes decoding bits corresponding to different path metric increments. The decoding result of the polar code is obtained based on each of the decoding bits.
3. The method according to claim 2, characterized in that, Before obtaining the path metric increment under the same parent path in polar code decoding, the method further includes: Obtain the path metric increment corresponding to different bit indices; Determine the encoded sequence corresponding to each bit index, and obtain the unencoded sequence corresponding to each bit index based on the encoded sequence; The pre-encoded sequence is associated with the path metric increment based on the bit index to obtain the correspondence.
4. The method according to claim 3, characterized in that, The step of obtaining the path metric increment corresponding to different bit indices includes: Determine the approximate increment corresponding to each bit in the bit index; Based on each of the approximate increments, the path metric increment corresponding to the bit index is obtained.
5. The method according to claim 2, characterized in that, The step of obtaining the decoded bits corresponding to each target path metric increment based on a predetermined correspondence includes: Based on the correspondence, determine the target pre-encoding sequence corresponding to the target path metric increment; Based on the target pre-encoding sequence, the decoded bits corresponding to the target path metric increment are obtained.
6. The method according to claim 2, characterized in that, The step of determining the target path metric increment in the path metric increment based on the incremental sequence includes: The bitonic sequences in the increment sequence are compared and swapped to obtain the processed increment sequence. Based on the pre-set number of paths, the target path metric increment is selected from the processed incremental sequence.
7. A polar code decoding device, characterized in that, The device includes: The first acquisition module is used to acquire the path metric increment under the same parent path in polar code decoding; The second acquisition module is used to acquire the increment sequence obtained by sorting the path metric increments; the increment sequence contains sequence groups, the path metric increments in the sequence group constitute a monotonic sequence, and the path metric increments of two adjacent sequence groups together constitute a bitonic sequence. The result output module is used to determine the decoding result of the polar code decoding based on the incremental sequence.
8. A communication device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.
9. A chip, characterized in that, The device includes a processor and a communication interface, wherein the processor is configured to cause the chip to perform the steps of the method described in any one of claims 1 to 6.
10. A chip module, characterized in that, This includes communication modules, power modules, storage modules, and chips, among which: The power module is used to provide power to the chip module; The storage module is used to store data and instructions; The communication module is used for internal communication within the chip module, or for communication between the chip module and external devices. The chip is used to perform the steps of the method according to any one of claims 1 to 6.