WO2021073338A1 - Decoding method and decoder - Google Patents
Decoding method and decoder Download PDFInfo
- Publication number
- WO2021073338A1 WO2021073338A1 PCT/CN2020/115383 CN2020115383W WO2021073338A1 WO 2021073338 A1 WO2021073338 A1 WO 2021073338A1 CN 2020115383 W CN2020115383 W CN 2020115383W WO 2021073338 A1 WO2021073338 A1 WO 2021073338A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- decoder
- llr
- sequence
- decoding
- sequences
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
Definitions
- This application relates to the field of communications, and more specifically, to a decoding method and decoder of polarization codes in the field of communications.
- Polar code was first proposed by Arikan in 2008, and it was proven to reach Shannon's limit capacity.
- the encoding of Polar codes is mainly based on the theory of channel polarization.
- the process of channel polarization is mainly divided into channel combination and channel decomposition. When the number of channel combinations tends to be infinite, channel polarization will occur.
- the phenomenon of channel polarization is that the channel capacity obviously tends to two levels, one part tends to a pole with a channel capacity of 1, that is, a noiseless channel; and the other part tends to a pole with a channel capacity of 0, that is, a full-noise channel.
- the channel Since the channel is polarized, we can reasonably use the polarization feature to encode, set the information bit on the noise-free channel, that is, transmit the information bit; and set the freeze bit on the all-noise channel, that is, transmit the fixed bit without information. , Such as 0 or 1, these bits can also be called frozen bits.
- the decoding calculation complexity of the polarization code is O(N log 2 N), where N is the code length.
- Encoder pair information sequence Perform Polar encoding to get the encoded sequence
- the recursive generation process of polarization codes can be expressed in the form of matrix multiplication as follows:
- matrix I the polarization matrix
- the relatively reliable K bits are selected for the transmission of information bits, that is, the bits corresponding to the above-mentioned noise-free channel, and the set is represented by A; and the value of the NK relatively unreliable bits is set to one A fixed value, for example, set to 0 or 1.
- These bits are called frozen bits, and the positions of these bits can also be called fixed bits, that is, the bits corresponding to the above-mentioned full-noise channel.
- Polar’s main decoding methods include serial decoding methods and parallel decoding methods.
- Serial decoding methods include: serial cancellation (successive cancellation, SC) decoding method, list serial cancellation (successive cancellation list, SCL) decoding method and cyclic redundancy check (CRC) assisted SCL (CRC aided SCL, CA-SCL) decoding method, etc.
- Parallel decoding methods include: Belief Propagation (BP)/ The minimum sum (Min-Sum, MS) decoding method and the deep neutral network (DNN), etc. These decoding methods have their own strengths.
- the serial decoding method has better decoding performance, but the decoding delay is large, and the decoding throughput rate is limited; while the parallel decoding method has high parallelism , But the decoding performance often has a big gap compared with the serial decoding method.
- enhanced mobile broadband enhanced mobile broadband, eMBB
- LDPC low density parity check
- the Polar code decoder needs to be designed to better meet the actual application requirements of the polar code in the communication system.
- the various embodiments of the present application provide parallel decoders for cascaded decoding, cascaded decoders, and methods for cascaded decoding, which are used to improve the decoding performance of parallel decoding while maintaining relatively high performance. High throughput rate.
- the embodiment of the present application also provides a multi-cascade decoder, which can further reduce the hardware overhead of the multi-mode decoder in the communication device.
- the embodiments of the present application provide a parallel decoder for cascaded decoding, which is used to decode one or more LLR sequences of length N in with a maximum of S times. , And provide one or more input LLR sequences of length N out to the next decoder in each iteration.
- the parallel decoder includes: a first-stage update unit and a second-stage update unit. For the sth iteration,
- the first-stage update unit is used to perform the first-stage update on the input LLR sequence of the parallel decoder to obtain the output LLR sequence
- the output LLR sequence is used to provide the input LLR sequence of the next-stage decoder
- the input LLR sequence of the parallel decoder includes N in LLRs
- the output LLR sequence includes N in LLRs
- the input LLR sequence of the next-level decoder includes N in the output LLR sequence. out LLRs;
- the second-stage update unit is used to obtain the output LLR sequence of the next-stage decoder, and the output LLR sequence of the next-stage decoder includes N out LLRs.
- the second-stage update unit is configured to perform a second-stage update on a second update input LLR sequence to obtain a second update output LLR sequence, and the second update input LLR sequence is obtained according to the obtained s-1th iteration
- the first-stage update unit is configured to perform a first-stage update on the second updated output LLR sequence to obtain an output LLR sequence, and the output LLR sequence is used to provide an input LLR sequence of a next-stage decoder.
- the above-mentioned parallel decoder can realize large-block-length decoding calculations in cascaded decoding, and can be adapted to the next-stage decoder with better decoding performance for small-block lengths, which helps to improve the overall decoding throughput Rate, and use the decoding performance of the next-level decoder.
- the second update input LLR sequence is the (s-2) ⁇ N out +1th in the output LLR sequence in the s-1th iteration LLR to the second (s-1) ⁇ N out a replacement for the first LLR s-1 iterations LLR output sequence of the next stage of the decoder LLR obtained number N out.
- the parallel decoder outputs the output LLR sequence to the next-stage decoder, so that the The next-stage decoder obtains its input LLR sequence according to the (s-1) ⁇ N out +1 th LLR to the s ⁇ N out LLR of the output LLR sequence.
- the parallel decoder determines the (s-1) ⁇ N out +1th from the output LLR sequence
- the LLR to the s ⁇ N out- th LLR are output to the next-stage decoder as the input LLR sequence of the next-stage decoder.
- the parallel decoder includes at least the n out +1 th layer to the n in +1 th layer n in of the factor graph. -n out decoding layers.
- the first-stage update unit is specifically configured to update the N LLR nodes of the n in +1th layer to the input LLR Sequence, and perform soft value update layer by layer from the n in +1 layer to the n out +1 layer to obtain the N in LLR nodes of the n out +1 layer, and the output LLR sequence includes the n out + N in LLR nodes of layer 1;
- the second-stage update unit is specifically configured to update the N LLR nodes of the n out + 1th layer to the second update input LLR sequence, and start from the n out + 1-layer to the first layer n in +1 direction to perform a soft layer to obtain a first value updating n in N in a layer LLR + 1 nodes, the second output LLR update sequence comprising n in N in the first layer +1 LLR nodes.
- the first-stage update unit is specifically further configured to determine the LDPC check matrix corresponding to the input LLR sequence, and the The first-stage update unit and the second-stage update unit update the input LLR sequence based on the LDPC check matrix.
- the Polar code is decoded by the calculation unit of the LDPC code, which makes it possible to decode the Polar code in common mode with the LDPC code and save overhead.
- the second-stage update unit is further configured to return the decoded LLR sequence to the upper-level decoder, and the decode The LLR sequence includes the second update output sequence.
- the parallel decoder includes one or more of the following: a BP decoder, an MS decoder, or a DNN decoder.
- the value of N in can be any of the following: 8192,4096,2048,1024,512,256,128,64,32; the value of N out can be any of the following: 1024,512,256,128,64, 32,16,8,4,2,1128,64,32,16,8,4,2,1.
- an embodiment of the present application provides a cascaded decoding method, which performs a maximum T iterations of cascaded decoding on an input LLR sequence, where the t-th iteration includes:
- each second input LLR sequence is N
- the length of each second output LLR sequence is N
- each third input LLR sequence includes Ns LLRs in the corresponding second output LLR sequence.
- the above method uses parallel decoding algorithms to perform parallel decoding calculations for large block lengths, which improves the throughput of decoding, and provides small block lengths to the next level of serial decoding algorithms, and uses small block length serial decoding algorithms to improve Decoding performance, combining the advantages of the two, enables decoding to take into account both throughput and decoding performance at the same time.
- each of the third input LLR sequences includes the (t-1) ⁇ N S +1 th LLR in the corresponding second output LLR sequence To the t ⁇ N S LLR.
- the parallel decoding algorithm is used to perform L(t) second input LLR sequences Decode and obtain L(t) second output LLR sequences, including:
- a parallel decoding algorithm is used to perform a first stage update on the L(t) second input LLR sequences respectively to obtain the L(t) second output LLR sequences.
- the second input LLR sequence is the input LLR sequence of the cascaded decoder.
- the t-1th iterative decoding also includes:
- M(t-1) third output LLR sequences are obtained, and each of the third output LLR sequences includes Ns LLRs.
- the t-th iteration further includes:
- the parallel decoding algorithm is used to perform a second stage update on the L(t) second updated input LLR sequences to obtain the L(t) second input LLR sequences.
- the parallel decoding algorithm includes n s +1 th to n +1 th layer nn s translations.
- Code layer Each layer includes N LLR nodes; the first stage update includes:
- the second phase update includes:
- a serial decoding algorithm is used to decode the L(t) third input LLR sequences Obtain M(t) decoding paths, including:
- the M(t) decoding paths are M(t) decoding paths with the largest path metric among the L(t)*2 k decoding paths, or the M(t) decoding paths Among the L(t)*2 k decoding paths, M(t) decoding paths have the largest path metric and pass the CRC check.
- the parallel decoding algorithm is used to decode the L(t) second input LLR sequences to obtain L(t) second output LLRs Sequence, including:
- the parallel decoding algorithm includes: BP decoding algorithm, MS decoding algorithm, or DNN decoding algorithm;
- the serial decoding algorithm includes: SCL decoding algorithm or CA-SCL Decoding algorithm.
- N is any of the following: 1024, 512, 256, 128, 64, 32; the value of Ns is any of the following: 128, 64, 32, 16, 8, 4, 2, 1 .
- t ⁇ T and the tth iteration does not meet the early termination condition, the tth iteration also includes :
- M(t) third output LLR sequences are obtained.
- t T, or the t-th iteration satisfies the early termination condition; the t-th iteration also include:
- the serial decoder obtains the decoding result according to the M(t) decoding paths, and terminates iteration.
- the input LLR sequence is the information sequence
- the information sequence includes a plurality of information bits, or one or more information bits and one or more frozen bits; said obtaining a decoding result according to the M(t) decoding paths includes: Perform a hard decision on one decoding path with the largest path metric value or the largest path metric value and a successful CRC check among the M(t) decoding paths to obtain each information bit in the information sequence.
- an embodiment of the present application provides a cascaded decoder, the cascaded decoder includes a serial decoder, and the second aspect of the first aspect or any possible implementation of the first aspect.
- the second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequences, each second input LLR sequence has a length of N, and each second input LLR sequence has a length of N.
- the length of the output LLR sequence is N;
- the serial decoder decodes the L(t) third input LLR sequences to obtain M(t) decoding paths, and each of the third input LLR sequences includes the corresponding second output LLR sequence. Ns LLRs;
- the serial decoder determines to continue the iteration, or the serial decoder determines to terminate the iteration.
- the above-mentioned cascaded decoder uses a parallel decoder to perform parallel decoding calculations for large block lengths to improve decoding throughput, and provides small block length decoding to the serial decoder, and uses small block length serial translation
- the encoder improves the decoding performance and combines the advantages of the two, so that the decoding can take into account both the throughput and the decoding performance at the same time.
- each of the third input LLR sequences includes the (t-1) ⁇ N S +1 th LLR in the corresponding second output LLR sequence To the t ⁇ N S LLR.
- the second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequence, including:
- the second parallel decoder performs a first stage update on the L(t) second input LLR sequences respectively to obtain the L(t) second output LLR sequences.
- the second input LLR sequence is the stage The input LLR sequence of the connected decoder.
- the t-1th iterative decoding also includes:
- the serial decoder obtains M(t-1) third output LLR sequences according to the M(t-1) decoding paths, and each third output LLR sequence includes Ns LLRs.
- the t-th iteration further includes:
- the second parallel decoder obtains L(t) according to the M(t-1) third output LLR sequences and the M(t-1) second output LLR sequences of the t-1th iteration
- the second updated input LLR sequence of the t-th iteration, L(t) M(t-1);
- the second parallel decoder performs a second stage update on the L(t) second updated input LLR sequences to obtain the L(t) second input LLR sequences.
- the second parallel decoder includes at least the n s +1 th to n +1 th layer nn s Decoding layers, Each layer includes N LLR nodes;
- the second parallel decoder performs a first stage update on each second input LLR sequence to obtain a corresponding second output LLR sequence, including:
- the second parallel decoder updates the N LLR nodes of the n+1th layer to N LLRs in the second input LLR sequence
- Said second decoder performs parallel from the first layer n + 1 to the first direction of the soft layer n s +1 to obtain the updated value of n s N + 1 th layer LLR nodes, the corresponding first
- the second output LLR sequence includes the N LLR nodes of the n s +1 th layer;
- the second parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding second input LLR sequence, including:
- the second parallel decoder updates the N LLR nodes of the n s +1 th layer to the N LLRs in the second updated input LLR sequence
- the second parallel decoder performs a soft value update from the n s +1 th layer to the n+1 th layer to obtain the N LLR nodes of the n+1 th layer, and the corresponding second The input LLR sequence includes N LLR nodes of the n+1th layer.
- the serial decoder interprets the L(t) third input LLR sequences
- the code gets M(t) decoding paths, including:
- the serial decoder decodes the L(t) third input LLR sequences to obtain L(t)*2 k decoding paths, where k is a positive integer;
- the M(t) decoding paths are M(t) decoding paths with the largest path metric among the L(t)*2 k decoding paths, or the M(t) decoding paths Among the L(t)*2 k decoding paths, M(t) decoding paths have the largest path metric and pass the CRC check.
- the second parallel decoder is configured to perform processing on L(t) of the second input LLR sequences Determine the corresponding LDPC check matrix respectively;
- the second parallel decoder decodes the L(t) second input LLR sequences based on the LDPC check matrix to obtain L(t) second output sequences.
- the second parallel decoder includes one or more of the following: BP decoder or MS A decoder or a DNN decoder, and the serial decoder includes an SCL decoder or a CA-SCL decoder.
- the value of N is any one of the following: 1024, 512, 256, 128, 64, 32; the value of Ns is the following Any item: 128,64,32,16,8,4,2,1.
- the serial decoder determines to continue iteration, including:
- the serial decoder determines that t ⁇ T and the t-th iteration does not meet the early termination condition
- the t-th iteration further includes:
- the serial decoder obtains M(t) third output LLR sequences according to the M(t) decoding paths.
- the serial decoder determines to terminate the iteration, including:
- the t-th iteration further includes:
- the serial decoder obtains the decoding result according to the M(t) decoding paths, and terminates iteration.
- the input LLR sequence of the cascaded decoder is an information sequence
- the serial decoder performs a hard decision on one of the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, and obtains the result Each information bit in the information sequence.
- the second-level iteration is a cascaded decoding iteration like the second aspect or any possible implementation of the second aspect, the maximum number of iterations is T, the i-th iteration, i ⁇ I, including:
- the length of each first input LLR sequence is N p
- the length of each first output LLR sequence is N p ;
- each of the second input LLR sequences respectively includes a corresponding first output LLR N LLRs in the sequence.
- the multi-cascade decoding method can further share part of the parallel decoding units of the LDPC codes, saving system overhead.
- each of the second input LLR sequences includes the (i-1) ⁇ N+1th in the corresponding first output LLR sequence LLR to the i ⁇ Nth LLR.
- the first parallel decoding algorithm is used to perform the processing of the K(i)
- the first input LLR sequence is decoded to obtain K(i) first output LLR sequences, including:
- the first parallel decoding algorithm performs a first stage update on the K(i) first input LLR sequences respectively to obtain the K(i) first output LLR sequences.
- the first input LLR sequence is the initial LLR sequence.
- the i-1th iterative decoding also includes:
- the i-th iteration further includes:
- the first parallel decoding algorithm includes at least n+1th to np +1th layers n p -n decoding layers, Each layer includes N p LLR nodes;
- the first stage update of each first input LLR sequence by using the first parallel decoding algorithm to obtain the corresponding first output LLR sequence includes:
- N p LLR nodes of n+1 layer Perform soft value update from the n p +1th layer to the n+1th layer to obtain N p LLR nodes of the n+1th layer, and the corresponding first output LLR sequence includes the first output LLR sequence.
- the second stage update of each second updated input LLR sequence by using the first parallel decoding algorithm to obtain the corresponding first input LLR sequence includes:
- the tth iteration of the cascade decoding method includes: decoding according to the M(i,t) The path gets M(i,t) third output LLR sequences.
- the t iterations include:
- M(i,t) third output LLR sequences are obtained.
- the second output of the M(i,t) tth iteration is obtained. Update the input LLR sequence;
- the t-th iteration of the associative decoding method includes:
- the first parallel decoder algorithm includes one or more of the following: BP decoding algorithm, or MS decoding algorithm or DNN decoding algorithm.
- the value of N p includes any one of the following: 8192, 4096, 2048, 1024, 512, 256, 128.
- the cascaded decoder is a lower-level decoder of the first parallel decoder, and the first parallel decoder is used to decode one or more LLR sequences with a length of N p.
- the first parallel decoder performs the first stage iterative decoding on K(i) first input LLR sequences to obtain K(i) first output LLR sequences, and the length of each first input LLR sequence is N p , The length of each first output LLR sequence is N p ;
- the cascaded decoder performs a second stage iterative decoding on K(i) second input LLR sequences, and each of the second input LLR sequences includes N LLRs in the corresponding first output LLR sequence.
- the multi-cascade decoder can further share part of the parallel decoding unit of the LDPC decoder to save system overhead.
- each of the second input LLR sequences includes the (i-1) ⁇ N+1th in the corresponding first output LLR sequence LLR to the i ⁇ Nth LLR.
- the first parallel decoder receives the K(i) first inputs
- the LLR sequence is decoded to obtain K(i) first output LLR sequences, including:
- the first parallel decoder performs a first stage update on the K(i) first input LLR sequences respectively to obtain the K(i) first output LLR sequences.
- the first input LLR sequence is the initial LLR sequence.
- the i-1th iterative decoding also includes:
- the cascaded decoder outputs M(i-1,t) second decoded LLR sequences to the first parallel decoder, and the second decoded LLR sequence includes N LLRs.
- the i-th iteration further includes:
- the first parallel decoder obtains M(i-1,t) corresponding to the i-1th iteration of M(i-1,t) second decoding LLR sequences of the i-1th iteration ) First output LLR sequence;
- the first parallel decoder performs a second stage update on the K(i) second updated input LLR sequences to obtain the L(i, 1) first input LLR sequences.
- the first parallel decoder includes at least n+1th to np +1th layers n p -n decoding layers, Each layer includes N p LLR nodes;
- the first parallel decoder performs a first stage update on each first input LLR sequence to obtain the corresponding first output LLR sequence, including:
- the first parallel decoder performs a soft value update from the np +1th layer to the n+1th layer to obtain the Np LLR nodes of the n+1th layer, and the corresponding An output LLR sequence includes N p LLR nodes of the n+1th layer;
- the first parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding first input LLR sequence, including:
- the first parallel decoder LLR the nodes of N p n + 1, the second layer updates the LLR updated input sequence of N p LLR,
- the first parallel decoder performs a soft value update from the n+1th layer to the np +1th layer to obtain the Np LLR nodes of the np +1th layer, and the corresponding
- the first input LLR sequence includes N p LLR nodes of the n p +1 th layer.
- the serial decoder determines that t ⁇ T and the tth iteration does not meet the early termination condition, and the tth iteration of the cascaded decoder includes: the serial The decoder obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
- the decoder terminates conditions early, and the t-th iteration of the cascaded decoder includes:
- the serial decoder obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
- the second parallel decoder obtains M(i,t) according to the M(i,t) third output LLR sequences and the M(i,t) second output LLR sequences of the tth iteration
- the second parallel decoder performs a second stage update on the M(i,t) second update input LLR sequences to obtain M(i,t) second decoded LLR sequences;
- the second parallel decoder outputs the M(i,t) second decoded LLR sequences to the first parallel decoder.
- the stage iteration satisfies the early termination condition of the multi-cascade decoder
- the t-th iteration of the cascade decoder includes:
- the serial decoder obtains the decoding result according to the M(i,t) decoding paths, and terminates the iteration.
- the first parallel decoder includes one or more of the following: a BP decoder, an MS decoder, or a DNN decoder.
- the value of N p includes any one of the following: 8192, 4096, 2048, 1024, 512, 256, 128.
- an embodiment of the present application provides a decoding device, which has the function of implementing the method described in any one of the possible designs of the second aspect and the fourth aspect.
- the function can be realized by hardware, or by hardware executing corresponding software.
- the hardware or software includes one or more modules or units corresponding to the above-mentioned functions.
- the decoding device when part or all of the functions are realized by hardware, includes: an input interface circuit for obtaining the LLR sequence corresponding to the bit sequence to be decoded; and a logic circuit for executing The method described in the second aspect or the fourth aspect or any one of the possible designs of the foregoing two aspects; an output interface circuit for outputting information bits.
- the decoding device may be a chip or an integrated circuit.
- the decoding device when part or all of the function is realized by software, the decoding device includes: a memory for storing a program; a processor for executing the program stored in the memory, when When the program is executed, the decoding device can implement the method described in the second aspect or the fourth aspect or any one of the possible designs of the foregoing two aspects.
- the foregoing memory may be a physically independent unit, or may be integrated with the processor.
- the decoding device when part or all of the functions are implemented by software, the decoding device includes a processor.
- the memory for storing the program is located outside the decoding device, and the processor is connected to the memory through a circuit/wire for reading and executing the program stored in the memory.
- the communication device provided in the sixth aspect includes a processor and a transceiver component, and the processor and the transceiver component can be used to implement the functions of each part of the foregoing encoding or decoding method.
- the communication device is a terminal, a base station or other network equipment, its transceiver component can be a transceiver.
- the communication device is a baseband chip or a baseband single board, its transceiver component can be a baseband chip or a baseband single board.
- the input/output circuit is used to realize the receiving/sending of input/output signals.
- the communication device may further include a memory for storing data and/or instructions.
- an embodiment of the present application provides a network device, including any possible decoder as in the first aspect, the third aspect, or the fifth aspect, or the decoding device of the sixth aspect.
- an embodiment of the present application provides a terminal device, including any possible decoder as in the first aspect, the third aspect, or the fifth aspect, or the decoding device in the sixth aspect.
- an embodiment of the present application provides a communication system, which includes the network device of the seventh aspect and the terminal device of the eighth aspect.
- an embodiment of the present application provides a computer storage medium that stores a computer program, and the computer program includes instructions for executing the method described in any one of the above-mentioned second or fourth aspects.
- a computer program product containing instructions which when running on a computer, causes the computer to execute the method described in any one of the possible designs of the second or fourth aspects.
- Figure 1 is an architecture diagram of the communication system provided by this application.
- Figure 2a is a schematic diagram of the decoding path of an SCL decoding algorithm provided by this application.
- 2b is a schematic diagram of the decoding path of an SCL decoding algorithm provided by this application.
- Fig. 3a is a schematic diagram of a basic processing unit of a parallel decoding algorithm provided by this application;
- FIG. 3b is a schematic diagram of iterative calculation of a parallel decoding algorithm butterfly network provided by this application.
- 3c is a schematic diagram of an iterative operation unit of a DNN decoding algorithm provided by this application;
- FIG. 4 is an example of a Tanner graph of an LDPC code provided by an embodiment of the application.
- FIG. 5 is a schematic structural diagram of a parallel decoder provided by an embodiment of this application.
- FIG. 6 is a schematic structural diagram of a cascaded decoder provided by an embodiment of this application.
- FIG. 7 is a flowchart of a cascaded decoding method provided by an embodiment of this application.
- FIG. 8 is a schematic structural diagram of a multi-cascade decoder provided by an embodiment of this application.
- FIG. 9 is a flowchart of a cascaded decoding method provided by an embodiment of this application.
- Fig. 10 is a decoding performance diagram of the cascaded decoding method and other decoding algorithms provided by the implementation of this application.
- the embodiments of the present application can be applied to various fields that adopt Polar coding, such as: data storage field, optical network communication field, wireless communication field, and so on.
- the wireless communication systems involved in the embodiments of the present application include but are not limited to: global system for mobile communications (GSM) system, code division multiple access (CDMA) system, and broadband code division multiple access (GSM) system.
- GSM global system for mobile communications
- CDMA code division multiple access
- GSM broadband code division multiple access
- WCDMA wideband code division multiple access
- GPRS general packet radio service
- LTE long term evolution
- FDD frequency division duplex
- TDD time division duplex
- UMTS universal mobile telecommunication system
- WiMAX worldwide interoperability for microwave access
- V2X can include vehicle-to-network (V2N), vehicle-to-vehicle (V2V) ), Vehicle to Infrastructure (V2I), Vehicle to Pedestrian (V2P), etc.
- LTE-V Long Term Evolution-Vehicle (LTE-V) of Workshop Communication, Internet of Vehicles, Machine Communication ( Machine type communication (MTC), Internet of Things (IoT), Long Term Evolution-Machine (LTE-M), Machine to Machine (M2M), etc.
- MTC Machine Communication
- IoT Internet of Things
- LTE-M Long Term Evolution-Machine
- M2M Machine to Machine
- the communication device involved in this application may be a chip (such as a baseband chip, or a data signal processing chip, or a general-purpose chip, etc.), a terminal, a base station, or other network equipment.
- a terminal is a device with a communication function, which can communicate with one or more core networks via a radio access network (Radio Access Network, RAN).
- the terminal may include a handheld device with a wireless communication function, a vehicle-mounted device, a wearable device, a computing device, or other processing device connected to a wireless modem.
- Terminals can be called different names in different networks, such as: user equipment (UE), mobile station (Mobile Station, MS), subscriber unit, station, cellular phone, personal digital assistant, wireless modem, wireless communication equipment , Handheld devices, laptop computers, cordless phones, wireless local loop stations, etc.
- UE user equipment
- MS mobile station
- MS mobile station
- cellular phone personal digital assistant
- wireless modem wireless communication equipment
- Handheld devices laptop computers
- cordless phones wireless local loop stations, etc.
- a base station also called a base station device
- the name of the base station may be different in different wireless access systems.
- the base station is called NodeB (NodeB)
- NodeB the base station is called NodeB
- NodeB in the LTE network
- NodeB the base station is called NodeB.
- the base station is called an evolved NodeB (evolved NodeB, eNB or eNodeB), and the base station in the new radio (NR) network is called the transmission reception point (TRP) or the next generation node B (gNB) ), or the base station can also be a relay station, access point, in-vehicle device, wearable device, network equipment in the future evolution of the Public Land Mobile Network (PLMN), or base station in various other evolved networks Other names may also be used.
- the present invention is not limited to this.
- FIG. 1 is an architecture diagram of the communication system provided by this application. It should be noted that FIG. 1 merely illustrates an architecture diagram of a communication system in the form of an example, and is not a limitation on the architecture diagram of the communication system.
- FIG. 1 includes a communication device 101 and a communication device 102.
- this article uses the communication device 101 as a transmitting end device to send a signal, and the communication device 102 as a receiving end device to receive a signal as an example for description.
- the communication device 102 can also send information to the communication device 101, and the communication device 101 receives the signal accordingly, then the communication device 102 is the transmitting end device, and the communication device 101 is the receiving end device.
- the embodiment of the present invention is not limited to this.
- the transmitting end device includes an encoder
- the receiving end device includes a decoder. Since the communication device may be a transmitting end device or a receiving end device, it may include an encoder and a decoder.
- the communication device 101 can respond to the sequence of information to be sent Such as the signaling transmitted on the control channel, perform polar encoding and output the encoded sequence Encoded sequence After rate matching, interleaving, and modulation, it is transmitted to the communication device 102 on the control channel.
- the communication device 102 performs processing such as demodulation on the received signal to obtain a Likelihood Rate (LLR) sequence LLR sequence
- LLR Likelihood Rate
- the number of LLR soft values included in is the same as the number of bits included in the information sequence, and both are N. It can also be said that its length is N, and N is a positive integer greater than 0.
- the communication device 102 performs Polar decoding according to the received LLR sequence.
- the communication device 102 may make a misjudgment.
- b 0) that is correctly judged as 0 by the receiving end device and the probability p(r
- b 0)/p(r
- b 1)].
- LLR can be a floating point number.
- Serial decoding algorithms mainly include SC decoding algorithm and SCL decoding algorithm. Among them, there are many improved decoding algorithms based on SCL decoding algorithm, such as CA-SCL algorithm with CRC check.
- u i is a frozen bit, and its value is known, for example, it is fixed to 0 or 1, so it can be directly judged And the decision result of this bit is used for the decision of the next bit u i+1 ; if i ⁇ A , u i is the information bit, and the decision result of each bit before the bit is obtained After that, the decoding LLR is And make a hard judgment on the LLR to get the judgment result And the decision result of this bit is used for the decision of the next bit u i+1 .
- the decision function of the above polarization code is as follows:
- the decoding LLR corresponding to u i is defined as follows:
- Is the sequence A subsequence of odd-numbered elements in the middle Is the sequence A subsequence composed of elements with an even index in the middle.
- the LLR sequence of length N can be reduced to two LLR sequences of length N/2 for calculation, and according to the above recursive process recursion, it can be calculated by multiple reductions to LLR sequences of length 1, that is, to 1 A soft value of LLR is calculated.
- the LLR sequence of, a total of 4 LLR sequences of length 2 are calculated, and further recursive, reduced to 8 LLR sequences of length 1.
- the calculation of the soft value of 1 LLR can be obtained according to the following formula:
- the SC decoding process can be described as a depth-first search process on a code tree.
- Figure 2a shows an example of a code tree.
- Each layer corresponds to an information bit or a frozen bit, and the two edges between each parent node and two child nodes are marked as 0 path and 1 path respectively, and a total of 2 N paths can be expanded.
- the SC decoder starts decoding from the root node u 1 , and selects 0 path or 1 path each time according to the decision result of the current bit. After reaching the leaf node, the N bit decision ends, and the path of the SC decoder in the code tree is Is the decoding result, as shown in Figure 2a, the SC decoding result is
- the SC decoding algorithm selects 0 path or 1 path at each node according to the current decision result, and each step is a local optimal choice. If a certain bit is judged incorrectly, it will continue to expand along the path. The current error cannot be corrected, and the current error will affect the subsequent decoding process.
- the SCL decoding algorithm changes the hard decision in the SC decoding algorithm to a soft decision, that is, the L paths with a decision of 0 or 1 are retained, where L is the search width.
- the path metric (PM) For each path expansion, the path metric (PM) must be calculated. PM is the probability of the decoding sequence corresponding to a path, which is usually expressed in logarithmic form as follows:
- the SCL decoding algorithm sorts the PM value and outputs the L decoding paths with the largest PM value. At the last bit, the path with the largest PM value is selected as the decoding output and input.
- the CA-SCL decoding algorithm is an optimization of the SCL decoding algorithm.
- the CRC is introduced into the information sequence, and the CRC is used to assist the decision, and the path that passes the CRC check and the PM value is the largest is selected.
- the path formed from the root node to any node in the code tree corresponds to a path metric value; each time the path is expanded, the L paths with the largest path metric value in the current layer are selected .
- the decoding sequences corresponding to the L paths are output in the order of the metric value from small to large, forming a set of candidate decoding sequences. Perform a CRC check on the candidate decoding sequence, and select the path with the largest path metric value that can pass the CRC check as the final decoding result.
- Parallel decoding algorithms include BP decoding algorithm, MS decoding algorithm and DNN decoding algorithm. It can be used for Polar code decoding and LDPC code decoding.
- the parallel decoding algorithm for Polar codes is decoded based on the factor graph of the generator matrix G.
- the following takes the BP decoding algorithm as an example to introduce.
- PE basic processing elements
- each node in the first layer represents the information sequence
- the information will be transferred layer by layer from left to right, that is, from the first layer to the n+1 layer. It is called the right operation R operation. From right to left, that is, from the n+1 layer to the first layer.
- the layer transfer information is called the left operation L operation.
- LLRs LLRs, where t is the number of iterations, 0 ⁇ t ⁇ T, and T is the maximum number of iterations of the BP decoding algorithm.
- the basic processing unit is represented as a butterfly operation unit in the figure, for example: a butterfly unit connecting nodes (1,1), (1,2), (2,1) and (2,2), connecting nodes ( 2,2), (2,3), (4,2) and (4,3) butterfly elements, connecting nodes (4,3), (4,4), (8,3) and (8, 4) Butterfly unit and so on.
- the LLR L operation is updated layer by layer from right to left. After reaching the left end, the LLR R operation update is performed layer by layer. When all nodes are visited once, an iteration operation is completed. After each iteration is completed, the LLR value of the corresponding information bit is hard-decided and the CRC is checked. If the CRC passes or reaches the maximum number of iterations, the iteration is stopped, otherwise the iteration is continued.
- the LLR sequence of length N can be regarded as reduced to two LLR subsequences of length N/2 for the next layer update respectively. Update one layer on the left, and the length of the LLR subsequence can be reduced to half of the previous layer.
- the jth layer it can be regarded as 2 n+1-j LLR subsequences with a length of 2 j-1.
- the iterative process of the MS decoding algorithm is similar to the iterative process of the BP decoding algorithm, and it will not be described separately below, and it is generally called the BP/MS decoding algorithm.
- the node update process of DNN can simulate the node update process of one or more iterations in the BP/MS decoding algorithm, and it can also assign different weights to each edge during the update process to improve the decoding performance.
- DNN When DNN is used to realize Polar decoding, it can imitate the structure of BP/MS decoding algorithm. As shown in Figure 3c, it is the architecture of the DNN decoding algorithm.
- the L operation from right to left of the butterfly unit network and the R operation from left to right are cascaded to form an iterative operation unit, which combines the iterative operation unit of T By cascading, the DNN decoding corresponding to T iterations can be completed.
- the parallel decoding algorithm for LDPC codes is decoded based on a check matrix.
- the parallel decoding algorithm for LDPC codes can also be updated in two stages, corresponding to the L operation and the R operation in the Polar code factor graph parallel decoding algorithm.
- the transfer information corresponds to the L operation in the Polar code factor graph parallel decoding algorithm
- the transfer information corresponds to the Polar code R operation in factor graph parallel decoding algorithm. Since the LDPC matrix supports row-column exchange and does not change its decoding properties, the corresponding R operation can also be calculated row by row from bottom to top for the check matrix, and the corresponding L operation can be calculated row by row from top to bottom.
- the LDPC check matrix can correspond to the Tanner graph.
- an example of the LDPC code check matrix and its corresponding check equation is:
- the Tanner graph corresponding to the check matrix can be represented as shown in Figure 4.
- Each circular node in Figure 4 is a variable node, representing a column in the check matrix H
- each square node is a check node, representing a check In a row of matrix H
- each edge connecting the check node and the variable node in Figure 4 represents a non-zero element at the intersection of the row and column corresponding to the two nodes.
- decoding algorithms such as BP/MS can also be used.
- BP the decoding formula can be written as:
- R ij represents the LLR that needs to be updated for the j-th variable node
- Q ji represents the LLR passed by other variable nodes to the current check node
- the communication system puts forward higher performance requirements and throughput requirements for decoding.
- the 5G communication system requires both Polar decoding and LDPC encoding and decoding, reducing the overhead of the decoder is also a need to solve The problem.
- FIG. 5 is a schematic structural diagram of a parallel decoder 500 for cascaded decoding according to an embodiment of the application, which is used to decode one or more log-likelihood ratio LLR sequences of length N in. And provide one or more input LLR sequences of length N out to the next stage decoder.
- N in and N out are both integers
- N out ⁇ N in are both integers
- N out and N in are generally powers of 2.
- N in can be any of the following: 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, and N out can be any of the following One: 1024,512,256,128,64,32,16,8,4,2,1128,64,32,16,8,4,2,1.
- the parallel decoder (N in , N out ) can be used to represent the length of the decoded input LLR sequence of the parallel decoder 500 and the input LLR sequence provided to the next stage, for example, the parallel decoder (1024, 64) represents The length of the decoded input LLR sequence is 1024, and the parallel decoder with the length of the input LLR sequence provided to the next stage is 64; the parallel decoder (8192, 512) indicates that the length of the decoded input LLR sequence is 8192, The parallel decoder with the length of the input LLR sequence provided by the next stage is 512. It should be noted that this is only an example, not limited to the above examples.
- the parallel decoder 500 can update the information of the decoded input LLR sequence according to any of the aforementioned parallel decoding algorithms, and the length of the output LLR sequence and the decoded input LLR sequence are usually equal, and both are N in .
- the parallel decoder 500 provides an input LLR sequence with a length of N out to the next-stage decoder.
- the parallel decoder 500 may determine N out LLRs as the next LLR sequence in the output LLR sequence with a length of N in.
- the input LLR sequence of the first-level decoder can also be determined by the next-level decoder according to the output LLR sequence of the parallel decoder 500 whose length is N in .
- N out LLRs are used as the input of the next-level decoder.
- the LLR sequence is not limited in this embodiment of the application. If multiple iterative decoding is performed, in a possible implementation, for the s-th iterative decoding, the input LLR sequence of the next-stage decoder includes the (s-1) ⁇ N out +th in the output LLR sequence 1 LLR to the s ⁇ N outth LLR. In this way, the maximum number of iterations is N in /N out .
- the decoding process is adjusted accordingly.
- the parallel decoder 500 may include a first-stage update unit 510 and a second-stage update unit 520. Among them, for the sth iteration, 0 ⁇ s ⁇ S, and S is the maximum number of iterations:
- the first-stage update unit 510 can be used to decode the input LLR sequence of the parallel decoder 500 Perform the first stage update to obtain the output LLR sequence of the parallel decoder 500
- the output LLR sequence Used to provide the input LLR sequence of the next stage decoder
- the input LLR sequence of the first stage update unit 510 The LLR sequence is input for the decoding of the parallel decoder 500.
- the second-stage update unit 520 may be used for:
- the second updated input LLR sequence for the sth iteration Perform the second stage update to get the second update output LLR sequence
- the second update input LLR sequence For will Replace the (s-2) th N out +1 LLR to the (s-1) th N out LLR with The LLR sequence obtained by the N out LLRs.
- the input LLR sequence of the first stage update unit 510 is The second update output LLR sequence obtained from the second-stage update unit 520, the first-stage update unit 510 may be used to perform the first-stage update on the input LLR sequence to obtain the output LLR sequence of the parallel decoder 500
- the output LLR sequence is used to provide the input LLR sequence of the next stage decoder.
- the parallel decoder 500 may include at least n out +1 th to n in +1 th decoding layers.
- the N in LLRs of the n in +1th layer are assigned to the LLR sequence
- the N in LLRs of the n out +1 layer are recorded as the LLR sequence
- the LLR sequence that the first stage update unit 510 can input N in +1 from the layer begin to give a soft value updating n out N in number of nodes +1 LLR layer, the first n out N in a layer LLR +1 nodes as output LLR sequence
- the first-stage update unit 510 obtains the LLR sequence as input N in N in number of nodes +1 LLR LLR for the layer sequence LLR N in number, comprising a first stage update from n in n to the layer of n out +1 +1 direction in -n out secondary layer LLR soft value update, the calculation formula updated from the n in +1 layer to the n out +1 layer direction can refer to the formulas (10) and (11) of the L operation in the aforementioned parallel decoding algorithm, or, from top to bottom. Formula (14) or (15) for row calculation.
- the obtained N in LLR nodes are the output LLR sequence It may include N in /N out LLR subsequences with a length of N out.
- the first-stage update unit 510 obtains the LLR sequence as input N in N in number of nodes +1 LLR LLR for the layer sequence LLR N in number
- the first stage of updating comprises the first layer of m + 1 + 1 layer n out from the first direction and from n in n out +1 to update the first layer n in +1 direction layer 2 ⁇ m ⁇ (n in -n out) times LLR soft values
- m is an integer, m ⁇ 0.
- the calculation formula updated from the n out +1th layer to the n in +1th layer can refer to the formulas (12) and (13) of the R operation in the aforementioned parallel decoding algorithm.
- the layer starts to update the LLR nodes layer by layer, and when the layer is updated to the n out +1th layer, the obtained N in LLR nodes are the output LLR sequence It may include N in /N out LLR subsequences with a length of N out. It should be noted that in each iteration of the parallel decoder 500, the value of m may be different.
- the input LLR sequence of the first stage update unit 510 It may be the decoded input LLR sequence of the parallel decoder 500, or it may be the second updated output LLR sequence obtained by the second-stage update unit 520.
- the first-stage update unit 510 may also be used to output LLR sequence from Determine the input LLR sequence provided to the next-stage decoder.
- the input LLR sequence provided to the next-stage decoder includes an output LLR sequence There are N out LLRs. Due to the output LLR sequence It may include N in /N out LLR subsequences with a length of N out , and the first-stage update unit 510 may start from Determine an LLR subsequence as the input LLR sequence provided to the next-stage decoder.
- the LLR subsequence is the output LLR sequence
- the s-th subsequence in may include the output LLR sequence (S-1) ⁇ N out + 1 LLR to s ⁇ N out LLR,
- the second-stage update unit 520 can be used to input the LLR sequence for the second update To give n in N in number of nodes LLR + 1 layer, the first n in N in a layer of the +1 LLR node n out +1 layer started from the second stage update The LLR sequence is output as the second update.
- the second-stage update unit 520 obtains the LLR sequence as input N out N in number of nodes +1 LLR LLR for the layer sequence number N in LLR, the second stage of updating comprises n out +1 from layer to layer of n in +1 direction n in -n out times
- the LLR soft value is updated, and the updated calculation formula can refer to the formulas (12) and (13) of the R operation in the aforementioned parallel decoding algorithm, or the formulas (14) or (15) calculated row by row from bottom to top.
- the second-stage update unit 520 updates the LLR nodes layer by layer starting from the n out +1 layer, and when updating to the n in +1 layer, the value of the N in LLR nodes is the second update output LLR sequence Its length is N in .
- the decoding input LLR sequence of is derived from the input LLR sequence of the first parallel decoder, and the second parallel decoder is also used for the upper decoder, for example, to return one or more lengths to the first parallel decoder It is the decoded LLR sequence of N in2 or N out1.
- one or more parallel decoders 500 may be cascaded with a serial decoder supporting a smaller code length.
- the parallel decoder 620 (N, N S ) and the serial decoder 630 supporting a code length of N S are cascaded.
- the parallel decoder 810 (N P , N ), the parallel decoder 620 (N, N S ) and the serial decoder 630 supporting a code length of N S are cascaded.
- N can be any of the following: 1024, 512, 256, 128, 64, 32, and Ns can be any of the following: 128, 64, 32, 16, 8, 4, 2, 1, N p can be Value any of the following: 8192,4096,2048,1024,512,256,128. It should be noted that this is only an example and is not limited to this.
- the parallel decoder 620 is referred to as a second parallel decoder
- the parallel decoder 810 is referred to as a first parallel decoder.
- the parallel decoder provided by the embodiment of the present invention can be used for cascaded decoding, which converts a larger code length into a smaller code length through parallel decoding and outputs it to the next-stage decoder, which can improve the throughput rate. It can also reduce the implementation overhead of the next-level decoder.
- FIG. 6 it is a schematic structural diagram of a cascaded decoder 600 in which a parallel decoder 620 and a serial decoder 630 are cascaded according to an embodiment of the present invention, wherein the serial decoder 630 is a parallel decoder 620's next-level decoder.
- the parallel decoder 620 can use a BP decoding algorithm, an MS decoding algorithm or a DNN decoding algorithm
- the serial decoder 630 can use an SCL decoding algorithm, a CA-SCL decoding algorithm, and so on.
- the length of the input LLR sequence provided by the parallel decoder 620 to the serial decoder 630 is N S.
- the length of the input LLR sequence of the parallel decoder 620 is 8, and the length of the input LLR sequence provided to the serial decoder 630 is 4.
- FIG. 7 it is a flowchart of a decoding method of a cascade decoder according to an embodiment of the present invention.
- the decoding method of the cascaded decoder shown in FIG. 7 will be described below in conjunction with the cascaded decoder 600 of FIG. 6.
- the input LLR sequence of the cascaded decoder 600 includes N input LLRs, and the input LLR sequence is subjected to a maximum of T iterative cascaded decoding, where the t-th iterative cascaded decoding, 0 ⁇ t ⁇ T, including the method steps shown in Figure 7:
- Step 710 The second parallel decoder 620 decodes the L(t) second input LLR sequences to obtain L(t) second output LLR sequences.
- each second input LLR sequence is N, expressed as The length of each second output LLR sequence is N, expressed as
- the second parallel decoder 620 obtains the corresponding second output LLR sequence each iteration Used to provide the third input LLR sequence of the serial decoder 630 (t).
- the third input LLR sequence include the second output LLR sequence
- Ns LLRs for example: cLLR (t-1) ⁇ Ns+1 , cLLR (t-1) ⁇ Ns+2 ,..., cLLR t ⁇ Ns .
- the second parallel decoder 620 responds to the second input LLR sequence
- For the decoding process refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
- the second parallel decoder 620 according to the second output LLR sequence Determine the third input LLR sequence And output to the serial decoder 630; in another possible implementation, the second parallel decoder 620 outputs the second LLR sequence Output to the serial decoder 630, and the serial decoder 630 according to the second output LLR sequence Determine the third input LLR sequence (t).
- the second parallel decoder 620 uses the initial input LLR sequence of the cascaded decoder as the second input LLR sequence I.e. 1 second input LLR sequence
- the initial input LLR sequence can be the LLR sequence obtained by demodulation and other processing after the receiving end device receives the signal And information sequence correspond.
- the second parallel decoder 620 responds to the second input LLR sequence Perform the first stage update to get the second output LLR sequence
- the second parallel decoder 620 obtains the M(t-1) third output LLR sequences of the previous iteration, that is, the t-1th iteration, from the serial decoder 630, where each third output LLR sequence Including N S LLRs, denoted as
- the second parallel decoder 620 obtains M(t-1) second output LLR sequences corresponding to the M(t-1) third output LLR sequences in the t-1th iteration Since in the t-1th iteration, the second parallel decoder generates L(t-1) second output LLR sequences.
- the serial decoder 630 returns M(t-1) third output LLR sequences through path selection The second parallel decoder 620 determines the sequence of LLRs with these third outputs The second output LLR sequence corresponding to the parent path, and the corresponding M(t-1) second output LLR sequences are obtained
- the second parallel decoder 620 converts M(t-1) third output LLR sequences Replace the corresponding second output LLR sequence respectively In the corresponding sequence number of LLR, cLLR (t-2) ⁇ Ns+1 , cLLR (t-2) ⁇ Ns+2 ,..., cLLR (t-1) ⁇ Ns , get M(t-1) sequences
- the second parallel decoder 620 can also be used to determine the corresponding L(t) for the L(t) second input LLR sequences. LDPC check matrices; the second parallel decoder 620 decodes L(t) second input LLR sequences respectively based on the L(t) LDPC check matrices to obtain L(t) second output sequences .
- the second parallel decoder 620 responds to the second input LLR sequence
- For the decoding process refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
- Step 720 The serial decoder 630 decodes the L(t) third input LLR sequences to obtain M(t) decoding paths. Wherein, each of the third input LLR sequence include the corresponding second output LLR sequence respectively Ns LLRs.
- the maximum number of reserved decoding paths of the serial decoder 630 is M, and M is an integer greater than zero.
- the serial decoder 630 serially decodes the L(t) third input LLR sequences to obtain M(t) decoding paths.
- the maximum reserved decoding path of the serial decoder 630 is M paths.
- the M(t) decoding paths are the L(t)*2 k decoding paths generated by the serial decoder 630 and the M(t) decoding paths with the largest path metric value, or the The M(t) decoding paths are L(t)*2 generated by the serial decoder 630.
- the M(t) decoding paths have the largest path metric value and pass the CRC check, and k is Positive integer.
- M(t) is the minimum value of M and L(t)*2 k.
- Step 730 The serial decoder 630 determines to continue the next iteration process and executes step 740, or the serial decoder 630 determines to terminate the iteration process and executes step 750.
- the serial decoder 630 executes step 740 and continues to the tth +1 iteration processing.
- step 750 is executed.
- Step 740 The serial decoder 630 obtains M(t) third output LLR sequences according to the M(t) decoding paths.
- the serial decoder 630 judges the M(t) decoding paths to obtain M(t) third output LLR sequences, and each third output LLR sequence includes Ns LLR soft values, denoted as
- Step 750 The serial decoder 630 obtains the decoding result according to the M(t) decoding paths, and terminates the iteration.
- the serial decoder 630 makes a hard decision on one of the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, and obtains the information sequence Corresponding information bits.
- Information sequence It includes multiple information bits, or one or more information bits and one or more frozen bits. After the serial decoder 630 makes a hard decision, it only needs to output one or more information bits.
- the serial decoder only needs every The decoding with a length of 8 is executed once. This method can greatly increase the decoding throughput, and can use the decoding performance of the serial decoder to compensate for the decoding performance of the parallel decoder, so that the overall decoding performance and throughput are improved.
- the performance curve of the SC decoding algorithm is represented by a diamond curve
- the performance curve of the SCL8 decoding algorithm is represented by a square curve
- the performance curve of the BP decoding algorithm is represented by an X-shaped curve.
- the performance curve is represented by a circular curve.
- 5G communication systems support both Polar codes and LDPC codes, using DNN, BP, MS and other parallel translation
- the decoder of the code algorithm is a general architecture, which can support Polar code decoding and LDPC code decoding.
- the cascaded decoder of the embodiment of this application can share the parallel decoding operation of LDPC code. Unit, which can save hardware implementation overhead and avoid waste.
- the first parallel decoder 810 (Np, N), the second parallel decoder 620 (N, Ns) and the serial decoder 630 are cascaded according to another embodiment of this application.
- the first-level decoder is a parallel decoder 810
- the second-level decoder is a parallel decoder 620
- the third-level decoder 630 is a serial decoder. It can also be regarded as the parallel decoder 810 and the cascaded decoder 600 shown in FIG. 6 are cascaded, the parallel decoder 810 performs the first stage iterative decoding, and the cascade decoder 600 performs the second stage iterative decoding. code.
- the first parallel decoder 810 may use a BP decoding algorithm, an MS decoding algorithm or a DNN decoding algorithm.
- the length of the input LLR sequence of, is N, or it can be said that the length of the input LLR sequence provided to the second parallel decoder 620 is N.
- the decoding process of the first parallel decoder 810 for the input sequence is similar to the decoding process of the second parallel decoder 620. You can refer to the description of the foregoing embodiment. The difference is that the second parallel decoder 620 serves as the next stage.
- the decoder also needs to return to its upper level decoder, the first parallel decoder 810, to decode the LLR sequence.
- the maximum number of iterations I N p /N, that is, the maximum number of iterations of the first-level iteration is I, and the input of the first parallel decoder 810 is K(i)
- the first input LLR sequence, the length is N p expressed as
- the cascaded decoder 600 includes a second parallel decoder 620 and a serial decoder 630 cascaded, for each second input LLR sequence Decode to get the second output LLR sequence
- the process can refer to the method steps described in Figure 7.
- the difference is that the second parallel decoder 620 also needs to return the decoded LLR sequence to the first parallel decoder, and the serial decoder 630 needs to iterate according to the first stage, the first The output is different whether the level 2 iteration is terminated or not.
- Step 910 The first parallel decoder 810 performs the first stage decoding on the K(i) first input LLR sequences to obtain K(i) first output LLR sequences.
- each first input LLR sequence is N p
- the length of each first output LLR sequence is N p
- i is the number of iterations of the first level
- t is the number of iterations of the second level.
- the first parallel decoder 810 obtains the corresponding first output LLR sequence each iteration Used to provide the second input LLR sequence of the cascaded decoder 600 Among them, the second input LLR sequence Include the corresponding first output LLR sequence There are N LLRs, for example: eLLR (i-1) ⁇ N+1 , eLLR (i-1) ⁇ N+2 ,..., eLLR i ⁇ N .
- the second input LLR sequence can also be expressed as In order to simplify the description, it is consistent with the expression in Figure 7, and the second input LLR sequence is expressed as Understandable, that is
- the first parallel decoder 810 responds to the first input LLR sequence
- For the decoding process refer to the description of the parallel decoder decoding process in the foregoing embodiment, which is not repeated here.
- the first parallel decoder 810 according to the first output LLR sequence Determine the second input LLR sequence And output to the next-level decoder: the cascade decoder 600 or the second parallel decoder 620; in another possible implementation manner, the first parallel decoder 810 outputs the first LLR sequence Output to the next stage decoder: cascade decoder 600, or second parallel decoder 620, the next stage decoder according to the first output LLR sequence Determine the second input LLR sequence
- the first parallel decoder 810 uses the initial input LLR sequence of the multi-cascade decoder as the first input LLR sequence I.e. 1 first input LLR sequence
- the initial input LLR sequence can be the LLR sequence obtained by demodulation and other processing after the receiving end device receives the signal And information sequence correspond.
- the first parallel decoder 810 responds to the first input LLR sequence Perform the first stage update to get the first output LLR sequence
- the first parallel decoder 810 obtains the previous iteration, that is, the M(i-1,t) of the i-1th iteration from the next-stage decoder, as shown in FIG. 8
- the second decoded LLR sequence Each second decoding LLR sequence includes N LLRs, and the corresponding first output LLR sequence of the i-1th iteration The (i-2) ⁇ N+1th LLR to the (i-1) ⁇ Nth LLR correspond.
- the first parallel decoder 810 obtains M(i-1,t) first output LLR sequences corresponding to the M(i-1,t) second decoded LLR sequences in the i-1th iteration Since in the i-1th iteration, the first parallel decoder 810 generates K(i-1) first output LLR sequences After t iterations, the cascaded decoder 600 obtains M(i-1, t) second decoded LLR sequences The parent path where each second decoded LLR sequence is located corresponds to a first output LLR sequence.
- the first parallel decoder 810 decodes M(i-1, t) second decoded LLR sequences Replace the corresponding first output LLR sequence respectively In the corresponding sequence number LLR, eLLR (i-2) ⁇ N+1 , eLLR (i-2) ⁇ N+2 ,..., eLLR (i-1) ⁇ N get the sequence
- the first parallel decoder 810 pairs M(i-1, t) Perform the second stage update respectively to obtain M(i-1, t) second update output sequences, and the first parallel decoder 810 regards the M(i-1, t) second update output sequences as K(i-1, t) second update output sequences. ) First input LLR sequence
- the first parallel decoder 810 responds to the first input LLR sequence
- the parallel decoder in the foregoing embodiment which will not be repeated here.
- Step 920 The cascade decoder 600 performs the second stage iterative decoding on the K(i) second input LLR sequences.
- the iterative process of the cascade decoder 600 decoding the K(i) second input LLR sequences is the second-level iteration, and the maximum number of iterations is T times.
- step 710 For the process of the tth iteration, refer to step 710 to step 750.
- the maximum number of iterations is the product of the number of iterations of the two-stage decoder, T ⁇ I.
- the tth iteration includes the following steps:
- Step 9201 The second parallel decoder 620 decodes the L(i,t) second input LLR sequences to obtain L(i,t) second output LLR sequences.
- each second input LLR sequence is N, expressed as The length of each second output LLR sequence is N, expressed as
- the second parallel decoder 620 responds to each second input LLR sequence Perform the first stage update separately to get the second output LLR sequence Used to provide the third input LLR sequence of the serial decoder 630
- the second parallel decoder 620 obtains the M(i, t-1) third output LLR sequences of the previous iteration, that is, the t-1th iteration, from the serial decoder 630, where each third output
- the LLR sequence includes N S LLRs, denoted as
- the second parallel decoder 620 obtains M(i, t-1) second output LLR sequences corresponding to the M(i, t-1) third output LLR sequences in the t-1th iteration Since in the t-1th iteration, the second parallel decoder generates L(i, t-1) second output LLR sequences.
- the serial decoder 630 returns M(i, t-1) third output LLR sequences through path selection
- the second parallel decoder 620 determines the sequence of LLRs with these third outputs
- the second output LLR sequence corresponding to the parent path, and the corresponding M(i, t-1) second output LLR sequences are obtained
- the second parallel decoder 620 converts M(i, t-1) third output LLR sequences Replace the corresponding second output LLR sequence respectively In the corresponding sequence number of LLR, cLLR (t-2) ⁇ Ns+1 , cLLR (t-2) ⁇ Ns+2 ,..., cLLR (t-1) ⁇ Ns , get M(i,t-1) sequence
- the second parallel decoder 620 responds to the second input LLR sequence
- For the decoding process refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
- Step 9202 The serial decoder 630 decodes the L(i,t) third input LLR sequences to obtain M(i,t) decoding paths.
- Step 9203 The serial decoder 630 determines to continue the next iterative process and executes step 9204, or the serial decoder 630 determines to terminate the second-level iterative process but does not terminate the first-level iterative process, and executes steps 9204 to 9205, or The serial decoder 630 determines to terminate the first-stage iterative process, and executes step 9206.
- the serial decoder 630 executes Step 9204, continue the t+1th level 2 iterative processing.
- steps 9204 and 9205 are executed.
- step 9206 is executed.
- Step 9204 The serial decoder 630 obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
- the serial decoder 630 determines the M(i,t) decoding paths to obtain M(i,t) third output LLR sequences, and each third output LLR sequence includes Ns LLR soft values, denoted as
- Step 9205 The second parallel decoder 620 obtains the second decoded LLR sequence according to the M(i,t) third output LLR sequences, and terminates the second stage iteration.
- the second parallel decoder 620 obtains the LLR sequence with the M(i,t) third output The corresponding M(i,t) second output LLR sequence of the tth iteration
- the second parallel decoder 620 according to the M(i,t) third output LLR sequences And the M(i,t) second output LLR sequence of the tth iteration Get the second updated input LLR sequence of M(i,t) iteration t
- the second parallel decoder 620 updates the M(i,t) second update input LLR sequences Perform the second stage update to get M(i,t) second decoded LLR sequences
- the second parallel decoder 620 outputs the M(i,t) second decoded LLR sequences to the first parallel decoder 810 And terminate the second iteration.
- M(i,t) second decoded LLR sequences It can also be regarded as the output of the cascaded decoder 600 to the upper-level decoder, the first parallel decoder 810.
- Step 9206 The serial decoder 630 obtains the decoding result according to the M(i,t) decoding paths, and terminates the multi-cascade decoding iteration.
- the serial decoder 630 makes a hard decision on M(i,t) decoding paths to obtain the information sequence Corresponding information bits.
- Information sequence It includes multiple information bits, or one or more information bits and one or more frozen bits, and the serial decoder 630 only needs to output the information bits after making a hard decision.
- the multi-cascade decoder can share part of the parallel decoding units of the LDPC decoder, saving system overhead .
- the second parallel decoder 620 in this case, can convert the factor graph of the second input LLR sequence, determine the corresponding LDPC check matrix, and perform LDPC decoding through a small block-length serial
- the decoder performs path selection. This method not only improves the throughput of decoding, improves the decoding performance of parallel decoders, but also provides a basis for common mode with decoders of other codes such as LDPC and saves system overhead.
- the cascaded decoding method provided in the embodiments of the present application may be executed by a decoding device or a chip in a decoding device in various network equipment or terminal equipment.
- An embodiment of the present application also provides a decoding device.
- the decoding device may adopt the structure of FIG. 6 or FIG. 8 to execute the decoding method shown in FIG. 7 or FIG. 9. Some or all of these decoding methods can be implemented by hardware or software.
- the decoding device can include: an input interface circuit for obtaining the LLR sequence corresponding to the information sequence; and a logic circuit for implementing FIG. 7 Or the decoding method shown in Figure 9; output interface circuit for outputting information bits.
- the decoding device may be a chip or an integrated circuit in specific implementation.
- An embodiment of the present application also provides a decoding device.
- the decoding device may adopt the structure of FIG. 6 or FIG. 8 to execute the decoding method shown in FIG. 7 or FIG. 9. Some or all of these decoding methods can be implemented by hardware or software.
- the decoding device can include: a memory for storing a program; a processor for executing a program stored in the memory. When the program is executed At this time, the decoding device can realize the decoding method shown in FIG. 7 or 9.
- the foregoing memory may be a physically independent unit, or may be integrated with the processor.
- the decoding device may also only include a processor.
- the memory for storing the program is located outside the decoding device, and the processor is connected to the memory through a circuit/wire for reading and executing the program stored in the memory.
- the processor may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
- CPU central processing unit
- NP network processor
- the processor may further include a hardware chip.
- the aforementioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
- CPLD complex programmable logic device
- FPGA field-programmable gate array
- GAL generic array logic
- the memory may include volatile memory (volatile memory), such as random-access memory (RAM); the memory may also include non-volatile memory (non-volatile memory), such as flash memory (flash memory) , Hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory may also include a combination of the foregoing types of memory.
- volatile memory volatile memory
- non-volatile memory non-volatile memory
- flash memory flash memory
- HDD Hard disk drive
- SSD solid-state drive
- the embodiment of the present application also provides a computer storage medium storing a computer program, and the computer program includes a decoding method for executing the decoding method provided in the foregoing method embodiment.
- the embodiments of the present application also provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the decoding method provided by the foregoing method embodiments.
- Any decoding device provided in the embodiments of the present application may also be a chip.
- this application can be provided as methods, systems, or computer program products. Therefore, this application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
- the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
- the instructions provide steps for implementing the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
A cascade decoder (600) and a decoding method. The cascade decoder (600) comprises a parallel decoder (620) and a serial decoder (630), and iterative decoding is performed for a maximum of T iterations; the parallel decoder (620) is configured to decode one or more LLR sequences with a length of N; the serial decoder (630) is configured to decode one or more LLR sequences with a length of NS, wherein NS<N, and t-th iteration is performed. The method comprises: the parallel decoder (620) decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequences (710); the serial decoder (630) decodes L(t) third input LLR sequences to obtain M(t) decoding paths (720), each of the third input LLR sequences comprising Ns LLRs in the corresponding second output LLR sequence, respectively; the serial decoder (630) determines whether to terminate an iteration (730). By adoption of the cascade decoder (600), the throughput rate of the decoding is improved by means of the parallel decoder (620), and the performance of parallel decoding is improved by means of the serial decoder (630), so that the decoding performance and the throughput rate are improved as a whole.
Description
本申请涉及通信领域,并且更具体地,涉及通信领域中极化码的译码方法和译码器。This application relates to the field of communications, and more specifically, to a decoding method and decoder of polarization codes in the field of communications.
极化(Polar)码于2008年首次被Arikan提出,并且被证明为可以达到香农极限容量。Polar码的编码主要是基于信道极化理论提出的,信道极化过程主要分为信道组合与信道分解。当信道组合的数目趋于无限大的时候将出现信道极化现象。信道极化现象就是信道容量明显趋于两级,一部分趋于信道容量为1的一极,即无噪信道;而另一部分趋于信道容量为0的一极,即全噪信道。由于信道发生极化,我们就可以合理利用极化特征进行编码,在无噪信道上设定信息位,即传输信息比特;而在全噪信道上设定冻结位,即传输无信息的固定比特,例如0或者1,这些比特也可以称为冻结比特。极化码的译码计算复杂度为O(N log
2N),其中N为码长。
Polar code was first proposed by Arikan in 2008, and it was proven to reach Shannon's limit capacity. The encoding of Polar codes is mainly based on the theory of channel polarization. The process of channel polarization is mainly divided into channel combination and channel decomposition. When the number of channel combinations tends to be infinite, channel polarization will occur. The phenomenon of channel polarization is that the channel capacity obviously tends to two levels, one part tends to a pole with a channel capacity of 1, that is, a noiseless channel; and the other part tends to a pole with a channel capacity of 0, that is, a full-noise channel. Since the channel is polarized, we can reasonably use the polarization feature to encode, set the information bit on the noise-free channel, that is, transmit the information bit; and set the freeze bit on the all-noise channel, that is, transmit the fixed bit without information. , Such as 0 or 1, these bits can also be called frozen bits. The decoding calculation complexity of the polarization code is O(N log 2 N), where N is the code length.
通常可以用P(N,K)表示码长为N=2
n,有K个信息比特的极化码。编码器对信息序列
进行Polar编码得到编码后序列
其中极化码的递归生成过程可以用如下矩阵相乘的形式表示:
Generally, P(N,K) can be used to represent a polarization code with a code length of N=2 n and K information bits. Encoder pair information sequence Perform Polar encoding to get the encoded sequence The recursive generation process of polarization codes can be expressed in the form of matrix multiplication as follows:
其中矩阵
是极化矩阵
的n阶克罗内克积得到的矩阵。
Where matrix Is the polarization matrix The matrix obtained by the n-order Kronecker product.
在构造极化码时会选择相对可靠的K个比特用于传输信息比特,也就是上述无噪信道对应的比特,用A来表示该集合;而N-K个相对不可靠的比特的值设为一个固定值,例如设为0或1,这些比特被称为冻结比特,这些比特所在的位置也可以称为固定位,也就是上述全噪信道对应的比特。When constructing the polarization code, the relatively reliable K bits are selected for the transmission of information bits, that is, the bits corresponding to the above-mentioned noise-free channel, and the set is represented by A; and the value of the NK relatively unreliable bits is set to one A fixed value, for example, set to 0 or 1. These bits are called frozen bits, and the positions of these bits can also be called fixed bits, that is, the bits corresponding to the above-mentioned full-noise channel.
现阶段,Polar的主要译码方法包括串行译码方法和并行译码方法,串行译码方法包括:串行抵消(successive cancellation,SC)译码方法,列表串行抵消(successive cancellation list,SCL)译码方法以及循环冗余校验(cyclic redundancy check,CRC)辅助的SCL(CRC aided SCL,CA-SCL)译码方法等,并行译码方法包括:置信传播(Belief Propagation,BP)/最小和(Min-Sum,MS)类译码方法和深度神经网络(deep neutral network,DNN)等。这些译码方法各有所长,从译码性能看,串行译码方法译码性能较好,但是译码延时较大,译码吞吐率受限;而并行类译码方法并行度高,但译码性能往往和串行译码方法相比存在较大差距。At this stage, Polar’s main decoding methods include serial decoding methods and parallel decoding methods. Serial decoding methods include: serial cancellation (successive cancellation, SC) decoding method, list serial cancellation (successive cancellation list, SCL) decoding method and cyclic redundancy check (CRC) assisted SCL (CRC aided SCL, CA-SCL) decoding method, etc. Parallel decoding methods include: Belief Propagation (BP)/ The minimum sum (Min-Sum, MS) decoding method and the deep neutral network (DNN), etc. These decoding methods have their own strengths. From the perspective of decoding performance, the serial decoding method has better decoding performance, but the decoding delay is large, and the decoding throughput rate is limited; while the parallel decoding method has high parallelism , But the decoding performance often has a big gap compared with the serial decoding method.
3GPP选定极化码用于5G增强移动宽带(enhance mobile broadband,eMBB)业务的控制信道编码,低密度奇偶校验(low density parity check,LDPC)用于5G eMBB业务数据信道编码。3GPP selected polarization codes for 5G enhanced mobile broadband (enhance mobile broadband, eMBB) control channel coding, and low density parity check (LDPC) was used for 5G eMBB service data channel coding.
需要设计Polar码译码器以更好地满足极化码在通信系统中的实际应用需求。The Polar code decoder needs to be designed to better meet the actual application requirements of the polar code in the communication system.
发明内容Summary of the invention
有鉴于此,本申请各实施例提供了用于级联译码的并行译码器,级联译码器以及级联译码的方法,用于改善并行译码的译码性能的同时保持较高吞吐率。本申请实施例还提供了一种多级联译码器,可以进一步降低通信设备中多模译码器的硬件开销。In view of this, the various embodiments of the present application provide parallel decoders for cascaded decoding, cascaded decoders, and methods for cascaded decoding, which are used to improve the decoding performance of parallel decoding while maintaining relatively high performance. High throughput rate. The embodiment of the present application also provides a multi-cascade decoder, which can further reduce the hardware overhead of the multi-mode decoder in the communication device.
第一方面,本申请实施例提供了一种用于级联译码的并行译码器,用于对一个或多个长度为N
in的对数似然比LLR序列进行最大S次迭代译码,并在每次迭代中向下一级译码器提供一个或多个长度为N
out的输入LLR序列。所述并行译码器包括:第一阶段更新单元和第二阶段更新单元,对于第s次迭代,
In the first aspect, the embodiments of the present application provide a parallel decoder for cascaded decoding, which is used to decode one or more LLR sequences of length N in with a maximum of S times. , And provide one or more input LLR sequences of length N out to the next decoder in each iteration. The parallel decoder includes: a first-stage update unit and a second-stage update unit. For the sth iteration,
s=1,第一阶段更新单元用于对所述并行译码器的输入LLR序列进行第一阶段更新得到输出LLR序列,所述输出LLR序列用于提供下一级译码器的输入LLR序列,其中,所述并行译码器的输入LLR序列包括N
in个LLR,所述输出LLR序列包括N
in个LLR,所述下一级译码器的输入LLR序列包括所述输出LLR序列中N
out个LLR;
s=1, the first-stage update unit is used to perform the first-stage update on the input LLR sequence of the parallel decoder to obtain the output LLR sequence, and the output LLR sequence is used to provide the input LLR sequence of the next-stage decoder , Wherein the input LLR sequence of the parallel decoder includes N in LLRs, the output LLR sequence includes N in LLRs, and the input LLR sequence of the next-level decoder includes N in the output LLR sequence. out LLRs;
第二阶段更新单元用于获取所述下一级译码器的输出LLR序列,所述下一级译码器的输出LLR序列包括N
out个LLR。
The second-stage update unit is used to obtain the output LLR sequence of the next-stage decoder, and the output LLR sequence of the next-stage decoder includes N out LLRs.
s>1,s>1,
所述第二阶段更新单元用于对第二更新输入LLR序列进行第二阶段更新得到第二更新输出LLR序列,所述第二更新输入LLR序列为根据获取的第s-1次迭代中所述下一级译码器的输出LLR序列及其对应的第s-1次迭代中的输出LLR序列得到的序列,包括N
in个LLR;
The second-stage update unit is configured to perform a second-stage update on a second update input LLR sequence to obtain a second update output LLR sequence, and the second update input LLR sequence is obtained according to the obtained s-1th iteration The output LLR sequence of the next-level decoder and the sequence obtained from the output LLR sequence in the s-1th iteration, including N in LLRs;
所述第一阶段更新单元用于对所述第二更新输出LLR序列进行第一阶段更新得到输出LLR序列,所述输出LLR序列用于提供下一级译码器的输入LLR序列。The first-stage update unit is configured to perform a first-stage update on the second updated output LLR sequence to obtain an output LLR sequence, and the output LLR sequence is used to provide an input LLR sequence of a next-stage decoder.
上述并行译码器可以在级联译码中实现大块长的译码计算,可以适配对小块长译码性能较好的下一级译码器,有助于提高整体译码的吞吐率,并且利用下一级译码器的译码性能。The above-mentioned parallel decoder can realize large-block-length decoding calculations in cascaded decoding, and can be adapted to the next-stage decoder with better decoding performance for small-block lengths, which helps to improve the overall decoding throughput Rate, and use the decoding performance of the next-level decoder.
结合第一方面,在第一种可能的实现方式中,所述第二更新输入LLR序列为将第s-1次迭代中所述输出LLR序列中第(s-2)·N
out+1个LLR至第(s-1)·N
out个LLR替换为第s-1次迭代中所述下一级译码器的输出LLR序列中的N
out个LLR得到的。
With reference to the first aspect, in a first possible implementation manner, the second update input LLR sequence is the (s-2)·N out +1th in the output LLR sequence in the s-1th iteration LLR to the second (s-1) · N out a replacement for the first LLR s-1 iterations LLR output sequence of the next stage of the decoder LLR obtained number N out.
结合第一方面及上述任一种可能的实现方式,在第二种可能的实现方式中,所述并行译码器将所述输出LLR序列输出给所述下一级译码器,使得所述下一级译码器根据所述输出LLR序列的第(s-1)·N
out+1个LLR至第s·N
out个LLR获取其输入LLR序列。
Combining the first aspect and any one of the foregoing possible implementation manners, in a second possible implementation manner, the parallel decoder outputs the output LLR sequence to the next-stage decoder, so that the The next-stage decoder obtains its input LLR sequence according to the (s-1)·N out +1 th LLR to the s·N out LLR of the output LLR sequence.
结合第一方面及上述任一种可能的实现方式,在第三种可能的实现方式中,所述并行译码器从所述输出LLR序列中确定第(s-1)·N
out+1个LLR至第s·N
out个LLR作为所述下一级译码器的输入LLR序列输出给所述下一级译码器。
With reference to the first aspect and any one of the foregoing possible implementation manners, in a third possible implementation manner, the parallel decoder determines the (s-1)·N out +1th from the output LLR sequence The LLR to the s·N out- th LLR are output to the next-stage decoder as the input LLR sequence of the next-stage decoder.
结合第一方面或上述任一种可能的实现方式,在第四种可能的实现方式中,所述并行译码器至少包括因子图的第n
out+1层至第n
in+1层n
in-n
out个译码层。
With reference to the first aspect or any one of the foregoing possible implementation manners, in a fourth possible implementation manner, the parallel decoder includes at least the n out +1 th layer to the n in +1 th layer n in of the factor graph. -n out decoding layers.
结合第四种可能的实现方式,在第五种可能的实现方式中,所述第一阶段更新单元具体用于将所述第n
in+1层的N个LLR节点更新为所述输入的LLR序列,并从第n
in+1层向第n
out+1层方向逐层执行软值更新得到第n
out+1层的N
in个LLR节点,所述 输出LLR序列包括所述第n
out+1层的N
in个LLR节点;所述第二阶段更新单元具体用于将所述第n
out+1层的N个LLR节点更新为所述第二更新输入LLR序列,并从第n
out+1层向第n
in+1层方向逐层执行软值更新得到第n
in+1层的N
in个LLR节点,所述第二更新输出LLR序列包括所述第n
in+1层的N
in个LLR节点。
With reference to the fourth possible implementation manner, in the fifth possible implementation manner, the first-stage update unit is specifically configured to update the N LLR nodes of the n in +1th layer to the input LLR Sequence, and perform soft value update layer by layer from the n in +1 layer to the n out +1 layer to obtain the N in LLR nodes of the n out +1 layer, and the output LLR sequence includes the n out + N in LLR nodes of layer 1; the second-stage update unit is specifically configured to update the N LLR nodes of the n out + 1th layer to the second update input LLR sequence, and start from the n out + 1-layer to the first layer n in +1 direction to perform a soft layer to obtain a first value updating n in N in a layer LLR + 1 nodes, the second output LLR update sequence comprising n in N in the first layer +1 LLR nodes.
结合第一方面或上述任一种可能的实现方式,在第六种可能的实现方式中,所述第一阶段更新单元具体还用于确定所述输入LLR序列对应的LDPC校验矩阵,所述第一阶段更新单元以及所述第二阶段更新单元基于所述LDPC校验矩阵对所述输入LLR序列进行更新。这种方式下,利用LDPC码的计算单元对Polar码进行译码,使得与LDPC码共模译码,节省开销成为可能。With reference to the first aspect or any of the foregoing possible implementation manners, in a sixth possible implementation manner, the first-stage update unit is specifically further configured to determine the LDPC check matrix corresponding to the input LLR sequence, and the The first-stage update unit and the second-stage update unit update the input LLR sequence based on the LDPC check matrix. In this way, the Polar code is decoded by the calculation unit of the LDPC code, which makes it possible to decode the Polar code in common mode with the LDPC code and save overhead.
结合第一方面或上述任一种可能的实现方式,在第七种可能的实现方式中,所述第二阶段更新单元还用于向上一级译码器返回译码LLR序列,所述译码LLR序列包括所述第二更新输出序列。With reference to the first aspect or any of the foregoing possible implementation manners, in a seventh possible implementation manner, the second-stage update unit is further configured to return the decoded LLR sequence to the upper-level decoder, and the decode The LLR sequence includes the second update output sequence.
在又一种可能的实现方式中,所述并行译码器包括以下一种或多种:BP译码器或者MS译码器或者DNN译码器。In another possible implementation manner, the parallel decoder includes one or more of the following: a BP decoder, an MS decoder, or a DNN decoder.
在又一种可能的实现方式中,N
in取值可以是以下任一:8192,4096,2048,1024,512,256,128,64,32;N
out取值可以为以下任一:1024,512,256,128,64,32,16,8,4,2,1128,64,32,16,8,4,2,1。
In another possible implementation, the value of N in can be any of the following: 8192,4096,2048,1024,512,256,128,64,32; the value of N out can be any of the following: 1024,512,256,128,64, 32,16,8,4,2,1128,64,32,16,8,4,2,1.
第二方面,本申请实施例提供了一种级联译码方法,对输入LLR序列进行最大T次迭代级联译码,其中,第t次迭代包括:In the second aspect, an embodiment of the present application provides a cascaded decoding method, which performs a maximum T iterations of cascaded decoding on an input LLR sequence, where the t-th iteration includes:
采用并行译码算法对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列;Use a parallel decoding algorithm to decode L(t) second input LLR sequences to obtain L(t) second output LLR sequences;
采用串行译码算法对L(t)个第三输入LLR序列进行译码得到M(t)条译码路径;Use a serial decoding algorithm to decode L(t) third input LLR sequences to obtain M(t) decoding paths;
确定继续迭代,或者,确定终止迭代;Determine to continue the iteration, or determine to terminate the iteration;
其中,每个第二输入LLR序列的长度为N,每个第二输出LLR序列的长度为N,每个所述第三输入LLR序列分别包括对应的第二输出LLR序列中Ns个LLR。The length of each second input LLR sequence is N, the length of each second output LLR sequence is N, and each third input LLR sequence includes Ns LLRs in the corresponding second output LLR sequence.
上述方法利用并行译码算法针对大块长进行并行译码计算,提高译码的吞吐率,并且向下一级串行译码算法提供小块长,利用小块长的串行译码算法改善译码性能,结合了二者的优点,使得译码能同时兼顾吞吐率和译码性能。The above method uses parallel decoding algorithms to perform parallel decoding calculations for large block lengths, which improves the throughput of decoding, and provides small block lengths to the next level of serial decoding algorithms, and uses small block length serial decoding algorithms to improve Decoding performance, combining the advantages of the two, enables decoding to take into account both throughput and decoding performance at the same time.
结合第二方面,在第二方面的第一种可能的实现方式中,每个所述第三输入LLR序列包括对应的第二输出LLR序列中第(t-1)×N
S+1个LLR至第t×N
S个LLR。
With reference to the second aspect, in the first possible implementation manner of the second aspect, each of the third input LLR sequences includes the (t-1)×N S +1 th LLR in the corresponding second output LLR sequence To the t×N S LLR.
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述采用并行译码算法对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,包括:With reference to the second aspect or the first possible implementation manner of the second aspect, in the second possible implementation manner of the second aspect, the parallel decoding algorithm is used to perform L(t) second input LLR sequences Decode and obtain L(t) second output LLR sequences, including:
采用并行译码算法对所述L(t)个第二输入LLR序列分别进行第一阶段更新得到所述L(t)个第二输出LLR序列。A parallel decoding algorithm is used to perform a first stage update on the L(t) second input LLR sequences respectively to obtain the L(t) second output LLR sequences.
结合第二方面或上述任一种可能的实现方式,在第二方面的第三种可能的实现方式中,In combination with the second aspect or any of the foregoing possible implementation manners, in the third possible implementation manner of the second aspect,
t=1,L(t)=1,所述第二输入LLR序列为所述级联译码器的输入LLR序列。t=1, L(t)=1, and the second input LLR sequence is the input LLR sequence of the cascaded decoder.
结合第二方面或上述任一种可能的实现方式,在第二方面的第四种可能的实现方 式中,In combination with the second aspect or any of the foregoing possible implementation manners, in the fourth possible implementation manner of the second aspect,
t>1,第t-1次迭代译码还包括:t>1, the t-1th iterative decoding also includes:
根据所述M(t-1)条译码路径得到M(t-1)个第三输出LLR序列,每个所述第三输出LLR序列包括Ns个LLR。According to the M(t-1) decoding paths, M(t-1) third output LLR sequences are obtained, and each of the third output LLR sequences includes Ns LLRs.
结合第四种可能的实现方式,在第二方面的第五种可能的实现方式中,Combined with the fourth possible implementation, in the fifth possible implementation of the second aspect,
所述第t次迭代还包括:The t-th iteration further includes:
获取与所述M(t-1)个第三输出LLR序列对应的第t-1次迭代的M(t-1)个第二输出LLR序列;Acquiring M(t-1) second output LLR sequences corresponding to the M(t-1) third output LLR sequences of the t-1th iteration;
根据所述M(t-1)个第三输出LLR序列和所述M(t-1)个第t-1次迭代的第二输出LLR序列得到L(t)个第t次迭代的第二更新输入LLR序列,L(t)=M(t-1);According to the M(t-1) third output LLR sequence and the M(t-1) second output LLR sequence of the t-1th iteration to obtain the second L(t)th iteration Update the input LLR sequence, L(t)=M(t-1);
采用所述并行译码算法对所述L(t)个第二更新输入LLR序列进行第二阶段更新得到所述L(t)个第二输入LLR序列。The parallel decoding algorithm is used to perform a second stage update on the L(t) second updated input LLR sequences to obtain the L(t) second input LLR sequences.
结合第二方面或上述任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述并行译码算法包括第n
s+1至第n+1层n-n
s个译码层,
每层包括N个LLR节点;所述第一阶段更新包括:
With reference to the second aspect or any of the foregoing possible implementation manners, in a sixth possible implementation manner of the second aspect, the parallel decoding algorithm includes n s +1 th to n +1 th layer nn s translations. Code layer, Each layer includes N LLR nodes; the first stage update includes:
将所述第n+1层的N个LLR节点更新为所述第二输入LLR序列中的N个LLR,Updating the N LLR nodes of the n+1th layer to N LLRs in the second input LLR sequence,
从所述第n+1层向所述第n
s+1层方向执行软值更新得到所述第n
s+1层的N个LLR节点,所述对应的第二输出LLR序列包括所述第n
s+1层的N个LLR节点;
Perform soft value update from the n+1th layer to the n s +1th layer to obtain N LLR nodes of the n s +1th layer, and the corresponding second output LLR sequence includes the first N LLR nodes of n s +1 layer;
所述第二阶段更新包括:The second phase update includes:
将所述第n
s+1层的N个LLR节点更新为所述第二更新输入LLR序列中的N个LLR,
Updating the N LLR nodes of the n s +1 th layer to the N LLRs in the second updated input LLR sequence,
从所述第n
s+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N个LLR节点,所述对应的第二输入LLR序列包括所述第n+1层的N个LLR节点。
Perform a soft value update from the n s +1 th layer to the n+1 th layer to obtain N LLR nodes of the n+1 th layer, and the corresponding second input LLR sequence includes the n th layer N LLR nodes at level +1.
结合第二方面或上述任一种可能的实现方式,在第二方面的第七种可能的实现方式中,采用串行译码算法对所述L(t)个第三输入LLR序列进行译码得到M(t)条译码路径,包括:With reference to the second aspect or any of the foregoing possible implementation manners, in the seventh possible implementation manner of the second aspect, a serial decoding algorithm is used to decode the L(t) third input LLR sequences Obtain M(t) decoding paths, including:
对所述L(t)个第三输入LLR序列译码得到L(t)*2
k条译码路径,k为正整数;
Decoding the L(t) third input LLR sequences to obtain L(t)*2 k decoding paths, where k is a positive integer;
所述M(t)条译码路径为所述L(t)*2
k条译码路径中路径度量最大的M(t)条译码路径,或者,所述M(t)条译码路径为所述L(t)*2
k条译码路径中路径度量最大且CRC校验通过的M(t)条译码路径。
The M(t) decoding paths are M(t) decoding paths with the largest path metric among the L(t)*2 k decoding paths, or the M(t) decoding paths Among the L(t)*2 k decoding paths, M(t) decoding paths have the largest path metric and pass the CRC check.
结合第二方面,在第二方面的第八种可能的实现方式中,所述采用并行译码算法对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,包括:With reference to the second aspect, in an eighth possible implementation manner of the second aspect, the parallel decoding algorithm is used to decode the L(t) second input LLR sequences to obtain L(t) second output LLRs Sequence, including:
对L(t)个所述第二输入LLR序列分别确定对应的LDPC校验矩阵;Respectively determining a corresponding LDPC check matrix for the L(t) second input LLR sequences;
基于所述LDPC校验矩阵对L(t)个所述第二输入LLR序列进行译码得到L(t)个第二输出序列。Decoding the L(t) second input LLR sequences based on the LDPC check matrix to obtain L(t) second output sequences.
在上述各可能的实现方式中,所述并行译码算法包括:BP译码算法,MS译码算法,或者DNN译码算法;所述串行译码算法包括:SCL译码算法或者CA-SCL译码算法。In each of the above possible implementations, the parallel decoding algorithm includes: BP decoding algorithm, MS decoding algorithm, or DNN decoding algorithm; the serial decoding algorithm includes: SCL decoding algorithm or CA-SCL Decoding algorithm.
在上述各可能的实现方式中,N取值为以下任一项:1024,512,256,128,64,32; Ns取值为以下任一项:128,64,32,16,8,4,2,1。In each of the above possible implementations, the value of N is any of the following: 1024, 512, 256, 128, 64, 32; the value of Ns is any of the following: 128, 64, 32, 16, 8, 4, 2, 1 .
结合第二方面或上述任一种可能的实现方式,在第二方面的第九种可能的实现方式中,t<T且第t次迭代不满足提前终止条件,所述第t次迭代还包括:With reference to the second aspect or any of the foregoing possible implementation manners, in a ninth possible implementation manner of the second aspect, t<T and the tth iteration does not meet the early termination condition, the tth iteration also includes :
根据所述M(t)条译码路径得到M(t)个第三输出LLR序列。According to the M(t) decoding paths, M(t) third output LLR sequences are obtained.
结合第二方面或上述任一种可能的实现方式,在第二方面的第十种可能的实现方式中,t=T,或者,第t次迭代满足提前终止条件;所述第t次迭代还包括:With reference to the second aspect or any of the foregoing possible implementation manners, in the tenth possible implementation manner of the second aspect, t=T, or the t-th iteration satisfies the early termination condition; the t-th iteration also include:
所述串行译码器根据所述M(t)条译码路径得到译码结果,并终止迭代。The serial decoder obtains the decoding result according to the M(t) decoding paths, and terminates iteration.
在上述各可能的实现方式中,输入LLR序列为信息序列
对应的LLR序列,所述信息序列包括多个信息比特,或者一个或多个信息比特和一个或多个冻结比特;所述根据所述M(t)条译码路径得到译码结果,包括:对所述M(t)条译码路径中路径度量值最大或者路径度量值最大且CRC校验成功的1条译码路径进行硬判决,得到所述信息序列中的各信息比特。
In each of the above possible implementations, the input LLR sequence is the information sequence Corresponding LLR sequence, the information sequence includes a plurality of information bits, or one or more information bits and one or more frozen bits; said obtaining a decoding result according to the M(t) decoding paths includes: Perform a hard decision on one decoding path with the largest path metric value or the largest path metric value and a successful CRC check among the M(t) decoding paths to obtain each information bit in the information sequence.
第三方面,本申请实施例提供了一种级联译码器,所述级联译码器包括串行译码器,和如第一方面或第一方面任一可能的实现方式的第二并行译码器,其中,N
in=N,N
out=N
S,S=T,对输入LLR序列进行最大T次迭代译码,所述第二并行译码器用于对一个或多个长度为N的对数似然比LLR序列进行译码,所述串行译码器用于对一个或多个长度为N
S的LLR序列,N
S<N,其中,第t次迭代译码,包括:
In the third aspect, an embodiment of the present application provides a cascaded decoder, the cascaded decoder includes a serial decoder, and the second aspect of the first aspect or any possible implementation of the first aspect. Parallel decoder, where N in =N, N out =N S , S=T, iteratively decodes the input LLR sequence for a maximum of T times, and the second parallel decoder is used to decode one or more lengths of The log-likelihood ratio LLR sequence of N is decoded, and the serial decoder is used to decode one or more LLR sequences of length N S , N S <N, where the t-th iterative decoding includes:
所述第二并行译码器对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,每个第二输入LLR序列的长度为N,每个第二输出LLR序列长度为N;The second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequences, each second input LLR sequence has a length of N, and each second input LLR sequence has a length of N. The length of the output LLR sequence is N;
所述串行译码器对L(t)个第三输入LLR序列进行译码得到M(t)条译码路径,每个所述第三输入LLR序列分别包括对应的第二输出LLR序列中Ns个LLR;The serial decoder decodes the L(t) third input LLR sequences to obtain M(t) decoding paths, and each of the third input LLR sequences includes the corresponding second output LLR sequence. Ns LLRs;
所述串行译码器确定继续迭代,或者,所述串行译码器确定终止迭代。The serial decoder determines to continue the iteration, or the serial decoder determines to terminate the iteration.
上述级联译码器利用并行译码器针对大块长进行并行译码计算,提高译码的吞吐率,并且向串行译码器提供小块长译码,利用小块长的串行译码器改善译码性能,结合了二者的优点,使得译码能同时兼顾吞吐率和译码性能。The above-mentioned cascaded decoder uses a parallel decoder to perform parallel decoding calculations for large block lengths to improve decoding throughput, and provides small block length decoding to the serial decoder, and uses small block length serial translation The encoder improves the decoding performance and combines the advantages of the two, so that the decoding can take into account both the throughput and the decoding performance at the same time.
结合第三方面,在第三方面的第一种可能的实现方式中,每个所述第三输入LLR序列包括对应的第二输出LLR序列中第(t-1)×N
S+1个LLR至第t×N
S个LLR。
With reference to the third aspect, in the first possible implementation manner of the third aspect, each of the third input LLR sequences includes the (t-1)×N S +1 th LLR in the corresponding second output LLR sequence To the t×N S LLR.
结合第三方面及第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第二并行译码器对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,包括:Combining the third aspect and the first possible implementation manner, in the second possible implementation manner of the third aspect, the second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequence, including:
所述第二并行译码器对所述L(t)个第二输入LLR序列分别进行第一阶段更新得到所述L(t)个第二输出LLR序列。The second parallel decoder performs a first stage update on the L(t) second input LLR sequences respectively to obtain the L(t) second output LLR sequences.
结合第三方面或上述任一种可能的实现方式,在第三方面的第三种可能的实现方式中,t=1,L(t)=1,所述第二输入LLR序列为所述级联译码器的输入LLR序列。With reference to the third aspect or any of the foregoing possible implementation manners, in the third possible implementation manner of the third aspect, t=1, L(t)=1, and the second input LLR sequence is the stage The input LLR sequence of the connected decoder.
结合第三方面或上述任一种可能的实现方式,在第三方面的第四种可能的实现方式中,In combination with the third aspect or any of the foregoing possible implementation manners, in the fourth possible implementation manner of the third aspect,
t>1,第t-1次迭代译码还包括:t>1, the t-1th iterative decoding also includes:
所述串行译码器根据所述M(t-1)条译码路径得到M(t-1)个第三输出LLR序列,每个所述第三输出LLR序列包括Ns个LLR。The serial decoder obtains M(t-1) third output LLR sequences according to the M(t-1) decoding paths, and each third output LLR sequence includes Ns LLRs.
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述第t次迭代还包括:With reference to the fourth possible implementation manner of the third aspect, in the fifth possible implementation manner of the third aspect, the t-th iteration further includes:
所述第二并行译码器获取与所述M(t-1)个第三输出LLR序列对应的第t-1次迭代的M(t-1)个第二输出LLR序列;Acquiring, by the second parallel decoder, M(t-1) second output LLR sequences corresponding to the M(t-1) third output LLR sequences of the t-1th iteration;
所述第二并行译码器根据所述M(t-1)个第三输出LLR序列和所述M(t-1)个第t-1次迭代的第二输出LLR序列得到L(t)个第t次迭代的第二更新输入LLR序列,L(t)=M(t-1);The second parallel decoder obtains L(t) according to the M(t-1) third output LLR sequences and the M(t-1) second output LLR sequences of the t-1th iteration The second updated input LLR sequence of the t-th iteration, L(t)=M(t-1);
所述第二并行译码器对所述L(t)个第二更新输入LLR序列进行第二阶段更新得到所述L(t)个第二输入LLR序列。The second parallel decoder performs a second stage update on the L(t) second updated input LLR sequences to obtain the L(t) second input LLR sequences.
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,所述第二并行译码器至少包括第n
s+1至第n+1层n-n
s个译码层,
每层包括N个LLR节点;
With reference to the fifth possible implementation manner of the third aspect, in the sixth possible implementation manner of the third aspect, the second parallel decoder includes at least the n s +1 th to n +1 th layer nn s Decoding layers, Each layer includes N LLR nodes;
所述第二并行译码器对每个第二输入LLR序列进行第一阶段更新得到对应的第二输出LLR序列,包括:The second parallel decoder performs a first stage update on each second input LLR sequence to obtain a corresponding second output LLR sequence, including:
所述第二并行译码器将所述第n+1层的N个LLR节点更新为所述第二输入LLR序列中的N个LLR,The second parallel decoder updates the N LLR nodes of the n+1th layer to N LLRs in the second input LLR sequence,
所述第二并行译码器从所述第n+1层向所述第n
s+1层方向执行软值更新得到所述第n
s+1层的N个LLR节点,所述对应的第二输出LLR序列包括所述第n
s+1层的N个LLR节点;
Said second decoder performs parallel from the first layer n + 1 to the first direction of the soft layer n s +1 to obtain the updated value of n s N + 1 th layer LLR nodes, the corresponding first The second output LLR sequence includes the N LLR nodes of the n s +1 th layer;
所述第二并行译码器对每个第二更新输入LLR序列进行第二阶段更新得到对应的第二输入LLR序列,包括:The second parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding second input LLR sequence, including:
所述第二并行译码器将所述第n
s+1层的N个LLR节点更新为所述第二更新输入LLR序列中的N个LLR,
The second parallel decoder updates the N LLR nodes of the n s +1 th layer to the N LLRs in the second updated input LLR sequence,
所述第二并行译码器从所述第n
s+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N个LLR节点,所述对应的第二输入LLR序列包括所述第n+1层的N个LLR节点。
The second parallel decoder performs a soft value update from the n s +1 th layer to the n+1 th layer to obtain the N LLR nodes of the n+1 th layer, and the corresponding second The input LLR sequence includes N LLR nodes of the n+1th layer.
结合第三方面或上述任一种可能的实现方式,在第三方面的第七种可能的实现方式中,所述串行译码器对所述L(t)个第三输入LLR序列进行译码得到M(t)条译码路径,包括:With reference to the third aspect or any of the foregoing possible implementation manners, in a seventh possible implementation manner of the third aspect, the serial decoder interprets the L(t) third input LLR sequences The code gets M(t) decoding paths, including:
所述串行译码器对所述L(t)个第三输入LLR序列译码得到L(t)*2
k条译码路径,k为正整数;
The serial decoder decodes the L(t) third input LLR sequences to obtain L(t)*2 k decoding paths, where k is a positive integer;
所述M(t)条译码路径为所述L(t)*2
k条译码路径中路径度量最大的M(t)条译码路径,或者,所述M(t)条译码路径为所述L(t)*2
k条译码路径中路径度量最大且CRC校验通过的M(t)条译码路径。
The M(t) decoding paths are M(t) decoding paths with the largest path metric among the L(t)*2 k decoding paths, or the M(t) decoding paths Among the L(t)*2 k decoding paths, M(t) decoding paths have the largest path metric and pass the CRC check.
结合第三方面或上述任一种可能的实现方式,在第三方面的第八种可能的实现方式中,所述第二并行译码器用于对L(t)个所述第二输入LLR序列分别确定对应的LDPC 校验矩阵;With reference to the third aspect or any one of the foregoing possible implementation manners, in an eighth possible implementation manner of the third aspect, the second parallel decoder is configured to perform processing on L(t) of the second input LLR sequences Determine the corresponding LDPC check matrix respectively;
所述第二并行译码器基于所述LDPC校验矩阵对L(t)个所述第二输入LLR序列进行译码得到L(t)个第二输出序列。The second parallel decoder decodes the L(t) second input LLR sequences based on the LDPC check matrix to obtain L(t) second output sequences.
结合第三方面或上述任一种可能的实现方式,在第三方面的第九种可能的实现方式中,所述第二并行译码器包括以下一种或多种:BP译码器或者MS译码器或者DNN译码器,所述串行译码器包括SCL译码器或者CA-SCL译码器。With reference to the third aspect or any of the foregoing possible implementation manners, in a ninth possible implementation manner of the third aspect, the second parallel decoder includes one or more of the following: BP decoder or MS A decoder or a DNN decoder, and the serial decoder includes an SCL decoder or a CA-SCL decoder.
结合第三方面或上述任一种可能的实现方式,在第三方面的第十种可能的实现方式中,N取值为以下任一项:1024,512,256,128,64,32;Ns取值为以下任一项:128,64,32,16,8,4,2,1。In combination with the third aspect or any of the foregoing possible implementation manners, in the tenth possible implementation manner of the third aspect, the value of N is any one of the following: 1024, 512, 256, 128, 64, 32; the value of Ns is the following Any item: 128,64,32,16,8,4,2,1.
结合第三方面或上述任一种可能的实现方式,在又一种可能的实现方式中,所述串行译码器确定继续迭代,包括:With reference to the third aspect or any of the foregoing possible implementation manners, in another possible implementation manner, the serial decoder determines to continue iteration, including:
所述串行译码器确定t<T且第t次迭代不满足提前终止条件;The serial decoder determines that t<T and the t-th iteration does not meet the early termination condition;
所述第t次迭代还包括:The t-th iteration further includes:
所述串行译码器根据所述M(t)条译码路径得到M(t)个第三输出LLR序列。The serial decoder obtains M(t) third output LLR sequences according to the M(t) decoding paths.
结合第三方面或上述任一种可能的实现方式,在又一种可能的实现方式中,所述串行译码器确定终止迭代,包括:With reference to the third aspect or any one of the foregoing possible implementation manners, in another possible implementation manner, the serial decoder determines to terminate the iteration, including:
所述串行译码器确定t=T,或者,第t次迭代满足提前终止条件;The serial decoder determines that t=T, or the t-th iteration satisfies an early termination condition;
所述第t次迭代还包括:The t-th iteration further includes:
所述串行译码器根据所述M(t)条译码路径得到译码结果,并终止迭代。The serial decoder obtains the decoding result according to the M(t) decoding paths, and terminates iteration.
其中,所述级联译码器的输入LLR序列为信息序列
对应的LLR序列,所述串行译码器对所述M(t)条译码路径中路径度量值最大或者路径度量值最大且CRC校验成功的1条译码路径进行硬判决,得到所述信息序列中的各信息比特。
Wherein, the input LLR sequence of the cascaded decoder is an information sequence Corresponding to the LLR sequence, the serial decoder performs a hard decision on one of the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, and obtains the result Each information bit in the information sequence.
第四方面,本申请实施例提供了一种多级联译码方法,包括两级迭代译码,其中第1级迭代译码对初始LLR序列进行最大I次迭代,I=N
p/N,第2级迭代为如第二方面或第二方面任一可能实现方式的级联译码迭代,最大迭代次数为T,第i次迭代,i<I,包括:
In a fourth aspect, the embodiments of the present application provide a multi-cascade decoding method, including two-stage iterative decoding, in which the first-stage iterative decoding performs a maximum of I iterations on the initial LLR sequence, I=N p /N, The second-level iteration is a cascaded decoding iteration like the second aspect or any possible implementation of the second aspect, the maximum number of iterations is T, the i-th iteration, i<I, including:
采用第一并行译码算法对K(i)个第一输入LLR序列进行第1级迭代译码得到K(i)个第一输出LLR序列,每个第一输入LLR序列的长度为N
p,每个第一输出LLR序列的长度为N
p;
Using the first parallel decoding algorithm to perform the first-level iterative decoding of K(i) first input LLR sequences to obtain K(i) first output LLR sequences, the length of each first input LLR sequence is N p , The length of each first output LLR sequence is N p ;
采用如第二方面或第二方面任一可能实现方式对K(i)个第二输入LLR序列进行第2级迭代译码,每个所述第二输入LLR序列分别包括对应的第一输出LLR序列中的N个LLR。Perform the second-level iterative decoding on K(i) second input LLR sequences using any possible implementation manner as in the second aspect or the second aspect, and each of the second input LLR sequences respectively includes a corresponding first output LLR N LLRs in the sequence.
由于LDPC码通常采用并行译码算法译码,多级联译码方法还可以进一步共用LDPC码的一部分并行译码单元,节省系统开销。Since LDPC codes are usually decoded by parallel decoding algorithms, the multi-cascade decoding method can further share part of the parallel decoding units of the LDPC codes, saving system overhead.
结合第四方面,在第四方面的第一种可能的实现方式中,每个所述第二输入LLR序列包括对应的所述第一输出LLR序列中第(i-1)×N+1个LLR至第i×N个LLR。With reference to the fourth aspect, in the first possible implementation manner of the fourth aspect, each of the second input LLR sequences includes the (i-1)×N+1th in the corresponding first output LLR sequence LLR to the i×Nth LLR.
结合第四方面或第第四面的第一种可能的实现方式,在第四五方面的第二种可能 的实现方式中,所述采用第一并行译码算法对所述K(i)个第一输入LLR序列进行译码得到K(i)个第一输出LLR序列,包括:With reference to the fourth aspect or the first possible implementation manner of the fourth aspect, in the second possible implementation manner of the fourth and fifth aspects, the first parallel decoding algorithm is used to perform the processing of the K(i) The first input LLR sequence is decoded to obtain K(i) first output LLR sequences, including:
所述第一并行译码算法对所述K(i)第一输入LLR序列分别进行第一阶段更新得到所述K(i)个第一输出LLR序列。The first parallel decoding algorithm performs a first stage update on the K(i) first input LLR sequences respectively to obtain the K(i) first output LLR sequences.
其中,i=1,K(i)=1,所述第一输入LLR序列为初始LLR序列。Wherein, i=1, K(i)=1, and the first input LLR sequence is the initial LLR sequence.
i>1,第i-1次迭代译码还包括:i>1, the i-1th iterative decoding also includes:
获取M(i-1,t)个第二译码LLR序列,所述第二译码LLR序列包括N个LLR。Obtain M(i-1,t) second decoded LLR sequences, where the second decoded LLR sequence includes N LLRs.
所述第i次迭代还包括:The i-th iteration further includes:
获取与所述第i-1次迭代的M(i-1,t)个第二译码LLR序列对应的第i-1次迭代的M(i-1,t)个第一输出LLR序列;Acquiring M(i-1,t) first output LLR sequences of the i-1th iteration corresponding to the M(i-1,t) second decoded LLR sequences of the i-1th iteration;
根据所述M(i-1,t)个第二译码LLR序列和所述M(i-1,t)个第i-1次迭代的第一输出LLR序列得到K(i)个第i次迭代的第二更新输入LLR序列,K(i)=M(i-1,t);According to the M(i-1,t) second decoded LLR sequences and the first output LLR sequence of the M(i-1,t) i-1th iteration, K(i) i-th The second update input LLR sequence of the second iteration, K(i)=M(i-1,t);
采用所述第一并行译码算法对所述K(i)个第二更新输入LLR序列进行第二阶段更新得到所述L(i,1)个第一输入LLR序列。Using the first parallel decoding algorithm to perform a second stage update on the K(i) second updated input LLR sequences to obtain the L(i, 1) first input LLR sequences.
在又一种可能的实现方式中,所述第一并行译码算法至少包括第n+1至第n
p+1层n
p-n个译码层,
每层包括N
p个LLR节点;
In yet another possible implementation manner, the first parallel decoding algorithm includes at least n+1th to np +1th layers n p -n decoding layers, Each layer includes N p LLR nodes;
所述采用所述第一并行译码算法对每个第一输入LLR序列进行第一阶段更新得到对应的第一输出LLR序列,包括:The first stage update of each first input LLR sequence by using the first parallel decoding algorithm to obtain the corresponding first output LLR sequence includes:
将所述第n
p+1层的N
p个LLR节点更新为所述第一输入LLR序列中的N
p个LLR,
The number of n p N p + 1 layer node LLR updated LLR input to the first sequence of N p LLR,
从所述第n
p+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N
p个LLR节点,所述对应的第一输出LLR序列包括所述第n+1层的N
p个LLR节点;
Perform soft value update from the n p +1th layer to the n+1th layer to obtain N p LLR nodes of the n+1th layer, and the corresponding first output LLR sequence includes the first output LLR sequence. N p LLR nodes of n+1 layer;
所述采用所述第一并行译码算法对每个第二更新输入LLR序列进行第二阶段更新得到对应的第一输入LLR序列,包括:The second stage update of each second updated input LLR sequence by using the first parallel decoding algorithm to obtain the corresponding first input LLR sequence includes:
将所述第n+1层的N
p个LLR节点更新为所述第二更新输入LLR序列中的N
p个LLR,
The LLR of N p n + 1 node in the first layer to said second update input LLR update sequence of N p LLR,
从所述第n+1层向所述第n
p+1层方向执行软值更新得到所述第n
p+1层的N
p个LLR节点,所述对应的第一输入LLR序列包括所述第n
p+1层的N
p个LLR节点。
Perform soft value update from the n+1th layer to the np +1th layer to obtain Np LLR nodes of the np +1th layer, and the corresponding first input LLR sequence includes the N p LLR nodes of the n p +1th layer.
在又一种可能的实现方式中,t<T且第t次迭代不满足提前终止条件,所述级联译码方法的第t次迭代包括:根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。In another possible implementation manner, t<T and the tth iteration does not meet the early termination condition, the tth iteration of the cascade decoding method includes: decoding according to the M(i,t) The path gets M(i,t) third output LLR sequences.
在又一种可能的实现方式中,t=T或者第2级迭代满足提前终止条件,且,i<I且第i次第1级迭代不满足提前终止条件,所述级联译码方法的第t次迭代包括:In another possible implementation manner, t=T or the second-level iteration meets the early termination condition, and i<I and the i-th first-level iteration does not meet the early termination condition. The t iterations include:
根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。According to the M(i,t) decoding paths, M(i,t) third output LLR sequences are obtained.
获取与所述M(i,t)个第三输出LLR序列对应的第t次迭代的M(i,t)个第二输出LLR序列;Acquiring M(i,t) second output LLR sequences corresponding to the M(i,t) third output LLR sequences of the t-th iteration;
根据所述M(i,t)个第三输出LLR序列和所述M(i,t)个第t次迭代的第二输出LLR序列得到M(i,t)个第t次迭代的第二更新输入LLR序列;According to the M(i,t) third output LLR sequence and the M(i,t) second output LLR sequence of the tth iteration, the second output of the M(i,t) tth iteration is obtained. Update the input LLR sequence;
对所述M(i,t)个第二更新输入LLR序列进行第二阶段更新得到M(i,t)个第二译码LLR序列。Performing a second stage update on the M(i,t) second updated input LLR sequences to obtain M(i,t) second decoded LLR sequences.
在又一种可能的实现方式中,i=I,且t=T,或者,第t次迭代满足第2级迭代的提前终止条件且第i次满足第1级迭代提前终止条件,所述级联译码方法的第t次迭代包括:In another possible implementation manner, i=I and t=T, or the t-th iteration meets the early termination condition of the second-level iteration and the i-th meets the early termination condition of the first-level iteration. The t-th iteration of the associative decoding method includes:
根据所述M(i,t)条译码路径得到译码结果,并终止迭代。Obtain the decoding result according to the M(i,t) decoding paths, and terminate the iteration.
在又一种可能的实现方式中,所述第一并行译码器算法括以下一种或多种:BP译码算法,或者MS译码算法或者DNN译码算法。In another possible implementation manner, the first parallel decoder algorithm includes one or more of the following: BP decoding algorithm, or MS decoding algorithm or DNN decoding algorithm.
在又一种可能的实现方式中,N
p取值包括以下任一:8192,4096,2048,1024,512,256,128。
In another possible implementation manner, the value of N p includes any one of the following: 8192, 4096, 2048, 1024, 512, 256, 128.
第五方面,本申请实施例提供了一种多级联译码器,包括如第一方面或者第一方面任一可能的实现方式的第一并行译码器,其中,N
in=N
p,N
out=N,S=I,以及第三方面或第三方面第一至第十种任一可能的实现方式的级联译码器。所述级联译码器为所述第一并行译码器的下级译码器,所述第一并行译码器用于对一个或多个长度为N
p的LLR序列进行译码,所述第一并行译码器对初始LLR序列进行最大I次迭代,I=N
p/N,第i次迭代,i<I,包括:
In a fifth aspect, an embodiment of the present application provides a multi-cascade decoder, including a first parallel decoder as in the first aspect or any possible implementation of the first aspect, where N in =N p , N out =N, S=I, and the cascade decoder of the third aspect or any one of the first to tenth possible implementation manners of the third aspect. The cascaded decoder is a lower-level decoder of the first parallel decoder, and the first parallel decoder is used to decode one or more LLR sequences with a length of N p. A parallel decoder performs a maximum of I iterations on the initial LLR sequence, I=N p /N, the i-th iteration, i<I, including:
所述第一并行译码器对K(i)个第一输入LLR序列进行第1级迭代译码得到K(i)个第一输出LLR序列,每个第一输入LLR序列的长度为N
p,每个第一输出LLR序列的长度为N
p;
The first parallel decoder performs the first stage iterative decoding on K(i) first input LLR sequences to obtain K(i) first output LLR sequences, and the length of each first input LLR sequence is N p , The length of each first output LLR sequence is N p ;
所述级联译码器对K(i)个第二输入LLR序列进行第2级迭代译码,每个所述第二输入LLR序列分别包括对应的第一输出LLR序列中的N个LLR。The cascaded decoder performs a second stage iterative decoding on K(i) second input LLR sequences, and each of the second input LLR sequences includes N LLRs in the corresponding first output LLR sequence.
由于LDPC译码器通常采用并行译码算法译码,多级联译码器还可以进一步共用LDPC译码器的一部分并行译码单元,节省系统开销。Since the LDPC decoder usually uses a parallel decoding algorithm for decoding, the multi-cascade decoder can further share part of the parallel decoding unit of the LDPC decoder to save system overhead.
结合第五方面,在第五方面的第一种可能的实现方式中,每个所述第二输入LLR序列包括对应的所述第一输出LLR序列中第(i-1)×N+1个LLR至第i×N个LLR。With reference to the fifth aspect, in the first possible implementation manner of the fifth aspect, each of the second input LLR sequences includes the (i-1)×N+1th in the corresponding first output LLR sequence LLR to the i×Nth LLR.
结合第五方面或第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述第一并行译码器对所述K(i)个第一输入LLR序列进行译码得到K(i)个第一输出LLR序列,包括:With reference to the fifth aspect or the first possible implementation manner of the fifth aspect, in the second possible implementation manner of the fifth aspect, the first parallel decoder receives the K(i) first inputs The LLR sequence is decoded to obtain K(i) first output LLR sequences, including:
所述第一并行译码器对所述K(i)第一输入LLR序列分别进行第一阶段更新得到所述K(i)个第一输出LLR序列。The first parallel decoder performs a first stage update on the K(i) first input LLR sequences respectively to obtain the K(i) first output LLR sequences.
其中,i=1,K(i)=1,所述第一输入LLR序列为初始LLR序列。Wherein, i=1, K(i)=1, and the first input LLR sequence is the initial LLR sequence.
i>1,第i-1次迭代译码还包括:i>1, the i-1th iterative decoding also includes:
所述级联译码器向所述第一并行译码器输出M(i-1,t)个第二译码LLR序列,所述第二译码LLR序列包括N个LLR。The cascaded decoder outputs M(i-1,t) second decoded LLR sequences to the first parallel decoder, and the second decoded LLR sequence includes N LLRs.
所述第i次迭代还包括:The i-th iteration further includes:
所述第一并行译码器获取与所述第i-1次迭代的M(i-1,t)个第二译码LLR序列对应的第i-1次迭代的M(i-1,t)个第一输出LLR序列;The first parallel decoder obtains M(i-1,t) corresponding to the i-1th iteration of M(i-1,t) second decoding LLR sequences of the i-1th iteration ) First output LLR sequence;
所述第一并行译码器根据所述M(i-1,t)个第二译码LLR序列和所述M(i-1,t)个第i-1次迭代的第一输出LLR序列得到K(i)个第i次迭代的第二更新输入LLR序列,K(i)=M(i-1,t);The first parallel decoder according to the M(i-1,t) second decoding LLR sequences and the M(i-1,t) first output LLR sequences of the i-1th iteration Obtain K(i) the second updated input LLR sequence of the i-th iteration, K(i)=M(i-1,t);
所述第一并行译码器对所述K(i)个第二更新输入LLR序列进行第二阶段更新得到所述L(i,1)个第一输入LLR序列。The first parallel decoder performs a second stage update on the K(i) second updated input LLR sequences to obtain the L(i, 1) first input LLR sequences.
在又一种可能的实现方式中,所述第一并行译码器至少包括第n+1至第n
p+1层n
p-n个译码层,
每层包括N
p个LLR节点;
In yet another possible implementation manner, the first parallel decoder includes at least n+1th to np +1th layers n p -n decoding layers, Each layer includes N p LLR nodes;
所述第一并行译码器对每个第一输入LLR序列进行第一阶段更新得到对应的第一输出LLR序列,包括:The first parallel decoder performs a first stage update on each first input LLR sequence to obtain the corresponding first output LLR sequence, including:
所述第一并行译码器将所述第n
p+1层的N
p个LLR节点更新为所述第一输入LLR序列中的N
p个LLR,
Parallel to said first coder p +1 said first layer of N p n of nodes updated LLR LLR input to the first sequence of N p LLR,
所述第一并行译码器从所述第n
p+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N
p个LLR节点,所述对应的第一输出LLR序列包括所述第n+1层的N
p个LLR节点;
The first parallel decoder performs a soft value update from the np +1th layer to the n+1th layer to obtain the Np LLR nodes of the n+1th layer, and the corresponding An output LLR sequence includes N p LLR nodes of the n+1th layer;
所述第一并行译码器对每个第二更新输入LLR序列进行第二阶段更新得到对应的第一输入LLR序列,包括:The first parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding first input LLR sequence, including:
所述第一并行译码器将所述第n+1层的N
p个LLR节点更新为所述第二更新输入LLR序列中的N
p个LLR,
The first parallel decoder LLR the nodes of N p n + 1, the second layer updates the LLR updated input sequence of N p LLR,
所述第一并行译码器从所述第n+1层向所述第n
p+1层方向执行软值更新得到所述第n
p+1层的N
p个LLR节点,所述对应的第一输入LLR序列包括所述第n
p+1层的N
p个LLR节点。
The first parallel decoder performs a soft value update from the n+1th layer to the np +1th layer to obtain the Np LLR nodes of the np +1th layer, and the corresponding The first input LLR sequence includes N p LLR nodes of the n p +1 th layer.
在又一种可能的实现方式中,所述串行译码器确定t<T且第t次迭代不满足提前终止条件,所述级联译码器的第t次迭代包括:所述串行译码器根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。In another possible implementation manner, the serial decoder determines that t<T and the tth iteration does not meet the early termination condition, and the tth iteration of the cascaded decoder includes: the serial The decoder obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
在又一种可能的实现方式中,所述串行译码器确定t=T或者第2级迭代满足提前终止条件,且,i<I且第i次第1级迭代不满足所述多级联译码器提前终止条件,所述级联译码器的第t次迭代包括:In another possible implementation manner, the serial decoder determines that t=T or the second-level iteration meets the early termination condition, and i<I and the i-th first-level iteration does not meet the multi-cascade The decoder terminates conditions early, and the t-th iteration of the cascaded decoder includes:
所述串行译码器根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。The serial decoder obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
所述第二并行译码器获取与所述M(i,t)个第三输出LLR序列对应的第t次迭代的M(i,t)个第二输出LLR序列;Acquiring, by the second parallel decoder, M(i,t) second output LLR sequences corresponding to the M(i,t) third output LLR sequences of the t-th iteration;
所述第二并行译码器根据所述M(i,t)个第三输出LLR序列和所述M(i,t)个第t次迭代的第二输出LLR序列得到M(i,t)个第t次迭代的第二更新输入LLR序列;The second parallel decoder obtains M(i,t) according to the M(i,t) third output LLR sequences and the M(i,t) second output LLR sequences of the tth iteration The second updated input LLR sequence of the t-th iteration;
所述第二并行译码器对所述M(i,t)个第二更新输入LLR序列进行第二阶段更新得到M(i,t)个第二译码LLR序列;The second parallel decoder performs a second stage update on the M(i,t) second update input LLR sequences to obtain M(i,t) second decoded LLR sequences;
所述第二并行译码器向所述第一并行译码器输出所述M(i,t)个第二译码LLR序列。The second parallel decoder outputs the M(i,t) second decoded LLR sequences to the first parallel decoder.
在又一种可能的实现方式中,所述串行译码器确定i=I,且t=T,或者,第t次迭代满足所述级联译码器的提前终止条件且第i次第1级迭代满足所述多级联译码器提前终止条件,所述级联译码器的第t次迭代包括:In another possible implementation manner, the serial decoder determines that i=I and t=T, or the t-th iteration satisfies the early termination condition of the cascaded decoder and the i-th is the first The stage iteration satisfies the early termination condition of the multi-cascade decoder, and the t-th iteration of the cascade decoder includes:
所述串行译码器根据所述M(i,t)条译码路径得到译码结果,并终止迭代。The serial decoder obtains the decoding result according to the M(i,t) decoding paths, and terminates the iteration.
在又一种可能的实现方式中,所述第一并行译码器包括以下一种或多种:BP译码器或者MS译码器或者DNN译码器。In another possible implementation manner, the first parallel decoder includes one or more of the following: a BP decoder, an MS decoder, or a DNN decoder.
在又一种可能的实现方式中,N
p取值包括以下任一:8192,4096,2048,1024,512,256,128。
In another possible implementation manner, the value of N p includes any one of the following: 8192, 4096, 2048, 1024, 512, 256, 128.
第六方面,本申请实施例提供了一种译码装置,该装置具有实现上述第二方面和第四方面的任一种可能的设计中所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。In a sixth aspect, an embodiment of the present application provides a decoding device, which has the function of implementing the method described in any one of the possible designs of the second aspect and the fourth aspect. The function can be realized by hardware, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above-mentioned functions.
在一个可能的设计中,当所述功能的部分或全部通过硬件实现时,所述译码装置包括:输入接口电路,用于获取待译码比特序列对应的LLR序列;逻辑电路,用于执行上述第二方面或第四方面或上述两方面的任一种可能的设计中所述的方法;输出接口电路,用于输出信息比特。In a possible design, when part or all of the functions are realized by hardware, the decoding device includes: an input interface circuit for obtaining the LLR sequence corresponding to the bit sequence to be decoded; and a logic circuit for executing The method described in the second aspect or the fourth aspect or any one of the possible designs of the foregoing two aspects; an output interface circuit for outputting information bits.
可选的,所述译码装置可以是芯片或者集成电路。Optionally, the decoding device may be a chip or an integrated circuit.
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述译码装置可以实现如上述第二方面或第四方面或上述两方面的任一种可能的设计中所述的方法。In a possible design, when part or all of the function is realized by software, the decoding device includes: a memory for storing a program; a processor for executing the program stored in the memory, when When the program is executed, the decoding device can implement the method described in the second aspect or the fourth aspect or any one of the possible designs of the foregoing two aspects.
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。Optionally, the foregoing memory may be a physically independent unit, or may be integrated with the processor.
在一个可能的设计中,当所述功能的部分或全部通过软件实现时,所述译码装置包括处理器。用于存储程序的存储器位于所述译码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行所述存储器中存储的程序。In a possible design, when part or all of the functions are implemented by software, the decoding device includes a processor. The memory for storing the program is located outside the decoding device, and the processor is connected to the memory through a circuit/wire for reading and executing the program stored in the memory.
在一个可能的设计中,第六方面提供的通信装置,包括处理器和收发组件,该处理器和收发组件可用于实现上述编码或者译码方法中各部分的功能。在该设计中,如果该通信装置是终端、基站或者其他网络设备,其收发组件可以是收发机,如果该通信装置是基带芯片或基带单板,其收发组件可以是基带芯片或基带单板的输入/输出电路,用于实现输入/输出信号的接收/发送。所述通信装置可选的还可以包括存储器,用于存储数据和/或指令。In a possible design, the communication device provided in the sixth aspect includes a processor and a transceiver component, and the processor and the transceiver component can be used to implement the functions of each part of the foregoing encoding or decoding method. In this design, if the communication device is a terminal, a base station or other network equipment, its transceiver component can be a transceiver. If the communication device is a baseband chip or a baseband single board, its transceiver component can be a baseband chip or a baseband single board. The input/output circuit is used to realize the receiving/sending of input/output signals. Optionally, the communication device may further include a memory for storing data and/or instructions.
第七方面,本申请实施例提供一种网络设备,包括如如上述第一方面或第三方面或第五方面的任一种可能的译码器,或者第六方面的译码装置。In a seventh aspect, an embodiment of the present application provides a network device, including any possible decoder as in the first aspect, the third aspect, or the fifth aspect, or the decoding device of the sixth aspect.
第八方面,本申请实施例提供一种终端设备,包括如如上述第一方面或第三方面或第五方面的任一种可能的译码器,或者第六方面的译码装置。In an eighth aspect, an embodiment of the present application provides a terminal device, including any possible decoder as in the first aspect, the third aspect, or the fifth aspect, or the decoding device in the sixth aspect.
第九方面,本申请实施例提供一种通信系统,该通信系统包括如第七方面的网络设备和第八方面的终端设备。In a ninth aspect, an embodiment of the present application provides a communication system, which includes the network device of the seventh aspect and the terminal device of the eighth aspect.
第十方面,本申请实施例提供一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述第二方面或第四方面的任一种可能的设计所述的方法的指令。In a tenth aspect, an embodiment of the present application provides a computer storage medium that stores a computer program, and the computer program includes instructions for executing the method described in any one of the above-mentioned second or fourth aspects.
第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面或第四方面的任一种可能的设计所述的方法。In an eleventh aspect, a computer program product containing instructions is provided, which when running on a computer, causes the computer to execute the method described in any one of the possible designs of the second or fourth aspects.
图1为本申请提供的通信系统的架构图;Figure 1 is an architecture diagram of the communication system provided by this application;
图2a为本申请提供的一种SCL译码算法的译码路径示意图;Figure 2a is a schematic diagram of the decoding path of an SCL decoding algorithm provided by this application;
图2b为本申请提供的一种SCL译码算法的译码路径示意图;2b is a schematic diagram of the decoding path of an SCL decoding algorithm provided by this application;
图3a为本申请提供的一种并行译码算法的基本处理单元的示意图;Fig. 3a is a schematic diagram of a basic processing unit of a parallel decoding algorithm provided by this application;
图3b为本申请提供的一种并行译码算法蝶形网络迭代计算的示意图;FIG. 3b is a schematic diagram of iterative calculation of a parallel decoding algorithm butterfly network provided by this application;
图3c为本申请提供的一种DNN译码算法的迭代运算单元的示意图;3c is a schematic diagram of an iterative operation unit of a DNN decoding algorithm provided by this application;
图4为本申请实施例提供的一个LDPC码Tanner图示例;FIG. 4 is an example of a Tanner graph of an LDPC code provided by an embodiment of the application;
图5为本申请实施例提供的一种并行译码器的结构示意图;FIG. 5 is a schematic structural diagram of a parallel decoder provided by an embodiment of this application;
图6为本申请实施例提供的一种级联译码器的结构示意图;FIG. 6 is a schematic structural diagram of a cascaded decoder provided by an embodiment of this application;
图7为本申请实施例提供的一种级联译码方法的流程图;FIG. 7 is a flowchart of a cascaded decoding method provided by an embodiment of this application;
图8为本申请实施例提供的一种多级联译码器的结构示意图;FIG. 8 is a schematic structural diagram of a multi-cascade decoder provided by an embodiment of this application;
图9为本申请实施例提供的一种级联译码方法的流程图;FIG. 9 is a flowchart of a cascaded decoding method provided by an embodiment of this application;
图10为本申请实施提供的级联译码方法和其他译码算法的译码性能图。Fig. 10 is a decoding performance diagram of the cascaded decoding method and other decoding algorithms provided by the implementation of this application.
本申请实施例可以应用于各种采用Polar编码的领域,例如:数据存储领域、光网络通信领域,无线通信领域等等。其中,本申请实施例涉及的无线通信系统包括但不限于:全球移动通信(global system for mobile communications,GSM)系统、码分多址(code division multiple access,CDMA)系统、宽带码分多址(wideband code division multiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、长期演进(long term evolution,LTE)系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)通信系统、未来的第五代(5th generation,5G)系统或新无线(new radio,NR),车到其它设备(Vehicle-to-X V2X),其中V2X可以包括车到互联网(vehicle to network,V2N)、车到车(vehicle to-Vehicle,V2V)、车到基础设施(vehicle to infrastructure,V2I)、车到行人(vehicle to pedestrian,V2P)等、车间通信长期演进技术(Long Term Evolution-Vehicle,LTE-V)、车联网、机器类通信(machine type communication,MTC)、物联网(Internet of Things,IoT)、机器间通信长期演进技术(Long Term Evolution-Machine,LTE-M),机器到机器(Machine to Machine,M2M)等。当然,采用Polar编码的领域还可以为其它,本申请对此不作具体限定。The embodiments of the present application can be applied to various fields that adopt Polar coding, such as: data storage field, optical network communication field, wireless communication field, and so on. Among them, the wireless communication systems involved in the embodiments of the present application include but are not limited to: global system for mobile communications (GSM) system, code division multiple access (CDMA) system, and broadband code division multiple access (GSM) system. wideband code division multiple access, WCDMA) system, general packet radio service (GPRS), long term evolution (LTE) system, LTE frequency division duplex (FDD) system, LTE time division Duplex (time division duplex, TDD), universal mobile telecommunication system (UMTS), worldwide interoperability for microwave access (WiMAX) communication system, the future 5th generation (5G) ) System or new radio (NR), vehicle-to-X V2X, where V2X can include vehicle-to-network (V2N), vehicle-to-vehicle (V2V) ), Vehicle to Infrastructure (V2I), Vehicle to Pedestrian (V2P), etc., Long Term Evolution-Vehicle (LTE-V) of Workshop Communication, Internet of Vehicles, Machine Communication ( Machine type communication (MTC), Internet of Things (IoT), Long Term Evolution-Machine (LTE-M), Machine to Machine (M2M), etc. Of course, the areas where Polar encoding is used can also be other, which is not specifically limited in this application.
本申请涉及的通信装置可以是芯片(如基带芯片,或者数据信号处理芯片,或者通用芯片等等),终端,基站,或者其他网络设备。其中,终端是一种具有通信功能的设备,可以经无线接入网(Radio Access Network,RAN)与一个或多个核心网进行通信。终端可以包括具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端可以叫做不同的名称,例如:用户设备(user equipment,UE),移动台(Mobile Station,MS),用户单元,站台,蜂窝电话,个人数字助理,无线调制解调器,无线通信设备,手持设备,膝上型电脑,无绳电话,无线本地环路台等。为描述方便,本申请中简称为终端。 基站(base station,BS),也可称为基站设备,是一种部署在无线接入网用以提供无线通信功能的设备。在不同的无线接入系统中基站的叫法可能有所不同,例如在而在通用移动通讯系统(Universal Mobile Telecommunications System,UMTS)网络中基站称为节点B(NodeB),而在LTE网络中的基站称为演进的节点B(evolved NodeB,eNB或者eNodeB),在新空口(new radio,NR)网络中的基站称为收发点(transmission reception point,TRP)或者下一代节点B(generation nodeB,gNB),或者,基站也可以为中继站、接入点、车载设备、可穿戴设备以及未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)中的网络设备,或者其他各种演进网络中的基站也可能采用其他叫法。本发明并不限于此。The communication device involved in this application may be a chip (such as a baseband chip, or a data signal processing chip, or a general-purpose chip, etc.), a terminal, a base station, or other network equipment. Among them, a terminal is a device with a communication function, which can communicate with one or more core networks via a radio access network (Radio Access Network, RAN). The terminal may include a handheld device with a wireless communication function, a vehicle-mounted device, a wearable device, a computing device, or other processing device connected to a wireless modem. Terminals can be called different names in different networks, such as: user equipment (UE), mobile station (Mobile Station, MS), subscriber unit, station, cellular phone, personal digital assistant, wireless modem, wireless communication equipment , Handheld devices, laptop computers, cordless phones, wireless local loop stations, etc. For the convenience of description, it is simply referred to as a terminal in this application. A base station (BS), also called a base station device, is a device deployed on a wireless access network to provide wireless communication functions. The name of the base station may be different in different wireless access systems. For example, in the Universal Mobile Telecommunications System (UMTS) network, the base station is called NodeB (NodeB), while in the LTE network, the base station is called NodeB. The base station is called an evolved NodeB (evolved NodeB, eNB or eNodeB), and the base station in the new radio (NR) network is called the transmission reception point (TRP) or the next generation node B (gNB) ), or the base station can also be a relay station, access point, in-vehicle device, wearable device, network equipment in the future evolution of the Public Land Mobile Network (PLMN), or base station in various other evolved networks Other names may also be used. The present invention is not limited to this.
图1为本申请提供的通信系统的架构图。需要说明的是,图1只是以示例的形式示意一种通信系统的架构图,并非对通信系统的架构图的限定。Figure 1 is an architecture diagram of the communication system provided by this application. It should be noted that FIG. 1 merely illustrates an architecture diagram of a communication system in the form of an example, and is not a limitation on the architecture diagram of the communication system.
请参见图1,包括通信装置101和通信装置102。为了方便描述,本文以通信装置101发送信号,做为发送端装置,通信装置102接收信号,做为接收端装置为例进行说明。当然,通信装置102也可以向通信装置101发送信息,通信装置101相应地接收信号,则通信装置102为发送端装置,通信装置101为接收端装置。本发明实施例并不限于此。发送端装置包括编码器,接收端装置包括译码器,由于通信装置既可以为发送端装置,也可以为接收端装置,因此可以包括编码器和译码器。Please refer to FIG. 1, which includes a communication device 101 and a communication device 102. For the convenience of description, this article uses the communication device 101 as a transmitting end device to send a signal, and the communication device 102 as a receiving end device to receive a signal as an example for description. Of course, the communication device 102 can also send information to the communication device 101, and the communication device 101 receives the signal accordingly, then the communication device 102 is the transmitting end device, and the communication device 101 is the receiving end device. The embodiment of the present invention is not limited to this. The transmitting end device includes an encoder, and the receiving end device includes a decoder. Since the communication device may be a transmitting end device or a receiving end device, it may include an encoder and a decoder.
通信装置101可以对要发送的信息序列
如控制信道上传输的信令等,进行polar编码并输出编码后序列
编码后序列
经过速率匹配、交织以及调制后在控制信道上传输至通信装置102。通信装置102对接收到的信号进行解调等处理,得到对数似然比(Likelihood Rate,LLR)序列
LLR序列
中包括的LLR软值的个数与信息序列中包括的比特个数相同,都是N个,也可以说其长度为N,N为大于0的正整数。通信装置102根据接收到的LLR序列进行Polar译码。其中,不管通信装置101发比特1还是比特0,通信装置102都可能误判。对于信号r,在接收端装置正确判为0的概率p(r|b=0)与正确判为1的概率p(r|b=1)]的比值就是似然比。为了方便计算处理,对似然比取自然对数,则可以得到对数似然比,也即LLR=ln[p(r|b=0)/p(r|b=1)]。LLR可以是浮点数。
The communication device 101 can respond to the sequence of information to be sent Such as the signaling transmitted on the control channel, perform polar encoding and output the encoded sequence Encoded sequence After rate matching, interleaving, and modulation, it is transmitted to the communication device 102 on the control channel. The communication device 102 performs processing such as demodulation on the received signal to obtain a Likelihood Rate (LLR) sequence LLR sequence The number of LLR soft values included in is the same as the number of bits included in the information sequence, and both are N. It can also be said that its length is N, and N is a positive integer greater than 0. The communication device 102 performs Polar decoding according to the received LLR sequence. Wherein, regardless of whether the communication device 101 sends a bit 1 or a bit 0, the communication device 102 may make a misjudgment. For the signal r, the ratio of the probability p(r|b=0) that is correctly judged as 0 by the receiving end device and the probability p(r|b=1)] that is correctly judged as 1 is the likelihood ratio. In order to facilitate the calculation and processing, the natural logarithm of the likelihood ratio can be used to obtain the log-likelihood ratio, that is, LLR=ln[p(r|b=0)/p(r|b=1)]. LLR can be a floating point number.
下面对几种译码算法进行描述。Several decoding algorithms are described below.
一、串行译码算法1. Serial decoding algorithm
串行译码算法主要包括SC译码算法和SCL译码算法,其中基于SCL译码算法有多种改进的译码算法,例如增加了CRC校验的CA-SCL算法等。Serial decoding algorithms mainly include SC decoding algorithm and SCL decoding algorithm. Among them, there are many improved decoding algorithms based on SCL decoding algorithm, such as CA-SCL algorithm with CRC check.
信息序列
包括信息比特和冻结比特,Polar编码后通过信道W
N发送,输出
其转移概率为
SC译码器按顺序从第一个(i=1)至最后一个(i=N)对信息序列中各比特u
i相关的LLR值进行判决得到其估计值
其中,信息比特的索引集合为A,冻结比特的索引集合为A
c。如果i∈A
c,则u
i为冻结比特,取值是已知的,例如,固定为0或1,因此可以直接判决
并且将该比特的判决结果用于下一个比特u
i+1的判决;如果i∈A,则u
i为信息比特,需要在获取到该比特之前的各比特判决结果
之后,译码LLR为
并且对该LLR进行硬判决得到判决结果
并且将该比特的判决结果用于下一个比特u
i+1的判决。上述极化码的判决函数如下:
Information sequence Including information bits and frozen bits, Polar encoded and sent through the channel W N , output Its transition probability is The SC decoder makes a decision on the LLR value related to each bit u i in the information sequence from the first (i=1) to the last (i=N) in order to obtain its estimated value Wherein the information bits for the index set A, set to freeze bit index A c. If i ∈ A c , u i is a frozen bit, and its value is known, for example, it is fixed to 0 or 1, so it can be directly judged And the decision result of this bit is used for the decision of the next bit u i+1 ; if i ∈ A , u i is the information bit, and the decision result of each bit before the bit is obtained After that, the decoding LLR is And make a hard judgment on the LLR to get the judgment result And the decision result of this bit is used for the decision of the next bit u i+1 . The decision function of the above polarization code is as follows:
是信道W
N的序号为i的极化子信道,
是
的转移概率函数,表示通过极化子信道
发送信息比特u
i得到输出
和
的概率,可通过递归计算得到:
Is the polarized sub-channel with sequence number i of channel W N, Yes The transition probability function of, expressing through the polarized sub-channel Send information bits u i to get output with The probability of can be calculated recursively:
其中,sign(L
1,L
2)表示L
1和L
2的符号乘积,|x|表示对x取绝对值,min(x,y,…)表示对括号中的数值取最小值。在公式(5)中
Among them, sign(L 1 ,L 2 ) represents the symbolic product of L 1 and L 2 , |x| represents the absolute value of x, and min(x,y,...) represents the minimum value of the values in parentheses. In formula (5)
其中,
是序列
中索引为奇数的元素构成的子序列,
是序列
中索引为偶数的元素构成的子序列。
among them, Is the sequence A subsequence of odd-numbered elements in the middle, Is the sequence A subsequence composed of elements with an even index in the middle.
可见,长度为N的LLR序列可以缩减为两个长度为N/2的LLR序列进行计算,而根据上述递归过程递推,可以通过多次递减为长度为1的LLR序列进行计算,即对1个LLR软值进行计算。例如:N=8,则第一递归过程可以缩减为两个长度为4的LLR序列计算,而对于每个长度为4的LLR序列,又可以根据上述递归过程,分别缩减成2个长度为2的LLR序列,共4个长度为2的LLR序列计算,进一步递归,缩减成8个长度为1的LLR序列。对于1个LLR软值的计算可以根据下述公式得到:It can be seen that the LLR sequence of length N can be reduced to two LLR sequences of length N/2 for calculation, and according to the above recursive process recursion, it can be calculated by multiple reductions to LLR sequences of length 1, that is, to 1 A soft value of LLR is calculated. For example: N=8, the first recursive process can be reduced to two LLR sequence calculations of length 4, and for each LLR sequence of length 4, it can be reduced to two LLR sequences of length 2 according to the above recursive process. The LLR sequence of, a total of 4 LLR sequences of length 2 are calculated, and further recursive, reduced to 8 LLR sequences of length 1. The calculation of the soft value of 1 LLR can be obtained according to the following formula:
SC译码过程可以被描述为在一颗码树上进行深度优先的搜索过程,如图2a所示为一个码树的示例,码长N=4,对应一颗深度为N的满二叉树,每一层都分别对应一个信息比特或冻结比特,每个父节点与两个子节点间的两条边,分别被标记为0路径与1路径,共可以扩展2
N条路径。SC译码器从根节点u
1开始译码,每次根据当前比特的判决结果选择0路径或1路径,到达叶节点后,N个比特判决结束,SC译码器在码树中的路径即是译码结果,如图2a所示,SC译码结果为
The SC decoding process can be described as a depth-first search process on a code tree. Figure 2a shows an example of a code tree. The code length is N=4, corresponding to a full binary tree with a depth of N. Each layer corresponds to an information bit or a frozen bit, and the two edges between each parent node and two child nodes are marked as 0 path and 1 path respectively, and a total of 2 N paths can be expanded. The SC decoder starts decoding from the root node u 1 , and selects 0 path or 1 path each time according to the decision result of the current bit. After reaching the leaf node, the N bit decision ends, and the path of the SC decoder in the code tree is Is the decoding result, as shown in Figure 2a, the SC decoding result is
SC译码算法在每个节点都根据当前判决结果选择0路径或1路径,每一步都是局部最优的选择。若某一个比特判决错误,之后就会一直沿着该路径拓展下去,当前的错误是无法纠正的,且当前的错误会影响到后续的译码过程。SCL译码算法将SC译码算法中硬判决改为了软判决,即将判决为0或1的L条路径保留下来,其中L为搜索宽度。对于每次路径扩展都要计算路径度量值(path metric,PM)。PM为一条路径所对应的译码序列的概率,常用对数形式表示如下:
The SC decoding algorithm selects 0 path or 1 path at each node according to the current decision result, and each step is a local optimal choice. If a certain bit is judged incorrectly, it will continue to expand along the path. The current error cannot be corrected, and the current error will affect the subsequent decoding process. The SCL decoding algorithm changes the hard decision in the SC decoding algorithm to a soft decision, that is, the L paths with a decision of 0 or 1 are retained, where L is the search width. For each path expansion, the path metric (PM) must be calculated. PM is the probability of the decoding sequence corresponding to a path, which is usually expressed in logarithmic form as follows:
每次路径扩展,SCL译码算法对PM值进行排序,输出PM值最大的L条译码路径,在最后一个比特时,选取PM值最大的一条路径作为译码输出录入。Each time the path is expanded, the SCL decoding algorithm sorts the PM value and outputs the L decoding paths with the largest PM value. At the last bit, the path with the largest PM value is selected as the decoding output and input.
PM的计算过程如下:The calculation process of PM is as follows:
若u
i为信息比特或正确的冻结比特,且
则路径度量值的计算如下:
If u i are information bits or correct frozen bits, and Then the path metric is calculated as follows:
若u
i为信息比特或正确的冻结比特,且
则路径度量值的计算如下:
If u i are information bits or correct frozen bits, and Then the path metric is calculated as follows:
其中
的计算与SC译码算法相同。若u
i为冻结比特,且取值错误,则路径度量值的计算如下:
among them The calculation of is the same as the SC decoding algorithm. If u i is a frozen bit and the value is wrong, the path metric value is calculated as follows:
CA-SCL译码算法是对SCL译码算法的优化,在信息序列中引入CRC,通过CRC辅助判决,选择CRC校验通过且PM值排序最大的路径。在CA-SCL译码算法中,码树中从根节点到任何一个节点所形成的路径,均对应一个路径度量值;每次进行路径扩展时,选择当前层中路径度量值最大的L条路径。到达叶节点后,按度量值从小到大的顺序输出L条路径对应的译码序列,构成候选译码序列集合。对候选译码序列进行CRC校验,选出能通过CRC校验的路径度量值最大的路径作为最后的译码结果。The CA-SCL decoding algorithm is an optimization of the SCL decoding algorithm. The CRC is introduced into the information sequence, and the CRC is used to assist the decision, and the path that passes the CRC check and the PM value is the largest is selected. In the CA-SCL decoding algorithm, the path formed from the root node to any node in the code tree corresponds to a path metric value; each time the path is expanded, the L paths with the largest path metric value in the current layer are selected . After reaching the leaf node, the decoding sequences corresponding to the L paths are output in the order of the metric value from small to large, forming a set of candidate decoding sequences. Perform a CRC check on the candidate decoding sequence, and select the path with the largest path metric value that can pass the CRC check as the final decoding result.
如图2b为一个码长N=4,L=2的SCL译码算法的路径搜索过程。最终在两条译码路径{0011}和{1000}中输出路径度量值最大的一条路径作为最后的译码结果。如果是采用CA-SCL译码算法,则是在两条译码路径中输出CRC校验通过且路径度量值最大的一条路径作为最后的译码结果。Figure 2b shows the path search process of an SCL decoding algorithm with code length N=4 and L=2. Finally, the path with the largest path metric value is output among the two decoding paths {0011} and {1000} as the final decoding result. If the CA-SCL decoding algorithm is used, the one that passes the CRC check and the path metric value is the largest is output among the two decoding paths as the final decoding result.
串行译码算法的译码性能虽然较好,但其译码过程是串行的,无法满足通信系统的吞吐率需求。Although the decoding performance of the serial decoding algorithm is better, its decoding process is serial, which cannot meet the throughput requirements of the communication system.
二、并行译码算法2. Parallel decoding algorithm
并行译码算法包括BP译码算法,MS译码算法以及DNN译码算法等。可以用于Polar码译码,也可以用于LDPC码译码。Parallel decoding algorithms include BP decoding algorithm, MS decoding algorithm and DNN decoding algorithm. It can be used for Polar code decoding and LDPC code decoding.
1.针对Polar码的并行译码算法是在基于生成矩阵G的因子图进行译码的。下面以BP译码算法为例介绍。1. The parallel decoding algorithm for Polar codes is decoded based on the factor graph of the generator matrix G. The following takes the BP decoding algorithm as an example to introduce.
对于P=(N,K)的Polar码,其因子图一般包括n+1层译码层,每层N个节点,总共N×(n+1)个节点构成,n=log
2N,其中每层有N/2个基本处理单元PE(process element,PE),如图3a所示,为一个基本处理单元的示意图,包括两个输入变量和两个输出变 量,每个节点(i,j)包含有两种信息,从左向右传递的信息,即右信息
从右向左传递的信息,左信息
其中,j表示层编号,j=1,2,...,n+1,i表示每层中节点的序号,i=1,2,…,N。通常最左边一层,也就是j=1,第1层各节点代表的是信息序列
中的各个比特u
1,u
2,…,u
N,最右边一层,也就是j=n+1,第n+1层各节点代表的是
中的各个LLR软值y
1,y
2,…,y
N。
For Polar codes with P=(N,K), the factor graph generally includes n+1 decoding layers, each with N nodes, a total of N×(n+1) nodes, n=log 2 N, where Each layer has N/2 basic processing elements PE (process element, PE), as shown in Figure 3a, a schematic diagram of a basic processing unit, including two input variables and two output variables, each node (i, j ) Contains two kinds of information, the information transmitted from left to right, namely the right information Information passed from right to left, left information Among them, j represents the layer number, j=1, 2,...,n+1, i represents the sequence number of the node in each layer, i=1, 2,...,N. Usually the leftmost layer, that is, j = 1, each node in the first layer represents the information sequence Each bit u 1 , u 2 ,..., u N in the , the rightmost layer, that is, j=n+1, each node in the n+1th layer represents Each LLR soft value in y 1 , y 2 ,..., y N.
一般将从左向右,也就是从第1层至第n+1层方向逐层传递信息,称为右运算R运算,从右向左,也就是第n+1层至第1层方向逐层传递信息称为左运算L运算。需要说明的是,有时也将逐层传递信息称为信息更新过程。其中,
和
均为LLR,其中t为迭代次数,0≤t≤T,T为BP译码算法最大迭代次数,图3a中输出节点的计算公式如下:
Generally, the information will be transferred layer by layer from left to right, that is, from the first layer to the n+1 layer. It is called the right operation R operation. From right to left, that is, from the n+1 layer to the first layer. The layer transfer information is called the left operation L operation. It should be noted that sometimes the transfer of information layer by layer is also referred to as the information update process. among them, with All are LLRs, where t is the number of iterations, 0≤t≤T, and T is the maximum number of iterations of the BP decoding algorithm. The calculation formula of the output node in Figure 3a is as follows:
如图3b所示,为对码长N=8的Polar码采用BP译码算法译码过程中其中一次迭代的流程示意图。j表示运算更新的译码层数,总共有log
28+1=4层,i表示每层中节点的序号。其中,基本处理单元在图中表示为蝶形运算单元,例如:连接节点(1,1),(1,2),(2,1)和(2,2)的蝶形单元,连接节点(2,2),(2,3),(4,2)和(4,3)的蝶形单元,连接节点(4,3),(4,4),(8,3)和(8,4)的蝶形单元等。BP译码每次迭代先从右往左逐层做LLR L运算更新,到达最左端后,再逐层进行LLR R运算更新,当全部节点都访问一次后,则完成一次迭代运算。每次迭代完成后,将对应信息比特的LLR值进行硬判决并校验CRC,如果CRC通过或者达到最大迭代次数则停止迭代,反之则继续迭代。
As shown in Fig. 3b, it is a schematic flow diagram of one iteration in the decoding process of the Polar code with a code length of N=8 using the BP decoding algorithm. j represents the number of decoding layers updated by the operation, there are log 2 8+1=4 layers in total, and i represents the sequence number of the node in each layer. Among them, the basic processing unit is represented as a butterfly operation unit in the figure, for example: a butterfly unit connecting nodes (1,1), (1,2), (2,1) and (2,2), connecting nodes ( 2,2), (2,3), (4,2) and (4,3) butterfly elements, connecting nodes (4,3), (4,4), (8,3) and (8, 4) Butterfly unit and so on. In each iteration of BP decoding, the LLR L operation is updated layer by layer from right to left. After reaching the left end, the LLR R operation update is performed layer by layer. When all nodes are visited once, an iteration operation is completed. After each iteration is completed, the LLR value of the corresponding information bit is hard-decided and the CRC is checked. If the CRC passes or reaches the maximum number of iterations, the iteration is stopped, otherwise the iteration is continued.
从蝶形网络可以发现,第n+1层至第n层更新后,长度为N的LLR序列可以视为缩减为两个长度为N/2的LLR子序列分别进行下一层更新,每往左进行一层更新,LLR子序列的长度可以缩减为前一层的一半。对于第j层,可以视为2
n+1-j个长度为2
j-1的LLR子序列。
From the butterfly network, it can be found that after the n+1th layer to the nth layer are updated, the LLR sequence of length N can be regarded as reduced to two LLR subsequences of length N/2 for the next layer update respectively. Update one layer on the left, and the length of the LLR subsequence can be reduced to half of the previous layer. For the jth layer, it can be regarded as 2 n+1-j LLR subsequences with a length of 2 j-1.
MS译码算法迭代过程和BP译码算法迭代过程类似,下文不区分单独描述,通称为BP/MS译码算法。The iterative process of the MS decoding algorithm is similar to the iterative process of the BP decoding algorithm, and it will not be described separately below, and it is generally called the BP/MS decoding algorithm.
DNN的节点更新过程可以模拟BP/MS译码算法中一次或多次迭代的节点更新过程,还可以在更新过程中对每条边赋予不同的权重,以提高译码性能。采用DNN实现Polar译码时,可以仿照BP/MS译码算法结构。如图3c所示,为DNN译码算法的架构,将蝶形单元网络从右往左的L运算和从左往右的R运算级联起来,形成一个迭代运算单元,将T的迭代运算单元级联起来,则可以完成对应T次迭代的DNN译码。The node update process of DNN can simulate the node update process of one or more iterations in the BP/MS decoding algorithm, and it can also assign different weights to each edge during the update process to improve the decoding performance. When DNN is used to realize Polar decoding, it can imitate the structure of BP/MS decoding algorithm. As shown in Figure 3c, it is the architecture of the DNN decoding algorithm. The L operation from right to left of the butterfly unit network and the R operation from left to right are cascaded to form an iterative operation unit, which combines the iterative operation unit of T By cascading, the DNN decoding corresponding to T iterations can be completed.
2.针对LDPC码的并行译码算法是基于校验矩阵进行译码的。2. The parallel decoding algorithm for LDPC codes is decoded based on a check matrix.
针对LDPC码的并行译码算法也可以分为两个阶段更新,对应与Polar码因子图并行译码算法中的L运算和R运算。其中,根据校验矩阵从上往下逐行计算,传递信息 对应于Polar码因子图并行译码算法中的L运算;根据校验矩阵从下往上逐行计算,传递信息,对应于Polar码因子图并行译码算法中的R运算。由于LDPC矩阵支持行列交换且不改变其译码性质,所以也可以是对校验矩阵从下往上逐行计算对应R运算,从上往下逐行计算对应L运算。The parallel decoding algorithm for LDPC codes can also be updated in two stages, corresponding to the L operation and the R operation in the Polar code factor graph parallel decoding algorithm. Among them, according to the check matrix calculation from top to bottom row by row, the transfer information corresponds to the L operation in the Polar code factor graph parallel decoding algorithm; according to the check matrix calculation from bottom to top row by row, the transfer information corresponds to the Polar code R operation in factor graph parallel decoding algorithm. Since the LDPC matrix supports row-column exchange and does not change its decoding properties, the corresponding R operation can also be calculated row by row from bottom to top for the check matrix, and the corresponding L operation can be calculated row by row from top to bottom.
其中,LDPC校验矩阵可以与Tanner图对应,比如,LDPC码校验矩阵和其对应校验方程的一个示例为:Among them, the LDPC check matrix can correspond to the Tanner graph. For example, an example of the LDPC code check matrix and its corresponding check equation is:
其中,“+”表示模2加。Among them, "+" means modulo 2 plus.
该校验矩阵对应的Tanner图可以表示如图4所示,图4中的每个圆形节点为变量节点,代表校验矩阵H中的一列,每个方形节点为校验节点,代表校验矩阵H中的一行,图4中的每条连接校验节点和变量节点的边代表这两个节点所对应的行与列交汇的位置存在一个非零元素。The Tanner graph corresponding to the check matrix can be represented as shown in Figure 4. Each circular node in Figure 4 is a variable node, representing a column in the check matrix H, and each square node is a check node, representing a check In a row of matrix H, each edge connecting the check node and the variable node in Figure 4 represents a non-zero element at the intersection of the row and column corresponding to the two nodes.
具体计算时,也可采用BP/MS一类的译码算法,对于BP,其译码公式可写作:For specific calculations, decoding algorithms such as BP/MS can also be used. For BP, the decoding formula can be written as:
对于MS,其译码公式可写作:For MS, its decoding formula can be written as:
公式中,R
ij表示第j个变量节点需要更新的LLR,Q
ji表示其他变量节点传递给当前校验节点的LLR。
In the formula, R ij represents the LLR that needs to be updated for the j-th variable node, and Q ji represents the LLR passed by other variable nodes to the current check node.
并行译码算法的吞吐率虽然高,但是译码性能较差,和串行译码算法的性能有较大差距。Although the throughput rate of the parallel decoding algorithm is high, the decoding performance is poor, and there is a big gap between the performance of the serial decoding algorithm.
通信系统对译码提出了较高的性能要求和吞吐率要求,同时由于5G通信系统中要求既能支持Polar译码,也能支持LDPC编码和译码,降低译码器的开销也是一个需要解决的问题。The communication system puts forward higher performance requirements and throughput requirements for decoding. At the same time, as the 5G communication system requires both Polar decoding and LDPC encoding and decoding, reducing the overhead of the decoder is also a need to solve The problem.
图5为本申请实施例提供的一种用于级联译码的并行译码器500的结构示意图,用于对一个或多个长度为N
in的对数似然比LLR序列进行译码,并向下一级译码器提供一个或多个长度为N
out的输入LLR序列。其中,N
in和N
out均为整数,N
out<N
in。通常N
out和N
in一般均为2的幂次方,例如:N
in取值可以是以下任一:8192,4096,2048,1024,512,256,128,64,32,而N
out可以取值为以下任一:1024,512,256,128,64,32,16,8,4,2,1128,64,32,16,8,4,2,1。
FIG. 5 is a schematic structural diagram of a parallel decoder 500 for cascaded decoding according to an embodiment of the application, which is used to decode one or more log-likelihood ratio LLR sequences of length N in. And provide one or more input LLR sequences of length N out to the next stage decoder. Wherein, N in and N out are both integers, and N out <N in . Generally, N out and N in are generally powers of 2. For example, the value of N in can be any of the following: 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, and N out can be any of the following One: 1024,512,256,128,64,32,16,8,4,2,1128,64,32,16,8,4,2,1.
可以用并行译码器(N
in,N
out)表示并行译码器500的译码输入LLR序列和向下 一级提供的输入LLR序列的长度,例如,并行译码器(1024,64)表示译码输入LLR序列的长度为1024,向下一级提供的输入LLR序列的长度为64的并行译码器;并行译码器(8192,512)表示译码输入LLR序列的长度为8192,向下一级提供的输入LLR序列的长度为512的并行译码器。需要说明的是,此处仅为举例,并不限于上述举例。
The parallel decoder (N in , N out ) can be used to represent the length of the decoded input LLR sequence of the parallel decoder 500 and the input LLR sequence provided to the next stage, for example, the parallel decoder (1024, 64) represents The length of the decoded input LLR sequence is 1024, and the parallel decoder with the length of the input LLR sequence provided to the next stage is 64; the parallel decoder (8192, 512) indicates that the length of the decoded input LLR sequence is 8192, The parallel decoder with the length of the input LLR sequence provided by the next stage is 512. It should be noted that this is only an example, not limited to the above examples.
其中,并行译码器500可以根据前述任一并行译码算法对译码输入LLR序列进行信息更新,其输出LLR序列和译码输入LLR序列的长度通常相等,都为N
in。并行译码器500向下一级译码器提供的长度为N
out的输入LLR序列,可以是由并行译码器500在其长度为N
in的输出LLR序列中确定出N
out个LLR作为下一级译码器的输入LLR序列,也可以是由下一级译码器根据并行译码器500长度为N
in的输出LLR序列中确定出N
out个LLR作为下一级译码器的输入LLR序列,本申请实施例对此不做限制。若进行多次迭代译码,在一种可能的实现方式中,对于第s次迭代译码,下一级译码器的输入LLR序列包括输出LLR序列中第(s-1)×N
out+1个LLR至第s×N
out个LLR。在这种方式下,最大迭代次数为N
in/N
out。
Wherein, the parallel decoder 500 can update the information of the decoded input LLR sequence according to any of the aforementioned parallel decoding algorithms, and the length of the output LLR sequence and the decoded input LLR sequence are usually equal, and both are N in . The parallel decoder 500 provides an input LLR sequence with a length of N out to the next-stage decoder. The parallel decoder 500 may determine N out LLRs as the next LLR sequence in the output LLR sequence with a length of N in. The input LLR sequence of the first-level decoder can also be determined by the next-level decoder according to the output LLR sequence of the parallel decoder 500 whose length is N in . N out LLRs are used as the input of the next-level decoder. The LLR sequence is not limited in this embodiment of the application. If multiple iterative decoding is performed, in a possible implementation, for the s-th iterative decoding, the input LLR sequence of the next-stage decoder includes the (s-1)×N out +th in the output LLR sequence 1 LLR to the s×N outth LLR. In this way, the maximum number of iterations is N in /N out .
由于并行译码器500向下一级译码器提供的LLR序列是其输出LLR序列的一部分,因此译码过程上也进行相应地调整。Since the LLR sequence provided by the parallel decoder 500 to the next decoder is a part of its output LLR sequence, the decoding process is adjusted accordingly.
如图5所示:并行译码器500可以包括第一阶段更新单元510和第二阶段更新单元520。其中,对于第s次迭代,0<s≤S,S为最大迭代次数:As shown in FIG. 5, the parallel decoder 500 may include a first-stage update unit 510 and a second-stage update unit 520. Among them, for the sth iteration, 0<s≤S, and S is the maximum number of iterations:
第一阶段更新单元510可以用于对并行译码器500的译码输入LLR序列
进行第一阶段更新得到并行译码器500的输出LLR序列
所述输出LLR序列
用于提供下一级译码器的输入LLR序列
The first-stage update unit 510 can be used to decode the input LLR sequence of the parallel decoder 500 Perform the first stage update to obtain the output LLR sequence of the parallel decoder 500 The output LLR sequence Used to provide the input LLR sequence of the next stage decoder
s=1,第一阶段更新单元510的输入LLR序列
为并行译码器500的译码输入LLR序列。
s=1, the input LLR sequence of the first stage update unit 510 The LLR sequence is input for the decoding of the parallel decoder 500.
s>1时,When s>1,
第二阶段更新单元520可以用于:The second-stage update unit 520 may be used for:
根据第s-1次迭代中下一级译码器的输出LLR序列
以及并行译码器500的输出LLR序列
得到第s次迭代的第二更新输入LLR序列
According to the output LLR sequence of the next stage decoder in the s-1th iteration And the output LLR sequence of the parallel decoder 500 Get the second updated input LLR sequence of the sth iteration
对第s次迭代的第二更新输入LLR序列
进行第二阶段更新得到第二更新输出LLR序列
The second updated input LLR sequence for the sth iteration Perform the second stage update to get the second update output LLR sequence
其中,第二更新输入LLR序列
为将
中第(s-2)·N
out+1个LLR至第(s-1)·N
out个LLR替换为
中的N
out个LLR得到的LLR序列。
Among them, the second update input LLR sequence For will Replace the (s-2) th N out +1 LLR to the (s-1) th N out LLR with The LLR sequence obtained by the N out LLRs.
第一阶段更新单元510的输入LLR序列是
从第二阶段更新单元520获取的第二更新输出LLR序列,第一阶段更新单元510可以用于对作为其输入的LLR序列进行第一阶段更新得到并行译码器500的输出LLR序列
所述输出LLR序列用于提供下一级译码器的输入LLR序列。
The input LLR sequence of the first stage update unit 510 is The second update output LLR sequence obtained from the second-stage update unit 520, the first-stage update unit 510 may be used to perform the first-stage update on the input LLR sequence to obtain the output LLR sequence of the parallel decoder 500 The output LLR sequence is used to provide the input LLR sequence of the next stage decoder.
对于码长为N的Polar码,其因子图为n+1层,
N通常为2的幂次方,则n=log
2N。并行译码器的输入长度为N
in,则并行译码器500的译码最大层数可以为n
in+1层,n
in=log
2N
in。并行译码器500向下一级译码器提供的输入序列长度为N
out,在并行译码器500的第n
out+1层可以得到
个长度为N
out的LLR子序列,其中
N
out通常也为2的幂次方,则n
out=log
2N
out。并行译码器500可以至少包括第n
out+1层至第n
in+1层译码层。
For a Polar code with a code length of N, the factor graph is n+1 layers, N is usually a power of 2, then n=log 2 N. The input length of the parallel decoder is N in , and the maximum number of decoding layers of the parallel decoder 500 can be n in +1 layer, and n in =log 2 N in . The length of the input sequence provided by the parallel decoder 500 to the next decoder is N out , which can be obtained at the n out +1 layer of the parallel decoder 500 LLR subsequences of length N out, where N out is usually a power of 2, then n out =log 2 N out . The parallel decoder 500 may include at least n out +1 th to n in +1 th decoding layers.
对于第s次迭代,第n
in+1层的N
in个LLR赋值为LLR序列
第n
out+1层的N
in个LLR记为LLR序列
For the sth iteration, the N in LLRs of the n in +1th layer are assigned to the LLR sequence The N in LLRs of the n out +1 layer are recorded as the LLR sequence
第一阶段更新单元510可以对其输入的LLR序列
从第n
in+1层开始执行软值更新得到第n
out+1层的N
in个LLR节点,将第n
out+1层的N
in个LLR节点作为输出LLR序列
The LLR sequence that the first stage update unit 510 can input N in +1 from the layer begin to give a soft value updating n out N in number of nodes +1 LLR layer, the first n out N in a layer LLR +1 nodes as output LLR sequence
在一种可能的实现方式中,第一阶段更新单元510获取作为输入的LLR序列
第n
in+1层的N
in个LLR节点为该LLR序列中的N
in个LLR,第一阶段更新包括从第n
in+1层向第n
out+1层方向的n
in-n
out次LLR软值更新,从第n
in+1层向第n
out+1层方向更新的计算公式可以参考前述并行译码算法中L运算的公式(10)和(11)或者,从上往下逐行计算的公式(14)或(15)。从第n
in+1层开始逐层更新LLR节点,更新至第n
out+1层时,得到的N
in个LLR节点为输出LLR序列
可以包括N
in/N
out个长度为N
out的LLR子序列。
In a possible implementation, the first-stage update unit 510 obtains the LLR sequence as input N in N in number of nodes +1 LLR LLR for the layer sequence LLR N in number, comprising a first stage update from n in n to the layer of n out +1 +1 direction in -n out secondary layer LLR soft value update, the calculation formula updated from the n in +1 layer to the n out +1 layer direction can refer to the formulas (10) and (11) of the L operation in the aforementioned parallel decoding algorithm, or, from top to bottom. Formula (14) or (15) for row calculation. Starting from the n in +1 layer, update the LLR nodes layer by layer, and when updating to the n out +1 layer, the obtained N in LLR nodes are the output LLR sequence It may include N in /N out LLR subsequences with a length of N out.
在又一种可能的实现方式中,第一阶段更新单元510获取作为输入的LLR序列
第n
in+1层的N
in个LLR节点为该LLR序列中的N
in个LLR,第一阶段更新包括m次从第n
in+1层向第n
out+1层方向以及从第n
out+1层向第n
in+1层方向的2×m×(n
in-n
out)次LLR软值更新,以及从第n
in+1层向第n
out+1层方向的(n
in-n
out)次LLR软值更新,共(2×m+1)×(n
in-n
out)次LLR软值更新,m为整数,m≥0。其中从第n
out+1层向第n
in+1层方向更新的计算公式可以参考前述并行译码算法中R运算的公式(12)和(13)。反复执行一次或多次从第n
in+1层向第n
out+1层方向以及从第n
out+1层向第n
in+1层方向的逐层更新,然后再从第n
in+1层开始逐层更新LLR节点,更新至第n
out+1层时,得到的N
in个LLR节点为输出LLR序列
可以包括N
in/N
out个长度为N
out的LLR子序列。需要说明的是,在并行译码器500每次迭代过程中,m取值可以不同。
In another possible implementation manner, the first-stage update unit 510 obtains the LLR sequence as input N in N in number of nodes +1 LLR LLR for the layer sequence LLR N in number, the first stage of updating comprises the first layer of m + 1 + 1 layer n out from the first direction and from n in n out +1 to update the first layer n in +1 direction layer 2 × m × (n in -n out) times LLR soft values, and the layers from the n in +1 direction of layer n out +1 (n in - n out ) times of LLR soft value update, a total of (2×m+1)×(n in -n out ) times of LLR soft value update, m is an integer, m≥0. The calculation formula updated from the n out +1th layer to the n in +1th layer can refer to the formulas (12) and (13) of the R operation in the aforementioned parallel decoding algorithm. Repeat one or more times from layer n in +1 to layer n out +1 and from layer n out +1 to layer n in +1, layer by layer update, and then from layer n in +1 The layer starts to update the LLR nodes layer by layer, and when the layer is updated to the n out +1th layer, the obtained N in LLR nodes are the output LLR sequence It may include N in /N out LLR subsequences with a length of N out. It should be noted that in each iteration of the parallel decoder 500, the value of m may be different.
其中,第一阶段更新单元510的输入LLR序列
可以是并行译码器500的译码输入LLR序列,也可以是第二阶段更新单元520得到的第二更新输出LLR序列。
Among them, the input LLR sequence of the first stage update unit 510 It may be the decoded input LLR sequence of the parallel decoder 500, or it may be the second updated output LLR sequence obtained by the second-stage update unit 520.
在一种可能的实现方式中,第一阶段更新单元510还可用于从输出LLR序列
中确定提供给下一级译码器的输入LLR序列。其中,所述提供给下一级译码器的输入LLR序列包括输出LLR序列
中N
out个LLR。由于输出LLR序列
可以包括N
in/N
out个长度为N
out的LLR子序列,第一阶段更新单元510可以从
中确定一个LLR子序列作为提供给下一级译码器的输入LLR序列。例如,对于并行译码器500的第s次迭代,该LLR子序列为所述输出LLR序列
中第s个子序列,可以包括所述输出LLR序列
中第(s-1)×N
out+1个LLR至第s×N
out个LLR,
In a possible implementation, the first-stage update unit 510 may also be used to output LLR sequence from Determine the input LLR sequence provided to the next-stage decoder. Wherein, the input LLR sequence provided to the next-stage decoder includes an output LLR sequence There are N out LLRs. Due to the output LLR sequence It may include N in /N out LLR subsequences with a length of N out , and the first-stage update unit 510 may start from Determine an LLR subsequence as the input LLR sequence provided to the next-stage decoder. For example, for the sth iteration of the parallel decoder 500, the LLR subsequence is the output LLR sequence The s-th subsequence in, may include the output LLR sequence (S-1)×N out + 1 LLR to s×N out LLR,
第二阶段更新单元520可以用于对第二更新输入LLR序列
从第n
out+1层开始执行第二阶段更新得到第n
in+1层的N
in个LLR节点,将第n
in+1层的N
in个LLR节点
作为第二更新输出LLR序列。
The second-stage update unit 520 can be used to input the LLR sequence for the second update To give n in N in number of nodes LLR + 1 layer, the first n in N in a layer of the +1 LLR node n out +1 layer started from the second stage update The LLR sequence is output as the second update.
在一种可能的实现方式中,第二阶段更新单元520获取作为输入的LLR序列
第n
out+1层的N
in个LLR节点为该LLR序列中的N
in个LLR,第二阶段更新包括从第n
out+1层向第n
in+1层方向的n
in-n
out次LLR软值更新,更新的计算公式可以参考前述并行译码算法中R运算的公式(12)和(13),或者从下往上逐行计算的公式(14)或(15)。第二阶段更新单元520从第n
out+1层开始逐层更新LLR节点,更新至第n
in+1层时,N
in个LLR节点的值为第二更新输出LLR序列
其长度为N
in。
In a possible implementation, the second-stage update unit 520 obtains the LLR sequence as input N out N in number of nodes +1 LLR LLR for the layer sequence number N in LLR, the second stage of updating comprises n out +1 from layer to layer of n in +1 direction n in -n out times The LLR soft value is updated, and the updated calculation formula can refer to the formulas (12) and (13) of the R operation in the aforementioned parallel decoding algorithm, or the formulas (14) or (15) calculated row by row from bottom to top. The second-stage update unit 520 updates the LLR nodes layer by layer starting from the n out +1 layer, and when updating to the n in +1 layer, the value of the N in LLR nodes is the second update output LLR sequence Its length is N in .
在一种可能的实现方式中,并行译码器500也可以与另一并行译码器500级联,例如,第一并行译码器(N
in1,N
out1)和第二并行译码器(N
in2,N
out2)级联,其中第一并行译码器为上一级译码器,第二并行译码器为下一级译码器,N
out1=N
in2,第二并行译码器的译码输入LLR序列来源于第一并行译码器的输入LLR序列,第二并行译码器还用于向上一级译码器,例如,向第一并行译码器返回一个或多个长度为N
in2或N
out1的译码LLR序列。
In a possible implementation, the parallel decoder 500 can also be cascaded with another parallel decoder 500, for example, a first parallel decoder (N in1 , N out1 ) and a second parallel decoder ( N in2 , N out2 ) are cascaded, where the first parallel decoder is the upper-level decoder, the second parallel decoder is the next-level decoder, N out1 = N in2 , the second parallel decoder The decoding input LLR sequence of is derived from the input LLR sequence of the first parallel decoder, and the second parallel decoder is also used for the upper decoder, for example, to return one or more lengths to the first parallel decoder It is the decoded LLR sequence of N in2 or N out1.
在一种可能的实现方式中,可以将一个或多个并行译码器500和支持码长较小的串行译码器级联。如图6所示为并行译码器620(N,N
S)和支持码长为N
S的串行译码器630级联,如图8所示,并行译码器810(N
P,N),并行译码器620(N,N
S)和支持码长为N
S的串行译码器630级联。其中,N可以取值为以下任一项:1024,512,256,128,64,32,Ns可以取值为以下任一项:128,64,32,16,8,4,2,1,N
p可以取值以下任一项:8192,4096,2048,1024,512,256,128。需要说明的是,此处仅为举例,并不限于此。为了方便描述,在下文中将并行译码器620称为第二并行译码器,并行译码器810称为第一并行译码器。
In a possible implementation manner, one or more parallel decoders 500 may be cascaded with a serial decoder supporting a smaller code length. As shown in Figure 6, the parallel decoder 620 (N, N S ) and the serial decoder 630 supporting a code length of N S are cascaded. As shown in Figure 8, the parallel decoder 810 (N P , N ), the parallel decoder 620 (N, N S ) and the serial decoder 630 supporting a code length of N S are cascaded. Among them, N can be any of the following: 1024, 512, 256, 128, 64, 32, and Ns can be any of the following: 128, 64, 32, 16, 8, 4, 2, 1, N p can be Value any of the following: 8192,4096,2048,1024,512,256,128. It should be noted that this is only an example and is not limited to this. For the convenience of description, hereinafter, the parallel decoder 620 is referred to as a second parallel decoder, and the parallel decoder 810 is referred to as a first parallel decoder.
本发明实施例提供的并行译码器可以用于级联译码,将较大的码长通过并行译码方式转换为小的码长输出给下一级译码器,既可以提高吞吐率,又可以降低下一级译码器的实现开销。The parallel decoder provided by the embodiment of the present invention can be used for cascaded decoding, which converts a larger code length into a smaller code length through parallel decoding and outputs it to the next-stage decoder, which can improve the throughput rate. It can also reduce the implementation overhead of the next-level decoder.
如图6所示,为本发明一实施例提供的并行译码器620和串行译码器630级联的级联译码器600结构示意图,其中串行译码器630为并行译码器620的下一级译码器。其中,并行译码器620可以采用BP译码算法,MS译码算法或者DNN译码算法,串行译码器630可以采用SCL译码算法,CA-SCL译码算法等。并行译码器620提供给串行译码器630的输入LLR序列长度为N
S。例如并行译码器620输入LLR序列的长度为8,提供给串行译码器630的输入LLR序列长度为4。并行译码器620中,N
in=N,N
out=N
S。需要说明的是,此处仅为举例,并不以此为限制。
As shown in FIG. 6, it is a schematic structural diagram of a cascaded decoder 600 in which a parallel decoder 620 and a serial decoder 630 are cascaded according to an embodiment of the present invention, wherein the serial decoder 630 is a parallel decoder 620's next-level decoder. Among them, the parallel decoder 620 can use a BP decoding algorithm, an MS decoding algorithm or a DNN decoding algorithm, and the serial decoder 630 can use an SCL decoding algorithm, a CA-SCL decoding algorithm, and so on. The length of the input LLR sequence provided by the parallel decoder 620 to the serial decoder 630 is N S. For example, the length of the input LLR sequence of the parallel decoder 620 is 8, and the length of the input LLR sequence provided to the serial decoder 630 is 4. In the parallel decoder 620, N in =N and N out =N S. It should be noted that this is only an example and not a limitation.
参考图7,为本发明一实施例提供的级联译码器译码的方法流程图。下面结合图6的级联译码器600,对图7所示的级联译码器译码的方法进行说明。其中,级联译码器600的输入LLR序列包括N个输入LLR,对所述输入LLR序列进行最大T次迭代级联译码,其中,第t次迭代的级联译码,0<t≤T,包括如图7所示方法步骤:Referring to FIG. 7, it is a flowchart of a decoding method of a cascade decoder according to an embodiment of the present invention. The decoding method of the cascaded decoder shown in FIG. 7 will be described below in conjunction with the cascaded decoder 600 of FIG. 6. Wherein, the input LLR sequence of the cascaded decoder 600 includes N input LLRs, and the input LLR sequence is subjected to a maximum of T iterative cascaded decoding, where the t-th iterative cascaded decoding, 0<t≤ T, including the method steps shown in Figure 7:
步骤710:第二并行译码器620对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列。Step 710: The second parallel decoder 620 decodes the L(t) second input LLR sequences to obtain L(t) second output LLR sequences.
其中,每个第二输入LLR序列的长度为N,表示为
每个第二输出LLR 序列的长度为N,表示为
Among them, the length of each second input LLR sequence is N, expressed as The length of each second output LLR sequence is N, expressed as
对于每个第二输入LLR序列
第二并行译码器620每次迭代得到对应的第二输出LLR序列
用于提供串行译码器630的第三输入LLR序列
(t)。其中,第三输入LLR序列
包括所述第二输出LLR序列
中Ns个LLR,例如:cLLR
(t-1)·Ns+1,cLLR
(t-1)·Ns+2,…,cLLR
t·Ns。
For each second input LLR sequence The second parallel decoder 620 obtains the corresponding second output LLR sequence each iteration Used to provide the third input LLR sequence of the serial decoder 630 (t). Among them, the third input LLR sequence Include the second output LLR sequence There are Ns LLRs, for example: cLLR (t-1)·Ns+1 , cLLR (t-1)·Ns+2 ,..., cLLR t·Ns .
第二并行译码器620对第二输入LLR序列
的译码过程可以参考前述实施例中对并行译码器的描述,此处不再赘述。
The second parallel decoder 620 responds to the second input LLR sequence For the decoding process, refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
在一种可能的实现方式中,第二并行译码器620根据第二输出LLR序列
确定第三输入LLR序列
并输出给串行译码器器630;在又一种可能的实现方式中,第二并行译码器620将第二输出LLR序列
输出给串行译码器630,由串行译码器630根据第二输出LLR序列
确定第三输入LLR序列
(t)。
In a possible implementation manner, the second parallel decoder 620 according to the second output LLR sequence Determine the third input LLR sequence And output to the serial decoder 630; in another possible implementation, the second parallel decoder 620 outputs the second LLR sequence Output to the serial decoder 630, and the serial decoder 630 according to the second output LLR sequence Determine the third input LLR sequence (t).
t=1时,第1次迭代,L(1)=1:第二并行译码器620将级联译码器的初始输入LLR序列,作为第二输入LLR序列
即1个第二输入LLR序列
When t=1, the first iteration, L(1)=1: the second parallel decoder 620 uses the initial input LLR sequence of the cascaded decoder as the second input LLR sequence I.e. 1 second input LLR sequence
当级联译码器用于信道译码时,初始输入LLR序列可以是接收端装置接收信号后,进行解调等处理得到的LLR序列
与信息序列
对应。
When the cascaded decoder is used for channel decoding, the initial input LLR sequence can be the LLR sequence obtained by demodulation and other processing after the receiving end device receives the signal And information sequence correspond.
第二并行译码器620对第二输入LLR序列
进行第一阶段更新,得到第二输出LLR序列
The second parallel decoder 620 responds to the second input LLR sequence Perform the first stage update to get the second output LLR sequence
当t>1时,第t次迭代:When t>1, the tth iteration:
第二并行译码器620从串行译码器630,获取前一次迭代,也就是第t-1次迭代的M(t-1)个第三输出LLR序列,其中每个第三输出LLR序列包括N
S个LLR,记为
The second parallel decoder 620 obtains the M(t-1) third output LLR sequences of the previous iteration, that is, the t-1th iteration, from the serial decoder 630, where each third output LLR sequence Including N S LLRs, denoted as
第二并行译码器620获取第t-1次迭代中与所述M(t-1)个第三输出LLR序列对应的M(t-1)个第二输出LLR序列
由于在第t-1次迭代中,第二并行译码器产生L(t-1)个第二输出LLR序列
而串行译码器630经过路径选择返回M(t-1)个第三输出LLR序列
第二并行译码器620确定与这些第三输出LLR序列
所在的父路径对应的第二输出LLR序列,从而得到对应的M(t-1)个第二输出LLR序列
The second parallel decoder 620 obtains M(t-1) second output LLR sequences corresponding to the M(t-1) third output LLR sequences in the t-1th iteration Since in the t-1th iteration, the second parallel decoder generates L(t-1) second output LLR sequences The serial decoder 630 returns M(t-1) third output LLR sequences through path selection The second parallel decoder 620 determines the sequence of LLRs with these third outputs The second output LLR sequence corresponding to the parent path, and the corresponding M(t-1) second output LLR sequences are obtained
第二并行译码器620将M(t-1)个第三输出LLR序列
分别替换对应的第二输出LLR序列
中对应序号的LLR,cLLR
(t-2)·Ns+1,cLLR
(t-2)·Ns+2,…,cLLR
(t-1)·Ns,得到M(t-1)个序列
The second parallel decoder 620 converts M(t-1) third output LLR sequences Replace the corresponding second output LLR sequence respectively In the corresponding sequence number of LLR, cLLR (t-2)·Ns+1 , cLLR (t-2)·Ns+2 ,..., cLLR (t-1)·Ns , get M(t-1) sequences
第二并行译码器620对M(t-1)个序列
分别进行第二阶段更新得到M(t-1)个第二更新输出序列,第二并行译码器620将所述M(t-1)个第二更新输出序列作为L(t)个第二输入LLR序列
L(t)=M(t-1)。
The second parallel decoder 620 pairs M(t-1) sequences Perform the second stage update respectively to obtain M(t-1) second update output sequences, and the second parallel decoder 620 regards the M(t-1) second update output sequences as L(t) second Enter the LLR sequence L(t)=M(t-1).
在又一种可能的实现方式中,为了实现和LDPC译码器的共模,第二并行译码器620也可用于对L(t)个第二输入LLR序列分别确定对应的L(t)个LDPC校验矩阵;第二并行译码器620基于所述L(t)个LDPC校验矩阵分别对L(t)个第二输入LLR序列进 行译码得到L(t)个第二输出序列。In another possible implementation manner, in order to achieve common mode with the LDPC decoder, the second parallel decoder 620 can also be used to determine the corresponding L(t) for the L(t) second input LLR sequences. LDPC check matrices; the second parallel decoder 620 decodes L(t) second input LLR sequences respectively based on the L(t) LDPC check matrices to obtain L(t) second output sequences .
第二并行译码器620对第二输入LLR序列
的译码过程可以参考前述实施例中对并行译码器的描述,此处不再赘述。
The second parallel decoder 620 responds to the second input LLR sequence For the decoding process, refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
步骤720:串行译码器630对L(t)个第三输入LLR序列进行译码得到M(t)条译码路径。其中,每个所述第三输入LLR序列
分别包括对应的第二输出LLR序列
中Ns个LLR。
Step 720: The serial decoder 630 decodes the L(t) third input LLR sequences to obtain M(t) decoding paths. Wherein, each of the third input LLR sequence Include the corresponding second output LLR sequence respectively Ns LLRs.
串行译码器630的最大保留译码路径数为M,M为大于0的整数。The maximum number of reserved decoding paths of the serial decoder 630 is M, and M is an integer greater than zero.
串行译码器630对L(t)个第三输入LLR序列进行串行译码得到M(t)条译码路径。串行译码器630的最大保留译码路径为M条路径。其中,所述M(t)条译码路径为串行译码器630产生的L(t)*2
k条译码路径中路径度量值最大的M(t)条译码路径,或者所述M(t)条译码路径为串行译码器630产生的L(t)*2
k条译码路径中路径度量值最大且CRC校验通过的M(t)条译码路径,k为正整数。
The serial decoder 630 serially decodes the L(t) third input LLR sequences to obtain M(t) decoding paths. The maximum reserved decoding path of the serial decoder 630 is M paths. Wherein, the M(t) decoding paths are the L(t)*2 k decoding paths generated by the serial decoder 630 and the M(t) decoding paths with the largest path metric value, or the The M(t) decoding paths are L(t)*2 generated by the serial decoder 630. Among the k decoding paths, the M(t) decoding paths have the largest path metric value and pass the CRC check, and k is Positive integer.
其中M(t)为M和L(t)*2
k中的最小值。例如,M=8,L(t)*2
k=4,则M(t)为4,又例如:M=8,L(t)*2
k=16,M(t)=8。
Among them, M(t) is the minimum value of M and L(t)*2 k. For example, M=8, L(t)*2 k =4, then M(t) is 4, another example: M=8, L(t)*2 k =16, M(t)=8.
步骤730:串行译码器630确定继续下一次迭代处理,执行步骤740,或者串行译码器630确定终止迭代处理,执行步骤750。Step 730: The serial decoder 630 determines to continue the next iteration process and executes step 740, or the serial decoder 630 determines to terminate the iteration process and executes step 750.
若当前迭代次数未达到最大迭代次数且迭代不提前终止,对于级联译码器800,t<T且第t次迭代不满足提前终止条件,串行译码器630执行步骤740,继续第t+1次迭代处理。If the current number of iterations does not reach the maximum number of iterations and the iteration is not terminated early, for the cascaded decoder 800, t<T and the tth iteration does not meet the early termination condition, the serial decoder 630 executes step 740 and continues to the tth +1 iteration processing.
若当前迭代次数达到最大迭代次数,或者当前迭代t已满足终止条件,对于级联译码器800,t=T或者第t次迭代满足提前终止条件,执行步骤750。If the current number of iterations reaches the maximum number of iterations, or the current iteration t has met the termination condition, for the cascaded decoder 800, t=T or the t-th iteration meets the early termination condition, step 750 is executed.
步骤740:串行译码器630根据所述M(t)条译码路径得到M(t)个第三输出LLR序列。Step 740: The serial decoder 630 obtains M(t) third output LLR sequences according to the M(t) decoding paths.
串行译码器630对所述M(t)条译码路径判决得到M(t)个第三输出LLR序列,每个第三输出LLR序列包括Ns个LLR软值,记为
The serial decoder 630 judges the M(t) decoding paths to obtain M(t) third output LLR sequences, and each third output LLR sequence includes Ns LLR soft values, denoted as
步骤750:串行译码器630根据所述M(t)条译码路径得到译码结果,并终止迭代。Step 750: The serial decoder 630 obtains the decoding result according to the M(t) decoding paths, and terminates the iteration.
串行译码器630对M(t)条译码路径中路径度量值最大或者路径度量值最大且CRC校验成功的1条译码路径进行硬判决,得到信息序列中
对应的信息比特。信息序列
中包括了多个信息比特,或者,一个或多个信息比特和一个或多个冻结比特,串行译码器630在进行硬判决后,只需要输出其中的一个或多个信息比特。
The serial decoder 630 makes a hard decision on one of the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, and obtains the information sequence Corresponding information bits. Information sequence It includes multiple information bits, or one or more information bits and one or more frozen bits. After the serial decoder 630 makes a hard decision, it only needs to output one or more information bits.
通信系统中,由于信息比特较多,通常会产生较大的码长。对于传统串行译码器,比如SCL译码器,当输入块长很大时,SCL译码器译码流程是串行的,难以支持较高的吞吐率。采用本申请实施例提供的级联译码器,大量的计算由可并行执行的并行译码器完成,串行译码器只需执行一个较小的长度的译码,例如,N=64,N
S=8,并行译码器将码长为64的输入通过第一阶段更新,得到8个长度为8的子序列,提供给串行译码器译码,串行译码器只需要每次执行长度为8的译码。该方法可大幅提高译码的吞吐率,又可以利用串行译码器的译码性能弥补并行译码器译码性能,从而使得译码性能和吞吐率整体得到改善。参见图10,为本申请实施例提供的级联译码器以及译码方法在对码长N=64的Polar码进行译码时,和SC译码器,SCL译码器(译码路径数目 为8,以SCL8表示)以及BP译码器的译码性能比较。其中,信息比特数为21,CRC比特数目为11,码长为64,在加性高斯白噪声(additive white gaussian noise,AWGN)环境下,各译码器在不同误块率(block error rate,BLER)下,译码性能以符号能量噪声比(energy per symbol to noise density,Es/N0)表示。其中SC译码算法的性能曲线以菱形曲线表示,SCL8译码算法的性能曲线以方块曲线表示,BP译码算法的性能曲线以×形曲线表示,本申请实施例提供的级联译码器的性能曲线以圆形曲线表示。从图10中可以看出,级联译码器中串行译码器的路径数据也为8,其译码性能和SCL8的性能基本一致,和SC和BP/MS比性能要好1dB以上。而级联译码器中由于采用了并行译码器并行处理,其吞吐率高于SCL8。
In the communication system, due to the large number of information bits, a large code length is usually generated. For traditional serial decoders, such as SCL decoders, when the input block length is very large, the decoding process of the SCL decoder is serial, and it is difficult to support a higher throughput rate. With the cascaded decoder provided by the embodiment of the application, a large number of calculations are completed by a parallel decoder that can be executed in parallel, and the serial decoder only needs to perform a decoding with a smaller length, for example, N=64 N S = 8, the parallel decoder updates the input with a code length of 64 through the first stage, and obtains 8 sub-sequences with a length of 8, which are provided to the serial decoder for decoding. The serial decoder only needs every The decoding with a length of 8 is executed once. This method can greatly increase the decoding throughput, and can use the decoding performance of the serial decoder to compensate for the decoding performance of the parallel decoder, so that the overall decoding performance and throughput are improved. 10, when the cascaded decoder and decoding method provided by the embodiments of this application decode Polar codes with a code length of N=64, and SC decoder, SCL decoder (number of decoding paths) Is 8, represented by SCL8) and the decoding performance of the BP decoder. Among them, the number of information bits is 21, the number of CRC bits is 11, and the code length is 64. In an additive white gaussian noise (AWGN) environment, each decoder has a different block error rate (block error rate, Under BLER), the decoding performance is represented by energy per symbol to noise density (Es/N0). The performance curve of the SC decoding algorithm is represented by a diamond curve, the performance curve of the SCL8 decoding algorithm is represented by a square curve, and the performance curve of the BP decoding algorithm is represented by an X-shaped curve. The performance curve is represented by a circular curve. It can be seen from Figure 10 that the path data of the serial decoder in the cascaded decoder is also 8, and its decoding performance is basically the same as that of SCL8, which is better than SC and BP/MS by more than 1dB. However, the throughput rate of the cascade decoder is higher than that of SCL8 due to the parallel processing of the parallel decoder.
进一步地,对于除了支持Polar码,还需要同时支持其他码(如LDPC码,Turbo码等)的通信系统,比如,5G通信系统同时支持Polar码和LDPC码,采用DNN,BP,MS等并行译码算法的译码器是一种通用架构,即可以支持Polar码译码,也可以支持LDPC码等译码,采用本申请实施例的级联译码器,可以共用LDPC码的并行译码运算单元,从而可以节省硬件实现开销,避免浪费。Further, in addition to supporting Polar codes, communication systems that also need to support other codes (such as LDPC codes, Turbo codes, etc.), for example, 5G communication systems support both Polar codes and LDPC codes, using DNN, BP, MS and other parallel translation The decoder of the code algorithm is a general architecture, which can support Polar code decoding and LDPC code decoding. The cascaded decoder of the embodiment of this application can share the parallel decoding operation of LDPC code. Unit, which can save hardware implementation overhead and avoid waste.
如图8所示,为本申请又一实施例提供的由第一并行译码器810(Np,N),第二并行译码器620(N,Ns)和串行译码器630级联的多级联译码器,其中第1级译码器为并行译码器810,第2级译码器为并行译码器620,第3级译码器630为串行译码器。也可以看做是并行译码器810和图6所示的级联译码器600级联,并行译码器810进行第1级迭代译码,级联译码器600进行第2级迭代译码。其中,第一并行译码器810可以采用BP译码算法,MS译码算法或者DNN译码算法。As shown in FIG. 8, the first parallel decoder 810 (Np, N), the second parallel decoder 620 (N, Ns) and the serial decoder 630 are cascaded according to another embodiment of this application. The first-level decoder is a parallel decoder 810, the second-level decoder is a parallel decoder 620, and the third-level decoder 630 is a serial decoder. It can also be regarded as the parallel decoder 810 and the cascaded decoder 600 shown in FIG. 6 are cascaded, the parallel decoder 810 performs the first stage iterative decoding, and the cascade decoder 600 performs the second stage iterative decoding. code. Among them, the first parallel decoder 810 may use a BP decoding algorithm, an MS decoding algorithm or a DNN decoding algorithm.
第一并行译码器810,N
in=N
p,N
out=N,其输入序列长度为N
p,为大于N的正整数,其提供给下一级译码器,级联译码器600,的输入LLR序列的长度为N,或者也可以说提供给第二并行译码器620的输入LLR序列的长度为N。第一并行译码器810对于输入序列的译码过程和第二并行译码器620的译码过程类似,可以参见前述实施例的描述,不同的在于第二并行译码器620作为下一级译码器,还需要向其上一级译码器,第一并行译码器810返回译码LLR序列。
The first parallel decoder 810, N in =N p , N out =N, its input sequence length is N p , which is a positive integer greater than N, which is provided to the next stage decoder, the cascaded decoder 600 The length of the input LLR sequence of, is N, or it can be said that the length of the input LLR sequence provided to the second parallel decoder 620 is N. The decoding process of the first parallel decoder 810 for the input sequence is similar to the decoding process of the second parallel decoder 620. You can refer to the description of the foregoing embodiment. The difference is that the second parallel decoder 620 serves as the next stage. The decoder also needs to return to its upper level decoder, the first parallel decoder 810, to decode the LLR sequence.
对于第一并行译码器810而言,其最大迭代次数I=N
p/N,也就是第1级迭代的最大迭代次数为I,第一并行译码器810的输入为K(i)个第一输入LLR序列,长度为N
p,表示为
For the first parallel decoder 810, the maximum number of iterations I=N p /N, that is, the maximum number of iterations of the first-level iteration is I, and the input of the first parallel decoder 810 is K(i) The first input LLR sequence, the length is N p , expressed as
对于级联译码器600而言,进行第2级迭代,其初始输入LLR序列是基于上一级译码器810的第一输出LLR序列得到的长度为N的LLR序列,最大迭代次数为T次,T=N/Ns,第2级迭代的最大迭代次数为T。For the cascaded decoder 600, the second-level iteration is performed, and the initial input LLR sequence is an LLR sequence of length N obtained based on the first output LLR sequence of the previous-level decoder 810, and the maximum number of iterations is T Times, T=N/Ns, the maximum number of iterations of the second level iteration is T.
多级联译码器完成输入LLR序列译码的最大迭代次数为T·I=N
p/Ns次。
The maximum number of iterations for the multi-cascade decoder to complete the decoding of the input LLR sequence is T·I=N p /Ns times.
级联译码器600包括第二并行译码器620和串行译码器630级联,对于每个第二输入LLR序列
进行译码得到第二输出LLR序列
的过程可以参考图7所述的方法步骤,区别在于第二并行译码器620还需要向第一并行译码器返回译码LLR序列,串行译码器630需要根据第1级迭代,第2级迭代终止与否输出不同。
The cascaded decoder 600 includes a second parallel decoder 620 and a serial decoder 630 cascaded, for each second input LLR sequence Decode to get the second output LLR sequence The process can refer to the method steps described in Figure 7. The difference is that the second parallel decoder 620 also needs to return the decoded LLR sequence to the first parallel decoder, and the serial decoder 630 needs to iterate according to the first stage, the first The output is different whether the level 2 iteration is terminated or not.
下面结合图8和图9对多级联译码器译码过程进行描述,其中第i次迭代包括:The decoding process of the multi-cascade decoder is described below in conjunction with Fig. 8 and Fig. 9, where the i-th iteration includes:
步骤910:第一并行译码器810对K(i)个第一输入LLR序列进行第1级译码得到 K(i)个第一输出LLR序列。Step 910: The first parallel decoder 810 performs the first stage decoding on the K(i) first input LLR sequences to obtain K(i) first output LLR sequences.
其中,每个第一输入LLR序列的长度为N
p,表示为
每个第一输出LLR序列的长度为N
p,表示为
i是第1级迭代的次数,t是第2级迭代的次数。
Among them, the length of each first input LLR sequence is N p , expressed as The length of each first output LLR sequence is N p , expressed as i is the number of iterations of the first level, and t is the number of iterations of the second level.
对于每个第一输入LLR序列
第一并行译码器810每次迭代得到对应的第一输出LLR序列
用于提供级联译码器600的第二输入LLR序列
其中,第二输入LLR序列
包括对应的第一输出LLR序列
中N个LLR,例如:eLLR
(i-1)·N+1,eLLR
(i-1)·N+2,…,eLLR
i·N。第二输入LLR序列也可以表示成
此处为了简化说明,和图7中表述一致,将第二输入LLR序列表示成
可以理解,就是
For each first input LLR sequence The first parallel decoder 810 obtains the corresponding first output LLR sequence each iteration Used to provide the second input LLR sequence of the cascaded decoder 600 Among them, the second input LLR sequence Include the corresponding first output LLR sequence There are N LLRs, for example: eLLR (i-1)·N+1 , eLLR (i-1)·N+2 ,..., eLLR i·N . The second input LLR sequence can also be expressed as In order to simplify the description, it is consistent with the expression in Figure 7, and the second input LLR sequence is expressed as Understandable, that is
第一并行译码器810对第一输入LLR序列
的译码过程可以参考前述实施例中对并行译码器译码过程的描述,此处不再赘述。
The first parallel decoder 810 responds to the first input LLR sequence For the decoding process, refer to the description of the parallel decoder decoding process in the foregoing embodiment, which is not repeated here.
在一种可能的实现方式中,第一并行译码器810根据第一输出LLR序列
确定第二输入LLR序列
并输出给下一级译码器:级联译码器600,或者第二并行译码器620;在又一种可能的实现方式中,第一并行译码器810将第一输出LLR序列
输出给下一级译码器:级联译码器600,或者第二并行译码器620,由下一级译码器根据第一输出LLR序列
确定第二输入LLR序列
In a possible implementation manner, the first parallel decoder 810 according to the first output LLR sequence Determine the second input LLR sequence And output to the next-level decoder: the cascade decoder 600 or the second parallel decoder 620; in another possible implementation manner, the first parallel decoder 810 outputs the first LLR sequence Output to the next stage decoder: cascade decoder 600, or second parallel decoder 620, the next stage decoder according to the first output LLR sequence Determine the second input LLR sequence
i=1时,第1次迭代:K(i)=1,第一并行译码器810将多级联译码器的初始输入LLR序列,作为第一输入LLR序列
即1个第一输入LLR序列
When i=1, the first iteration: K(i)=1, the first parallel decoder 810 uses the initial input LLR sequence of the multi-cascade decoder as the first input LLR sequence I.e. 1 first input LLR sequence
当多级联译码器用于信道译码时,初始输入LLR序列可以是接收端装置接收信号后,进行解调等处理得到的LLR序列
与信息序列
对应。
When a multi-cascade decoder is used for channel decoding, the initial input LLR sequence can be the LLR sequence obtained by demodulation and other processing after the receiving end device receives the signal And information sequence correspond.
第一并行译码器810对第一输入LLR序列
进行第一阶段更新,得到第一输出LLR序列
The first parallel decoder 810 responds to the first input LLR sequence Perform the first stage update to get the first output LLR sequence
当i>1时,第i次迭代:When i>1, the i-th iteration:
第一并行译码器810从下一级译码器,如图8所示,级联译码器600获取前一次迭代,也就是第i-1次迭代的M(i-1,t)个第二译码LLR序列
其中每个第二译码LLR序列包括N个LLR,与对应的第i-1次迭代的第一输出LLR序列
中第(i-2)·N+1个LLR至第(i-1)·N个LLR对应。
The first parallel decoder 810 obtains the previous iteration, that is, the M(i-1,t) of the i-1th iteration from the next-stage decoder, as shown in FIG. 8 The second decoded LLR sequence Each second decoding LLR sequence includes N LLRs, and the corresponding first output LLR sequence of the i-1th iteration The (i-2)·N+1th LLR to the (i-1)·Nth LLR correspond.
第一并行译码器810获取第i-1次迭代中与所述M(i-1,t)个第二译码LLR序列对应的M(i-1,t)个第一输出LLR序列
由于在第i-1次迭代中,第一并行译码器810产生K(i-1)个第一输出LLR序列
级联译码器600经过t次迭代后,得到M(i-1,t)个第二译码LLR序列
每个第二译码LLR序列所在的父路径与一个第一输出LLR序列对应。
The first parallel decoder 810 obtains M(i-1,t) first output LLR sequences corresponding to the M(i-1,t) second decoded LLR sequences in the i-1th iteration Since in the i-1th iteration, the first parallel decoder 810 generates K(i-1) first output LLR sequences After t iterations, the cascaded decoder 600 obtains M(i-1, t) second decoded LLR sequences The parent path where each second decoded LLR sequence is located corresponds to a first output LLR sequence.
第一并行译码器810将M(i-1,t)个第二译码LLR序列
分别替换对应的第一输出LLR序列
中对应序号的LLR,eLLR
(i-2)·N+1,eLLR
(i-2)·N+2,…,eLLR
(i-1)·N得到序列
The first parallel decoder 810 decodes M(i-1, t) second decoded LLR sequences Replace the corresponding first output LLR sequence respectively In the corresponding sequence number LLR, eLLR (i-2)·N+1 , eLLR (i-2)·N+2 ,..., eLLR (i-1)·N get the sequence
第一并行译码器810对M(i-1,t)个
分别进行第二阶段更新得到M(i-1, t)个第二更新输出序列,第一并行译码器810将所述M(i-1,t)个第二更新输出序列作为K(i)个第一输入LLR序列
The first parallel decoder 810 pairs M(i-1, t) Perform the second stage update respectively to obtain M(i-1, t) second update output sequences, and the first parallel decoder 810 regards the M(i-1, t) second update output sequences as K(i-1, t) second update output sequences. ) First input LLR sequence
第一并行译码器810对第一输入LLR序列
的译码过程可以参考前述实施例中对并行译码器的描述,此处不再赘述。
The first parallel decoder 810 responds to the first input LLR sequence For the decoding process, refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
步骤920:级联译码器600对K(i)个第二输入LLR序列进行第2级迭代译码。Step 920: The cascade decoder 600 performs the second stage iterative decoding on the K(i) second input LLR sequences.
其中,级联译码器600对K(i)个第二输入LLR序列进行译码的迭代过程为第2级迭代,最大迭代次数为T次。Wherein, the iterative process of the cascade decoder 600 decoding the K(i) second input LLR sequences is the second-level iteration, and the maximum number of iterations is T times.
第t次迭代的过程可以参见步骤710至步骤750,其中对于多级联译码器800而言,最大迭代次数为两级译码器迭代次数的乘积,T·I,对于步骤730,当前迭代次数达到最大迭代次数时,i=I且t=T。也就是说i=I且t=T或者当前迭代t已满足终止条件,执行步骤750;若当前迭代次数没有达到上述最大迭代次数且迭代不提前终止,则执行步骤740,继续下一次迭代处理。For the process of the tth iteration, refer to step 710 to step 750. For the multi-cascade decoder 800, the maximum number of iterations is the product of the number of iterations of the two-stage decoder, T·I. For step 730, the current iteration When the number of iterations reaches the maximum number of iterations, i=I and t=T. That is to say, i=I and t=T or the current iteration t has met the termination condition, step 750 is executed; if the current iteration number does not reach the above-mentioned maximum iteration number and the iteration is not terminated early, step 740 is executed to continue the next iteration process.
其中,第t次迭代包括如下步骤:Among them, the tth iteration includes the following steps:
步骤9201:第二并行译码器620对L(i,t)个第二输入LLR序列进行译码得到L(i,t)个第二输出LLR序列。Step 9201: The second parallel decoder 620 decodes the L(i,t) second input LLR sequences to obtain L(i,t) second output LLR sequences.
可以参见前述实施例中步骤710,此处不再赘述。See step 710 in the foregoing embodiment, which is not repeated here.
其中,每个第二输入LLR序列的长度为N,表示为
每个第二输出LLR序列的长度为N,表示为
Among them, the length of each second input LLR sequence is N, expressed as The length of each second output LLR sequence is N, expressed as
第二并行译码器620对每个第二输入LLR序列
分别进行第一阶段更新,得到第二输出LLR序列
用于提供串行译码器630的第三输入LLR序列
The second parallel decoder 620 responds to each second input LLR sequence Perform the first stage update separately to get the second output LLR sequence Used to provide the third input LLR sequence of the serial decoder 630
当t>1时,第t次迭代:When t>1, the tth iteration:
第二并行译码器620从串行译码器630,获取前一次迭代,也就是第t-1次迭代的M(i,t-1)个第三输出LLR序列,其中每个第三输出LLR序列包括N
S个LLR,记为
The second parallel decoder 620 obtains the M(i, t-1) third output LLR sequences of the previous iteration, that is, the t-1th iteration, from the serial decoder 630, where each third output The LLR sequence includes N S LLRs, denoted as
第二并行译码器620获取第t-1次迭代中与所述M(i,t-1)个第三输出LLR序列对应的M(i,t-1)个第二输出LLR序列
由于在第t-1次迭代中,第二并行译码器产生L(i,t-1)个第二输出LLR序列
而串行译码器630经过路径选择返回M(i,t-1)个第三输出LLR序列
第二并行译码器620确定与这些第三输出LLR序列
所在的父路径对应的第二输出LLR序列,从而得到对应的M(i,t-1)个第二输出LLR序列
The second parallel decoder 620 obtains M(i, t-1) second output LLR sequences corresponding to the M(i, t-1) third output LLR sequences in the t-1th iteration Since in the t-1th iteration, the second parallel decoder generates L(i, t-1) second output LLR sequences The serial decoder 630 returns M(i, t-1) third output LLR sequences through path selection The second parallel decoder 620 determines the sequence of LLRs with these third outputs The second output LLR sequence corresponding to the parent path, and the corresponding M(i, t-1) second output LLR sequences are obtained
第二并行译码器620将M(i,t-1)个第三输出LLR序列
分别替换对应的第二输出LLR序列
中对应序号的LLR,cLLR
(t-2)·Ns+1,cLLR
(t-2)·Ns+2,…,cLLR
(t-1)·Ns,得到的M(i,t-1)个序列
The second parallel decoder 620 converts M(i, t-1) third output LLR sequences Replace the corresponding second output LLR sequence respectively In the corresponding sequence number of LLR, cLLR (t-2)·Ns+1 , cLLR (t-2)·Ns+2 ,..., cLLR (t-1)·Ns , get M(i,t-1) sequence
第二并行译码器620对M(i,t-1)个序列
分别进行第二阶段更新得到M(i,t-1)个第二更新输出序列,第二并行译码器620将所述M(i,t-1)个第二更新输出序列作为L(i,t)个第二输入LLR序列
L(i,t)=M(i,t-1)。
The second parallel decoder 620 pairs M(i, t-1) sequences Perform the second-stage update respectively to obtain M(i,t-1) second update output sequences, and the second parallel decoder 620 regards the M(i,t-1) second update output sequences as L(i , T) second input LLR sequence L(i,t)=M(i,t-1).
第二并行译码器620对第二输入LLR序列
的译码过程可以参考前述实施例中对并行译码器的描述,此处不再赘述。
The second parallel decoder 620 responds to the second input LLR sequence For the decoding process, refer to the description of the parallel decoder in the foregoing embodiment, which will not be repeated here.
步骤9202:串行译码器630对L(i,t)个第三输入LLR序列进行译码得到M(i,t)条译码路径。Step 9202: The serial decoder 630 decodes the L(i,t) third input LLR sequences to obtain M(i,t) decoding paths.
可以参见前述实施例中步骤720。See step 720 in the foregoing embodiment.
步骤9203:串行译码器630确定继续下一次迭代处理,执行步骤9204,或者串行译码器630确定终止第2级迭代处理但不终止第1级迭代处理,执行步骤9204至9205,或者串行译码器630确定终止第1级迭代处理,执行步骤9206。Step 9203: The serial decoder 630 determines to continue the next iterative process and executes step 9204, or the serial decoder 630 determines to terminate the second-level iterative process but does not terminate the first-level iterative process, and executes steps 9204 to 9205, or The serial decoder 630 determines to terminate the first-stage iterative process, and executes step 9206.
若当前迭代次数t未达到级联译码器600的最大迭代次数且第2级迭代不提前终止,对于级联译码器800,t<T且迭代不提前终止,串行译码器630执行步骤9204,继续第t+1次第2级迭代处理。If the current number of iterations t does not reach the maximum number of iterations of the cascaded decoder 600 and the second-level iteration does not terminate early, for the cascaded decoder 800, t<T and the iteration does not terminate early, the serial decoder 630 executes Step 9204, continue the t+1th level 2 iterative processing.
若当前迭代次数t达到级联译码器600的最大迭代次数,t=T,或者第2级迭代满足提前终止条件,且第1级迭代不提前终止,执行步骤9204和9205。If the current iteration number t reaches the maximum iteration number of the cascaded decoder 600, t=T, or the second-level iteration meets the early termination condition, and the first-level iteration does not terminate early, steps 9204 and 9205 are executed.
若第2级迭代次数t达到级联译码器800的最大迭代次数,t=T,且第1级迭代次数i达到多级联译码器的最大迭代次数,i=I,或者第1级迭代满足提前终止条件,执行步骤9206。If the number of iterations t of the second stage reaches the maximum number of iterations of the cascade decoder 800, t=T, and the number of iterations i of the first stage reaches the maximum number of iterations of the multi-cascade decoder, i=I, or the first stage The iteration meets the early termination condition, and step 9206 is executed.
步骤9204:串行译码器630根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。Step 9204: The serial decoder 630 obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
串行译码器630对所述M(i,t)条译码路径判决得到M(i,t)个第三输出LLR序列,每个第三输出LLR序列包括Ns个LLR软值,记为
The serial decoder 630 determines the M(i,t) decoding paths to obtain M(i,t) third output LLR sequences, and each third output LLR sequence includes Ns LLR soft values, denoted as
步骤9205:第二并行译码器620根据M(i,t)个第三输出LLR序列得到第二译码LLR序列,并终止第2级迭代。Step 9205: The second parallel decoder 620 obtains the second decoded LLR sequence according to the M(i,t) third output LLR sequences, and terminates the second stage iteration.
第二并行译码器620确定t=T或者第t次迭代满足提前终止条件时:When the second parallel decoder 620 determines that t=T or the t-th iteration meets the early termination condition:
第二并行译码器620获取与所述M(i,t)个第三输出LLR序列
对应的第t次迭代的M(i,t)个第二输出LLR序列
The second parallel decoder 620 obtains the LLR sequence with the M(i,t) third output The corresponding M(i,t) second output LLR sequence of the tth iteration
第二并行译码器620根据所述M(i,t)个第三输出LLR序列
和所述M(i,t)个第t次迭代的第二输出LLR序列
得到M(i,t)个第t次迭代的第二更新输入LLR序列
The second parallel decoder 620 according to the M(i,t) third output LLR sequences And the M(i,t) second output LLR sequence of the tth iteration Get the second updated input LLR sequence of M(i,t) iteration t
第二并行译码器620对所述M(i,t)个第二更新输入LLR序列
进行第二阶段更新得到M(i,t)个第二译码LLR序列
The second parallel decoder 620 updates the M(i,t) second update input LLR sequences Perform the second stage update to get M(i,t) second decoded LLR sequences
第二并行译码器620向第一并行译码器810输出所述M(i,t)个第二译码LLR序列
并终止第2级迭代。
The second parallel decoder 620 outputs the M(i,t) second decoded LLR sequences to the first parallel decoder 810 And terminate the second iteration.
这里,M(i,t)个第二译码LLR序列
也可以视为级联译码器600对上一级译码器,第一并行译码器810的输出。
Here, M(i,t) second decoded LLR sequences It can also be regarded as the output of the cascaded decoder 600 to the upper-level decoder, the first parallel decoder 810.
步骤9206:串行译码器630根据所述M(i,t)条译码路径得到译码结果,并终止多级联译码迭代。Step 9206: The serial decoder 630 obtains the decoding result according to the M(i,t) decoding paths, and terminates the multi-cascade decoding iteration.
串行译码器630对M(i,t)条译码路径进行硬判决,得到信息序列中
对应的信息比特。信息序列
中包括了多个信息比特,或者一个或多个信息比特和一个或多个 冻结比特,串行译码器630在进行硬判决后,只需要输出其中的信息比特。
The serial decoder 630 makes a hard decision on M(i,t) decoding paths to obtain the information sequence Corresponding information bits. Information sequence It includes multiple information bits, or one or more information bits and one or more frozen bits, and the serial decoder 630 only needs to output the information bits after making a hard decision.
由于LDPC译码器通常采用并行译码算法译码,如BP,MS,DNN等,本发明实施例提供的多级联译码器可以共用LDPC译码器的一部分并行译码单元,节省系统开销。如第二并行译码器620,在这种情况下,可以对第二输入LLR序列的因子图进行转换,确定与之对应的LDPC校验矩阵,进行LDPC译码,通过小块长的串行译码器进行路径选择。这种方式不仅提高译码的吞吐率,改善了并行译码器译码性能,还为与LDPC等其他码的译码器共模,节省系统开销提供了基础。Since LDPC decoders usually use parallel decoding algorithms for decoding, such as BP, MS, DNN, etc., the multi-cascade decoder provided by the embodiments of the present invention can share part of the parallel decoding units of the LDPC decoder, saving system overhead . For example, the second parallel decoder 620, in this case, can convert the factor graph of the second input LLR sequence, determine the corresponding LDPC check matrix, and perform LDPC decoding through a small block-length serial The decoder performs path selection. This method not only improves the throughput of decoding, improves the decoding performance of parallel decoders, but also provides a basis for common mode with decoders of other codes such as LDPC and saves system overhead.
应理解,本申请实施例提供的级联译码的方法可以由各种网络设备或终端设备中的译码装置或译码装置中的芯片执行。It should be understood that the cascaded decoding method provided in the embodiments of the present application may be executed by a decoding device or a chip in a decoding device in various network equipment or terminal equipment.
本申请实施例中还提供一种译码装置,该译码装置可以是采用图6或图8的结构,用于执行图7或图9所示的译码方法。这些译码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,该译码装置可以包括:输入接口电路,用于获取信息序列对应的LLR序列;逻辑电路,用于执行图7或图9所示的译码方法;输出接口电路,用于输出信息比特。An embodiment of the present application also provides a decoding device. The decoding device may adopt the structure of FIG. 6 or FIG. 8 to execute the decoding method shown in FIG. 7 or FIG. 9. Some or all of these decoding methods can be implemented by hardware or software. The decoding device can include: an input interface circuit for obtaining the LLR sequence corresponding to the information sequence; and a logic circuit for implementing FIG. 7 Or the decoding method shown in Figure 9; output interface circuit for outputting information bits.
可选的,译码装置在具体实现时可以是芯片或者集成电路。Optionally, the decoding device may be a chip or an integrated circuit in specific implementation.
本申请实施例中还提供一种译码装置,该译码装置可以是采用图6或图8的结构,用于执行图7或图9所示的译码方法。这些译码方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,该译码装置可以包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当程序被执行时,使得译码装置可以实现图7或9所示的译码方法。An embodiment of the present application also provides a decoding device. The decoding device may adopt the structure of FIG. 6 or FIG. 8 to execute the decoding method shown in FIG. 7 or FIG. 9. Some or all of these decoding methods can be implemented by hardware or software. The decoding device can include: a memory for storing a program; a processor for executing a program stored in the memory. When the program is executed At this time, the decoding device can realize the decoding method shown in FIG. 7 or 9.
可选的,上述存储器可以是物理上独立的单元,也可以与处理器集成在一起。Optionally, the foregoing memory may be a physically independent unit, or may be integrated with the processor.
可选的,译码装置也可以只包括处理器。用于存储程序的存储器位于译码装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。Optionally, the decoding device may also only include a processor. The memory for storing the program is located outside the decoding device, and the processor is connected to the memory through a circuit/wire for reading and executing the program stored in the memory.
处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。The processor may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。The processor may further include a hardware chip. The aforementioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。The memory may include volatile memory (volatile memory), such as random-access memory (RAM); the memory may also include non-volatile memory (non-volatile memory), such as flash memory (flash memory) , Hard disk drive (HDD) or solid-state drive (solid-state drive, SSD); the memory may also include a combination of the foregoing types of memory.
本申请实施例还提供一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例提供的译码方法。The embodiment of the present application also provides a computer storage medium storing a computer program, and the computer program includes a decoding method for executing the decoding method provided in the foregoing method embodiment.
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的译码方法。The embodiments of the present application also provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the decoding method provided by the foregoing method embodiments.
本申请实施例提供的任一种译码装置还可以是一种芯片。Any decoding device provided in the embodiments of the present application may also be a chip.
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art should understand that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, this application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。This application is described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of this application. It should be understood that each process and/or block in the flowchart and/or block diagram, and the combination of processes and/or blocks in the flowchart and/or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing equipment to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing equipment are generated It is a device that realizes the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device. The device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment. The instructions provide steps for implementing the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。Although the preferred embodiments of the present application have been described, those skilled in the art can make additional changes and modifications to these embodiments once they learn the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications falling within the scope of the present application.
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。Obviously, those skilled in the art can make various changes and modifications to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. In this way, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application is also intended to include these modifications and variations.
Claims (27)
- 一种级联译码器,所述级联译码器包括第二并行译码器和串行译码器,对输入LLR序列进行最大T次迭代译码,所述第二并行译码器用于对一个或多个长度为N的对数似然比LLR序列进行译码,所述串行译码器用于对一个或多个长度为N S的LLR序列,N S<N,其中,第t次迭代译码,包括: A cascaded decoder, the cascaded decoder includes a second parallel decoder and a serial decoder, the input LLR sequence is iteratively decoded a maximum of T times, and the second parallel decoder is used for Decode one or more LLR sequences of length N. The serial decoder is used to decode one or more LLR sequences of length N S , where N S <N, where the t th Sub-iteration decoding, including:所述第二并行译码器对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,每个第二输入LLR序列的长度为N,每个第二输出LLR序列长度为N;The second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequences, each second input LLR sequence has a length of N, and each second input LLR sequence has a length of N. The length of the output LLR sequence is N;所述串行译码器对L(t)个第三输入LLR序列进行译码得到M(t)条译码路径,每个所述第三输入LLR序列分别包括对应的第二输出LLR序列中Ns个LLR;The serial decoder decodes the L(t) third input LLR sequences to obtain M(t) decoding paths, and each of the third input LLR sequences includes the corresponding second output LLR sequence. Ns LLRs;所述串行译码器确定继续迭代,或者,所述串行译码器确定终止迭代。The serial decoder determines to continue the iteration, or the serial decoder determines to terminate the iteration.
- 根据权利要求1所述的级联译码器,每个所述第三输入LLR序列包括对应的第二输出LLR序列中第(t-1)×N S+1个LLR至第t×N S个LLR。 The cascaded decoder according to claim 1, wherein each of the third input LLR sequences includes (t-1)×N S +1th LLR to t×N S in the corresponding second output LLR sequence LLR.
- 根据权利要求1或2所述的级联译码器,所述第二并行译码器对L(t)个第二输入LLR序列进行译码得到L(t)个第二输出LLR序列,包括:The cascaded decoder according to claim 1 or 2, wherein the second parallel decoder decodes L(t) second input LLR sequences to obtain L(t) second output LLR sequences, including :所述第二并行译码器对所述L(t)个第二输入LLR序列分别进行第一阶段更新得到所述L(t)个第二输出LLR序列。The second parallel decoder performs a first stage update on the L(t) second input LLR sequences respectively to obtain the L(t) second output LLR sequences.
- 根据权利要求1至3任一项所述的级联译码器,t=1,L(t)=1,所述第二输入LLR序列为所述级联译码器的输入LLR序列。The cascaded decoder according to any one of claims 1 to 3, t=1, L(t)=1, and the second input LLR sequence is the input LLR sequence of the cascaded decoder.
- 根据权利要求1至4任一项所述的级联译码器,t>1,第t-1次迭代译码还包括:The cascaded decoder according to any one of claims 1 to 4, t>1, and the t-1th iterative decoding further comprises:所述串行译码器根据所述M(t-1)条译码路径得到M(t-1)个第三输出LLR序列,每个所述第三输出LLR序列包括Ns个LLR。The serial decoder obtains M(t-1) third output LLR sequences according to the M(t-1) decoding paths, and each third output LLR sequence includes Ns LLRs.
- 根据权利要求5所述的级联译码器,所述第t次迭代还包括:The cascaded decoder according to claim 5, wherein the t-th iteration further comprises:所述第二并行译码器获取与所述M(t-1)个第三输出LLR序列对应的第t-1次迭代的M(t-1)个第二输出LLR序列;Acquiring, by the second parallel decoder, M(t-1) second output LLR sequences corresponding to the M(t-1) third output LLR sequences of the t-1th iteration;所述第二并行译码器根据所述M(t-1)个第三输出LLR序列和所述M(t-1)个第t-1次迭代的第二输出LLR序列得到L(t)个第t次迭代的第二更新输入LLR序列,L(t)=M(t-1);The second parallel decoder obtains L(t) according to the M(t-1) third output LLR sequences and the M(t-1) second output LLR sequences of the t-1th iteration The second updated input LLR sequence of the t-th iteration, L(t)=M(t-1);所述第二并行译码器对所述L(t)个第二更新输入LLR序列进行第二阶段更新得到所述L(t)个第二输入LLR序列。The second parallel decoder performs a second stage update on the L(t) second updated input LLR sequences to obtain the L(t) second input LLR sequences.
- 根据权利要求6所述的级联译码器,所述第二并行译码器至少包括第n s+1至第n+1层n-n s个译码层, 每层包括N个LLR节点; The cascaded decoder according to claim 6, wherein the second parallel decoder includes at least n s +1 th to n+1 th layer nn s decoding layers, Each layer includes N LLR nodes;所述第二并行译码器对每个第二输入LLR序列进行第一阶段更新得到对应的第二输出LLR序列,包括:The second parallel decoder performs a first stage update on each second input LLR sequence to obtain a corresponding second output LLR sequence, including:所述第二并行译码器将所述第n+1层的N个LLR节点更新为所述第二输入LLR序列中的N个LLR,The second parallel decoder updates the N LLR nodes of the n+1th layer to N LLRs in the second input LLR sequence,所述第二并行译码器从所述第n+1层向所述第n s+1层方向执行软值更新得到所述第n s+1层的N个LLR节点,所述对应的第二输出LLR序列包括所述第n s+1层的N个LLR节点; Said second decoder performs parallel from the first layer n + 1 to the first direction of the soft layer n s +1 to obtain the updated value of n s N + 1 th layer LLR nodes, the corresponding first The second output LLR sequence includes the N LLR nodes of the n s +1 th layer;所述第二并行译码器对每个第二更新输入LLR序列进行第二阶段更新得到对应的第二输入LLR序列,包括:The second parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding second input LLR sequence, including:所述第二并行译码器将所述第n s+1层的N个LLR节点更新为所述第二更新输入LLR序列中的N个LLR, The second parallel decoder updates the N LLR nodes of the n s +1 th layer to the N LLRs in the second updated input LLR sequence,所述第二并行译码器从所述第n s+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N个LLR节点,所述对应的第二输入LLR序列包括所述第n+1层的N个LLR节点。 The second parallel decoder performs a soft value update from the n s +1 th layer to the n+1 th layer to obtain the N LLR nodes of the n+1 th layer, and the corresponding second The input LLR sequence includes N LLR nodes of the n+1th layer.
- 根据权利要求1至7任一项所述的级联译码器,所述串行译码器对所述L(t)个第三输入LLR序列进行译码得到M(t)条译码路径,包括:The cascaded decoder according to any one of claims 1 to 7, wherein the serial decoder decodes the L(t) third input LLR sequences to obtain M(t) decoding paths ,include:所述串行译码器对所述L(t)个第三输入LLR序列译码得到L(t)*2 k条译码路径,k为正整数; The serial decoder decodes the L(t) third input LLR sequences to obtain L(t)*2 k decoding paths, where k is a positive integer;所述M(t)条译码路径为所述L(t)*2 k条译码路径中路径度量最大的M(t)条译码路径,或者,所述M(t)条译码路径为所述L(t)*2 k条译码路径中路径度量最大且CRC校验通过的M(t)条译码路径。 The M(t) decoding paths are M(t) decoding paths with the largest path metric among the L(t)*2 k decoding paths, or the M(t) decoding paths Among the L(t)*2 k decoding paths, M(t) decoding paths have the largest path metric and pass the CRC check.
- 根据权利要求1至6任一项所述的级联译码器,所述第二并行译码器用于对L(t)个所述第二输入LLR序列分别确定对应的LDPC校验矩阵;The cascaded decoder according to any one of claims 1 to 6, wherein the second parallel decoder is configured to determine corresponding LDPC check matrices for the L(t) second input LLR sequences respectively;所述第二并行译码器基于所述LDPC校验矩阵对L(t)个所述第二输入LLR序列进行译码得到L(t)个第二输出序列。The second parallel decoder decodes the L(t) second input LLR sequences based on the LDPC check matrix to obtain L(t) second output sequences.
- 根据权利要求1至9任一项所述的级联译码器,所述第二并行译码器包括以下一种或多种:BP译码器或者MS译码器或者DNN译码器,所述串行译码器包括SCL译码器或者CA-SCL译码器。The cascaded decoder according to any one of claims 1 to 9, wherein the second parallel decoder includes one or more of the following: a BP decoder or an MS decoder or a DNN decoder, so The serial decoder includes an SCL decoder or a CA-SCL decoder.
- 根据权利要求1至10任一项所述的级联译码器,N取值为以下任一项:1024,512,256,128,64,32;Ns取值为以下任一项:128,64,32,16,8,4,2,1。The cascaded decoder according to any one of claims 1 to 10, N is any one of the following: 1024, 512, 256, 128, 64, 32; Ns is any one of the following: 128, 64, 32, 16,8,4,2,1.
- 根据权利要求1至11任一项所述的级联译码器,所述串行译码器确定继续迭代,包括:The cascaded decoder according to any one of claims 1 to 11, wherein the serial decoder determines to continue iteration, comprising:所述串行译码器确定t<T且第t次迭代不满足提前终止条件;The serial decoder determines that t<T and the t-th iteration does not meet the early termination condition;所述第t次迭代还包括:The t-th iteration further includes:所述串行译码器根据所述M(t)条译码路径得到M(t)个第三输出LLR序列。The serial decoder obtains M(t) third output LLR sequences according to the M(t) decoding paths.
- 根据权利要求1至12任一项所述的级联译码器,所述串行译码器确定终止迭代,包括:The cascaded decoder according to any one of claims 1 to 12, wherein the serial decoder determines to terminate the iteration, comprising:所述串行译码器确定t=T,或者,第t次迭代满足提前终止条件;The serial decoder determines that t=T, or the t-th iteration satisfies an early termination condition;所述第t次迭代还包括:The t-th iteration further includes:所述串行译码器根据所述M(t)条译码路径得到译码结果,并终止迭代。The serial decoder obtains the decoding result according to the M(t) decoding paths, and terminates iteration.
- 根据权利要求13所述的级联译码器,所述级联译码器的输入LLR序列为信 息序列 对应的LLR序列,所述信息序列包括多个信息比特,或者一个或多个信息比特和一个或多个冻结比特; The cascaded decoder according to claim 13, wherein the input LLR sequence of the cascaded decoder is an information sequence A corresponding LLR sequence, where the information sequence includes multiple information bits, or one or more information bits and one or more frozen bits;所述串行译码器根据所述M(t)条译码路径得到译码结果,包括:The serial decoder obtains a decoding result according to the M(t) decoding paths, including:所述串行译码器对所述M(t)条译码路径中路径度量值最大或者路径度量值最大且CRC校验成功的1条译码路径进行硬判决,得到所述信息序列中的各信息比特。The serial decoder performs a hard decision on the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, to obtain the information sequence Each information bit.
- 一种多级联译码器,包括如权利要求1至11任一项所述的级联译码器以及第一并行译码器,所述级联译码器为所述第一并行译码器的下级译码器,所述第一并行译码器用于对一个或多个长度为N p的LLR序列进行译码,所述第一并行译码器对初始LLR序列进行最大I次迭代,I=N p/N,第i次迭代,i<I,包括: A multi-cascade decoder, comprising the cascade decoder according to any one of claims 1 to 11 and a first parallel decoder, wherein the cascade decoder is the first parallel decoder The first parallel decoder is used to decode one or more LLR sequences of length N p , and the first parallel decoder performs a maximum of 1 iterations on the initial LLR sequence, I=N p /N, the i-th iteration, i<I, including:所述第一并行译码器对K(i)个第一输入LLR序列进行第1级迭代译码得到K(i)个第一输出LLR序列,每个第一输入LLR序列的长度为N p,每个第一输出LLR序列的长度为N p; The first parallel decoder performs the first stage iterative decoding on K(i) first input LLR sequences to obtain K(i) first output LLR sequences, and the length of each first input LLR sequence is N p , The length of each first output LLR sequence is N p ;所述级联译码器对K(i)个第二输入LLR序列进行第2级迭代译码,每个所述第二输入LLR序列分别包括对应的第一输出LLR序列中的N个LLR。The cascaded decoder performs a second stage iterative decoding on K(i) second input LLR sequences, and each of the second input LLR sequences includes N LLRs in the corresponding first output LLR sequence.
- 根据权利要求15所述的多级联译码器,每个所述第二输入LLR序列包括对应的所述第一输出LLR序列中第(i-1)×N+1个LLR至第i×N个LLR。The multi-cascade decoder according to claim 15, wherein each of the second input LLR sequences includes the (i-1)×N+1th LLR to the i×th LLR in the corresponding first output LLR sequence N LLRs.
- 根据权利要求16所述的多级联译码器,所述第一并行译码器对所述K(i)个第一输入LLR序列进行译码得到K(i)个第一输出LLR序列,包括:The multi-cascade decoder according to claim 16, wherein the first parallel decoder decodes the K(i) first input LLR sequences to obtain K(i) first output LLR sequences, include:所述第一并行译码器对所述K(i)第一输入LLR序列分别进行第一阶段更新得到所述K(i)个第一输出LLR序列。The first parallel decoder performs a first stage update on the K(i) first input LLR sequences respectively to obtain the K(i) first output LLR sequences.
- 根据权利要求16或17所述的多级联译码器,i=1,K(i)=1,所述第一输入LLR序列为初始LLR序列。The multi-cascade decoder according to claim 16 or 17, i=1, K(i)=1, and the first input LLR sequence is an initial LLR sequence.
- 根据权利要求16至18任一项所述的多级联译码器,i>1,第i-1次迭代译码还包括:The multi-cascade decoder according to any one of claims 16 to 18, i>1, and the i-1th iterative decoding further comprises:所述级联译码器向所述第一并行译码器输出M(i-1,t)个第二译码LLR序列,所述第二译码LLR序列包括N个LLR。The cascaded decoder outputs M(i-1,t) second decoded LLR sequences to the first parallel decoder, and the second decoded LLR sequence includes N LLRs.
- 根据权利要求19所述的多级联译码器,所述第i次迭代还包括:The multi-cascade decoder according to claim 19, wherein the i-th iteration further comprises:所述第一并行译码器获取与所述第i-1次迭代的M(i-1,t)个第二译码LLR序列对应的第i-1次迭代的M(i-1,t)个第一输出LLR序列;The first parallel decoder obtains M(i-1,t) corresponding to the i-1th iteration of M(i-1,t) second decoding LLR sequences of the i-1th iteration ) First output LLR sequence;所述第一并行译码器根据所述M(i-1,t)个第二译码LLR序列和所述M(i-1,t)个第i-1次迭代的第一输出LLR序列得到K(i)个第i次迭代的第二更新输入LLR序列,K(i)=M(i-1,t);The first parallel decoder according to the M(i-1,t) second decoding LLR sequences and the M(i-1,t) first output LLR sequences of the i-1th iteration Obtain K(i) the second updated input LLR sequence of the i-th iteration, K(i)=M(i-1,t);所述第一并行译码器对所述K(i)个第二更新输入LLR序列进行第二阶段更新得到所述L(i,1)个第一输入LLR序列。The first parallel decoder performs a second stage update on the K(i) second updated input LLR sequences to obtain the L(i, 1) first input LLR sequences.
- 根据权利要求20所述的多级联译码器,所述第一并行译码器至少包括第n+1 至第n p+1层n p-n个译码层, 每层包括N p个LLR节点; The multi-cascade decoder according to claim 20, wherein the first parallel decoder includes at least n+1th to np +1th layers n p -n decoding layers, Each layer includes N p LLR nodes;所述第一并行译码器对每个第一输入LLR序列进行第一阶段更新得到对应的第一输出LLR序列,包括:The first parallel decoder performs a first stage update on each first input LLR sequence to obtain the corresponding first output LLR sequence, including:所述第一并行译码器将所述第n p+1层的N p个LLR节点更新为所述第一输入LLR序列中的N p个LLR, Parallel to said first coder p +1 said first layer of N p n of nodes updated LLR LLR input to the first sequence of N p LLR,所述第一并行译码器从所述第n p+1层向所述第n+1层方向执行软值更新得到所述第n+1层的N p个LLR节点,所述对应的第一输出LLR序列包括所述第n+1层的N p个LLR节点; The first parallel decoder performs a soft value update from the np +1th layer to the n+1th layer to obtain the Np LLR nodes of the n+1th layer, and the corresponding An output LLR sequence includes N p LLR nodes of the n+1th layer;所述第一并行译码器对每个第二更新输入LLR序列进行第二阶段更新得到对应的第一输入LLR序列,包括:The first parallel decoder performs a second stage update on each second update input LLR sequence to obtain the corresponding first input LLR sequence, including:所述第一并行译码器将所述第n+1层的N p个LLR节点更新为所述第二更新输入LLR序列中的N p个LLR, The first parallel decoder LLR the nodes of N p n + 1, the second layer updates the LLR updated input sequence of N p LLR,所述第一并行译码器从所述第n+1层向所述第n p+1层方向执行软值更新得到所述第n p+1层的N p个LLR节点,所述对应的第一输入LLR序列包括所述第n p+1层的N p个LLR节点。 The first parallel decoder performs a soft value update from the n+1th layer to the np +1th layer to obtain the Np LLR nodes of the np +1th layer, and the corresponding The first input LLR sequence includes N p LLR nodes of the n p +1 th layer.
- 根据权利要求15至21任一项所述的多级联译码器,所述串行译码器确定继续迭代,包括:The multi-cascade decoder according to any one of claims 15 to 21, wherein the serial decoder determines to continue iteration, comprising:所述串行译码器确定t<T且第t次迭代不满足提前终止条件,或者,i<I且第i次上一级迭代不满足所述多级联译码器提前终止条件;The serial decoder determines that t<T and the tth iteration does not meet the early termination condition, or i<I and the i-th previous iteration does not meet the early termination condition of the multi-cascade decoder;所述级联译码器的第t次迭代包括:The t-th iteration of the cascaded decoder includes:所述串行译码器根据所述M(i,t)条译码路径得到M(i,t)个第三输出LLR序列。The serial decoder obtains M(i,t) third output LLR sequences according to the M(i,t) decoding paths.
- 根据权利要求22所述的多级联译码器,所述第二并行译码器还用于确定t=T,或者,第t次迭代满足提前终止条件,The multi-cascade decoder according to claim 22, the second parallel decoder is further configured to determine t=T, or the t-th iteration satisfies an early termination condition,所述第二并行译码器获取与所述M(i,t)个第三输出LLR序列对应的第t次迭代的M(i,t)个第二输出LLR序列;Acquiring, by the second parallel decoder, M(i,t) second output LLR sequences corresponding to the M(i,t) third output LLR sequences of the t-th iteration;所述第二并行译码器根据所述M(i,t)个第三输出LLR序列和所述M(i,t)个第t次迭代的第二输出LLR序列得到M(i,t)个第t次迭代的第二更新输入LLR序列;The second parallel decoder obtains M(i,t) according to the M(i,t) third output LLR sequences and the M(i,t) second output LLR sequences of the tth iteration The second updated input LLR sequence of the t-th iteration;所述第二并行译码器对所述M(i,t)个第二更新输入LLR序列进行第二阶段更新得到M(i,t)个第二译码LLR序列;The second parallel decoder performs a second stage update on the M(i,t) second update input LLR sequences to obtain M(i,t) second decoded LLR sequences;所述第二并行译码器向所述第一并行译码器输出所述M(i,t)个第二译码LLR序列。The second parallel decoder outputs the M(i,t) second decoded LLR sequences to the first parallel decoder.
- 根据权利要求16至22任一项所述的多级联译码器,所述串行译码器确定终止迭代,包括:The multi-concatenated decoder according to any one of claims 16 to 22, wherein the serial decoder determines to terminate the iteration, comprising:所述串行译码器确定i=I,且t=T,或者,第t次迭代满足所述级联译码器的提前终止条件且第i次上一级迭代满足所述多级联译码器提前终止条件;The serial decoder determines that i=I and t=T, or the tth iteration satisfies the early termination condition of the cascade decoder and the i-th previous iteration satisfies the multi-cascade translation Conditions for early termination of the encoder;所述级联译码器的第t次迭代包括:The t-th iteration of the cascaded decoder includes:所述串行译码器根据所述M(i,t)条译码路径得到译码结果,并终止迭代。The serial decoder obtains the decoding result according to the M(i,t) decoding paths, and terminates the iteration.
- 根据权利要求24所述的多级联译码器,所述初始LLR序列为信息序列 对应的LLR序列,所述信息序列包括多个信息比特,或者一个或多个信息比特和一个或多个冻结比特; The multi-cascade decoder according to claim 24, wherein the initial LLR sequence is an information sequence A corresponding LLR sequence, where the information sequence includes multiple information bits, or one or more information bits and one or more frozen bits;所述串行译码器根据所述M(t)条译码路径得到译码结果,包括:The serial decoder obtains a decoding result according to the M(t) decoding paths, including:所述串行译码器对所述M(t)条译码路径中路径度量值最大或者路径度量值最大且CRC校验成功的1条译码路径进行硬判决,得到所述信息序列中的各信息比特。The serial decoder performs a hard decision on the M(t) decoding paths with the largest path metric value or one decoding path with the largest path metric value and a successful CRC check, to obtain the information sequence Each information bit.
- 根据权利要求16至25任一项所述的多级联译码器,所述第一并行译码器包括以下一种或多种:BP译码器或者MS译码器或者DNN译码器。The multi-cascade decoder according to any one of claims 16 to 25, the first parallel decoder includes one or more of the following: a BP decoder, an MS decoder, or a DNN decoder.
- 根据权利要求16至26任一项所述的多级联译码器,N p取值包括以下任一:8192,4096,2048,1024,512,256,128。 According to the multi-cascade decoder according to any one of claims 16 to 26, the value of N p includes any one of the following: 8192, 4096, 2048, 1024, 512, 256, 128.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910972581.8A CN112737600B (en) | 2019-10-14 | 2019-10-14 | Decoding method and decoder |
CN201910972581.8 | 2019-10-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021073338A1 true WO2021073338A1 (en) | 2021-04-22 |
Family
ID=75537704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/115383 WO2021073338A1 (en) | 2019-10-14 | 2020-09-15 | Decoding method and decoder |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112737600B (en) |
WO (1) | WO2021073338A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114039699A (en) * | 2021-10-14 | 2022-02-11 | 中科南京移动通信与计算创新研究院 | Data link communication method, device and readable medium |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113708892B (en) * | 2021-08-13 | 2023-01-10 | 上海交通大学 | Multimode general decoding system and method based on sparse bipartite graph |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160056843A1 (en) * | 2011-11-08 | 2016-02-25 | Warren GROSS | Methods and systems for decoding polar codes |
CN109004939A (en) * | 2017-06-06 | 2018-12-14 | 华为技术有限公司 | Polarize decoder and method |
CN109495116A (en) * | 2018-10-19 | 2019-03-19 | 东南大学 | The SC-BP hybrid decoding method of polarization code and its adjustable hardware structure |
-
2019
- 2019-10-14 CN CN201910972581.8A patent/CN112737600B/en active Active
-
2020
- 2020-09-15 WO PCT/CN2020/115383 patent/WO2021073338A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160056843A1 (en) * | 2011-11-08 | 2016-02-25 | Warren GROSS | Methods and systems for decoding polar codes |
CN109004939A (en) * | 2017-06-06 | 2018-12-14 | 华为技术有限公司 | Polarize decoder and method |
CN109495116A (en) * | 2018-10-19 | 2019-03-19 | 东南大学 | The SC-BP hybrid decoding method of polarization code and its adjustable hardware structure |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114039699A (en) * | 2021-10-14 | 2022-02-11 | 中科南京移动通信与计算创新研究院 | Data link communication method, device and readable medium |
Also Published As
Publication number | Publication date |
---|---|
CN112737600A (en) | 2021-04-30 |
CN112737600B (en) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7757150B2 (en) | Structured puncturing of irregular low-density parity-check (LDPC) codes | |
KR101217925B1 (en) | H-arq rate compatible low-density parity-check (ldpc) codes for high throughput applications | |
CN109314600B (en) | System and method for rate matching when using generic polarization codes | |
WO2020077596A1 (en) | Decoding method and apparatus for ldpc codes | |
WO2013152605A1 (en) | Polar code decoding method and decoding device | |
CN108282259B (en) | Coding method and device | |
WO2019134553A1 (en) | Method and device for decoding | |
CN110326342A (en) | A kind of device and method of the ordered sequence for prescribed coding subchannel | |
US11323727B2 (en) | Alteration of successive cancellation order in decoding of polar codes | |
WO2021063217A1 (en) | Decoding method and apparatus | |
WO2021073338A1 (en) | Decoding method and decoder | |
US10892783B2 (en) | Apparatus and method for decoding polar codes | |
WO2019206136A1 (en) | Method and device for rate matching and de-rate matching polar code | |
US20240128988A1 (en) | Method and device for polar code encoding and decoding | |
Cao et al. | CRC-aided sparse regression codes for unsourced random access | |
WO2020088256A1 (en) | Decoding method and device | |
KR20090012189A (en) | Apparatus and method for decoding using performance enhancement algorithm for ldpc codes with scaling based min-sum iterative decoding | |
CN113472360A (en) | Decoding method and decoding device for polarization code | |
CN109639290B (en) | Semi-random grouping superposition coding and decoding method | |
CN110324111B (en) | Decoding method and device | |
WO2017214851A1 (en) | Signal transfer method, transmitting terminal, and receiving terminal | |
CN114124108A (en) | Encoding method, decoding method and related device based on low density parity check | |
Oliveira et al. | Polarization-driven puncturing for polar codes in 5g systems | |
US12088321B2 (en) | Device and method for decoding polar code in communication system | |
TWI783727B (en) | Communications system using polar codes and decoding method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20875829 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20875829 Country of ref document: EP Kind code of ref document: A1 |