CNN-based convolutional code decoding method

Through the CNN-based convolutional coding decoding method, the training set is constructed and iteratively trained using the encoding characteristics of the convolutional code, which solves the performance degradation of the traditional convolutional coding decoding method under complex channel conditions, and realizes efficient and accurate convolutional coding decoding.

CN120150720APending Publication Date: 2025-06-1310TH RES INST OF CETC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510215151.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-26
Publication Date
2025-06-13

AI Technical Summary

Technical Problem

Traditional convolutional coding decoding methods show low decoding performance under complex channel conditions and consume large computing resources, resulting in increased decoding delay.

Method used

The convolutional coding decoding method based on CNN is adopted, and the training set is constructed by constructing the CNN model and using the encoding characteristics of the convolutional code, and iterative training is carried out to enable the neural network to independently learn robust features, thereby achieving efficient convolutional coding decoding.

Benefits of technology

Under complex channel conditions, the accuracy and efficiency of decoding are improved, the consumption of computing resources is reduced, the decoding delay is shortened, and the decoding accuracy can be maintained under the long constraint length.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120150720A_ABST
    Figure CN120150720A_ABST
Patent Text Reader

Abstract

The invention discloses a CNN-based convolutional code decoding method, and the method comprises the steps: determining key parameters of a training set for training a CNN model according to the coding characteristics of a convolutional code; the key parameters comprise the size and number of samples of a training set and labels corresponding to the samples; wherein the sample is from a demodulated binary code stream; the CNN model is trained through the training set, and a trained CNN model is obtained; and inputting a to-be-decoded convolutional code into the trained CNN model for decoding to obtain a decoding result, and performing error correction on the decoding result. According to the method and the device, the convolutional code can be efficiently and accurately decoded.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technologies, and particularly to a convolutional code decoding method based on CNN. Background Art

[0002] As a classic channel coding technology, convolutional codes are widely used in digital communication systems. By converting the information bit stream into a redundant code word stream, it enhances the anti-interference ability of the signal during channel transmission, thereby improving the reliability of the communication system. Convolutional codes have been widely applied in multiple fields such as mobile communication, satellite communication, and wireless sensor networks.

[0003] Traditional convolutional code decoding methods mainly include the Viterbi Algorithm and the Maximum Likelihood Decoding. These algorithms have good decoding performance under low bit error rates, but as the channel conditions deteriorate, the decoding performance will decline rapidly. In addition, the complexity of traditional algorithms is relatively high, especially when dealing with high-dimensional or long code words, the consumption of computing resources is large, and the decoding delay also increases accordingly. In recent years, with the rapid development of deep learning technologies, decoding methods based on neural networks have gradually attracted attention. Due to its powerful feature extraction ability in processing high-dimensional data such as images and speech, the Convolutional Neural Network (CNN) has become a potential tool to replace traditional convolutional code decoding algorithms. According to the encoding characteristics of convolutional codes, modeling the decoding process of convolutional codes as a deep learning task, CNN can learn more robust features under complex channel conditions, thereby improving the accuracy and efficiency of decoding. Summary of the Invention

[0004] In view of this, this application provides a convolutional code decoding method based on CNN, which is applicable to the receiving end in a digital communication system, aiming to solve the problem that the convolutional code decoding is affected by bit errors caused by noise and other interference factors.

[0005] This application discloses a convolutional code decoding method based on CNN, which includes:

[0006] Step 1: Determine the key parameters of the training set for training the CNN model according to the convolutional code encoding characteristics; the key parameters include the sample size, quantity of the training set, and the labels corresponding to the samples; wherein, the samples are derived from the demodulated binary code stream;

[0007] Step 2: Train the CNN model with the training set to obtain a trained CNN model;

[0008] Step 3: Input the convolutional code to be decoded into the trained CNN model for decoding, obtain the decoding result and correct errors for it.

[0009] Further, the said Step 1 includes:

[0010] Step 11: Preprocess the samples in the training set; the preprocessing includes segmenting the demodulated one-dimensional binary code stream, and each segment of data corresponds to an error rate, so as to ensure that each sample includes multiple different error rates;

[0011] Step 12: On the basis of knowing the convolutional code parameters (n, 1, m), construct a sample set by using the preprocessed samples; each sample is used to simulate the state of each moment of the current codeword to be decoded in the register; 1 is the number of bits input to the convolutional encoder each time, n is the convolutional code output n-tuple codeword corresponding to each 1-tuple codeword, m is the coding storage degree, that is, the number of levels of the 1-tuple of the convolutional encoder, and m + 1 is the coding constraint degree;

[0012] Step 13: Slide according to the code length n, and the next sample starts from the next codeword;

[0013] Step 14: Construct the label data corresponding to the sample; the label data is the decoding result of the sample; each label is the one-hot encoding of the decoding result of the corresponding sample.

[0014] Further, in the said Step 12:

[0015] According to the coding characteristics of the convolutional code, it is known that there is a front-back constraint relationship between adjacent codewords, and its constraint length is related to the number of registers m. For the current codeword, there is a constraint relationship between it and the previous m - 1 and the next m - 1 codewords;

[0016] The size of each sample is at least (m, n * m), and the data of each row (1, n * m) corresponds to the relative positions of the current codeword and the previous m - 1 codewords in the register;

[0017] From the 1st to the mth row, show the relative position relationship of the current codeword and the previous m - 1 and the next m - 1 codewords at each moment in the register.

[0018] Further, in the said Step 14:

[0019] Each sample corresponds to u decoding results c i , c i+1 , …, c i+u-1 , that is, the decoding result corresponding to the first sample is c 1 , c 2 , …, c u , that is, the decoding result corresponding to the second sample is c 2 , c 3 , …, cu+1 , the decoding result corresponding to the v-th sample is c v , c v+1 , …, c v+u-1 ; construct tags by sliding with the information bits k, and start constructing the next tag data from the corresponding result of the next codeword.

[0020] Furthermore, the step 2 includes:

[0021] Step 21: The convolutional kernel slides on the input samples to perform a convolution operation and extract the features of the local regions of the samples;

[0022] Step 22: Train the CNN model according to the training set, introduce a regularization term, and configure the Adam optimizer.

[0023] Furthermore, in the step 21:

[0024] According to the register length m and the number of decoding results u corresponding to each sample, determine that the convolutional kernel size is (u, n*m), ensuring that each convolution is at least a set of data with a complete register length; where u is the height of the convolutional kernel and n*m is the width of the convolutional kernel; the convolutional kernel (u, n*m) slides with a stride of (1, n), including the states of u codewords at each moment in the register.

[0025] Furthermore, before the step 21, it also includes:

[0026] Perform edge padding before convolution to ensure that the convolutional kernel can cover the edges of the sample data; the size of the edge padding is set according to the size of the convolutional kernel, that is, padding (u - 1) in the vertical height of the convolutional kernel and padding n*(m - 1) in the horizontal width.

[0027] Furthermore, the step 3 includes:

[0028] The number of decoding results corresponding to each sample is u. Starting from the u-th codeword, the decoding result corresponding to each codeword appears in u tags, u >= 3; by comparing the decoding results of the previous and next tags among the u tags, determine the most likely decoding result of the codeword and correct it.

[0029] Furthermore, in the step 3:

[0030] Starting from the current sample to the u-th sample, its decoding result is [c i , c i+1 , …, c i+u-1 , [c i+1 , c i+2 , …, c i+u , …, [c i+u-1 , c i+u , …, ci+u+u ; if the last u-1 results of the previous group and the first u-1 results of the next group among the decoding results of two adjacent groups are different, there is a decoding error interval in the decoding results; then, the first result and the last result of the decoding error interval are used as the starting and ending states, and error correction is performed through the state transition relationship.

[0031] Further, the using the first result and the last result of the decoding error interval as the starting and ending states, and performing error correction through the state transition relationship includes:

[0032] If the transfer path is uniquely determined according to the starting and ending states and the transfer step size, the results of the error interval are replaced to achieve error correction; where the transfer step size is the interval length minus 1;

[0033] If there are multiple transfer paths that meet the conditions according to the starting and ending states and the transfer step size, the last 1 bit of the next decoding result in the interval is used as the basis to determine the next state; if the transfer path that meets the requirements still cannot be uniquely determined in the end, the first path that meets the transfer step size is defaulted as the error correction result;

[0034] If there is no path that meets the transfer step size between the starting and ending states, find the longest path that is less than the transfer step size.

[0035] Due to the adoption of the above technical solution, the present application has the following advantages:

[0036] 1. Based on the known convolutional code parameters (n, 1, m), the present application constructs a CNN model, constructs a training set according to the encoding characteristics of the convolutional code, and through multiple iterative trainings of the decoding model, the powerful feature extraction ability of the neural network is used for autonomous learning to obtain a trained neural network decoding model. The convolutional code is decoded by the neural network through this model, the decoding error interval is identified, and error correction is performed according to the state transition principle to achieve efficient decoding of the convolutional code.

[0037] 2. The present application can also obtain good decoding accuracy in the case of a long constraint length.

[0038] 3. The present application provides decoding and error correction of convolutional codes with any code rate on the basis of the original code stream by constructing a CNN model, and can effectively cope with the influence of bit errors.

[0039] 4. The present application gives the specific implementation process of convolutional code error correction decoding, can customize the requirements, automatically complete the decoding according to the requirements, and is simple and easy to implement with a relatively fast decoding speed. Description of the Drawings

[0040] To more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the accompanying drawings required for the description of the embodiments. Obviously, the accompanying drawings in the following description are only some embodiments described in the embodiments of the present application. For those of ordinary skill in the art, other accompanying drawings can also be obtained based on these drawings.

[0041] Figure 1 It is a schematic flowchart of a convolutional code decoding method based on CNN according to an embodiment of the present application;

[0042] Figure 2 It is a schematic diagram of the decoding and error correction performance of a (2,1,3) non-systematic convolutional code at different bit error rates according to an embodiment of the present application;

[0043] Figure 3 It is a schematic diagram of the error correction and decoding performance of a (2,1,6) non-systematic convolutional code at different bit error rates according to an embodiment of the present application;

[0044] Figure 4 It is a schematic diagram of the error correction and decoding performance of a (2,1,35) systematic convolutional code at different bit error rates according to an embodiment of the present application. Specific Embodiments

[0045] The present application will be further described in conjunction with the accompanying drawings and embodiments. The described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. All other embodiments obtained by those of ordinary skill in the art shall fall within the scope of protection of the embodiments of the present application.

[0046] See Figure 1 , the present application provides an embodiment of a convolutional code decoding method based on CNN, which includes:

[0047] Step 1: Determine the key parameters of the training set for training the CNN model according to the convolutional code encoding characteristics; the key parameters include the sample size, quantity of the training set, and the labels corresponding to the samples; among them, the samples are derived from the demodulated binary code stream;

[0048] Step 2: Train the CNN model with the training set to obtain a trained CNN model; the CNN model includes an input layer, a convolutional layer, a fully connected layer, and an output layer;

[0049] Step 3: Input the convolutional code to be decoded into the trained CNN model for decoding, and obtain the decoding result and perform error correction on it.

[0050] Optionally, Step 1 includes:

[0051] Step 11: Preprocess the samples in the training set; the preprocessing includes segmenting the demodulated one-dimensional binary code stream, and each segment of data corresponds to an error rate, so as to ensure that each sample includes multiple different error rates, thereby enhancing the robustness and generalization ability of the model; in order to ensure the decoding performance of the CNN model for the code stream data under different channel conditions, it is necessary to ensure that the training set data contains multiple error rates;

[0052] Step 12: On the basis of known convolutional code parameters (n, 1, m), construct a sample set using the preprocessed samples; each sample is used to simulate the state of the current codeword to be decoded at each moment in the register; 1 is the number of bits input to the convolutional encoder each time, n is the convolutional code output n-tuple codeword corresponding to each 1-tuple codeword, m is the coding storage degree, that is, the number of stages of the 1-tuple of the convolutional encoder, and m + 1 is the coding constraint degree;

[0053] Step 13: Slide according to the code length n, and the next sample starts from the next codeword;

[0054] Step 14: Construct the label data corresponding to the sample; the label data is the decoding result of the sample; each label is the one-hot encoding of the decoding result of the corresponding sample.

[0055] Optionally, in Step 12:

[0056] According to the coding characteristics of the convolutional code, it is known that there is a front-back constraint relationship between adjacent codewords, and its constraint length is related to the number of registers m. For the current codeword, there is a constraint relationship between it and the previous m - 1 and the next m - 1 codewords;

[0057] The size of each sample is at least (m, n * m). Taking the codeword as the unit, each row of data (1, n * m) corresponds to the relative positions of the current codeword and the previous m - 1 codewords in the register;

[0058] From the 1st to the mth row, show the relative position relationship of the current codeword and the previous m - 1 and the next m - 1 codewords at each moment in the register.

[0059] Optionally, in order to completely represent the relative position relationship of each codeword and the previous m - 1 and the next m - 1 codewords at each moment in the register, it is necessary to fill in zeros before the first codeword, and the number of filled zeros is the second dimension size of the sample minus n.

[0060] Optionally, in Step 14:

[0061] Each sample corresponds to u decoding results c i , c i+1 , …, c i+u-1 , that is, the decoding result corresponding to the first sample is c 1 , c 2 , …, cu , the decoding result corresponding to the second sample is c 2 , c 3 , …, c u+1 , the decoding result corresponding to the v-th sample is c v , c v+1 , …, c v+u-1 ; Use the information bit k to slide and construct tags, and the next tag data starts to be constructed from the corresponding result of the next codeword.

[0062] Optionally, step 2 includes:

[0063] Step 21: The convolutional kernel slides on the input samples to perform a convolution operation to extract the features of the local regions of the samples;

[0064] Step 22: Train the CNN model according to the training set. During the training process, introduce a regularization term to prevent overfitting; and configure an Adam optimizer to ensure that the CNN model can update the weights efficiently with an appropriate step size and stability.

[0065] Optionally, in step 21:

[0066] The size of the convolutional kernel should be set based on the number of registers m, ensuring that each convolution is at least a set of data with the full length of a register. Specifically, determine the convolutional kernel (u, n*m) according to the register length m and the number of decoding results u corresponding to each sample, ensuring that each convolution is at least a set of data with the full length of a register; where u is the height of the convolutional kernel and n*m is the width of the convolutional kernel; the convolutional kernel (u, n*m) slides with a step size of (1, n), including the states of u codewords in the register at each moment.

[0067] Optionally, before step 21, it also includes:

[0068] Perform edge padding before convolution to ensure that the convolutional kernel can cover the edges of the samples, thereby retaining more information and helping the convolutional neural network better extract the features of the input data; the size of the edge padding is set according to the size of the convolutional kernel, that is, the padding height on the top and bottom of the convolutional kernel is both u - 1, and the padding width on the left and right of the convolutional kernel is both n*(m - 1).

[0069] Optionally, step 3 includes:

[0070] The number of decoding results corresponding to each sample is u. Starting from the u-th codeword, the decoding result corresponding to each codeword appears in u tags, u >= 3; by comparing the decoding results of the previous and next tags among the u tags, determine the most likely decoding result of the codeword and correct it.

[0071] Optionally, in step 3:

[0072] Starting from the current sample to the \(u\)-th sample, the decoding result is \([c i , c i+1 , …, c i+u-1 , [c i+1 , c i+2 , …, c i+u , …, [c i+u-1 , c i+u , …, c i+u+u ; if the last \(u - 1\) results of the previous group and the first \(u - 1\) results of the next group among adjacent two groups of decoding results are not the same, there is a decoding error interval in the decoding result; then take the first result and the last result of the decoding error interval as the starting and ending states, and perform error correction through the state transition relationship.

[0073] Optionally, taking the first result and the last result of the decoding error interval as the starting and ending states, and performing error correction through the state transition relationship includes:

[0074] If the transition path is uniquely determined according to the starting and ending states and the transition step size, then replace the result of the error interval to achieve error correction; where the transition step size is the interval length minus 1;

[0075] If there are multiple transition paths that meet the conditions according to the starting and ending states and the transition step size, then use the last 1 bit of the next decoding result in the interval as the basis to determine the next state; if finally the transition path that meets the requirements still cannot be uniquely determined, then by default take the first path that meets the transition step size as the error correction result;

[0076] If there is no path that meets the transition step size between the starting and ending states, then look for the longest path that is less than the transition step size.

[0077] For the convenience of understanding, the present application takes the convolutional code \((2, 1, 3)\) as an example to elaborate on the specific implementation process of the present application.

[0078] S1: Construct a training set for the preprocessed data. The size of each sample is at least \((3, 6)\), and here the sample size \((4, 6)\) is taken. Samples in the following form are obtained. Each sample has 4 rows of data, and each row has 6 bits, that is, 3 codewords. Taking 3 samples as an example for illustration:

[0079] is the 1st sample, is the 2nd sample, It is the 3rd sample. The 2nd sample is the arrangement result after the 1st sample slides by one codeword, and the 3rd sample is the arrangement result after the 2nd sample slides by one more codeword. For the current codeword, the situation of insufficient previous codewords is solved by padding zeros. For a sample of size (4,6), the relative position relationship between the 1st - 2nd codewords in the sample and the previous m - 1 and the subsequent m - 1 codewords at each moment can be completely represented. The 3rd row in each sample is the codeword to be decoded for the current sample, which are [11,10,10], [10,10,11] and [10,11,01] respectively.

[0080] Each sample corresponds to decoding three groups of codewords. For example, the 1st sample is [11,10,10], and the sample label is the one - hot encoding (unique hot encoding) of the decoding result. The decoding results corresponding to the codewords to be decoded in the above 3 samples are [1,1,0], [1,0,1] and [0,1,1] respectively. Therefore, the labels are 00000010, 00000100 and 00010000 respectively.

[0081] S2: Build a CNN model according to the above training set. Determine the convolutional kernel size (u, 2*m) and the sliding step size (1, n), that is, (3,6) and (1,2). Then perform edge padding. The padding height on the upper and lower sides of the convolutional kernel is 2, and the padding width on the left and right sides of the convolutional kernel is 4. Finally, introduce regularization and the Adam optimizer to train the network.

[0082] S3: The trained network can be used to decode any (2,1,3) encoded data. Among the decoding results of two adjacent samples, the last 2 bits of the decoding result of the previous sample are the same as the first 2 bits of the decoding result of the next sample because they correspond to the same codeword. Thus, if for the same codeword, the decoding results of different samples are different, it indicates that there is a problem with the decoding here.

[0083] According to the above CNN model, decode the test set with a bit error rate of 10 -4 Locate the interval with decoding errors in the decoding result by the above method. The first result and the last result of the interval are correct. Consider them as the starting and ending two states, and perform error correction through the state transition relationship. Specifically, it can be divided into the following 3 situations:

[0084] Situation 1: The transition path can be uniquely determined according to the starting and ending states and the transition step size. The specific implementation method is as follows:

[0085] If the error interval in the decoding result of the above CNN model is [83437, 83439], that is, the decoding results of the 83437th, 83438th, and 83439th samples for the same codeword are different, which are 001, 110, and 101 respectively. It can be seen that in this interval, the last 2 bits of the first decoding result are different from the first 2 bits of the second decoding result. At this time, there is an error in decoding and error correction is required. Regarding the decoding results 001 and 101 of the 83437th and 83439th samples as the starting and ending states respectively, find the path from state '001' to state '101' in 2 steps. Without repetition, there are 3 paths from state '001' to '101', namely ['001', '010', '101'], ['001', '011', '110', '101'], and ['001', '011', '111', '110', '101'], and the step lengths are 2, 3, and 4 respectively. At this time, a path with a step length of 2 can be uniquely determined and used to replace the original result to complete the error correction here. Compared with the known label, the corrected result is consistent with the correct label, and the error correction is successful at this time.

[0086] Case 2: If there are multiple transfer paths that meet the conditions, then use the 3rd bit of the decoding result of the next sample in the interval as the decoding result of the third codeword of this sample, and thus determine the next state. If the transfer path that meets the requirements still cannot be uniquely determined in the end, by default, the first path that meets the transfer step length is used as the error correction result. The specific implementation method is as follows:

[0087] If the error interval in the decoding result of the above CNN model is [301919, 301923], that is, the decoding results of the 301919th, 301920th, 301921st, 301922nd and 301923rd samples for the same codeword are different, which are 011, 101, 010, 010 and 011 respectively. It can be seen that in this interval, the last 2 bits of the first decoding result are different from the first 2 bits of the second decoding result; the last 2 bits of the third decoding result are different from the first 2 bits of the fourth decoding result; the last 2 bits of the fourth decoding result are different from the first 2 bits of the fifth decoding result. At this time, there is an error in decoding and error correction is required. Regarding the decoding results 011 and 011 of the 301919th and 301923rd samples as the starting and ending states, find the path from state '011' to state '011' after 4 steps. Without repetition, there are a total of 14 paths from state '011' to '011', and there are two paths with a step length of 4, namely ['011', '110', '100', '001', '011'] and ['011', '111', '110', '101', '011']. The 3rd bit of the decoding result of the second sample is 1, so choose the path with the second state being '111'. At this time, the unique path can be determined, that is, ['011', '111', '110', '101', '011'], and replace the original result with it to complete the error correction here. Comparing with the known label, the corrected result is consistent with the correct label, and the error correction is successful at this time.

[0088] Case 3: If there is no path that satisfies the transfer step length according to the starting and ending states, then find the longest path shorter than the transfer step length.

[0089] If there are two states '000' and '111' in this path, then by adding the state '000' or '111', the transfer step length of this path can be made to meet the conditions. The specific implementation method is as follows:

[0090] If the error interval in the decoding result of the above CNN model is [623, 626], that is, the decoding results of the 623rd, 624th, 625th, and 626th samples for the same codeword are different, which are 101, 110, 101, and 111 respectively. It can be seen that in this interval, the last 2 bits of the first decoding result are different from the first 2 bits of the second decoding result; the last 2 bits of the third decoding result are different from the first 2 bits of the fourth decoding result. At this time, there is an error in decoding and error correction is required. Regarding the decoding results 101 and 111 of the 623rd and 626th samples as the starting and ending states, find the path from state '101' to state '111' in 3 steps. It is known that, without repetition, there are 3 paths from state '101' to '111', namely ['101', '011', '111'], ['101', '010', '100', '001', '011', '111'], and ['101', '010', '100', '000', '001', '011', '111'], and the step lengths are 2, 5, and 6 respectively. At this time, the required step length is 3, so choose the longest step length less than 3, that is, the first path with a transfer step length of 2. There is a state '111' in this path, so fill in the state '111' after it to get the path ['101', '011', '111', '111'], replace the original result, and complete the error correction here. Comparing with the known label, the corrected result is consistent with the correct label, and the error correction is successful at this time.

[0091] If the starting and ending states in this path are '010' and '101' or '101' and '010' respectively, and the transfer step length is 3, then it can be determined that the path must be ['010', '101', '010', '101'] and ['101', '010', '101', '010']. The specific situation is as follows:

[0092] If the error interval in the decoding result of the above CNN model is [205385, 205388], that is, the decoding results of the 205385th, 205386th, 205387th, and 205388th samples for the same codeword are different, which are 101, 000, 110, and 010 respectively. It can be seen that in this interval, the last 2 bits of the first decoding result are different from the first 2 bits of the second decoding result; the last 2 bits of the second decoding result are different from the first 2 bits of the third decoding result; the last 2 bits of the third decoding result are different from the first 2 bits of the fourth decoding result. At this time, there is an error in decoding and error correction is required. Regarding the decoding results 101 and 010 of the 205385th and 205388th samples as the start and end states, the start and end states are '101' and '010' at this time, and the transfer step size is 3, so the unique determined path is ['101', '010', '101', '010'], replacing the original result to complete the error correction here. Comparing with the known label, the corrected result is consistent with the correct label, and the error correction is successful at this time.

[0093] Otherwise, it is considered that error correction cannot be performed.

[0094] Taking the convolutional code (2,1,6) as an example in the embodiments of this application, the specific process of neural network decoding of a 1 / 2 rate convolutional code with a relatively large number of registers is shown:

[0095] S11: Similar to the above embodiments, a training set is constructed for the preprocessed data. Here, the sample size is taken as (2×6 + 1, 2×2×6), that is, (13, 24). To a certain extent, the larger the sample, the more comprehensive the expression of the relative position relationship between the current codeword to be decoded and the surrounding codewords, and the better the decoding performance. Taking the codeword as the unit and taking three samples as an example, the following form of samples is obtained. First is the first sample example, followed by the second sample example, and finally the third sample example. The first 3 rows of codewords in the rightmost 2 columns of the first sample example, the second sample example, and the third sample example are [11, 01, 11], [01, 11, 11], and [11, 11, 00] respectively, which are the codewords that need to be decoded for the current sample.

[0096] The first sample example:

[0097]

[0098] The second sample example:

[0099]

[0100] The third sample example:

[0101]

[0102] Here, each sample corresponds to three groups of coded words to be decoded, and the sample label is the one-hot encoding of the decoding result. The three samples to be decoded above have coded words [11, 01, 11], [01, 11, 11], and [11, 11, 00] respectively, and the corresponding decoding results are [1, 0, 0], [0, 0, 0], and [0, 0, 0] respectively. Therefore, the labels are 00001000, 10000000, and 10000000 respectively.

[0103] S12: Build a CNN model according to the above training set. Determine that the convolution kernel size is (3, 12), and the sliding step size is (1, 2). Then perform edge padding. The padding height above and below the convolution kernel is 2, and the padding width on the left and right of the convolution kernel is 10. Finally, introduce regularization and the Adam optimizer to train the network.

[0104] S13: The trained network can be used to decode any (2, 1, 6) encoded data. Similar to the embodiment of the convolutional code (2, 1, 3), locate the error interval after decoding and correct the error.

[0105] Figure 2 It is a schematic diagram of the decoding and error correction performance of the (2, 1, 3) non-systematic convolutional code under different bit error rates in the embodiment of the present application; Figure 3 It is a schematic diagram of the error correction and decoding performance of the (2, 1, 6) non-systematic convolutional code under different bit error rates in the embodiment of the present application; Figure 4 It is a schematic diagram of the error correction and decoding performance of the (2, 1, 35) systematic convolutional code under different bit error rates in the embodiment of the present application.

[0106] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application and are not intended to limit them. Although the present application has been described in detail with reference to the above embodiments, those of ordinary skill in the art should understand that: the specific implementation manners of the present application can still be modified or equivalently replaced, and any modification or equivalent replacement that does not depart from the spirit and scope of the present application should be covered by the protection scope of the claims of the present application.

Claims

1. A convolutional code decoding method based on CNN, characterized in that: include: Step 1: According to the convolutional code encoding characteristics, determine the key parameters of the training set for training the CNN model; the key parameters include the sample size and quantity of the training set, and the labels corresponding to the samples; wherein the samples come from the demodulated binary code stream; Step 2: Train the CNN model using the training set to obtain a trained CNN model; Step 3: Input the convolutional code to be decoded into the trained CNN model for decoding, obtain the decoding result and perform error correction on it.

2. The method according to claim 1, characterized in that The step 1 comprises: Step 11: preprocessing the samples in the training set; the preprocessing includes segmenting the binary code stream after one-dimensional demodulation, each segment of data corresponds to a bit error rate, so as to ensure that each sample includes a variety of different bit error rates; Step 12: Based on the known convolutional code parameters (n, 1, m), a sample set is constructed using the preprocessed samples; each sample is used to simulate the state of the current codeword to be decoded in the register at each moment; 1 is the number of bits input to the convolutional encoder each time, n is the convolutional code output n-tuple codeword corresponding to each 1-tuple codeword, m is the encoding storage degree, that is, the number of 1-tuple levels of the convolutional encoder, and m+1 is the encoding constraint degree; Step 13: Slide according to the code length n, and the next sample starts from the next code word; Step 14: Construct the label data corresponding to the sample; the label data is the decoding result of the sample; each label is the one-hot encoding of the corresponding sample decoding result.

3. The method according to claim 2, characterized in that In step 12: According to the characteristics of convolutional code encoding, it is known that adjacent codewords have a constraint relationship between the front and the back. The constraint length is related to the number of registers m. For the current codeword, there is a constraint relationship between it and the previous m-1 and the next m-1 codewords. The size of each sample is at least (m,n*m), and each row of (1,n*m) data corresponds to the relative position of the current codeword and the previous m-1 codewords in the register; From the 1st to the mth row, the relative position relationship between the current code word and the previous m-1 and next m-1 code words in the register at each moment is displayed.

4. The method according to claim 2, characterized in that: In step 14: Each sample corresponds to u decoding results c i ,c i+1 ,…,c i+u-1 , that is, the decoding result corresponding to the first sample is c1,c2,…,c u , the decoding result corresponding to the second sample is c2,c3,…,c u+1 , the decoding result corresponding to the vth sample is c v ,c v+1 ,…,c v+u-1 ; Use information bit k to slide and construct the label, and the next label data is constructed starting from the corresponding result of the next codeword.

5. The method according to claim 1, characterized in that The step 2 comprises: Step 21: The convolution kernel performs a convolution operation by sliding on the input sample data to extract the features of the local area of ​​the data sample; Step 22: Train the CNN model according to the training set, introduce regularization terms, and configure the Adam optimizer.

6. The method according to claim 5, characterized in that In step 21: According to the register length m and the number of decodes u corresponding to each sample, the convolution kernel size is determined to be (u, n*m), ensuring that at least each convolution is a set of data of a complete register length; where u is the height of the convolution kernel and n*m is the width of the convolution kernel; the convolution kernel (u, n*m) slides with a step size of (1, n), containing the status of u codewords in the register at each moment.

7. The method according to claim 5 or 6, characterized in that: Before step 21, the method further includes: Edge padding is performed before convolution to ensure that the convolution kernel can cover the edges of the sample data; the size of the edge padding is set according to the size of the convolution kernel, that is, the convolution kernel is padded with (u-1) at the top and bottom heights, and the left and right padding width is n*(m-1).

8. The method according to claim 1, characterized in that: The step 3 comprises: The number of decodings corresponding to each sample is u. Starting from the u-th codeword, the decoding result corresponding to each codeword appears in u labels, u>=3; by comparing the decoding results of the previous and next labels in u labels, the most likely decoding result of the codeword is determined and corrected.

9. The method according to claim 1, characterized in that: In step 3: Starting from the current sample to the uth sample, the decoding result is [c i ,c i+1 ,…,c i+u-1 ],[c i+1 ,c i+2 ,…,c i+u ],…,[c i+u-1 ,c i+u ,…,c i+u+u ]; if the last u-1 results of the first group of two adjacent groups of decoding results are different from the first u-1 results of the second group, there is a decoding error interval in the decoding results; the first result and the last result of the decoding error interval are used as the starting and ending states, and error correction is performed through the state transition relationship.

10. The method according to claim 9, characterized in that The first result and the last result of the decoding error interval are used as the starting and ending states, and error correction is performed through the state transition relationship, including: If the transfer path is uniquely determined based on the start and end states and the transfer step length, the error interval result is replaced to achieve error correction; wherein the transfer step length is the interval length minus 1; If there are multiple transfer paths that meet the conditions according to the start and end states and the transfer step length, the next state is determined based on the last 1 bit of the next decoding result in the interval; if the transfer path that meets the requirements cannot be uniquely determined in the end, the first path that meets the transfer step length is used as the error correction result by default; If there is no path between the starting and ending states that satisfies the transfer step length, then find the longest path that is smaller than the transfer step length.