Decoding method and decoding device for polar codes
By running multiple SC decoders or CA-SCL (smaller L) decoders in parallel, and combining P polar codewords for symbol processing and CRC verification, the performance of polar code decoding algorithms in short to medium code lengths is solved, resulting in reduced bit error rate and decoding delay, and improved decoder throughput.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2020-03-30
- Publication Date
- 2026-07-03
AI Technical Summary
Existing polar code decoding algorithms do not perform well with short to medium code lengths. In particular, the CRC-assisted SCL decoding algorithm has a high error rate and a large decoding delay, which affects the decoder's throughput.
Multiple SC decoders or CA-SCL (smaller L) decoders are run in parallel. Symbol processing and CRC verification are performed by combining P polar codewords. The path that passes the CRC verification or the path with the best metric value is selected as the decoding result.
It improves decoding performance, reduces the error rate and decoding latency, and increases the decoder's throughput.
Smart Images

Figure CN113472360B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of channel coding, and more specifically, to a method and apparatus for decoding polar codes. Background Technology
[0002] Polar codes, as the only channel coding technique theoretically proven to reach the Shannon limit and possessing practical linear complexity encoding and decoding capabilities, have been selected as the coding scheme for the control channel of the 5G communication system. Successive cancellation (SC) decoding is the most basic decoding algorithm for polar codes. It achieves good asymptotic performance when the code length approaches infinity. However, its performance is not ideal for medium and short code lengths. To improve the decoding performance of SC, the successive cancellation list (SCL) decoding algorithm was proposed. The SCL decoding algorithm introduces a breadth-first search strategy into the code tree search mechanism, maintaining a small list of candidate paths for each decoding decision. Finally, the path with the highest likelihood probability is selected as the decision path from the candidate path list.
[0003] Cyclic redundancy check (CRC) is a channel error detection technique that has been widely used in practical digital communication systems. For polar codes, a set of candidate paths is obtained at the end of SCL decoding, which can be jointly detected and decoded with CRC with very low complexity. The candidate sequence that can pass the CRC detection is selected as the decoder output sequence, thereby improving the error correction capability of the decoding algorithm. Therefore, the CRC-aided SCL (CA-SCL) decoding algorithm was proposed.
[0004] However, the decoding performance of the CA-SCL decoding algorithm is affected by the list size L. When L is small, the bit error rate is high, and the decoding performance is still not ideal. Furthermore, according to the CA-SCL decoding algorithm, the decoder needs to sort 2L metrics for each bit decoded. If L is increased to improve decoding performance, the size of the sorting operation increases rapidly, which will introduce decoding latency and directly affect the decoder's throughput. Therefore, there is an urgent need to provide a decoding method to improve decoding performance. Summary of the Invention
[0005] In view of this, this application provides a decoding method and decoding apparatus for polar codes, which helps to improve decoding performance.
[0006] In a first aspect, a method for decoding polar codes is provided, comprising: acquiring P polar codewords of an information bit sequence; performing symbol processing on a first channel received value of the polar code according to the P polar codewords to obtain a second channel received value; decoding the second channel received value to obtain multiple candidate paths; performing cyclic redundancy check (CRC) verification on the multiple candidate paths, and outputting the first candidate path as the decoding result.
[0007] In this embodiment, the decoder first acquires P polar codewords (also known as error patterns), then uses the P polar codewords to perform symbol processing on the codeword to be decoded (e.g., the first channel received value) to obtain the second channel received value, and decodes the second channel received value to obtain multiple candidate paths. Here, this application can run multiple SC decoders or multiple CA-SCL (smaller L) decoders in parallel, achieving better decoding performance compared to the SC decoding scheme, and also solving the delay problem caused by the CA-SCL (larger L) decoder needing to sort too many metric values.
[0008] If one of the multiple candidate paths passes the CRC check, then the first candidate path is the path that passes the CRC check; if two or more of the multiple candidate paths pass the CRC check, then the first candidate path is the path with the best path metric value among the paths that pass the CRC check.
[0009] The decoding end can obtain P-bar polar codewords either online or offline.
[0010] One possible implementation involves obtaining P polar code codes, including: performing Serial Cancellation List (SCL) decoding on the channel received value of the information bit sequence to obtain L candidate paths of the information bit sequence; encoding the L candidate paths to obtain L polar code codes; and selecting P polar code codes from the L polar code codes, where P is less than L.
[0011] Optionally, the L candidate paths are represented as follows: The L polar codewords are represented as follows: Wherein, the L polar codewords satisfy the following formula:
[0012]
[0013] in, Let n represent the Kronecker product, where n = log₂N and N represents the code length.
[0014] As one possible implementation, selecting P polar codewords from the L polar codewords includes:
[0015] Calculate the code weight of each of the L polar code codes, and select the P polar code codes with the smallest code weight.
[0016] As one possible implementation, the step of symbol processing the first channel received value based on the P polar codewords to obtain the second channel received value includes: calculating the metric value of each polar codeword in the P polar codewords; determining D polar codewords, where D≤P, based on the metric values of the P polar codewords; and using the D polar codewords to perform sign flipping on the first channel received value to obtain the second channel received value.
[0017] As one possible implementation, D is represented as: D = M*k, M ∈ N * ,k∈N * The first channel received value is represented as Y; wherein, the second channel received value is obtained by sign-flipping the first channel received value using the D polar codewords, including: taking M polar codewords from the D polar codewords. The sign of Y is flipped to obtain M sets of channel received values {Y0, Y1, ..., Y}. M-1},in,
[0018] As one possible implementation, performing Cyclic Redundancy Check (CRC) verification on the multiple candidate paths and outputting a first candidate path as the decoding result includes: if one of the multiple candidate paths passes the CRC verification, then the first candidate path is the path that passes the CRC verification; if two or more of the multiple candidate paths pass the CRC verification, then the first candidate path is the path with the best path metric value among the paths that pass the CRC verification.
[0019] Secondly, this application provides a polar code decoding apparatus, which has the function of implementing the method in the first aspect or any possible implementation thereof. The function can be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above-described function.
[0020] Thirdly, this application provides a decoder including one or more processors coupled to one or more memories. The one or more memories are used to store a computer program, and the one or more processors are used to invoke and run the computer program stored in the one or more memories to perform the methods of the first aspect or any possible implementation thereof.
[0021] Optionally, the chip can be a channel decoder.
[0022] Fourthly, this application provides a chip including one or more processors. The one or more processors are configured to read and execute a computer program stored in one or more memories to perform the methods of the first aspect or any possible implementation thereof. The one or more memories are independently disposed outside the chip.
[0023] Optionally, the chip further includes one or more memories, which are connected to the one or more processors via circuits or wires.
[0024] Alternatively, the chip may further include a communication interface.
[0025] Fifthly, this application also provides a decoding apparatus, including a processor and an interface circuit, the interface circuit being used to receive computer code or instructions and transmit them to the processor, the processor being used to execute the computer code or instructions to perform the method in the first aspect or any possible implementation thereof.
[0026] In a sixth aspect, this application provides a computer-readable storage medium storing computer instructions that, when executed on a computer, cause the computer to perform the method as described in the first aspect or any possible implementation thereof.
[0027] In a seventh aspect, this application provides a computer program product, including computer program code, which, when run on a computer, causes the computer to perform the method in the first aspect or any possible implementation thereof.
[0028] Eighthly, this application provides a communication device including the decoder described in the third aspect.
[0029] Ninthly, this application provides a wireless communication system, including the communication device described in the eighth aspect. Attached Figure Description
[0030] Figure 1 This is a schematic diagram of the architecture of a wireless communication system applicable to this application;
[0031] Figure 2 This is a basic flowchart of wireless communication.
[0032] Figure 3 Here is an example of the SCL decoding algorithm for L=2;
[0033] Figure 4 A flowchart of the polar code decoding method 400 provided in this application;
[0034] Figure 5This is a flowchart of the process for determining P-bar polar codewords provided in this application;
[0035] Figure 6 This is a schematic flowchart of decoding using P-bar polar codewords provided in this application;
[0036] Figure 7 The following are simulation results of the EP-SC algorithm and other algorithms in the embodiments of this application;
[0037] Figure 8 The simulation results of the EP-SCL algorithm and other algorithms in this application are shown in the figure.
[0038] Figure 9 A schematic diagram of the decoding device 900 provided in this application;
[0039] Figure 10 A schematic structural diagram of the decoding device 900 provided in this application;
[0040] Figure 11 This is a schematic structural diagram of the decoder 1000 according to an embodiment of this application. Detailed Implementation
[0041] The technical solutions in this application will now be described with reference to the accompanying drawings.
[0042] See Figure 1 , Figure 1 This is a schematic diagram of the architecture of a wireless communication system applicable to this application. Figure 1 As shown, the wireless communication system may include at least one network device 110 and at least one terminal device (e.g., Figure 1 (As shown in 111, 112, and 113). Network device 110 and terminal device communicate wirelessly. When network device 110 sends a signal to terminal device, network device 110 acts as the encoding end and terminal device acts as the decoding end. When terminal device sends a signal to network device 110, terminal device acts as the encoding end and network device acts as the decoding end.
[0043] The wireless communication systems mentioned in the embodiments of this application include, but are not limited to: wireless local access network (WLAN) systems, narrow band-internet of things (NB-IoT) systems, long term evolution (LTE) systems, and fifth-generation (5G) systems. th (5G) communication systems or communication systems after 5G, etc.
[0044] The network equipment mentioned in this application can be any device with wireless transceiver capabilities. The network equipment includes, but is not limited to: node B (NB), evolved node base (eNB) in a long term evolution (LTE) system, radio network controller (RNC), evolved LTE (eLTE) base station, next generation node B (gNB) in a 5G system, and can also be base station controller (BSC), base transceiver station (BTS), access point (AP), radio backhaul node, transmission point (TP), transmission and reception point (TRP), home node B (HNB), etc. Alternatively, it can be a network node constituting a gNB or transmission point, such as a building baseband unit (BBU) or distributed unit (DU), etc., which is not limited in this application.
[0045] The terminal equipment mentioned in this application may also be referred to as user equipment (UE), mobile station, access terminal, user unit, user station, mobile station, remote station, remote terminal, mobile device, terminal, wireless communication equipment, user agent, station (STA) in WLAN, cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), handheld device with wireless communication function, computing device, other processing device connected to wireless modem, vehicle-mounted device, wearable device, mobile station in 5G network, and terminal equipment in future evolved public land mobile network (PLMN) network, etc.
[0046] See Figure 2 , Figure 2 This is a schematic diagram of the basic process of wireless communication. For example... Figure 2As shown, at the signal transmitting end, the signal source is sequentially source-coded, channel-coded, and digitally modulated before being transmitted. At the signal receiving end, the received signal is sequentially digitally demodulated, channel-decoded, and source-decoded before being output to the destination. Channel coding and decoding is one of the core technologies in the field of wireless communication. Currently, polar codes are a channel coding technique that can be theoretically proven to reach the Shannon limit and has practical linear complexity coding and decoding capabilities.
[0047] Polar codes are linear block codes. Among Polar code decoding algorithms, the successive cancellation (SC) decoding algorithm is the most fundamental. As the code length approaches infinity, the SC decoding algorithm achieves excellent asymptotic performance. With finite code lengths, due to incomplete polarization, some information bits will still fail to be decoded correctly. According to the encoding principle of polar codes, the polarization channels are not independent but dependent: the polarization channel with the larger channel number depends on all polarization channels with smaller channel numbers. Based on this dependency, the SC decoding algorithm decodes each bit sequentially according to the channel number in ascending order. Furthermore, when determining the i-th bit, it assumes that the decoding decisions for all (i-1) previous bits are correct. As the code length approaches infinity, since the split channels are nearly fully polarized (channel capacity is either 0 or 1), every information bit will be correctly decoded. However, with finite code lengths, some information bits will still fail to be decoded correctly due to incomplete channel polarization. Since the SC decoding algorithm requires estimates of previous information bits to decode subsequent bits, and because it is a greedy algorithm that only moves to the next level after finding the optimal path at each level of the code tree, errors in the decoding of the first i-1 information bits can lead to significant error propagation.
[0048] To address the shortcomings of the SC decoding algorithm, the Successive Cancellation List (SCL) decoding algorithm was proposed. In SCL, the number of candidate paths allowed to be retained at each level of the code tree is increased, changing the approach from SC, which only allows the selection of "the best path for the next level," to "allowing the selection of the best path for the next level." Specifically, during decoding, SCL starts from the root node of the decoding tree and searches for paths layer by layer towards the leaf nodes. Unlike SC, SCL is breadth-first, introducing a breadth-first search strategy into the code tree search mechanism, first expanding, then pruning, and finally reaching the leaf nodes. Each level's decoding decision maintains a small list of surviving paths, and finally, the path with the highest likelihood probability is selected as the decision path. Given a list length L, the complexity of SCL is O(LNlogN), and its performance approximates that of maximum likelihood (ML) decoding.
[0049] See Figure 3 , Figure 3 This is an example of an SCL decoding algorithm with L=2. For example... Figure 3 As shown, assuming the SCL decoding algorithm has a list size of L, when performing SCL decoding, the decoder starts from the root node of the code tree, retaining L surviving paths at each level, and proceeds to the next level for path expansion until reaching the leaf node of the code tree. When the SCL decoding of the polar code is completed, a set of candidate paths is obtained. Finally, the decoder selects the path with the best metric value from the L candidate paths as the output decoding path. It should be understood that in the code tree, the path formed from the root node to any node corresponds to a path metric (PM) value, which serves as a reference for judging the quality of the path. The decoder retains L candidate paths at each level of the code tree based on the PM value. Therefore, according to the SCL decoding algorithm, the decoding process of the polar code is essentially... Figure 3 Find a suitable decoding path on the full binary tree shown. Figure 3 As shown, when the list size L of the SCL decoding algorithm is 2, starting from the root node, two candidate paths are retained at each level to expand to the next level until the leaf node is reached. Figure 3 As shown in the example, when decoding according to the SCL decoding algorithm, two candidate paths are retained in the candidate list, namely
[0011] and
[1000] . Finally, the decoder can choose the path with the best metric value from these two candidate paths as the decoding path.
[0050] The CRC-aided SCL (CA-SCL) decoding algorithm is based on the SCL decoding algorithm, but adds CRC check bits to the information bit sequence. During decoding, the decoding end uses the SCL decoding algorithm to obtain L candidate paths. Then, using the prior information that "correct information bits can pass the CRC check," it selects from these L candidate paths and outputs the optimal decoding path as the decoding result.
[0051] by Figure 3 As shown in the example, the decoder inputs the two reserved candidate paths into the CRC module for CRC calculation, and outputs the candidate path that passes the CRC as the decoding result. Assume... Figure 3 If candidate path 0011 passes the CRC test, while candidate
[1000] fails the CRC test, then candidate path
[0011] will be output as the decoding result.
[0052] The performance of the CA-SCL decoding algorithm is affected by the size of the search path L, and its decoding performance still needs to be improved.
[0053] Therefore, this application provides a polar code decoding method, aiming to reduce the bit error rate of the CA-SCL decoding algorithm.
[0054] See Figure 4 , Figure 4 A flowchart of the polar code decoding method 400 provided in this application is shown. Method 400 can be executed by a decoding end (i.e., a decoding device), or by a device or component installed in the decoding end, such as a chip or processing circuit, that has the function of implementing the following method. Optionally, the decoding end can be... Figure 1 The network device shown can also be a terminal device.
[0055] S401, obtain P polar codewords of the information bit sequence.
[0056] P-bar polar codewords can be used as error patterns. Here, the P-bar polar codeword with the best error correction performance can be selected as the error pattern. For example, the P-bar polar codeword with the lowest code weight among L-bar polar codewords can be selected as the error pattern. The number of non-zero symbols in a codeword is called the code weight, or simply code weight.
[0057] It is understood that the process of obtaining P polar codewords in this application embodiment can be completed offline or online, and this application embodiment does not limit this. If the P polar codewords are obtained offline, the process of obtaining the P polar codewords can be completed on another device (such as a computer device).
[0058] Optionally, S401 includes: performing serial cancellation list (SCL) decoding on the received value of the information bit sequence to obtain L candidate paths of the information bit sequence; encoding the L candidate paths to obtain L polar code codes; and selecting P polar code codes from the L polar code codes, where P is less than L.
[0059] The received value of the information bit sequence is the channel received value in the form of the log-likelihood ratio (LLR). Optionally, the channel received value of the information bit sequence can be calculated using the following formula:
[0060]
[0061] The received sequence is: The sending sequence is 1 N This represents a vector of length N consisting entirely of 1s. This represents an additive white Gaussian noise (AWGN) noise sequence. Here, the noise can be... Set to all zeros, that is
[0062] Specifically, the transmitter sends a sequence of all zeros (all bits are 0) as a codeword, assuming a noise variance of 0. The receiver inputs the received information bit sequence into an SCL decoder, which yields L candidate paths (which can be represented as L estimated sequences) that approximate the all-zero codeword. These L candidate paths are then encoded to obtain L polar codewords. Next, the receiver calculates the codeweight of the L polar codewords and selects P polar codewords based on their weights. For example, the P polar codewords with the smallest codeweights among the L polar codewords are selected as the error pattern.
[0063] For example, the received value Y of the information bit sequence is input into the SCL decoder, and the initial path is set to an empty path. Here, the L candidate paths obtained after decoding are represented as follows: Taking this as an example, suppose that encoding L candidate paths yields L polar codewords. Optionally, L-bar polar codewords The following formula can be satisfied:
[0064] Here, the receiving end can select P polar codewords from L polar codewords based on their codeweights. Alternatively, the receiving end can perform simulation experiments on the L polar codewords and select the P polar codewords with the best error correction performance as the error pattern. For example, the receiving end can calculate the codeweight of each codeword in the L polar codewords, sort them in ascending order, and select the P polar codewords with the smallest codeweights as the error pattern. This application does not limit the method of calculating the codeweight of the polar codewords in this embodiment. Optionally, assume the codeweight of the i-th polar codeword is w. i , If the j-th element is the i-th polar code codeword, then the code weight {w0, w1, ..., wj} is... L-1 The formula can be satisfied: in, The value can be 0 or 1.
[0065] After obtaining the aforementioned P polar codewords, the receiving end can use them for decoding. In other words, the decoding end uses the assistance of P error patterns for decoding. This application does not specifically limit the decoder. If an SC decoder is used, the method of using error patterns for assisted decoding in this application can be called error pattern aided SC (EP-SC); if an SCL decoder is used, the method of using error patterns for assisted decoding in this application can be called error pattern aided SCL (EP-SCL).
[0066] S402, the first channel received value of the polar code is symbolically processed according to the P polar code codewords to obtain the second channel received value.
[0067] Here, the first channel received value is the codeword to be decoded, that is, the codeword that actually needs to be decoded.
[0068] "Symbol processing" can be understood as performing symbol flipping on the first channel received value based on P polar codewords. Symbol flipping here means that, based on the P polar codewords, the received value corresponding to the bit marked 1 needs to be sign-flipped, while the received value corresponding to the bit marked 0 does not need to be sign-flipped. For example, multiple polar codewords can be determined from the P polar codewords, and then the first channel received value can be sign-flipped using these multiple polar codewords to obtain the second channel received value. It's important to understand that the introduction of the first and second channel received values here is merely for ease of distinguishing the channel received values before and after symbol processing, and has no special meaning.
[0069] Here, the metric values of P polar codewords can be considered, and multiple polar codewords can be selected from the P polar codewords for use in decoding. Optionally, S402 includes: calculating the metric value of each polar codeword in the P polar codewords; determining D polar codewords, where D≤P, based on the metric values of the P polar codewords; and performing sign flipping on the first channel received value based on the D polar codewords to obtain the second channel received value.
[0070] For example, the decoder calculates the metric value of each polar codeword in the P polar codewords, then sorts the metric values of the P polar codewords in ascending order, and selects the first D polar codewords sorted from largest to smallest metric values from the P polar codewords, and uses the D polar codewords to perform sign flipping on the first channel received value.
[0071] Here, when performing sign flipping on the first channel received value using D polar codewords, the D polar codewords can be further processed. For example, the D polar codewords can be divided into multiple groups of polar codewords, D = M*k, M∈N. * ,k∈N * N * Let M represent a positive integer, and let M represent the number of polar codewords in the k-cycle. Thus, the decoder can cycle k times based on the decoding process, and each time it can use M polar codewords to perform sign flipping on the first channel value Y, obtaining M sets of channel received values.
[0072] S403, decode the received value of the second channel to obtain multiple candidate paths.
[0073] For example, M sets of channel received values can be input into M decoders running in parallel to obtain multiple candidate paths.
[0074] S404, Perform Cyclic Redundancy Check (CRC) on the multiple candidate paths and output the first candidate path as the decoding result.
[0075] The decoder performs CRC checks on multiple candidate paths. If any candidate path passes the CRC check, decoding stops, and the path that passed the CRC check is output as the decoding result; that is, the first candidate path is the path that passed the CRC check. If two or more candidate paths pass the CRC check, the path with the best path metric is selected as the decoding result; that is, the first candidate path is the path with the best path metric.
[0076] Of course, if no candidate path passes the CRC check, the decoder can repeat S402-S404 to obtain a first candidate path. For example, there are two possible scenarios for the decoder repeatedly executing S402-S404: Scenario 1: Select one polar codeword from P (or D) polar codewords, flip it, and execute S402-S404. If no candidate path passes the CRC check, select another polar codeword from the P polar codewords and continue executing S402-S404. Scenario 2: Select M polar codewords from P (or D) polar codewords, flip it, and execute S402-S404. If no candidate path passes the CRC check, select another polar codeword from the P polar codewords and continue executing S402-S404.
[0077] The decoding method of this application embodiment may include the process of obtaining P polar code words and the process of decoding using P polar code words.
[0078] The following is combined Figure 5 An example describing the process of determining P-bar polar codewords.
[0079] like Figure 5 As shown, Figure 5 A flowchart illustrating the determination of P-bar polar codewords provided in this application is shown. Figure 5 The process shown can be performed by another device or computer.
[0080] 510. Initialization.
[0081] Initialization mainly includes the initialization of the channel model. For example, the code length of the polar code is N=2. n A polar code with an information bit length of K has the following encoding structure: Let represent the Kronecker product, where n = log₂N.
[0082] In addition, S510 may also include the selection of channel type (channel model) and modulation scheme. For example, the channel type can be additive white Gaussian noise (AWGN), and the modulation scheme can be binary phase shift keying (BPSK).
[0083] Alternatively, as an example, for an AWGN channel, BPSK modulation, the transmitted bit sequence can be: The received bit sequence can be Among them, 1 N This represents a vector of length N consisting entirely of 1s. This represents the noise sequence of the AWGN. Here, channel noise can be considered. Set to all zeros, that is
[0084] 520. Calculate the channel received value Y in LLR form.
[0085] Alternatively, the channel received value in LLR form can be calculated here under the assumption of high signal-to-noise ratio. Although channel noise Here, a relatively large signal-to-noise ratio (SNR) value can be assumed, such as 6 dB or 10 dB, to make the LLR form of the channel received value meaningful. The LLR form of the channel received value Y can be expressed by the formula... Calculate σ 2 This represents the noise variance.
[0086] 530. Run an SCL decoder with a list size of L.
[0087] Specifically, the channel received value Y can be input into the decoder, with the initial path set to an empty path. All candidate paths are expanded by bits 0 or 1, and the path metric is updated. For each bit decoded, only the L paths with the largest metric are retained. Decoding stops when the path length reaches N, and the currently retained L candidate paths are output:
[0088] 540. Re-encode the L candidate paths to obtain L polar codewords.
[0089] For example, the L-bar polar codeword is represented as Optionally, the L polar codewords are calculated using the following formula:
[0090] 550. Calculate the code weights of L polar codewords and sort them.
[0091] For L polar codewords Assume the code weight of the i-th codeword is w. i , For the j-th element of the i-th codeword, there are L polar codewords. The code weights {w0, w1, ..., w L-1 The calculation of} is shown in the following formula:
[0092] For the code weight {w0,w1,...,w L-1 The elements are sorted in ascending order, and the corresponding indices after sorting are represented as {γ0, γ1, ..., γ}. L-1}
[0093] 560. Select the P polar codewords with the smallest code weight from the L polar codewords.
[0094] Here, the decoder can select the P polar codewords with the smallest code weight from the L polar codewords as the error pattern for subsequent decoding. The P polar codewords with the smallest code weight are represented as follows:
[0095] The following is combined Figure 6 This describes an example of a decoder using P-bar polar codewords for decoding.
[0096] like Figure 6 As shown, Figure 6 A schematic flowchart illustrating the decoding process using P-bar polar codewords provided in this application is shown. Figure 6 The process shown can be executed by the decoding end.
[0097] 610. Initialization.
[0098] For example, for a code length of N=2 n A polar code with an information bit length of K has the following encoding structure: Where B represents the bit permutation matrix (which can be understood as the permutation matrix related to the error pattern, i.e., the permutation matrix related to the P polar codewords), Let K denote the Kronecker product, where n = log₂N. Let the length of the sequence before CRC encoding be K. PRE If the length of the encoded sequence is K, then the length of the CRC check bits is K. CRC =KK PRE The generator polynomial of CRC is g(x).
[0099] Alternatively, as an example, for an AWGN channel, BPSK modulation, the transmitted bit sequence can be: The received bit sequence can be Among them, 1 N This represents a vector of length N consisting entirely of 1s. This represents the noise sequence of AWGN.
[0100] 620. Calculate the channel received value and the metric value of the P polar codewords.
[0101] Similar to the method used in step 520 to calculate the channel received value, a formula can also be used here. Calculate the channel received value. The P-bar polar codewords here are obtained through... Figure 5 The P-bar polarization codewords obtained in the process For ease of description, Figure 5 The P-bar polarization codewords obtained from Represented as the error pattern {e0,e1,...,e P-1}, the metric EM of the i-th error pattern i The following formula is used for calculation:
[0102]
[0103] in, For e i The j-th element, y j w is the j-th element of Y i For e i The code weight.
[0104] 630. Select D polar code words from P polar code words.
[0105] After obtaining the metric values of the P polar codewords in step 620, the decoder sorts the metric values of the P polar codewords in ascending order, and then uses the index {λ0, λ1, ..., λ...} to store the metric values of the sorted P polar codewords. P-1} represents, and then in {λ0,λ1,...,λ P-1 Select the first D polar codewords in} Used in decoding.
[0106] 640. Initialize k = D / M.
[0107] Here, let D = M*k, M ∈ N * ,k∈N * Initialize t = 0. t is the loop count.
[0108] It is understandable that when k is 1, it is equivalent to using a decoder for fully parallel computation.
[0109] 650, determine if t is less than k.
[0110] If t is less than k, then decoding ends. If t is not less than k, then proceed to step 660.
[0111] 660, retrieve M error patterns By flipping the sign of Y, we obtain M different sets of channel received values {Y0, Y1, ..., Y}. M-1}
[0112] Here, sign flipping can be achieved using the following formula:
[0113] 670. The obtained M groups of channel received values are input into M parallel decoders respectively.
[0114] The decoder can be either an SC decoder or an SCL decoder, without limitation. If it is an SC decoder, it outputs M candidate paths; if it is an SCL decoder, it outputs M*L candidate paths.
[0115] Here, this application can run multiple SC decoders or multiple CA-SCL (smaller L) decoders in parallel, which can achieve better decoding performance compared with the SC decoding scheme, and can also solve the delay problem caused by the CA-SCL (larger L) decoder needing to sort too many metric values.
[0116] It is understandable that the value of M does not impose a limit on the number of decoders deployed in the actual equipment. That is, the received values of M channels can be decoded in parallel by M decoders, or a single decoder can perform the decoding serially M times. If the value of k is 1, then a single decoder can be used for fully parallel decoding.
[0117] 680, Perform CRC check on the candidate path.
[0118] For example, the M candidate paths output by the SC decoder or the M*L candidate paths output by the SCL decoder constitute a set of candidate decoding paths, and the sequences in the set are subjected to CRC verification.
[0119] 690, determine whether the CRC check passes.
[0120] If no candidate path passes the CRC check, proceed to step 691, set t = t + 1, and return to step 650. If a candidate path passes the CRC check, proceed to step 692.
[0121] 692, output the decoding result.
[0122] If a candidate path passes the CRC check in step 690, the decoder stops decoding and outputs the candidate path as the decoding result; if two or more candidate paths pass the CRC check in step 690, the metric value of each candidate path that passes the CRC check is calculated, and the path with the best metric value is output as the decoding result.
[0123] See Figure 7 , Figure 7 The figures show simulation results of the EP-SC algorithm and other algorithms in this application. Figure 7 In this example, we assume that the polar code has a code length of N = 256, a code rate of R = 0.5, and a CRC bit sequence length of 16.
[0124] from Figure 7 As can be seen from this, if the parameters configured for the EP-SC algorithm in this embodiment are P=256, D=128, and M=8, then when the block error ratio (BLER) is 10... -2At the same time, the EP-SC algorithm of this application embodiment has a gain of 0.7dB compared with the original SC decoding algorithm. Furthermore, compared with CA-SCL (L=2), the EP-SC algorithm of this application embodiment shows a gain when the signal-to-noise ratio is greater than 2.5dB, and the gain gradually increases with the increase of the signal-to-noise ratio.
[0125] See Figure 8 , Figure 8 The simulation results of the EP-SCL algorithm and other algorithms in this application are shown in the figure.
[0126] from Figure 8 As can be seen from this, if the parameters configured for the EP-SCL algorithm in this embodiment are P=256, D=128, and M=8, then when BLER is 10... -3 At the same time, compared with the original CA-SCL (L=2), the EP-SCL algorithm of this application embodiment has a gain of 0.5dB. Furthermore, as the signal-to-noise ratio increases, the EP-SCL algorithm of this application embodiment also shows a gain compared with CA-SCL (L=4), and the gain gradually increases.
[0127] Therefore, it can be seen that the algorithm for decoding with the aid of error patterns provided in the embodiments of this application can improve the decoding performance of polar codes.
[0128] The above provides a detailed description of the polar code decoding method provided in this application. The decoding apparatus provided in this application will be described below.
[0129] See Figure 9 , Figure 9 This is a schematic diagram of the decoding device 900 provided in this application. Figure 9 As shown, the decoding device 900 includes a processing unit 910 and a communication unit 920.
[0130] Processing unit 910 is used to acquire P polar code codewords of the information bit sequence; perform symbol processing on the first channel received value of the polar code according to the P polar code codewords to obtain the second channel received value; and decode the second channel received value to obtain multiple candidate paths.
[0131] The communication unit 920 is used to perform cyclic redundancy check (CRC) on the multiple candidate paths and output the first candidate path as the decoding result.
[0132] Optionally, the processing unit 910 is used to obtain P polar code codewords, including: performing serial cancellation list (SCL) decoding on the channel received value of the information bit sequence to obtain L candidate paths of the information bit sequence; encoding the L candidate paths to obtain L polar code codewords; and selecting the P polar code codewords from the L polar code codewords, where P is less than L.
[0133] Optionally, the L candidate paths are represented as follows: The L polar codewords are represented as follows: Wherein, the L polar codewords satisfy the following formula:
[0134]
[0135] in, Let n represent the Kronecker product, where n = log₂N and N represents the code length.
[0136] Optionally, the processing unit 910 is used to select the P polar code words from the L polar code words, including: calculating the code weight of each polar code word in the L polar code words, and selecting the P polar code words with the smallest code weight.
[0137] Optionally, the processing unit 910 is configured to perform symbol processing on the first channel received value according to the P polar code codes to obtain the second channel received value, including: calculating the metric value of each polar code code in the P polar code codes; determining D polar code codes, D≤P, according to the metric values of the P polar code codes; and performing symbol flipping on the first channel received value using the D polar code codes to obtain the second channel received value.
[0138] Optionally, D is represented as: D = M * k, M ∈ N * ,k∈N * The first channel received value is represented as Y; wherein, the processing unit 910 is used to perform sign flipping on the first channel received value using the D polar codewords to obtain the second channel received value, including: taking M polar codewords from the D polar codewords. The sign of Y is flipped to obtain M sets of channel received values {Y0, Y1, ..., Y}. M-1},in,
[0139] Optionally, the communication unit 920 is used to perform cyclic redundancy check (CRC) verification on the multiple candidate paths and output a first candidate path as the decoding result, including: if one of the multiple candidate paths passes the CRC verification, then the first candidate path is the path that passes the CRC verification; if two or more of the multiple candidate paths pass the CRC verification, then the first candidate path is the path with the best path metric value among the paths that pass the CRC verification.
[0140] In one possible design, the aforementioned functions of the decoding device 900 can be implemented in hardware or by the hardware executing the corresponding software.
[0141] As one embodiment, the decoding apparatus 900 may include one or more processors for executing a computer program stored in a memory to cause the decoding apparatus 900 to perform any of the method embodiments provided in this application.
[0142] Optionally, the memory for storing computer programs is located outside the decoding device 900, and the one or more processors are connected to the memory via circuits and / or wires. There may be one or more memories.
[0143] Optionally, the decoding device 900 may also include one or more memories.
[0144] Alternatively, the decoding device 900 may further include one or more communication interfaces.
[0145] As examples, the one or more communication interfaces may be input / output interfaces or output / output circuits, and this application does not limit them.
[0146] In another embodiment, the decoding device 900 can also be implemented in hardware.
[0147] See Figure 10 , Figure 10 A schematic structural diagram of the decoding device 900 provided in this application. Figure 10 As shown, the decoding device 900 includes an input interface circuit 901, a logic circuit 902, and an output interface circuit 903.
[0148] The input interface circuit 901 is used to acquire the LLR sequence; the logic circuit 902 is used to decode using the polar code decoding method provided in this application; and the output interface circuit 903 is used to output the decoding result.
[0149] Optionally, the decoding device 900 can be a chip or an integrated circuit. For example, the chip can be a system on a chip (SOC) or a baseband chip, etc.
[0150] Optionally, the decoding device 900 can also be a device or module in the decoding end used to implement channel decoding. For example, a channel decoder or channel decoding circuit.
[0151] Figure 11 This is a schematic structural diagram of the decoder 1000 according to an embodiment of this application. Figure 11As shown, the decoder 1000 includes one or more processors 1100, one or more memories 1200, and one or more communication interfaces 1300. The communication interface 1300 is used to acquire the LLR sequence, the memory 1200 is used to store a computer program, and the processor 1100 is used to call and run the computer program from the memory 1200, so that the decoder 1000 uses the polar code decoding method provided in this application to complete the decoding of the LLR sequence.
[0152] Furthermore, the communication interface 1300 is also used to output the decoding results.
[0153] in addition, Figure 9 The decoding device 900 shown can be used Figure 11 The decoder 1000 shown is implemented.
[0154] For example, the communication unit 930 can be made by Figure 11 The communication interface 1300 is implemented in the middle, and the processing unit 910 can be implemented by the processor 1100, etc.
[0155] Alternatively, the memory and processor in the device embodiment can be integrated together or physically separate units.
[0156] In addition, this application also provides a decoding apparatus, including a processor and an interface circuit. The interface circuit is used to receive computer code or instructions and transmit them to the processor. The processor is used to run the computer code or instructions to execute the polar code decoding method provided in this application.
[0157] Furthermore, this application provides a computer-readable storage medium storing a computer program that, when run on a computer, enables the polar code decoding method of this application to be implemented.
[0158] This application also provides a computer program product, which includes computer program code, and when the computer program code is run on a computer, the polar code decoding method of this application is implemented.
[0159] This application also provides a chip including one or more memories and one or more processors. The one or more memories are used to store a computer program, and the one or more processors are used to retrieve and run the computer program from the one or more memories, causing a device equipped with the chip to execute a decoding method for the polar codes of this application.
[0160] This application also provides a communication device, including the decoder 1000 described above.
[0161] In this document, the decoding end refers to the receiving end of signals and / or data. Correspondingly, the party sending signals and / or data is the transmitting end. Optionally, the decoding end can be a network device in a communication system (e.g., a 5G gNB) or a terminal device; the solution in this application is not limited to either.
[0162] In the above embodiments, the processor can be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, a microprocessor, or one or more integrated circuits for controlling the execution of the program in this application. For example, the processor may include a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, etc. The processor can allocate control and signal processing functions among these devices according to their respective functions. In addition, the processor may include the function of operating one or more software programs, which may be stored in memory. The functions of the processor can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more units corresponding to the above functions.
[0163] The memory may be read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
[0164] The terms “component,” “module,” “system,” etc., used in this specification are used to refer to computer-related entities, hardware, firmware, combinations of hardware and software, software, or software in execution. For example, a component can be a process running on a processor, a processor, an object, an executable file, an execution thread, a program, and / or a computer. Applications running on computing devices and computing devices can both be components. One or more components may reside in a process and / or an execution thread. Components may reside on a single computer and / or be distributed among two or more computers. Furthermore, these components may be executed from various computer-readable media on which various data structures are stored. Components may communicate via local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system, and / or a network, such as the Internet, which interacts with other systems via signals).
[0165] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware, depending on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.
[0166] The systems, apparatuses, and methods disclosed in the embodiments provided in this application can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0167] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the objectives of the embodiments of this application, depending on actual needs.
[0168] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0169] If the aforementioned function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application.
[0170] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for decoding polar codes, characterized in that, include: The first channel received value to be decoded is serially canceled list (SCL) decoded to obtain L candidate paths; The L candidate paths are encoded to obtain L polar codewords; P polar code words are selected from the L polar code words. The P polar code words are obtained online, and P is less than L. Calculate the metric value of each polar codeword in the P polar codewords, and the error pattern of the P polar codewords is as follows: i The measure of an error pattern satisfy: ,in, for The One element, The first error pattern in the P-bar polar code codewords i An incorrect pattern, yes The One element, Let N be the received value of the first channel, and N be the code length of the received value of the first channel. for Code weight; Based on the metric values of the P polar codewords, determine the D polar codewords. ; The first channel received value is obtained by sign flipping the D polar codewords; The received value from the second channel is decoded to obtain multiple candidate paths; Cyclic Redundancy Check (CRC) is performed on the multiple candidate paths, and the first candidate path is output as the decoding result.
2. The method according to claim 1, characterized in that, The L candidate paths are represented as follows: The L polar codewords are represented as follows: The L polar codewords satisfy the following formula: in, Represents the Kronecker product, where .
3. The method according to claim 1 or 2, characterized in that, The step of selecting P polar codewords from the L polar codewords includes: Calculate the code weight of each of the L polar code codes, and select the P polar code codes with the smallest code weight.
4. The method according to claim 1 or 2, characterized in that, The D Represented as: ; Among them, the use of the D The bar polar codeword is used to sign-flip the first channel received value to obtain the second channel received value, including: Take the above D In bar polar code codewords M Bar polar codeword Regarding the above Perform sign reversal to obtain M Group channel received value ,in, .
5. The method according to claim 1 or 2, characterized in that, The step of performing cyclic redundancy check (CRC) verification on the multiple candidate paths and outputting the first candidate path as the decoding result includes: If one of the multiple candidate paths passes the CRC check, then the first candidate path is the path that passes the CRC check. If two or more of the candidate paths pass the CRC check, then the first candidate path is the path with the best path metric value among the paths that pass the CRC check.
6. A decoding device, characterized in that, include: The processing unit is used to perform SCL decoding on the first channel received value to be decoded, and obtain L candidate paths; The L candidate paths are encoded to obtain L polar codewords; P polar code words are selected from the L polar code words. The P polar code words are obtained online, and P is less than L. The processing unit is further configured to calculate the metric value of each polar codeword in the P polar codewords, and the error pattern of the P polar codewords in the first polar codeword is... i The measure of an error pattern satisfy: ,in, for The One element, The first error pattern in the P-bar polar code codewords i An incorrect pattern, yes The One element, Let N be the received value of the first channel, and N be the code length of the received value of the first channel. for Code weight; Based on the metric values of the P polar codewords, determine the D polar codewords. The first channel received value is sign-flipped using the D polar codewords to obtain the second channel received value; the second channel received value is then decoded to obtain multiple candidate paths. The communication unit is used to perform cyclic redundancy check (CRC) on the multiple candidate paths and output the first candidate path as the decoding result.
7. The decoding apparatus according to claim 6, characterized in that, The L candidate paths are represented as follows: The L polar codewords are represented as follows: The L polar codewords satisfy the following formula: in, Represents the Kronecker product, where .
8. The decoding apparatus according to claim 6 or 7, characterized in that, The processing unit is used to select the P polar codewords from the L polar codewords, including: Calculate the code weight of each of the L polar code codes, and select the P polar code codes with the smallest code weight.
9. The decoding apparatus according to claim 6 or 7, characterized in that, The D Represented as: ; The processing unit is used to utilize the D The bar polar codeword is used to sign-flip the first channel received value to obtain the second channel received value, including: Take the above D In bar polar code codewords M Bar polar codeword Regarding the above Perform sign reversal to obtain M Group channel received value ,in, .
10. The decoding apparatus according to claim 6 or 7, characterized in that, The communication unit is used to perform cyclic redundancy check (CRC) verification on the multiple candidate paths and output the first candidate path as the decoding result, including: If one of the multiple candidate paths passes the CRC check, then the first candidate path is the path that passes the CRC check. If two or more of the candidate paths pass the CRC check, then the first candidate path is the path with the best path metric value among the paths that pass the CRC check.
11. A decoding device, characterized in that, The device includes at least one processor coupled to at least one memory, the at least one processor being configured to execute a computer program or instructions stored in the at least one memory to cause the decoding apparatus to perform the method as described in any one of claims 1-5.
12. A decoding device, characterized in that, It includes a processor and an interface circuit, the interface circuit being used to receive computer code or instructions and transmit them to the processor, the processor being used to execute the computer code or instructions to perform the method as described in any one of claims 1-5.
13. A computer-readable storage medium, characterized in that, Includes a computer program, which, when run on a computer, implements the method as described in any one of claims 1-5.