Turbo encoding and decoding method and device, computer equipment and storage medium

The Turbo coding method initializes the encoder register and performs two rounds of convolutional coding with MAX-LOG-MAP decoding to address high complexity and inefficiencies, enhancing coding accuracy and error correction.

CN120320784APending Publication Date: 2025-07-15BEIJING RINFON TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510205008.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-24
Publication Date
2025-07-15

AI Technical Summary

Technical Problem

The existing Turbo codec technology has high computational complexity, low state generation efficiency, and lacks flexibility in the update mechanism and error convergence conditions of external information, resulting in waste of resources.

Method used

By receiving the input data sequence and initializing the Turbo coded register, recording the register state after the first convolution code as the first register state, calculating the initial state of the tail bite code as the second register state, and decoding based on the MAX-LOG-MAP algorithm, optimizing the iterative process of log-likelihood ratio.

Benefits of technology

Improves the accuracy and error correction capabilities of Turbo encoding, reduces the computational complexity, and improves processing efficiency and system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120320784A_ABST
    Figure CN120320784A_ABST
Patent Text Reader

Abstract

The invention relates to a Turbo coding and decoding method and device, computer equipment and a storage medium, and the method comprises the steps: receiving an input data sequence, initializing a Turbo coding register, carrying out the first convolution coding of the input data sequence, and recording the state of the register after the first coding as a first register state; calculating an initial state of tail biting coding as a second register state based on the first register state; according to the state of the second register, performing second convolutional coding on the input data sequence to generate a Turbo coding sequence; and decoding the Turbo coding sequence based on an MAX-LOG-MAP algorithm to obtain a decoded information sequence. The method and the device have the effect of improving the Turbo coding and decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of communications, and in particular, to a Turbo encoding and decoding method, apparatus, computer device, and storage medium. Background Art

[0002] Currently, as an important channel coding technology, Turbo coding has been widely used in high-reliability data transmission scenarios such as wireless communication and satellite communication. The basic principle of Turbo coding is to perform dual-path coding on the input data sequence through a recursive systematic convolutional encoder, and combine an interleaver and tail-biting coding to enhance the error correction ability. However, in the existing Turbo encoding and decoding technologies, the initial state of tail-biting coding is usually determined by fixed table lookup or multiple coding attempts. This method relies on the design of a complex state table, resulting in low computational efficiency. In addition, during the Turbo decoding process, although the iterative optimization of the log-likelihood ratio can effectively improve the decoding performance, the update mechanism of the extrinsic information and the error convergence condition often lack flexibility, resulting in resource waste.

[0003] The above-mentioned existing technical solutions have the following defects: The existing Turbo encoding and decoding methods have high computational complexity and low state generation efficiency, so there is room for improvement. Summary of the Invention

[0004] In order to improve the efficiency of Turbo encoding and decoding, this application provides a Turbo encoding and decoding method, apparatus, computer device, and storage medium.

[0005] The first invention object of this application is achieved through the following technical solutions: A Turbo encoding and decoding method, the Turbo encoding and decoding method includes: Receiving an input data sequence and initializing a Turbo encoding register, performing a first convolutional encoding on the input data sequence, and recording the register state after the first encoding as the first register state; Based on the first register state, calculating the initial state of tail-biting coding as the second register state; According to the second register state, performing a second convolutional encoding on the input data sequence to generate a Turbo encoding sequence; Decoding the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence.

[0006] By adopting the above technical solution, by receiving the input data sequence and initializing the Turbo encoding register, the initial state of the Turbo encoding register can be ensured to be consistent, avoiding encoding errors caused by inconsistent states, thereby improving the accuracy of encoding; by performing the first convolutional encoding on the input data sequence and recording the register state after the first encoding as the first register state, the historical information of the input data can be retained, providing a reference basis for subsequent tail-biting encoding, thereby improving the encoding performance and data integrity of the system; by calculating the initial state of the tail-biting encoding based on the first register state as the second register state, the complex operation of generating the initial state through multiple attempts can be avoided, simplifying the implementation process of the tail-biting encoding, thereby reducing the computational complexity and improving the processing efficiency; by performing the second convolutional encoding on the input data sequence according to the second register state to generate the Turbo encoding sequence, the state regression of the encoder can be ensured to be consistent, avoiding the situation of incomplete data encoding, thereby enhancing the error correction ability of the Turbo encoding sequence.

[0007] In one example, the present application can be further configured as: the performing the first convolutional encoding on the input data sequence and recording the register state after the first encoding specifically includes: Performing convolutional encoding on the input data sequence step by step, and after the last several bits of the input data sequence have been encoded, recording the current state of the Turbo encoding register as the first register state.

[0008] By adopting the above technical solution, by performing convolutional encoding on the input data sequence step by step, and after the last several bits of the input data sequence have been encoded, recording the current state of the Turbo encoding register as the first register state, the final encoding state of the input data sequence can be accurately locked, providing a reliable basis for calculating the initial state of subsequent tail-biting encoding, thereby improving the stability and accuracy of the Turbo encoding process.

[0009] In one example, the present application can be further configured as: the calculating the initial state of the tail-biting encoding based on the first register state as the second register state specifically includes: Obtaining the data length information of the input data sequence, and determining the mapping relationship for calculating the initial state of the tail-biting encoding based on the first register state and the data length information; Generating the initial state of the tail-biting encoding according to the mapping relationship and taking the initial state as the second register state.

[0010] By adopting the above technical solution, by obtaining the data length information of the input data sequence, the range of the input data can be determined, and the register status is combined to provide necessary parameters for the selection of the mapping relationship, thereby improving the flexibility and adaptability of the calculation of the initial state of the tail-biting coding; by determining the mapping relationship for calculating the initial state of the tail-biting coding based on the first register status and the input data length information, the mapping rule can be accurately located through a unique parameter combination, thereby reducing the table lookup time and improving the calculation efficiency.

[0011] In one example, the present application can be further configured as: the determining the mapping relationship for calculating the initial state of the tail-biting coding based on the first register status and the data length information specifically includes: Dividing the data length information into multiple ranges to correspond to different state mapping tables; Matching the mapping relationship of the initial state of the tail-biting coding in the state mapping table according to the first register status.

[0012] By adopting the above technical solution, by dividing the data length information into multiple ranges to correspond to different state mapping tables, the optimal state mapping rule can be used for input data in different length ranges, thereby optimizing the mapping table design and reducing the complexity; by matching the mapping relationship of the initial state of the tail-biting coding in the state mapping table according to the first register status, the initial state of the tail-biting coding can be accurately generated, avoiding the situation of incorrect matching or multiple attempts, thereby improving the efficiency of Turbo coding.

[0013] In one example, the present application can be further configured as: the performing a second convolutional coding on the input data sequence according to the second register status specifically includes: Using the second register status as the initial register state to perform a second convolutional coding on the input data sequence; Obtaining the current register status, and completing the second convolutional coding when the current register status is the same as the initial register state.

[0014] By adopting the above technical solution, by using the second register status as the initial register state to perform a second convolutional coding on the input data sequence, the initialization consistency of the register status can be ensured, avoiding coding errors caused by state offset, thereby improving the integrity and accuracy of the coding result; by completing the second convolutional coding when the current register status is the same as the initial register state, the encoder status can be ensured to be consistent with the set status, ensuring the correctness of the coding process, thereby improving the quality and error correction performance of the Turbo coding sequence.

[0015] In one example, the present application can be further configured as follows: decoding the Turbo-coded sequence based on the MAX-LOG-MAP algorithm to obtain the decoded information sequence, specifically including: Calculating the transition probability of each branch state of the Turbo coding based on the MAX-LOG-MAP algorithm, and calculating the log-likelihood ratio of each bit through forward recursion and backward recursion based on the transition probability of the branch state; Iteratively optimizing the log-likelihood ratio, and adjusting the branch state transition probability according to the updated extrinsic information in each iteration; When the optimized log-likelihood ratio reaches the preset error convergence condition and / or the maximum number of iterations, terminate the iterative optimization, and perform a hard decision on the optimized log-likelihood ratio to obtain the decoded information sequence.

[0016] By adopting the above technical solutions, by calculating the transition probability of each branch state of the Turbo coding based on the MAX-LOG-MAP algorithm, and calculating the log-likelihood ratio of each bit through forward recursion and backward recursion based on the transition probability of the branch state, the path information of the Turbo-coded sequence can be accurately captured, providing a basis for the optimization of the log-likelihood ratio, thereby improving the decoding accuracy; by iteratively optimizing the log-likelihood ratio and adjusting the branch state transition probability according to the updated extrinsic information in each iteration, it can dynamically adapt to different channel conditions, improve the Turbo decoding performance, thereby reducing the bit error rate and improving the data reliability; by terminating the iterative optimization when the optimized log-likelihood ratio reaches the preset error convergence condition and / or the maximum number of iterations, and performing a hard decision on the optimized log-likelihood ratio, the efficiency and correctness of the decoding can be ensured, avoiding unnecessary iterative waste, thereby improving the system processing efficiency.

[0017] The above second invention object of the present application is achieved by the following technical solutions: A Turbo encoding and decoding device, the Turbo encoding and decoding device includes: An initialization module, configured to receive an input data sequence, initialize the Turbo coding register, perform a first convolutional coding on the input data sequence, and record the register state after the first coding as the first register state; A tail-biting coding state calculation module, configured to calculate the initial state of the tail-biting coding as the second register state based on the first register state; A second encoding module, configured to perform a second convolutional coding on the input data sequence according to the second register state to generate a Turbo-coded sequence; A Turbo decoding module is used to decode the Turbo - encoded sequence based on the MAX - LOG - MAP algorithm to obtain the decoded information sequence.

[0018] By adopting the above - mentioned technical solutions, by receiving the input data sequence and initializing the Turbo - encoding register, it can ensure the consistent initial state of the Turbo - encoding register, avoid encoding errors caused by inconsistent states, and thus improve the encoding accuracy; by performing the first convolutional encoding on the input data sequence and recording the register state after the first encoding as the first register state, it can retain the historical information of the input data, provide a reference basis for subsequent tail - biting encoding, and thus improve the encoding performance and data integrity of the system; by calculating the initial state of the tail - biting encoding based on the first register state as the second register state, it can avoid the complex operation of repeatedly attempting to generate the initial state, simplify the implementation process of the tail - biting encoding, and thus reduce the computational complexity and improve the processing efficiency; by performing the second convolutional encoding on the input data sequence according to the second register state to generate the Turbo - encoded sequence, it can ensure the consistent state regression of the encoder, avoid the situation of incomplete data encoding, and thus enhance the error - correction ability of the Turbo - encoded sequence.

[0019] The above - mentioned third objective of this application is achieved through the following technical solutions: A computer device includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the above - mentioned Turbo encoding and decoding method are implemented.

[0020] The above - mentioned fourth objective of this application is achieved through the following technical solutions: A computer - readable storage medium stores a computer program. When the computer program is executed by a processor, the steps of the above - mentioned Turbo encoding and decoding method are implemented.

[0021] In summary, this application includes the following beneficial technical effects: 1. By receiving the input data sequence and initializing the Turbo encoding register, the initial state of the Turbo encoding register can be ensured to be consistent, avoiding encoding errors caused by inconsistent states, thereby improving the accuracy of encoding. By performing the first convolutional encoding on the input data sequence and recording the register state after the first encoding as the first register state, the historical information of the input data can be retained, providing a reference basis for subsequent tail-biting encoding, thereby improving the encoding performance and data integrity of the system. By calculating the initial state of the tail-biting encoding based on the first register state as the second register state, the complex operation of generating the initial state through multiple attempts can be avoided, simplifying the implementation process of the tail-biting encoding, thereby reducing the computational complexity and improving the processing efficiency. By performing the second convolutional encoding on the input data sequence according to the second register state to generate the Turbo encoding sequence, the state of the encoder can be ensured to return to consistency, avoiding the situation of incomplete data encoding, thereby enhancing the error correction ability of the Turbo encoding sequence. 2. By gradually performing convolutional encoding on the input data sequence, after the last several bits of the input data sequence have been encoded, recording the current state of the Turbo encoding register as the first register state can accurately lock the final encoding state of the input data sequence, providing a reliable basis for calculating the initial state of the subsequent tail-biting encoding, thereby improving the stability and accuracy of the Turbo encoding process. 3. By obtaining the data length information of the input data sequence, the range of the input data can be clarified, and combined with the register state, necessary parameters can be provided for the selection of the mapping relationship, thereby improving the flexibility and adaptability of calculating the initial state of the tail-biting encoding. By determining the mapping relationship for calculating the initial state of the tail-biting encoding based on the first register state and the input data length information, the mapping rule can be accurately located through a unique parameter combination, thereby reducing the table lookup time and improving the calculation efficiency. Description of the Drawings

[0022] Figure 1 is a flowchart of a Turbo encoding and decoding method in an embodiment of the present application; Figure 2 is an implementation flowchart of step S10 in a Turbo encoding and decoding method in an embodiment of the present application; Figure 3 is an implementation flowchart of step S20 in a Turbo encoding and decoding method in an embodiment of the present application; Figure 4 is an implementation flowchart of step S21 in a Turbo encoding and decoding method in an embodiment of the present application; Figure 5 is an implementation flowchart of step S30 in a Turbo encoding and decoding method in an embodiment of the present application; Figure 6It is the implementation flowchart of step S40 in the Turbo encoding and decoding method in an embodiment of the present application; Figure 7 It is the graph of the coding gain change of the Turbo code 1 / 2 rate in the Turbo encoding and decoding method in an embodiment of the present application; Figure 8 It is a principle block diagram of a Turbo encoding and decoding device in an embodiment of the present application; Figure 9 It is a schematic diagram of a device in an embodiment of the present application. Specific embodiments

[0023] The present application will be further described in detail below with reference to the accompanying drawings.

[0024] In one embodiment, as Figure 1 shown, the present application discloses a Turbo encoding and decoding method, which specifically includes the following steps: S10: Receive the input data sequence and initialize the Turbo encoding register, perform the first convolutional encoding on the input data sequence, and record the register state after the first encoding as the first register state.

[0025] Specifically, when receiving the input data sequence, the pre-processed data bit stream can be received through the communication module, and after the reception is completed, the data bit stream is stored in the buffer, and the Turbo encoding register is cleared according to the preset register initialization rule, so that each bit of the register is in the initial state, providing a consistent starting condition for subsequent encoding operations. After the Turbo encoding register is initialized, the input data sequence is loaded into the convolutional encoder in sequence, encoded bit by bit and the register state is updated in real time, and the historical bit information of the current input data sequence is recorded through the register state.

[0026] S20: Calculate the initial state of the tail-biting encoding based on the first register state as the second register state.

[0027] Specifically, when calculating the initial state of the tail-biting encoding based on the first register state, first extract all the stored values of the first register state from the register, and these stored values can be expressed as an arrangement form of a group of binary bits. For example, the state of a 4-bit register may be "1010", and then combined with the length information of the input data sequence, calculate the effective bit length in the input sequence, and find the corresponding tail-biting initial state in the state mapping table through the combination relationship between the length information and the first register state, thus avoiding the complex process of generating the initial state through multiple attempts.

[0028] S30: Perform the second convolutional encoding on the input data sequence according to the second register state to generate a Turbo encoding sequence.

[0029] Specifically, when performing the second convolutional encoding on the input data sequence according to the second register state, first load the second register state into the Turbo encoding register as the initial state of encoding. On this basis, input the data sequence bit by bit, update the register state through a recursive feedback loop, and at the same time perform a convolutional operation on the current input bit to generate a parity bit. The parity bit and the original input bit together form the final Turbo encoding sequence. After each input bit is completed, the register state will be updated until all bits of the input data sequence are encoded.

[0030] S40: Decode the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain the decoded information sequence.

[0031] Specifically, when decoding the Turbo encoding sequence based on the MAX-LOG-MAP algorithm, split the received Turbo encoding sequence into information bits and parity bits, and calculate the transition probability of each branch state according to the parity bits. The transition probability is calculated through the conditional probability formula of the channel model. Subsequently, calculate the cumulative probability from the starting state to the current state through forward recursion, and calculate the cumulative probability from the current state to the final state through backward recursion. Finally, generate the initial value of the log-likelihood ratio by synthesizing the forward and backward recursion results.

[0032] In one embodiment, as Figure 2 shown, in step S10, that is, perform the first convolutional encoding on the input data sequence and record the register state after the first encoding, specifically including: S11: Gradually perform convolutional encoding on the input data sequence. After the last several bits of the input data sequence are encoded, record the current state of the Turbo encoding register as the first register state.

[0033] Specifically, when gradually performing convolutional encoding, load the input data sequence bit by bit in order into the convolutional encoder. The convolutional encoder performs a recursive operation on the input bit through a feedback loop composed of multiple register units. The processing result of each input bit will affect the current state of the register. After the last several bits of the input data sequence are processed by convolutional encoding, read the current state value of the register and store this state value as the first register state. For example, after the input sequence "1010" ends, the current state of the register may be "0110", and this state will be recorded.

[0034] In one embodiment, as Figure 3 shown, in step S20, that is, based on the first register state, calculate the initial state of the tail-biting code as the second register state, specifically including: S21: Obtain the data length information of the input data sequence, and based on the first register state and the data length information, determine the mapping relationship for calculating the initial state of the tail-biting coding.

[0035] Specifically, when obtaining the length information of the input data sequence, the effective data length can be directly obtained by reading the number of bits in the input data buffer and converted into a standard format. For example, if the input data is 128 bits, the length information will be marked as "128", and then this length information and the register state are input into the state mapping calculation module. Combining the length information and the register state, a corresponding state mapping index is generated to find the corresponding mapping rule.

[0036] S22: Generate the initial state of the tail-biting coding according to the mapping relationship, and use the initial state as the second register state.

[0037] Specifically, after obtaining the state mapping rule, update the register state according to each bit state definition in the mapping rule. For example, the mapping rule stipulates that if the first bit of the register state is "1", then the second bit is inverted; if the third bit of the register state is "0", then the fourth bit remains unchanged. By this way of updating bit by bit, the register state is converted from the first register state to the final initial state of the tail-biting, ensuring the consistency of the register state at the beginning of the next coding step.

[0038] In one embodiment, as Figure 4 shown, in step S21, that is, based on the first register state and the data length information, determine the mapping relationship for calculating the initial state of the tail-biting coding, specifically including: S211: Divide the data length information into multiple ranges to correspond to different state mapping tables.

[0039] Specifically, when dividing the data length information into multiple ranges, the method of fixed-length intervals can be adopted. For example, the data length information is divided at intervals of 64 bits. The first range is from 0 to 64 bits, the second range is from 65 to 128 bits, and so on. At the same time, a state mapping table number is defined for each range. When the input data length information is "100", it is determined by comparison that it belongs to the range of "65 to 128 bits", and the corresponding second state mapping table is selected.

[0040] S212: Match the mapping relationship of the initial state of the tail-biting coding in the state mapping table according to the first register state.

[0041] Specifically, when matching the mapping relationship in the state mapping table, each bit value of the first register state is used as the input index. By comparing each bit with each key value in the state mapping table one by one, the exactly matching key value is found, and the final tail - biting initial state is generated according to the rule corresponding to this key value. For example, if the first register state is "1010" and the rule corresponding to the key value in the mapping table is "invert the 1st bit, keep the 2nd bit, set the 3rd bit to 0, and set the 4th bit to 1", the generated tail - biting initial state after operating according to the rule is "0101".

[0042] In one embodiment, as Figure 5 shown, in step S30, that is, according to the second register state, perform the second convolutional coding on the input data sequence, which specifically includes: S31: Use the second register state as the initial register state to perform the second convolutional coding on the input data sequence.

[0043] Specifically, when performing the second convolutional coding, directly load the second register state as the initial state of the register. For example, the initial state is "0101". For each input bit, the register state will be recalculated according to the current bit and the feedback loop. For example, after inputting the bit "1", the register state may be updated to "1010". After processing all bits, the register state will record the final state, and at the same time, output the corresponding Turbo - coded bits.

[0044] S32: Obtain the current register state. When the current register state is the same as the initial register state, complete the second convolutional coding.

[0045] Specifically, after each input bit is completed, by comparing the current register state with the second register state bit by bit to determine whether they are the same. If it is found that the current state completely matches the second register state, it is confirmed that the coding path is correct; otherwise, reload the second register state and re - process the current bit until the final register state is completely consistent with the second register state.

[0046] In one embodiment, as Figure 6 shown, in step S40, that is, based on the MAX - LOG - MAP algorithm, decode the Turbo - coded sequence to obtain the decoded information sequence, which specifically includes: S41: Calculate the transition probability of each branch state of the Turbo coding based on the MAX - LOG - MAP algorithm, and based on the transition probability of the branch state, calculate the log - likelihood ratio of each bit through forward recursion and backward recursion.

[0047] Specifically, when calculating the transition probability of each branch state, by probabilistically modeling the bits of the Turbo-coded sequence. For example, for a certain bit, the transition probability can be defined as P(μk|Yk), where μk is the information bit and Yk is the received coded sequence. Calculate the conditional probability through the channel model and convert this probability value into logarithmic form, storing it as part of the transition probability matrix.

[0048] S42: Iteratively optimize the log-likelihood ratio, and adjust the branch state transition probability according to the updated extrinsic information in each iteration.

[0049] Specifically, in each iteration, dynamically adjust the branch state transition probability by updating the extrinsic information. For example, calculate the weight value of the extrinsic information through the confidence level of each information bit, increase the weight of the extrinsic information of high-confidence bits, and reduce the weight of the extrinsic information of low-confidence bits, so as to perform more accurate probability adjustment on low-confidence bits in subsequent iterations and gradually optimize the log-likelihood ratio.

[0050] S43: When the optimized log-likelihood ratio reaches the preset error convergence condition and / or the maximum number of iterations, terminate the iterative optimization, and perform a hard decision on the optimized log-likelihood ratio to obtain the decoded information sequence.

[0051] Specifically, when the change amplitude of the log-likelihood ratio is less than the preset error threshold, confirm that the log-likelihood ratio has converged, stop further iteration, and perform a hard decision on the current log-likelihood ratio. For example, when the log-likelihood ratio is positive, it is judged as "1", and when it is negative, it is judged as "0", and finally output the decoded information sequence.

[0052] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.

[0053] In one embodiment, a Turbo encoding and decoding device is provided, and this Turbo encoding and decoding device corresponds one-to-one with the Turbo encoding and decoding method in the above embodiment. As Figure 8 shown, this Turbo encoding and decoding device includes an initialization module, a tail-biting encoding state calculation module, a second encoding module, and a Turbo decoding module. The detailed description of each functional module is as follows: The initialization module is used to receive the input data sequence, initialize the Turbo encoding register, perform the first convolutional encoding on the input data sequence, and record the register state after the first encoding as the first register state; The tail-biting encoding state calculation module is used to calculate the initial state of the tail-biting encoding as the second register state based on the first register state; A second encoding module, configured to perform a second convolutional encoding on the input data sequence according to the second register state to generate a Turbo encoding sequence; A Turbo decoding module, configured to decode the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence.

[0054] Optionally, the initialization module specifically includes: A register state recording sub-module, configured to perform convolutional encoding on the input data sequence step by step, and record the current state of the Turbo encoding register as the first register state after the last several bits of the input data sequence have been encoded.

[0055] Optionally, the tail-biting encoding state calculation module specifically includes: A length information acquisition sub-module, configured to acquire the data length information of the input data sequence, and determine a mapping relationship for calculating the initial state of the tail-biting encoding based on the first register state and the data length information; A state mapping generation sub-module, configured to generate the initial state of the tail-biting encoding according to the mapping relationship and use the initial state as the second register state.

[0056] Optionally, the length information acquisition sub-module specifically includes: A length range division unit, configured to divide the data length information into multiple ranges to correspond to different state mapping tables; A mapping relationship matching unit, configured to match the mapping relationship of the initial state of the tail-biting encoding in the state mapping table according to the first register state.

[0057] Optionally, the second encoding module specifically includes: An encoding initial state setting sub-module, configured to use the second register state as the register initial state to perform a second convolutional encoding on the input data sequence; A state consistency check sub-module, configured to acquire the current register state, and complete the second convolutional encoding when the current register state is the same as the register initial state.

[0058] Optionally, the Turbo decoding module specifically includes: A branch probability calculation sub-module, configured to calculate the transition probability of each branch state of the Turbo encoding based on the MAX-LOG-MAP algorithm, and calculate the log-likelihood ratio of each bit through forward recursion and backward recursion based on the transition probability of the branch state; An iterative optimization sub-module, configured to iteratively optimize the log-likelihood ratio and adjust the branch state transition probability according to the updated extrinsic information in each iteration; A termination optimization sub-module is configured to terminate iterative optimization when the optimized log-likelihood ratio reaches a preset error convergence condition and / or a maximum number of iterations, and perform hard decision on the optimized log-likelihood ratio to obtain a decoded information sequence.

[0059] For the specific limitations of the Turbo encoding and decoding device, reference can be made to the limitations of the Turbo encoding and decoding method in the foregoing text, which will not be elaborated here. Each module in the above Turbo encoding and decoding device can be implemented in whole or in part by software, hardware, and their combination. Each of the above modules can be embedded in the processor in the computer device in hardware form or independent of the processor, or stored in the memory in the computer device in software form, so that the processor can call and execute the operations corresponding to each of the above modules.

[0060] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as Figure 9 shown. The computer device includes a processor, a memory, a network interface, and a database connected by a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements a Turbo encoding and decoding method.

[0061] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the following steps are implemented: Receiving an input data sequence and initializing a Turbo encoding register, performing a first convolutional encoding on the input data sequence, and recording the register state after the first encoding as the first register state; Calculating an initial state of tail-biting encoding as the second register state based on the first register state; Performing a second convolutional encoding on the input data sequence according to the second register state to generate a Turbo encoding sequence; Decoding the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence.

[0062] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented: Receive the input data sequence and initialize the Turbo coding register, perform the first convolutional coding on the input data sequence, and record the register state after the first coding as the first register state; Based on the first register state, calculate the initial state of the tail-biting coding as the second register state; According to the second register state, perform the second convolutional coding on the input data sequence to generate a Turbo coding sequence; Decode the Turbo coding sequence based on the MAX-LOG-MAP algorithm to obtain the decoded information sequence.

[0063] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, storage, database, or other medium used in the various embodiments provided in the present application can include non-volatile and / or volatile memories. Non-volatile memories can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memories can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM), etc.

[0064] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, only the above division of each functional unit and module is used as an example. In practical applications, the above functions can be allocated to different functional units and modules according to needs, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above.

[0065] The foregoing embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims

1. A Turbo encoding and decoding method, characterized in that The Turbo encoding and decoding method includes: Receiving an input data sequence and initializing a Turbo encoding register, performing a first convolutional encoding on the input data sequence, and recording the register state after the first encoding as a first register state; Based on the first register state, calculating an initial state of tail-biting encoding as a second register state; According to the second register state, performing a second convolutional encoding on the input data sequence to generate a Turbo encoding sequence; Decoding the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence.

2. The Turbo encoding / decoding method according to claim 1, wherein The performing a first convolutional encoding on the input data sequence and recording the register state after the first encoding specifically includes: Performing convolutional encoding on the input data sequence step by step, and after the last several bits of the input data sequence have been encoded, recording the current state of the Turbo encoding register as the first register state.

3. The Turbo encoding / decoding method according to claim 1, wherein The calculating an initial state of tail-biting encoding as a second register state based on the first register state specifically includes: Obtaining data length information of the input data sequence, and based on the first register state and the data length information, determining a mapping relationship for calculating the initial state of tail-biting encoding; Generating the initial state of the tail-biting encoding according to the mapping relationship, and using the initial state as the second register state.

4. The Turbo encoding / decoding method according to claim 3, characterized in that, The determining a mapping relationship for calculating the initial state of tail-biting encoding based on the first register state and the data length information specifically includes: Dividing the data length information into multiple ranges to correspond to different state mapping tables; Matching the mapping relationship of the initial state of the tail-biting encoding in the state mapping table according to the first register state.

5. The Turbo encoding / decoding method according to claim 1, wherein The performing a second convolutional encoding on the input data sequence according to the second register state specifically includes: Using the second register state as the initial register state and performing a second convolutional encoding on the input data sequence; Obtaining the current register state, and when the current register state is the same as the initial register state, completing the second convolutional encoding.

6. The Turbo encoding and decoding method according to claim 1, characterized in that The decoding the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence specifically includes: Calculating the transition probability of each branch state of the Turbo encoding based on the MAX-LOG-MAP algorithm, and based on the transition probability of the branch state, calculating the log-likelihood ratio of each bit through forward recursion and backward recursion; Performing iterative optimization on the log-likelihood ratio, and adjusting the branch state transition probability according to the updated extrinsic information in each iteration; When the optimized log-likelihood ratio reaches a preset error convergence condition and / or a maximum number of iterations, terminating the iterative optimization, and performing a hard decision on the optimized log-likelihood ratio to obtain the decoded information sequence.

7. A Turbo encoding / decoding device, characterized in that, The Turbo encoding and decoding device includes: An initialization module, configured to receive an input data sequence, initialize Turbo encoding registers, perform a first convolutional encoding on the input data sequence, and record the register state after the first encoding as a first register state; A tail-biting encoding state calculation module, configured to calculate an initial state of tail-biting encoding as a second register state based on the first register state; A second encoding module, configured to perform a second convolutional encoding on the input data sequence according to the second register state to generate a Turbo encoding sequence; A Turbo decoding module, configured to decode the Turbo encoding sequence based on the MAX-LOG-MAP algorithm to obtain a decoded information sequence.

8. The Turbo encoding / decoding device according to claim 7, wherein The initialization module specifically includes: A register state recording sub-module, configured to gradually perform convolutional encoding on the input data sequence, and record the current state of the Turbo encoding registers after the last several bits of the input data sequence have been encoded, as the first register state.

9. A computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, the steps of the Turbo encoding and decoding method according to any one of claims 1 to 6 are implemented.

10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, the steps of the Turbo encoding and decoding method according to any one of claims 1 to 6 are implemented.