Error correction code decoding method and device, electronic equipment and storage medium
By using a pre-trained convolutional neural network model to process error correction codes with punched information, the problem that the existing technology cannot be compatible with existing commercial protocols is solved, flexible and efficient decoding of error correction codes is achieved, and the reliability and robustness of the communication system are improved.
Patent Information
- Application Number
- CN202510119292.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-24
- Publication Date
- 2025-06-24
AI Technical Summary
The existing AI-based error correction code neural network decoder does not consider the hole punching performance when protocol compatibility is not included, and cannot be compatible with existing commercial protocols, resulting in the inability to effectively decode error correction codes with hole punching information.
The pre-trained convolutional neural network model is used to process the error correction code with hole punch information, and the error correction code and hole punch information are upgraded through the first submodule and the second submodule. After the processing is combined, the decoded bit likelihood is generated through the long-term memory network module and the full connection layer to obtain the decoding result.
It realizes flexible and efficient decoding of error correction codes with hole-punching information, improves the reliability and robustness of the communication system, and is compatible with existing commercial protocols.
Smart Images

Figure CN120200623A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technologies, and in particular, to an error correction code decoding method, apparatus, electronic device, and storage medium. Background Art
[0002] In the current field of communication technologies, baseband processing technologies are undergoing a transformation from traditional CPUs to GPUs. Along with this transformation, the design concept of baseband processing algorithms also needs to be reexamined and optimized from a brand-new AI perspective.
[0003] Since existing commercial protocols need to puncture the encoded mother code to adapt to the changing wireless propagation environment, currently, the AI-based error correction code neural network decoder does not consider the puncturing performance when protocol-compatible, resulting in its inability to be compatible with existing commercial protocols.
[0004] Therefore, finding an error correction code decoding method that can flexibly and efficiently decode error correction codes with puncturing information has become a current research hotspot. Summary of the Invention
[0005] The present invention provides an error correction code decoding method, apparatus, electronic device, and storage medium, which realize flexible and efficient decoding of error correction codes with puncturing information, thereby effectively improving the reliability and robustness of a communication system.
[0006] The present invention provides an error correction code decoding method, the method including: obtaining an error correction code to be processed, where the error correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain decoded bit likelihoods corresponding to the error correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used for dimension elevation processing of the error correction code to be processed, and the second sub-module is used for dimension elevation processing of the puncturing information; and obtaining a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihoods.
[0007] An error correction code decoding method provided by the present invention, wherein the error correction code to be processed includes a convolutional code, and the pre-trained convolutional neural network model is called to process the error correction code to be processed to obtain the decoded bit likelihood corresponding to the error correction code to be processed, which is implemented in the following manner: input the convolutional code into the first sub-module in the convolutional neural network model to obtain the upsampled input embedding corresponding to the convolutional code output by the first sub-module; input the puncturing information into the second sub-module in the convolutional neural network model to obtain the upsampled puncturing embedding corresponding to the puncturing information output by the second sub-module; perform element-wise multiplication combination processing on the upsampled input embedding and the upsampled puncturing embedding to obtain the combined embedding after processing; input the combined embedding after processing into the long short-term memory network module in the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module, wherein the high-dimensional information representation of the convolutional code is used to characterize the coding context of the entire sequence of the convolutional code; input the high-dimensional information representation of the convolutional code into the fully connected layer in the convolutional neural network model to obtain the decoded bit likelihood corresponding to the convolutional code output by the fully connected layer.
[0008] An error correction code decoding method provided by the present invention, before inputting the combined embedding after processing into the long short-term memory network module in the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module, the method further includes: performing normalization processing on the combined embedding after processing to obtain the normalized combined embedding after processing; the step of inputting the combined embedding after processing into the long short-term memory network module in the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module specifically includes: inputting the normalized combined embedding after processing into the long short-term memory network module in the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module.
[0009] An error correction code decoding method provided by the present invention, wherein the error correction code to be processed includes a turbo code, and the pre-trained convolutional neural network model is called to process the error correction code to be processed to obtain the decoded bit likelihood corresponding to the error correction code to be processed, which is implemented in the following manner: calling two pre-trained convolutional neural network models to process the turbo code to obtain the decoded bit likelihood corresponding to the turbo code, wherein the two convolutional neural network models are connected through an interleaving and de-interleaving mechanism.
[0010] An error correction code decoding method provided according to the present invention, the two convolutional neural network models include a first convolutional neural network model and a second convolutional neural network model. The two pre-trained convolutional neural network models are called to process the turbo code to obtain the decoded bit likelihood corresponding to the turbo code, which is implemented in the following manner: The turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information are input into the first convolutional neural network model to obtain the extrinsic information output by the first convolutional neural network model at the subsequent iteration step, where the first puncturing information corresponds to the turbo code and the first parity check sequence, and the previous iteration step and the subsequent iteration step are adjacent iteration steps; The extrinsic information output by the first convolutional neural network model at the subsequent iteration step and the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step are interleaved to obtain the first interleaved information at the subsequent iteration step; The first interleaved information at the subsequent iteration step, the second parity check sequence corresponding to the first interleaved information, and the second puncturing information are input into the second convolutional neural network model to obtain the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, where the second puncturing information corresponds to the turbo code and the second parity check sequence; The preset number of iterations is obtained, and the steps of inputting the turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information into the first convolutional neural network model are repeatedly executed according to the preset number of iterations until the step of obtaining the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, so as to obtain the extrinsic information output by the second convolutional neural network model obtained by repeatedly executing according to the preset number of iterations; Based on the extrinsic information output by the second convolutional neural network model obtained by repeatedly executing according to the preset number of iterations, the decoded bit likelihood corresponding to the turbo code is obtained.
[0011] An error correction code decoding method provided according to the present invention, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step is obtained in the following manner: The extrinsic information output by the second convolutional neural network model at the previous iteration step and the first interleaved information at the previous iteration step are deinterleaved to obtain the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step.
[0012] An error correction code decoding method provided by the present invention, the convolutional neural network model is pre-trained in the following manner: obtaining a plurality of different error correction code training data with a preset code rate; based on the error correction code training data with the preset code rate, determining a training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data; based on the error correction code training data with the preset code rate and the training signal-to-noise ratio, determining a training data set; training the convolutional neural network model based on the training data set to obtain a trained convolutional neural network model.
[0013] The present invention also provides an error correction code decoding device, the device includes: an acquisition module, configured to acquire an error correction code to be processed, wherein the error correction code to be processed includes puncturing information; a processing module, configured to call a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed, wherein the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, wherein the first sub-module is configured to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is configured to perform dimensionality increase processing on the puncturing information; a decoding module, configured to obtain a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood.
[0014] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor, wherein when the processor executes the computer program, the error correction code decoding method described in any one of the above is implemented.
[0015] The present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the error correction code decoding method described in any one of the above is implemented.
[0016] The present invention also provides a computer program product, including a computer program, and when the computer program is executed by a processor, the error correction code decoding method described in any one of the above is implemented.
[0017] The error correction code decoding method, device, electronic device, and storage medium provided by the present invention, the method includes: obtaining an error correction code to be processed, where the error correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; obtaining a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood. It realizes flexible and efficient decoding of error correction codes with puncturing information, thereby effectively improving the reliability and robustness of the communication system. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the following will briefly introduce the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0019] Figure 1 is a flowchart of the error correction code decoding method provided by the present invention.
[0020] Figure 2 is a flowchart of calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed provided by the present invention.
[0021] Figure 3 is a flowchart of calling two pre-trained convolutional neural network models to process the turbo code to obtain a decoded bit likelihood corresponding to the turbo code provided by the present invention.
[0022] Figure 4 is a flowchart of pre-training the convolutional neural network model provided by the present invention.
[0023] Figure 5 is a structural schematic diagram of the error correction code decoding device provided by the present invention.
[0024] Figure 6 is a structural schematic diagram of the electronic device provided by the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0025] To make the objectives, technical solutions, and advantages of the present invention clearer, the following will, in conjunction with the accompanying drawings of the present invention, clearly and completely describe the technical solutions in the present invention. Apparently, the described embodiments are some, but not all, of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts fall within the scope of protection of the present invention.
[0026] The error correction code decoding method provided by the present invention can significantly improve the decoding performance of error correction codes, including convolutional codes and Turbo codes, at the puncturing code rate while considering protocol compatibility, especially the decoding performance in a fading channel, far exceeding the traditional Viterbi and BCJR decoding algorithms, and providing a flexible, efficient, and robust solution for modern wireless communication systems.
[0027] Figure 1 It is a schematic flowchart of the error correction code decoding method provided by the present invention.
[0028] The following will, in conjunction with Figure 1 describe the process of the error correction code decoding method provided by the present invention.
[0029] In an exemplary embodiment of the present invention, in conjunction with Figure 1 it can be seen that the error correction code decoding method may include steps 110 to 130, and each step will be introduced separately below.
[0030] In step 110, obtain the error correction code to be processed, where the error correction code to be processed includes puncturing information.
[0031] In step 120, call the pre-trained convolutional neural network model to process the error correction code to be processed, and obtain the decoded bit likelihood corresponding to the error correction code to be processed. The convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer. The first sub-module is used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information.
[0032] In step 130, based on the decoded bit likelihood, obtain the decoding result corresponding to the error correction code to be processed.
[0033] In one embodiment, the error correction code to be processed can be obtained, where the error correction code to be processed may include puncturing information. In one example, the error correction code to be processed may be a log-likelihood ratio. In this embodiment, the specific form of the error correction code to be processed is not limited.
[0034] In yet another embodiment, a pre-trained convolutional neural network model can be invoked. The convolutional neural network model can include a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer. The first sub-module can be used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module can be used to perform dimensionality increase processing on the puncturing information.
[0035] It should be noted that the long short-term memory network module LSTM can be represented by the following formula: ⊙ ⊙ ⊙ Where represents the Sigmoid activation function, which plays a key gating role by generating values within the range of . This enables to act as a "soft switch" to determine the degree to which information should be passed to the network. For example, in the forget gate , dynamically adjusts how much of the previous cell state should be retained. Similarly, in the input gate and the output gate , controls how much new information is introduced into the cell state and how much of the cell state affects the hidden state . By gating these information flows, ensures that the network can focus on relevant inputs and maintain stable gradients during training, enabling the LSTM to effectively capture short-term and long-term dependencies.
[0036] The convolutional neural network model provided by the present invention can, by means of the first sub-module, the second sub-module, the long short-term memory network module, and the fully connected layer, implement the processing of the error correction code to be processed, thereby obtaining the decoded bit likelihood corresponding to the error correction code to be processed. Further, based on the decoded bit likelihood, the decoding result corresponding to the error correction code to be processed is obtained. It realizes flexible and efficient decoding of error correction codes with puncturing information. Thus, the reliability and robustness of the communication system can be effectively improved.
[0037] The error correction code decoding method provided by the present invention includes: obtaining an error correction code to be processed, where the error correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; obtaining a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood. Flexible and efficient decoding of error correction codes with puncturing information is achieved. Thereby, the reliability and robustness of the communication system can be effectively improved.
[0038] Figure 2 It is a schematic flowchart of the process of calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed provided by the present invention.
[0039] Next, in combination with Figure 2 the process of calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed will be described.
[0040] In an exemplary embodiment of the present invention, in combination with Figure 2 it can be known that when the error correction code to be processed is a convolutional code, calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed may include steps 210 to 250, and each step will be introduced separately below.
[0041] In step 210, the convolutional code is input into the first sub-module in the convolutional neural network model to obtain a dimension-increased input embedding corresponding to the convolutional code output by the first sub-module; In step 220, the puncturing information is input into the second sub-module in the convolutional neural network model to obtain a dimension-increased puncturing embedding corresponding to the puncturing information output by the second sub-module; In step 230, element-wise multiplication combination processing is performed on the dimension-increased input embedding and the dimension-increased puncturing embedding to obtain a combined embedding; In step 240, the combined embedding is input into the long short-term memory network module in the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module, where the high-dimensional information representation of the convolutional code is used to characterize the coding context of the entire sequence of the convolutional code; In step 250, the high-dimensional information representation regarding the convolutional code is input into the fully connected layer in the convolutional neural network model, and the decoded bit likelihood corresponding to the convolutional code output by the fully connected layer is obtained.
[0042] In one embodiment, the pre-trained convolutional neural network model is called to process the error correction code to be processed, and the decoded bit likelihood corresponding to the error correction code to be processed can also be represented by the following formula: ⊙ where y represents the decoded bit likelihood corresponding to the error correction code to be processed; 、 、 、 、 and all represent learnable parameters and can be obtained through pre-training of the convolutional neural network model; LSTM(.) represents processing by the long short-term memory network module; BN(.) represents processing by normalization.
[0043] The following will illustrate the process of calling the pre-trained convolutional neural network model to process the error correction code to be processed and obtaining the decoded bit likelihood corresponding to the error correction code to be processed in combination with the following embodiments and the foregoing formula.
[0044] In one embodiment, the architecture proposed by the present invention can convert the original input data, that is, the convolutional code and the puncturing pattern, that is, the puncturing information, into an operable decoded output through a series of operations. This process first projects the input sequence (corresponding to the convolutional code) into a higher-dimensional embedding space, that is, the upsampled input embedding corresponding to the convolutional code is obtained. Among them, the foregoing process can be represented by the following formula: where and are learnable parameters, K represents the length of the sequence, represents the dimension of each input vector. Here, represents the depunctured data, zeros are inserted at the positions of the punctured bits to restore the complete sequence structure, that is, the convolutional code, and e represents the upsampled input embedding corresponding to the convolutional code.
[0045] To combine the puncturing information, the second sub-module maps the puncturing information to the same embedding space. This process is achieved in the following way: where , , is the Sigmoid activation function, which ensures that the puncturing information acts as a gate to control the flow of the puncturing information; e p represents the upsampled puncturing embedding corresponding to the puncturing information.
[0046] Furthermore, the upsampled input embedding e and the upsampled puncturing embedding e p are then combined through element-wise multiplication, enabling the model to dynamically adjust according to the puncturing pattern, where the input is expressed as follows: e final = e ⊙ e p where, e final represents the combined processed embedding.
[0047] In another embodiment, the combined processed embedding is then processed by a multi-layer bidirectional LSTM to capture the forward and backward temporal dependencies in the sequence and can be expressed by the following formula: h = LSTM(e final ) where, represents the encoded context of the entire sequence, utilizing information from both directions, which is a high-dimensional information representation regarding convolutional codes.
[0048] Furthermore, the output of the LSTM is passed through a fully connected layer to generate the decoded bit likelihood and can be expressed by the following formula: where, , represents the likelihood value that the estimated bit is 0 or 1, that is, the decoded bit likelihood corresponding to the convolutional code.
[0049] Through the foregoing embodiments, the decoding of convolutional codes can be completed, enabling flexible and efficient decoding of convolutional codes, thereby effectively improving the reliability and robustness of the communication system.
[0050] In another exemplary embodiment of the present invention, continuing with the example of the foregoing Figure 2 described embodiment, where, before inputting the combined processed embedding into the long short-term memory network module of the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module (corresponding to step 240), the error correction code decoding method further includes: Normalizing the combined processed embedding to obtain the normalized combined processed embedding; Among them, the combined processed embedding is input into the long short-term memory network module in the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module, which can be implemented in the following manner: The normalized combined processed embedding is input into the long short-term memory network module in the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module.
[0051] In one embodiment, normalization processing can also be performed on the combined processed embedding to obtain a normalized combined processed embedding, thereby stabilizing the training process. Among them, the combined embedding e final After batch normalization processing to stabilize the training process, it can be represented in the following manner: Among them, e norm can represent the input of the normalized combined processed embedding; Furthermore, the normalized embedding is subsequently processed by a multi-layer bidirectional LSTM to capture the forward and backward temporal dependencies in the sequence: Among them, h represents the high-dimensional information representation of the convolutional code.
[0052] In another exemplary embodiment of the present invention, the error correction code to be processed may further include a turbo code, also known as a Turbo code. Among them, the convolutional neural network model pre-trained is called to process the error correction code to be processed to obtain the decoded bit likelihood corresponding to the error correction code to be processed, which can be implemented in the following manner: Two pre-trained convolutional neural network models are called to process the turbo code to obtain the decoded bit likelihood corresponding to the turbo code. Among them, the two convolutional neural network models are connected through an interleaving and deinterleaving mechanism. Among them, the deinterleaving mechanism can also be considered as a deinterleaving mechanism.
[0053] In one embodiment, the LSTM-based Turbo decoder (which can apply the error correction code decoding method provided by the present invention) is based on the traditional BCJR Turbo decoding principle and uses two identical convolutional neural network models as core components. These convolutional neural network models are connected together through an interleaving and deinterleaving mechanism to support the iterative optimization of the decoding process. This architecture is specifically designed to capture the sequential properties of convolutional codes and the external information exchange characteristics of Turbo decoding.
[0054] Figure 3It is a schematic flow diagram of the present invention for processing the turbo code by invoking two pre-trained convolutional neural network models to obtain the decoded bit likelihood corresponding to the turbo code.
[0055] Next, in conjunction with Figure 3 the process of processing the turbo code by invoking two pre-trained convolutional neural network models to obtain the decoded bit likelihood corresponding to the turbo code will be described.
[0056] In an exemplary embodiment of the present invention, the two convolutional neural network models can be a first convolutional neural network model and a second convolutional neural network model respectively. In conjunction with Figure 3 it can be known that processing the turbo code by invoking two pre-trained convolutional neural network models to obtain the decoded bit likelihood corresponding to the turbo code may include steps 310 to 350, and each step will be introduced separately below.
[0057] In step 310, the turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information are input into the first convolutional neural network model to obtain the extrinsic information output by the first convolutional neural network model at the subsequent iteration step, where the first puncturing information corresponds to the turbo code and the first parity check sequence.
[0058] In step 320, the extrinsic information output by the first convolutional neural network model at the subsequent iteration step and the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step are interleaved to obtain the first interleaved information at the subsequent iteration step.
[0059] In step 330, the first interleaved information at the subsequent iteration step, the second parity check sequence corresponding to the first interleaved information, and the second puncturing information are input into the second convolutional neural network model to obtain the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, where the second puncturing information corresponds to the turbo code and the second parity check sequence.
[0060] It should be noted that the subsequent iteration step and the previous iteration step can be regarded as adjacent iteration steps. For the convenience of description, the subsequent iteration step can be represented by t; the previous iteration step can be represented by t - 1.
[0061] In one embodiment, the turbo code x, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step the first parity check sequence z corresponding to the turbo code, and the first puncturing information Input to the first convolutional neural network model (which can be denoted as CNE0) to obtain the extrinsic information output by the first convolutional neural network model at the subsequent iteration step .
[0062] Furthermore, the extrinsic information output by the first convolutional neural network model at the subsequent iteration step , and the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step are subjected to interleaving processing to obtain the first interleaved information at the subsequent iteration step .
[0063] Then, the first interleaved information at the subsequent iteration step , the second parity check sequence corresponding to the first interleaved information , and the second puncturing information are input to the second convolutional neural network model (which can be denoted as CNE1) to obtain the extrinsic information output by the second convolutional neural network model at the subsequent iteration step .
[0064] In step 340, obtain the preset number of iteration steps, and repeat the step of inputting the turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information to the first convolutional neural network model according to the preset number of iteration steps until the step of obtaining the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, so as to obtain the extrinsic information output by the second convolutional neural network model after repeating according to the preset number of iteration steps.
[0065] In step 350, based on the extrinsic information output by the second convolutional neural network model after repeating according to the preset number of iteration steps, obtain the decoded bit likelihood corresponding to the turbo code.
[0066] In yet another embodiment, the preset number of iteration steps can also be obtained , and repeat the step of inputting the turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information to the first convolutional neural network model (corresponding to step 310) according to the preset number of iteration steps until the step of obtaining the extrinsic information output by the second convolutional neural network model at the subsequent iteration step (corresponding to step 340), so as to obtain according to the preset number of iteration steps , that is, replacing t with , the extrinsic information output by the second convolutional neural network model obtained after repeated execution. Further, based on the extrinsic information output by the second convolutional neural network model obtained after repeating according to the preset number of iteration steps, the decoded bit likelihood corresponding to the turbo code is obtained.
[0067] In another exemplary embodiment of the present invention, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step can be obtained in the following manner: Perform deinterleaving processing on the extrinsic information output by the second convolutional neural network model at the previous iteration step and the first interleaved information at the previous iteration step to obtain the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step.
[0068] It should be noted that for a certain iteration step, after obtaining the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, in order to lay the foundation for the next iteration process, deinterleaving processing can be performed on the extrinsic information output by the second convolutional neural network model at the subsequent iteration step and the first interleaved information at the subsequent iteration step to obtain the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the subsequent iteration step , it can be understood that the aforementioned information after deinterleaving the extrinsic information output by the second convolutional neural network model at the subsequent iteration step can be used as the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step in the next iteration process.
[0069] In order to further introduce the error correction code decoding method provided by the present invention, the following will be described in conjunction with the following embodiments.
[0070] In one embodiment, the decoding process can be iterative, and the extrinsic information is exchanged between two CNE through interleaving and deinterleaving. In each iteration, the following steps are performed: where t represents the number of iteration steps, and represent interleaving and deinterleaving operations respectively. Vectors and represent and puncturing information (corresponding to the first puncturing information and the second puncturing information) respectively.
[0071] When performing After the th iteration (corresponding to the preset number of iteration steps), by applying an interleaving operation to the output of the CNE 1 (corresponding to the extrinsic information output by the second convolutional neural network model obtained by repeatedly executing according to the preset number of iteration steps), the likelihood estimate of the system bits is finally obtained:
[0072] Figure 4 is a schematic flow diagram of pre-training a convolutional neural network model provided by the present invention.
[0073] Next, the process of pre-training a convolutional neural network model will be described in conjunction with Figure 4 The process of pre-training a convolutional neural network model will be described.
[0074] In an exemplary embodiment of the present invention, in conjunction with Figure 4 it can be seen that pre-training a convolutional neural network model may include steps 410 to 440, and each step will be introduced separately below.
[0075] In step 410, a plurality of different error correction code training data with a preset code rate are obtained.
[0076] In step 420, based on the error correction code training data with a preset code rate, a training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data is determined.
[0077] In one embodiment, a plurality of different error correction code training data with a preset code rate can be obtained, and for the error correction code training data with a preset code rate, a training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data is determined.
[0078] In the application process, in order to balance the losses between different code rates during training, the present invention proposes an error rate balancing training method, that is, the signal-to-noise ratio (Signal to Noise Ratio, SNR) during training for different code rates (corresponding to the preset code rate) R is set as follows: wherein, SNR train represents the training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data; SNR offset is the common baseline SNR for all code rates.
[0079] In step 430, based on the error correction code training data with a preset code rate and the training signal-to-noise ratio, a training data set is determined.
[0080] In step 440, the convolutional neural network model is trained based on the training data set to obtain a trained convolutional neural network model.
[0081] In yet another embodiment, a training data set can be obtained based on error-correcting code training data with a preset code rate and a training signal-to-noise ratio, and then the convolutional neural network model can be trained based on the training data set to obtain a trained convolutional neural network model, thereby well balancing the losses between different code rates during training and improving the robustness of the decoding process. In yet another example, based on the error-correcting code training data with a preset code rate and the training signal-to-noise ratio, derivative error-correcting code training data corresponding to the training signal-to-noise ratio can be obtained, and then based on the generated error-correcting code training data and the error-correcting code training data with a preset code rate, a training data set can be determined, so that the convolutional neural network model can be trained based on the training data set to obtain a trained convolutional neural network model.
[0082] As can be known from the foregoing description, for the error-correcting code decoding method provided by the present invention, by obtaining an error-correcting code to be processed, where the error-correcting code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error-correcting code to be processed to obtain decoded bit likelihoods corresponding to the error-correcting code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error-correcting code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; based on the decoded bit likelihoods, a decoding result corresponding to the error-correcting code to be processed is obtained. Flexible and efficient decoding of error-correcting codes with puncturing information is achieved. Thereby, the reliability and robustness of the communication system can be effectively improved.
[0083] The error-correcting code decoding device provided by the present invention will be described below, and the error-correcting code decoding device described below can be mutually corresponding and referred to the error-correcting code decoding method described above.
[0084] Figure 5 It is a schematic structural diagram of the error-correcting code decoding device provided by the present invention.
[0085] Next, in conjunction with Figure 5 the structure of the error-correcting code decoding device provided by the present invention will be described.
[0086] In an exemplary embodiment of the present invention, in conjunction with Figure 5 it can be known that the error-correcting code decoding device may include an acquisition module 510, a processing module 520, and a decoding module 530, and each module will be introduced separately below.
[0087] The acquisition module 510 can be configured to obtain an error-correcting code to be processed, where the error-correcting code to be processed includes puncturing information; The processing module 520 can be configured to process the error correction code to be processed by invoking a pre-trained convolutional neural network model, and obtain the decoded bit likelihood corresponding to the error correction code to be processed. The convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer. The first sub-module is used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information. The decoding module 530 can be configured to obtain a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood.
[0088] In an exemplary embodiment of the present invention, the error correction code to be processed includes a convolutional code. The processing module 520 can implement the process of invoking a pre-trained convolutional neural network model to process the error correction code to be processed and obtain the decoded bit likelihood corresponding to the error correction code to be processed in the following manner: Input the convolutional code into the first sub-module in the convolutional neural network model, and obtain the dimensionality-increased input embedding corresponding to the convolutional code output by the first sub-module. Input the puncturing information into the second sub-module in the convolutional neural network model, and obtain the dimensionality-increased puncturing embedding corresponding to the puncturing information output by the second sub-module. Perform element-wise multiplication combination processing on the dimensionality-increased input embedding and the dimensionality-increased puncturing embedding to obtain the combined embedding after processing. Input the combined embedding after processing into the long short-term memory network module in the convolutional neural network model, and obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module. The high-dimensional information representation of the convolutional code is used to characterize the coding context of the entire sequence of the convolutional code. Input the high-dimensional information representation of the convolutional code into the fully connected layer in the convolutional neural network model, and obtain the decoded bit likelihood corresponding to the convolutional code output by the fully connected layer.
[0089] In an exemplary embodiment of the present invention, the processing module 520 can also be configured to: Perform normalization processing on the combined embedding after processing to obtain the normalized combined embedding after processing. The processing module 520 can also implement the process of inputting the combined embedding after processing into the long short-term memory network module in the convolutional neural network model and obtaining the high-dimensional information representation of the convolutional code output by the long short-term memory network module in the following manner: Embed the result of the above normalization combination process into the long short-term memory network module in the convolutional neural network model, to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module.
[0090] In an exemplary embodiment of the present invention, the error correction code to be processed includes a turbo code. The processing module 520 can implement the process of calling a pre-trained convolutional neural network model to process the error correction code to be processed, so as to obtain the decoded bit likelihood corresponding to the error correction code to be processed in the following way: Call two pre-trained convolutional neural network models to process the turbo code, to obtain the decoded bit likelihood corresponding to the turbo code, wherein the two convolutional neural network models are connected through an interleaving and de-interleaving mechanism.
[0091] In an exemplary embodiment of the present invention, the two convolutional neural network models include a first convolutional neural network model and a second convolutional neural network model. The processing module 520 can implement the process of calling two pre-trained convolutional neural network models to process the turbo code, to obtain the decoded bit likelihood corresponding to the turbo code in the following way: Input the turbo code, the information obtained by de-interleaving the extrinsic information output by the second convolutional neural network model in the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information into the first convolutional neural network model, to obtain the extrinsic information output by the first convolutional neural network model in the subsequent iteration step, wherein the first puncturing information corresponds to the turbo code and the first parity check sequence; Perform interleaving processing on the extrinsic information output by the first convolutional neural network model in the subsequent iteration step and the information obtained by de-interleaving the extrinsic information output by the second convolutional neural network model in the previous iteration step, to obtain the first interleaved information in the subsequent iteration step; Input the first interleaved information in the subsequent iteration step, the second parity check sequence corresponding to the first interleaved information, and the second puncturing information into the second convolutional neural network model, to obtain the extrinsic information output by the second convolutional neural network model in the subsequent iteration step, wherein the second puncturing information corresponds to the turbo code and the second parity check sequence; Obtain a preset number of iteration steps, and repeat the step of inputting the turbo code, the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information into the first convolutional neural network model according to the preset number of iteration steps until the step of obtaining the extrinsic information output by the second convolutional neural network model at the subsequent iteration step, so as to obtain the extrinsic information output by the second convolutional neural network model obtained by repeating according to the preset number of iteration steps; Based on the extrinsic information output by the second convolutional neural network model obtained by repeating according to the preset number of iteration steps, obtain the decoded bit likelihood corresponding to the turbo code.
[0092] In an exemplary embodiment of the present invention, the processing module 520 may implement the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step in the following manner: Perform deinterleaving processing on the extrinsic information output by the second convolutional neural network model at the previous iteration step and the first interleaved information at the previous iteration step to obtain the information after deinterleaving the extrinsic information output by the second convolutional neural network model at the previous iteration step.
[0093] In an exemplary embodiment of the present invention, the processing module 520 may implement pre-training the convolutional neural network model in the following manner: Obtain a plurality of different error correction code training data with a preset code rate; Based on the error correction code training data with the preset code rate, determine the training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data; Based on the error correction code training data with the preset code rate and the training signal-to-noise ratio, determine a training data set; Train the convolutional neural network model based on the training data set to obtain a trained convolutional neural network model.
[0094] Figure 6 Illustrates a schematic diagram of the physical structure of an electronic device, such as Figure 6As shown in the figure, the electronic device may include: a processor 610, a communications interface 620, a memory 630, and a communication bus 640. Among them, the processor 610, the communications interface 620, and the memory 630 complete communication with each other through the communication bus 640. The processor 610 may call the logical instructions in the memory 630 to execute an error correction code decoding method, which includes: obtaining an error correction code to be processed, where the error correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; obtaining a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood.
[0095] In addition, when the logical instructions in the above-mentioned memory 630 can be implemented in the form of software functional units and sold or used as an independent product, they can be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present invention. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROM, Read-Only Memory), random access memories (RAM, Random Access Memory), magnetic disks, or optical discs that can store program codes.
[0096] On the other hand, the present invention also provides a computer program product, which includes a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the error-correction code decoding method provided by each of the above methods. The method includes: obtaining an error-correction code to be processed, where the error-correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error-correction code to be processed to obtain a decoded bit likelihood corresponding to the error-correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error-correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; based on the decoded bit likelihood, obtaining a decoding result corresponding to the error-correction code to be processed.
[0097] In another aspect, the present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, it is implemented to execute the error-correction code decoding method provided by each of the above methods. The method includes: obtaining an error-correction code to be processed, where the error-correction code to be processed includes puncturing information; calling a pre-trained convolutional neural network model to process the error-correction code to be processed to obtain a decoded bit likelihood corresponding to the error-correction code to be processed, where the convolutional neural network model includes a first sub-module, a second sub-module, a long short-term memory network module, and a fully connected layer, where the first sub-module is used to perform dimensionality increase processing on the error-correction code to be processed, and the second sub-module is used to perform dimensionality increase processing on the puncturing information; based on the decoded bit likelihood, obtaining a decoding result corresponding to the error-correction code to be processed.
[0098] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art can understand and implement it without creative labor.
[0099] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on such an understanding, the above technical solutions, in essence, or the part that contributes to the prior art can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.
[0100] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention 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 for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for decoding an error correction code, characterized in that: The method comprises: Obtaining an error correction code to be processed, wherein the error correction code to be processed includes puncturing information; Calling a pre-trained convolutional neural network model to process the error correction code to be processed, and obtaining a decoded bit likelihood corresponding to the error correction code to be processed, wherein the convolutional neural network model includes a first submodule, a second submodule, a long short-term memory network module, and a fully connected layer, wherein the first submodule is used to perform dimensionality increase processing on the error correction code to be processed, and the second submodule is used to perform dimensionality increase processing on the puncturing information; Based on the decoded bit likelihood, a decoding result corresponding to the error correction code to be processed is obtained.
2. The error correction code decoding method according to claim 1, characterized in that: The error correction code to be processed includes a convolutional code, and the calling of the pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed is implemented in the following manner: Inputting the convolutional code into the first submodule in the convolutional neural network model to obtain a dimensionally upgraded input embedding output by the first submodule corresponding to the convolutional code; Inputting the puncture information into the second submodule in the convolutional neural network model, and obtaining the dimension-upgraded puncture embedding corresponding to the puncture information output by the second submodule; Combining the dimension-upgraded input embedding and the dimension-upgraded punctured embedding by element-by-element multiplication to obtain a combined embedding; Embedding the combined processed information into the long short-term memory network module input into the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module, wherein the high-dimensional information representation of the convolutional code is used to characterize the coding context of the entire sequence of the convolutional code; The high-dimensional information representation about the convolutional code is input into the fully connected layer in the convolutional neural network model to obtain the decoded bit likelihood corresponding to the convolutional code output by the fully connected layer.
3. The error correction code decoding method according to claim 2, characterized in that: Before embedding the combined processed data into the long short-term memory network module in the convolutional neural network model to obtain the high-dimensional information representation of the convolutional code output by the long short-term memory network module, the method further includes: Normalizing the combined embedding to obtain a normalized combined embedding; The step of embedding the combined processed data into the long short-term memory network module input into the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module specifically includes: The normalized combined processing is embedded into the long short-term memory network module input into the convolutional neural network model to obtain a high-dimensional information representation of the convolutional code output by the long short-term memory network module.
4. The error correction code decoding method according to claim 1, characterized in that: The error correction code to be processed includes a turbo code, and the calling of a pre-trained convolutional neural network model to process the error correction code to be processed to obtain a decoded bit likelihood corresponding to the error correction code to be processed is implemented in the following manner: Two pre-trained convolutional neural network models are called to process the turbo code to obtain a decoded bit likelihood corresponding to the turbo code, wherein the two convolutional neural network models are connected through an interleaving and de-interleaving mechanism.
5. The error correction code decoding method according to claim 4, characterized in that: The two convolutional neural network models include a first convolutional neural network model and a second convolutional neural network model, and the two pre-trained convolutional neural network models are called to process the turbo code to obtain the decoded bit likelihood corresponding to the turbo code, which is implemented in the following manner: Inputting a turbo code, information after deinterleaving the extrinsic information output by the second convolutional neural network model at a previous iteration step, a first parity check sequence corresponding to the turbo code, and first puncturing information into the first convolutional neural network model to obtain extrinsic information output by the first convolutional neural network model at a subsequent iteration step, wherein the first puncturing information corresponds to the turbo code and the first parity check sequence, and the previous iteration step and the subsequent iteration step are adjacent iteration steps; Interleaving the extrinsic information output by the first convolutional neural network model at a later iteration step and the deinterleaved information output by the second convolutional neural network model at a previous iteration step to obtain first interleaved information at a later iteration step; Inputting the first interleaved information at a later iteration number, the second parity check sequence corresponding to the first interleaved information, and the second puncturing information into the second convolutional neural network model to obtain external information output by the second convolutional neural network model at a later iteration number, wherein the second puncturing information corresponds to the turbo code and the second parity check sequence; Obtain a preset number of iteration steps, and repeatedly execute the step of inputting the turbo code, the information after deinterleaving the external information output by the second convolutional neural network model at the previous iteration step, the first parity check sequence corresponding to the turbo code, and the first puncturing information into the first convolutional neural network model according to the preset number of iteration steps, to the step of obtaining the external information output by the second convolutional neural network model at the subsequent number of iteration steps, so as to obtain the external information output by the second convolutional neural network model obtained after repeatedly executing the preset number of iteration steps; Based on the external information output by the second convolutional neural network model obtained after repeated execution according to the preset number of iterations, a decoded bit likelihood corresponding to the turbo code is obtained.
6. The error correction code decoding method according to claim 5, characterized in that: The information after deinterleaving the external information output by the second convolutional neural network model at the previous iteration step is obtained in the following manner: The external information output by the second convolutional neural network model at the previous iteration step and the first interleaved information at the previous iteration step are deinterleaved to obtain the deinterleaved information of the external information output by the second convolutional neural network model at the previous iteration step.
7. The error correction code decoding method according to any one of claims 1 to 6, characterized in that: The convolutional neural network model is pre-trained in the following way: Acquire a plurality of different error correction code training data with a preset code rate; Based on the error correction code training data having a preset code rate, determining a training signal-to-noise ratio corresponding to the preset code rate of the error correction code training data; Determining a training data set based on the error correction code training data with a preset code rate and the training signal-to-noise ratio; The convolutional neural network model is trained based on the training data set to obtain a trained convolutional neural network model.
8. An error correction code decoding device, characterized in that: The device comprises: An acquisition module, used for acquiring an error correction code to be processed, wherein the error correction code to be processed includes puncturing information; A processing module, used to call a pre-trained convolutional neural network model to process the error correction code to be processed, and obtain a decoded bit likelihood corresponding to the error correction code to be processed, wherein the convolutional neural network model includes a first submodule, a second submodule, a long short-term memory network module and a fully connected layer, wherein the first submodule is used to perform dimensionality increase processing on the error correction code to be processed, and the second submodule is used to perform dimensionality increase processing on the puncturing information; A decoding module is used to obtain a decoding result corresponding to the error correction code to be processed based on the decoded bit likelihood.
9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the error correction code decoding method according to any one of claims 1 to 7 is implemented.
10. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the error correction code decoding method according to any one of claims 1 to 7 is implemented.