Tail-biting convolutional coding method and device, electronic device and storage medium

By converting the serial output of the tail biting convolution encoder into a two-dimensional generation matrix, and performing matrix conversion and parallel encoding based on the characteristics of generation polynomials, the problem of low encoding processing speed in the prior art is solved, and more efficient encoding processing is achieved.

CN112953566BActive Publication Date: 2025-05-16JIXIN COMM TECH (NANJING) CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202110090675.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-22
Publication Date
2025-05-16
Estimated Expiration
2041-01-22

AI Technical Summary

Technical Problem

The existing tail bite convolution coding methods have shortcomings in encoding processing speed, especially when processing large-scale data, the traditional bit-by-bit input and output method leads to a lower encoding processing speed.

Method used

By converting the serial output of the tail biting convolution encoder into a two-dimensional generation matrix, and converting the large matrix into a small matrix based on the characteristics of generating polynomials, and coding in parallel with the preset lookup table, fast parallel processing is achieved.

Benefits of technology

It greatly shortens the encoding time, improves the encoding processing speed, reduces the demand for logic and storage resources, and reduces power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112953566B_ABST
    Figure CN112953566B_ABST
Patent Text Reader

Abstract

The present invention provides a tail-biting convolutional coding method and device, electronic device and storage medium, wherein the method comprises: encoding the serial output of the tail-biting convolutional encoder in one dimension of a bit stream, and extracting time information, based on the time information, converting the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder; based on the characteristics of the generator polynomial, converting the two-dimensional generator matrix into a plurality of partition matrices; based on each of the partition matrices and their corresponding preset lookup tables, parallel encoding the input code matrix and outputting it, wherein the preset lookup table is a table listing all matching input vectors and output vectors corresponding to the partition matrices. The present invention obtains the encoding results of multiple continuous input information at the same time through limited and few steps, greatly reducing power consumption, shortening encoding time, and using storage resources in exchange for increased encoding speed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communication technology, and in particular to a tail-biting convolutional coding method and system. Background Art

[0002] Tail-biting convolutional coding is a special convolutional coding that sets the initial value of the encoder's shift register to the tail bit value of the input data stream so that the initial and final states of the shift register are the same. Compared with ordinary convolutional coding, tail-biting convolutional coding overcomes the bit rate loss during encoding and is suitable for iterative decoding. Tail-biting convolutional coding is used for encoding broadcast channels and some control information in 5G communications.

[0003] In the tail-biting convolutional coding process, there are many processing methods. The general processing method is to input data in the form of a bit stream, bit by bit, and output it according to the processing rules set by the convolutional encoder. Although the existing improved processing methods use a local parallel method, each parallel path still uses the general processing method of bit-by-bit input and output, which has limited improvement speed, so there is a problem of low encoding processing speed.

[0004] In the encoding process of tail-biting convolutional code, the input information bits are grouped and encoded. The encoded output bits of each code group are not only related to the information bits of the group, but also to the information bits of other groups at the previous moment. Therefore, the general processing method is to input data in the form of bit stream, bit by bit, and output according to the processing rules set by the convolution encoder.

[0005] The patent "Tail-biting convolutional coding processing method, device and communication equipment" with application number CN201910477226.3 involves a tail-biting convolutional coding processing method, device and communication equipment, wherein the tail-biting convolutional coding processing method includes: obtaining the unit to be encoded of the input data; the unit to be encoded includes 32 bits; performing coding initialization processing according to the register initial value variable and the unit to be encoded to obtain the input word variable; performing tail-biting convolution coding on each bit of the unit to be encoded according to the word variable mapped by each generating polynomial coefficient and the input word variable, and obtaining the encoded data corresponding to the unit to be encoded; any word variable includes four identical byte variables mapped by the corresponding generating polynomial coefficient. In the tail-biting convolutional coding processing, the byte variables mapped by each generating polynomial coefficient are used, and each word variable formed after repeated mapping is expanded, so that the input data is converted from byte coding processing to word coding processing.

[0006] The basic operation unit of the above method is realized by generating polynomials and shifting the calculation bit by bit. The speed improvement depends on the number of parallel paths of the implementation structure, which is only 4N times higher than the general method. However, the larger N is, the more logic resources are required, which increases exponentially and the power consumption is also greater, which is not conducive to implementation. Summary of the invention

[0007] The present invention provides a tail-biting convolutional coding method and device, electronic equipment and storage medium, which are used to solve the technical defects existing in the prior art.

[0008] The present invention provides a tail-biting convolutional coding method, comprising:

[0009] Encode the serial output of the tail-biting convolutional encoder in one dimension of the bit stream, extract the time information, and based on the time information, convert the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder;

[0010] Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices;

[0011] Based on each of the divided matrices and the corresponding preset lookup table, the input code matrix is ​​encoded in parallel and then output;

[0012] The preset lookup table is a table that lists all matching input vectors and output vectors corresponding to the matrix.

[0013] Preferably, the tail-biting convolutional coding method, wherein the step of converting the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder based on the time information includes an output coding matrix, wherein the output coding matrix includes: the coding formula of m consecutive moments from time k to time k+m-1 is represented by a matrix, that is, the coding output d k~ d k+m-1 is a two-dimensional output matrix with m rows and 1 column, and the two-dimensional output matrix is ​​equal to the two-dimensional generator matrix with m rows and m+n columns multiplied by the input code c with m+n rows and 1 column k-n~ c k+m-1 , where k, m, and n are natural numbers.

[0014] Preferably, in the tail-biting convolutional coding method, the output coding matrix further includes an extended coding matrix, and the extended coding matrix includes: adding n rows of d after the two-dimensional output matrix k+m~ d k+m+n-1 , the two-dimensional extended matrix is ​​obtained, in which each row is the adjacent upper row shifted right by one column, the first column is filled with zeros, and the last row has only one non-zero element g0.

[0015] Preferably, the tail-biting convolutional coding method, wherein the extended coding matrix further includes coding blocks for the two-dimensional extended matrix, and the coding blocks specifically include: the first n+1 rows of the nth column of the extended coding matrix are [g n g n-1 gn-2 … g1 g0], the last m-1 columns are 0, and each subsequent column is formed by moving the elements of the previous column down by one row, with the first row filled with 0; where r is a number divisible by m, for c k~ c k+m-1 The average block is m / r matrices with r rows and 1 column. k-n ~c k-1 The r codes from the back to the front are grouped together, until the remaining codes smaller than r are grouped together, and a two-dimensional block matrix is ​​obtained.

[0016] Preferably, the tail-biting convolutional coding method, wherein the coding block further includes grouping the two-dimensional block matrix, specifically comprising: dividing the first n columns of the two-dimensional block matrix into matrices, wherein the first matrix is ​​m+n rows and r′ columns, wherein r′=n mod r, and the rest are matrices of m+n rows and r columns; the last m columns of the two-dimensional generator matrix are divided into m / r matrices, all of which are matrices of m+n rows and r columns.

[0017] Preferably, in the tail-biting convolutional coding method, wherein the value of r is between n / 2 and n, the first matrix of the two-dimensional generation matrix is ​​an upper triangular matrix G′ with r′ rows and r′ columns, and a zero matrix with m+nr′ rows and r′ columns; the second matrix is ​​a matrix G″ with n rows and r columns and an m row and r column zero matrix; the following m / r matrices are all composed of a matrix G″′ with n+r rows and r columns and a zero matrix with i times r rows and r columns spliced ​​up and down, wherein the first n+1 rows of the first column of G″′ are [g n g n-1 g n-2 … g1 g0], the next r-1 rows are 0, the second column is obtained by moving the first column down by one row and then padding the first row with zeros, and so on to the rth column.

[0018] Preferably, the tail-biting convolutional coding method, wherein the conversion of the two-dimensional generator matrix into a number of partition matrices based on the characteristics of the generator polynomial specifically includes: converting the two-dimensional generator matrix of m rows and m+n columns into 2+m / r partition matrices, wherein the first partition matrix is ​​the r′ row and r′ column matrix G′ multiplied by the r′ row and 1 column input code matrix; the second partition matrix is ​​the n row and r column matrix G″ multiplied by the r row and 1 column input code matrix; the remaining m / r matrix operations are all the n+r row and r column matrix G″′ multiplied by the r row and 1 column input code matrix.

[0019] The present invention provides a tail-biting convolutional encoding device, comprising:

[0020] A two-dimensional generator matrix determination module, used to encode the serial output of the tail-biting convolution encoder in one dimension of the bit stream, extract the time information, and convert the serial output of the tail-biting convolution encoder into a two-dimensional generator matrix of the tail-biting convolution encoder based on the time information;

[0021] A matrix determination module is used to convert the two-dimensional generator matrix into a plurality of matrixes based on the characteristics of the generator polynomial;

[0022] The parallel encoding module is used to perform parallel encoding on the input code matrix and output it based on each of the divided matrices and its corresponding preset lookup table. The preset lookup table is a table listing all matching input vectors and output vectors corresponding to the divided matrices.

[0023] The present invention also provides 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 program, the steps of any of the above-described tail-biting convolutional coding methods are implemented.

[0024] The present invention also provides a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of any of the above-described tail-biting convolutional coding methods.

[0025] The present invention converts the tail-biting convolution encoder into a two-dimensional matrix operation after extracting the time information by performing one-dimensional calculation in a serial manner according to the bit stream; at the same time, according to the characteristics of the generating polynomial, the large matrix is ​​converted into a few small matrices; finally, the tail-biting convolution encoding is performed quickly and in parallel in the form of a lookup table; at the same time, considering that the logic and storage resources should be minimized in the hardware implementation, according to the characteristics of the generating matrix, a plurality of small-scale lookup tables are used to realize large-scale parallel encoding. The encoding results of multiple continuous input information are obtained at the same time through limited and few steps. The encoding time is greatly shortened, and the storage resources are exchanged for the increase of the encoding speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In order to more clearly illustrate the technical solutions in the present invention or the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0027] Figure 1 It is one of the flow charts of the tail-biting convolutional coding method provided by the present invention;

[0028] Figure 2 It is a schematic diagram of the structure of the tail-biting convolutional encoding device provided by the present invention;

[0029] Figure 3 is a schematic diagram of the structure of an electronic device provided by the present invention;

[0030] Figure 4 is a schematic diagram of a convolutional encoder with a length of n according to Embodiment 1 provided by the present invention;

[0031] Figure 5 It is a schematic diagram of a convolutional encoder defined in 3GPP TS 36.212 of Example 2 provided by the present invention. DETAILED DESCRIPTION

[0032] In order to make the purpose, technical solution and advantages of the present invention clearer, the technical solution of the present invention will be clearly and completely described below in conjunction with the drawings of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0033] The embodiment of the present invention discloses a tail-biting convolutional coding method, see Figure 1 ,include:

[0034] S1: Encode the serial output of the tail-biting convolutional encoder in one dimension of the bit stream, extract the time information, and based on the time information, convert the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder;

[0035] S2: Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices;

[0036] S3: Based on each of the divided matrices and the corresponding preset lookup table, the input code matrix is ​​encoded in parallel and then output;

[0037] The preset lookup table is a table that lists all matching input vectors and output vectors corresponding to the matrix.

[0038] Among them, a two-dimensional matrix is ​​known. This two-dimensional matrix is ​​multiplied by a one-dimensional vector (input vector). The number of elements of the one-dimensional vector is the number of columns of the two-dimensional matrix. The result is a one-dimensional vector (output vector) with the number of elements equal to the number of rows of the two-dimensional matrix. Each input vector corresponds to a result output vector. All matching input vectors and output vectors are listed in a table. This table is the preset lookup table. The input vector is used as the RAM address and the output vector is used as the storage content of the RAM. The preset lookup table can be stored in the RAM.

[0039] The present invention converts the tail-biting convolution encoder into a two-dimensional matrix operation after extracting the time information by performing one-dimensional calculation in a serial manner according to the bit stream; at the same time, according to the characteristics of the generating polynomial, the large matrix is ​​converted into a few small matrices; finally, the tail-biting convolution encoding is performed quickly and in parallel in the form of a lookup table; at the same time, considering that the logic and storage resources should be minimized in the hardware implementation, according to the characteristics of the generating matrix, a plurality of small-scale lookup tables are used to realize large-scale parallel encoding. The encoding results of multiple continuous input information are obtained at the same time through limited and few steps. The encoding time is greatly shortened, and the storage resources are exchanged for the increase of the encoding speed.

[0040] The step of converting the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder based on the time information includes an output encoding matrix, wherein the output encoding matrix includes: the encoding formula of m consecutive moments from time k to time k+m-1 is represented by a matrix, that is, the encoding output d k~ d k+m-1 is a two-dimensional output matrix with m rows and 1 column, and the two-dimensional output matrix is ​​equal to the two-dimensional generator matrix with m rows and m+n columns multiplied by the input code c with m+n rows and 1 column k-n ~c k+m-1 , where k, m, and n are natural numbers. The elements of the first n+1 columns of the first row of the generator matrix are the coefficients of the convolutional code generator polynomial [g0 g1 g2 … g n-1 g n ], the next m-1 columns are all 0; the second row is the first row of elements shifted right by one column, and the first column is padded with 0; going down in sequence, the left m-1 columns of the last row are all 0, and the next n+1 columns are the coefficients of the convolutional code generating polynomial.

[0041] For the convenience of explanation, the matrix is ​​expanded, and the output coding matrix also includes an extended coding matrix, and the extended coding matrix includes: adding n rows of d after the two-dimensional output matrix k+m ~d k+m+n-1 , the two-dimensional extended matrix is ​​obtained, where each row is the adjacent row above shifted right by one column, the first column is filled with zeros, and the last row has only one non-zero element g0. The input code matrix remains unchanged. The expansion does not affect d k~ d k+m-1 As a result, the increase of d k+m ~d k+m+n-1 It can be used to calculate the initial value of the next group of code blocks.

[0042] The extended coding matrix also includes coding blocks for the two-dimensional extended matrix, and the coding blocks specifically include: the first n+1 rows of the nth column of the extended coding matrix are [g n g n-1 g n-2… g1 g0], the last m-1 columns are 0, and each subsequent column is formed by moving the elements of the previous column down by one row, with the first row filled with 0; where r is a number divisible by m, for c k~ c k+m-1 The average block is m / r matrices with r rows and 1 column. k-n ~c k-1 The r codes from the back to the front are grouped together, until the remaining codes smaller than r are grouped together, and a two-dimensional block matrix is ​​obtained.

[0043] The coding block further includes grouping the two-dimensional block matrix, specifically including: grouping the columns of the two-dimensional generator matrix G according to the row block rule of the input code matrix, dividing the first n columns of the two-dimensional block matrix into matrices, wherein the first matrix is ​​m+n rows and r′ columns, wherein r′=n mod r, and the rest are matrices of m+n rows and r columns; the last m columns of the two-dimensional generator matrix are divided into m / r matrices, all of which are matrices of m+n rows and r columns.

[0044] Because the order n of the generating polynomial is usually a very small number, and also to simplify the explanation, the value of r is between n / 2 and n. The first matrix of the two-dimensional generating matrix is ​​an upper triangular matrix G′ with r′ rows and r′ columns, and a zero matrix with m+nr′ rows and r′ columns; the second matrix is ​​a matrix G″ with n rows and r columns and an m row and r column zero matrix; the following m / r matrices are all composed of a matrix G″′ with n+r rows and r columns and a zero matrix with i times r rows and r columns spliced ​​up and down, where the first n+1 rows of the first column of G″′ are [g n g n-1 g n-2 … g1 g0], the next r-1 rows are 0, the second column is obtained by moving the first column down by one row and then padding the first row with zeros, and so on to the rth column.

[0045] The method of converting the two-dimensional generator matrix into several partition matrices based on the characteristics of the generator polynomial specifically includes: converting the two-dimensional generator matrix of m rows and m+n columns into 2+m / r partition matrices, wherein the first partition matrix is ​​the matrix G′ of r′ rows and r′ columns multiplied by the input code matrix of r′ rows and 1 column; the second partition matrix is ​​the matrix G″ of n rows and r columns multiplied by the input code matrix of r rows and 1 column; the remaining m / r matrix operations are all the matrix G″′ of n+r rows and r columns multiplied by the input code matrix of r rows and 1 column. These 2+m / r small matrix operations are implemented by 2+m / r lookup tables, and the corresponding lookup tables are T1, T2, T3_1, …, T3_m.

[0046] T1: input r′ bits, output r′ bits;

[0047] T2: input r bits, output n bits;

[0048] T3_0,…,T3_m-1 are the same m lookup tables, with r bits of input and n+r bits of output.

[0049] Therefore, the final encoding result is obtained by shifting all 2+m / r corresponding results and adding them in the Galois field. k+i ,

[0050] When i is less than nr, d k+i It is obtained by adding the i-th bit output by T1, T2, and T3_0;

[0051] When i is greater than or equal to nr and i is less than r, d k+i It is obtained by adding the i-th bit output by T2 and T3_0;

[0052] When i is greater than or equal to r and i is less than n, d k+i It is obtained by adding the i-th bit of T2, the i-th bit of T3_0, and the i-th bit of T3_1;

[0053] When i is greater than or equal to n+j*r and i is less than (j+2)*n, d k+i It is obtained by adding the ij*rth bit of T3_j and the i-(j+1)*rth bit of T3_j+1; wherein j is an integer less than m / r.

[0054] When i is greater than or equal to (j+2)*n and i is less than n+(j+1)*r, d k+i It is obtained by adding the ij*rth bit of T3_j, the i-(j+1)*rth bit of T3_j+1, and the i-(j+2)*rth bit of T3_j+2; where j is an integer less than m / r.

[0055] Specifically, the present invention also provides the following three embodiments.

[0056] like Figure 4 As shown, Example 1 is a convolutional encoder structure with a length of n:

[0057] Where k is the moment C k-1 , C k-2 , C k-3 ,…,C k-n is the initial value of the encoder n registers. Figure 4 The output at time k is:

[0058] d k =g0×C k-n +g1×C k-n+1 +…+g n-1 ×C k-1 +g n×C k (5-1)

[0059] Similarly, the output at time k+1 is:

[0060] d k+1 =g0×C k-n+1 +g1×C k-n+2 +…+g n-1 ×C k +g n ×C k+1 (5-2)

[0061] Similarly, the output at time k+2 is:

[0062] d k+2 =g0×C k-n+2 +g1×C k-n+3 +…+g n-1 ×C k+1 +g n ×C k+2 (5-3)

[0063] Similarly, the output at time k+m-1 is: d k+m-1 =g0×C k-n+m-1 +g1×C k-n+m +…+g n-1 ×C k+m-2 +g n ×C k4m-1 (5-4)

[0064] According to the matrix multiplication principle, (5-1)(5-2)(5-3)(5-4) can be written as (5-5):

[0065]

[0066] set up: Where m is any real number, It is only related to the encoder structure. This formula shows that when the encoder structure is known, any bit data input can be processed in parallel.

[0067] For the convenience of explanation, n redundant codes d are added to the tail of the matrix on the left side of the formula. k+m ~d k+m+n-1 , n redundant rows are added to the tail of the corresponding generator matrix. These redundant parts do not affect d k ~d k+m-1 The calculation result of .

[0068]

[0069] m: code length for parallel processing;

[0070] n: the order of the generating polynomial;

[0071] r: code length of input code unit;

[0072] n is divided by r and rounded up;

[0073] Divide m by r and round up; let m be a multiple of r.

[0074]

[0075]

[0076]

[0077]

[0078]

[0079] Therefore, formula (5-6) can be decomposed into the multiplication and sum of multiple small matrices, see (5-6-1), (5-6-2), (5-6-3), (5-6-4), and (5-6-5).

[0080] set up:

[0081]

[0082]

[0083]

[0084]

[0085] Formula (5-6) is expressed as formula (5-7):

[0086]

[0087] Usually the order n of the generating polynomial is much smaller than m, and n is smaller than 2r, so formula (5-7) can be written as formula (5-8):

[0088]

[0089] It can be seen from formula (5-8) that after conversion, only the following three matrix multiplications need to be calculated:

[0090]

[0091]

[0092]

[0093] By storing all possible results of the matrix into a lookup table, the matrix operation becomes a process of searching for results based on the input information. The respective lookup tables T1, T2, and T3 are obtained from the above three matrices.

[0094] The calculation of matrix multiplication (5-8-1) corresponds to the lookup table T1, the input is (n-(s-1)*r) bits, and the output is also (n-(s-1)*r) bits;

[0095] The calculation lookup table T2 of matrix multiplication (5-8-2) has r bits of input and n bits of output;

[0096] The calculation lookup table T3 of matrix multiplication (5-8-3) has r bits of input and n+r bits of output;

[0097] It can be seen that the t+2 matrix multiplications on the right side of formula (5-8) can be obtained by looking up tables T1, T2, and T3 to obtain t+1 sets of results, and then the corresponding rows are added to obtain the final result d k ~d k+m-1 .

[0098] Formula (5-8) requires the use of t lookup tables T3 to complete the k ~d k+m-1 Parallel computing, these t T3 are represented as T3_0, ...T3_t-1 respectively;

[0099] represents the i-th bit of the output result of the lookup table T1;

[0100] represents the i-th bit of the output result of the lookup table T2;

[0101] represents the i-th bit of the output result of the lookup table T3_0;

[0102] represents the i-th bit of the output result of the lookup table T3_1;

[0103] …

[0104] Represents the i-th bit of the output result of the lookup table T3_t-1;

[0105] Then formula (5-9) is obtained from formula (5-8):

[0106]

[0107] According to formula (5-9), the d of each encoded bit is obtained in parallel k+i (where: 0≤i≤m+n).

[0108] Embodiment 2 provides a convolutional encoder defined in 3GPP TS 36.212, with 128 parallel inputs and 384 parallel outputs.

[0109] Take the convolutional encoder defined in 3GPP TS 36.212 as an example. Figure 5 , The generator matrix is ​​different, corresponding to different lookup tables, but the calculation process is the same, so here we only use the output For example.

[0110] 36.212 specifies that the initial value of the encoder's shift register should be set to the value corresponding to the last 6 information bits in the input stream so that the initial and final states of the shift register are the same.

[0111] Easy to get n=6, substituting into (5-5) we get:

[0112]

[0113] When looking up the table with 4 bits, that is, when r = 4, G′, G″, G are respectively:

[0114]

[0115]

[0116]

[0117] Assume m = 128, that is, the input is 128 bits. Substitute the values ​​of m, n, r, t into formula (5-8) to obtain formula (7-3):

[0118]

[0119] Similarly, formula (7-4) is obtained from formula (5-9):

[0120]

[0121] Corresponding lookup table

[0122] T1: 2 bits input, 2 bits output;

[0123] T2: 4 bits input / 6 bits output;

[0124] T3: 4 bits input / 10 bits output;

[0125] because and The input codes are exactly the same, and the calculation order and process are the same, so The lookup table and Merge into new lookup tables NT1, NT2, NT3:

[0126] NT1: Input 2 bits, output 6 bits (the first 2 bits are The result is that the middle 2 bits are The result is that the last 2 bits are result.

[0127] NT2: Input 4 bits, output 18 bits (the first 6 bits are The result is that the middle 6 bits are The result, the last 6 bits are result.

[0128] NT3: Input 4 bits, output 30 bits (the first 10 bits are The result is that the middle 10 bits are The result is that the last 10 bits are result.

[0129] Embodiment 3 provides a parallel lookup table method for a convolutional code with an input of 128 bits and an output of 384 bits.

[0130] Configure the lookup table NT1 in the initial value INT_0;

[0131] The lookup table NT2 is configured in the initial value INT_1;

[0132] MUX is used to select the initial value at the beginning. Otherwise, it will select the redundant output corresponding to the previous group of 128 bits, that is, the value of formula (7-3)

[0133] LUT0-3 each includes 8 SRAMs, each SRAM is configured with 16 30-bit keywords, and all 32 SRAMs are configured with a lookup table NT3.

[0134] The convolutional code XOR data path implements the Galois field operation in formula (7-4).

[0135] Since the proposed architecture processes 128 bits of data per cycle, in some cases, the last block may contain less than 128 bits of data, so it is necessary to consider how to speed up the last input block. Since the current input in the convolutional code only affects the current moment and the next 6 moments, and has no effect on the previous moments. So if the last block contains less than 128 bits of data, it can be solved by padding the last block with n zeros to 128 bits, and then deleting the last n bits at the output moment.

[0136] The tail-biting convolutional coding device provided by the present invention is described below. The tail-biting convolutional coding device described below and the tail-biting convolutional coding method described above can be referenced to each other.

[0137] The embodiment of the present invention discloses a tail-biting convolutional coding device, see Figure 2 ,include:

[0138] A two-dimensional generator matrix determination module 10 is used to encode the serial output of the tail-biting convolution encoder in one dimension of the bit stream, extract the time information, and convert the serial output of the tail-biting convolution encoder into a two-dimensional generator matrix of the tail-biting convolution encoder based on the time information;

[0139] A matrix determination module 20, configured to convert the two-dimensional generator matrix into a plurality of matrixes based on the characteristics of the generator polynomial;

[0140] The parallel encoding module 30 is used to perform parallel encoding on the input code matrix and output it based on each of the divided matrices and its corresponding preset lookup table. The preset lookup table is a table listing all matching input vectors and output vectors corresponding to the divided matrices.

[0141] Figure 3 An example of a physical structure diagram of an electronic device is shown, and the electronic device may include: a processor 310, a communication interface 320, a memory 330, and a communication bus 340, wherein the processor 310, the communication interface 320, and the memory 330 communicate with each other through the communication bus 340. The processor 310 may call the logic instructions in the memory 330 to execute a tail-biting convolutional coding method, which includes:

[0142] S1: Encode the serial output of the tail-biting convolutional encoder in one dimension of the bit stream, extract the time information, and based on the time information, convert the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder;

[0143] S2: Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices;

[0144] S3: Based on each of the divided matrices and its corresponding preset lookup table, the input information is encoded in parallel and then output.

[0145] In addition, the logic instructions in the above-mentioned memory 330 can be implemented in the form of a software functional unit and can be stored in a computer-readable storage medium when it is sold or used as an independent product. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk and other media that can store program codes.

[0146] On the other hand, the present invention further provides a computer program product, the computer program product comprising a computer program stored on a non-transitory computer-readable storage medium, the computer program comprising program instructions, and when the program instructions are executed by a computer, the computer can perform a tail-biting convolutional encoding method, the method comprising:

[0147] S1: Encode the serial output of the tail-biting convolutional encoder in one dimension of the bit stream, extract the time information, and based on the time information, convert the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder;

[0148] S2: Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices;

[0149] S3: Based on each of the divided matrices and its corresponding preset lookup table, the input code matrix is ​​encoded in parallel and then output.

[0150] In another aspect, the present invention further provides a non-transitory computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, a tail-biting convolutional coding method is implemented, the method comprising:

[0151] S1: Encode the serial output of the tail-biting convolutional encoder in one dimension of the bit stream, extract the time information, and based on the time information, convert the serial output of the tail-biting convolutional encoder into a two-dimensional generator matrix of the tail-biting convolutional encoder;

[0152] S2: Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices;

[0153] S3: Based on each of the divided matrices and its corresponding preset lookup table, the input code matrix is ​​encoded in parallel and then output.

[0154] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.

[0155] Through the description of the above implementation methods, those skilled in the art can clearly understand that each implementation method 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 this understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a software product, and the computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, a disk, an optical disk, etc., including a number of instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.

[0156] 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 it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A tail-biting convolutional coding method, characterized in that: include: Inputting the input code bit by bit in the form of a bit stream into the tail-biting convolutional encoder, so as to encode the serial input of the tail-biting convolutional encoder in one dimension of the bit stream, and obtain the serial output of the tail-biting convolutional encoder; wherein the serial output is the one-dimensional encoding result outputted bit by bit by the tail-biting convolutional encoder in time sequence, and the one-dimensional encoding result at time k is obtained by weighted summing the coefficients of the convolutional code generator polynomial and the input code from time kn to time k; Extracting the time information, and based on the time information, converting the serial output of the tail-biting convolutional encoder into a form represented by the product between the two-dimensional generator matrix of the tail-biting convolutional encoder and the input code matrix; The two-dimensional generator matrix is ​​a matrix of m rows and m+n columns; the elements of the first n+1 columns of the first row are the coefficients of the convolutional code generator polynomial [g0, g1, g2, ..., g n-1 , g n ], the elements of the last m-1 columns of the first row are all 0; the elements of the second row are obtained by shifting the column elements of the first row right by one column and filling the first column with 0; going down in sequence, the elements of the first m-1 columns of the last row are all 0, and the elements of the last n+1 columns are the coefficients of the convolutional code generating polynomial in sequence; Based on the characteristics of the generator polynomial, the two-dimensional generator matrix is ​​converted into a plurality of partition matrices; Based on each of the divided matrices and the corresponding preset lookup table, the input code matrix is ​​encoded in parallel and then output; The preset lookup table is a table that lists all matching input vectors and output vectors corresponding to the matrix.

2. The tail-biting convolutional coding method according to claim 1, characterized in that: The method of converting the serial output of the tail-biting convolutional encoder into a form represented by the product of the two-dimensional generator matrix of the tail-biting convolutional encoder and the input code matrix based on the time information includes an output coding matrix, wherein the output coding matrix includes: the coding formula of m consecutive moments from time k to time k+m-1 is represented by a matrix, that is, the coding output d k ~d k+m-1 is a two-dimensional output matrix with m rows and 1 column, and the two-dimensional output matrix is ​​equal to the two-dimensional generator matrix with m rows and m+n columns multiplied by the input code c with m+n rows and 1 column k-n ~c k+m-1 , where k, m, and n are natural numbers.

3. The tail-biting convolutional coding method according to claim 2, characterized in that: The output coding matrix also includes an extended coding matrix, which includes: adding n rows of d k+m ~d k+m+n-1 , and we get a two-dimensional extended matrix, where each row is the adjacent row above shifted right by one column, the first column is filled with zeros, and the last row has only one non-zero element g0.

4. The tail-biting convolutional coding method according to claim 3, characterized in that: The extended coding matrix also includes coding blocks for the two-dimensional extended matrix, and the coding blocks specifically include: the first n+1 rows of the nth column of the extended coding matrix are [g n g n-1 g n-2 …g1 g0], the last m-1 columns are 0, and each subsequent column is formed by moving the elements of the previous column down by one row, with the first row filled with 0; where r is a number divisible by m, for c k ~c k+m-1 The average block is m / r matrices with r rows and 1 column. k-n ~c k-1 The r codes from the back to the front are grouped together, until the remaining codes smaller than r are grouped together, and a two-dimensional block matrix is ​​obtained.

5. The tail-biting convolutional coding method according to claim 4, characterized in that: The coding block further includes grouping the two-dimensional block matrix, specifically including: dividing the first n columns of the two-dimensional block matrix into matrices, wherein the first matrix is ​​m+n rows and r′ columns, wherein r′=n mod r, and the rest are matrices of m+n rows and r columns; the last m columns of the two-dimensional generator matrix are divided into m / r matrices, all of which are matrices of m+n rows and r columns.

6. The tail-biting convolutional coding method according to claim 5, characterized in that: The value of r is between n / 2 and n. The first matrix of the two-dimensional generation matrix is ​​an upper triangular matrix G′ with r′ rows and r′ columns, and a zero matrix with m+nr′ rows and r′ columns; the second matrix is ​​a matrix G″ with n rows and r columns and a zero matrix with m rows and r columns; the following m / r matrices are all composed of a matrix G″′ with n+r rows and r columns and a zero matrix with i times r rows and r columns spliced ​​up and down, where the first n+1 rows of the first column of G″′ are [g n g n-1 g n-2 …g1g0], the next r-1 rows are 0, the second column is obtained by moving the first column down by one row and then padding the first row with zeros, and so on to the rth column.

7. The tail-biting convolutional coding method according to claim 1, characterized in that: The method of converting the two-dimensional generator matrix into several partition matrices based on the characteristics of the generator polynomial specifically includes: converting the two-dimensional generator matrix of m rows and m+n columns into 2+m / r partition matrices, wherein the first partition matrix is ​​the matrix G′ of r′ rows and r′ columns multiplied by the input code matrix of r′ rows and 1 column; the second partition matrix is ​​the matrix G″ of n rows and r columns multiplied by the input code matrix of r rows and 1 column; the remaining m / r matrix operations are all the matrix G″′ of n+r rows and r columns multiplied by the input code matrix of r rows and 1 column.

8. A tail-biting convolutional coding device, characterized in that: include: A two-dimensional generator matrix determination module is used to input the input code in the form of a bit stream, bit by bit, into a tail-biting convolutional encoder, so as to encode the serial input of the tail-biting convolutional encoder in one dimension of the bit stream to obtain a serial output of the tail-biting convolutional encoder; wherein the serial output is a one-dimensional encoding result outputted bit by bit by the tail-biting convolutional encoder in time sequence, and the one-dimensional encoding result at time k is obtained by weighted summing the coefficients of the convolutional code generator polynomial and the input code from time kn to time k; extracting time information, and based on the time information, converting the serial output of the tail-biting convolutional encoder into a form represented by the product between the two-dimensional generator matrix of the tail-biting convolutional encoder and the input code matrix; wherein the two-dimensional generator matrix is ​​a matrix of m rows and m+n columns; the elements of the first n+1 columns of the first row are the coefficients of the convolutional code generator polynomial [g0, g1, g2, ..., g n-1 , g n ], the elements of the last m-1 columns of the first row are all 0; the elements of the second row are obtained by shifting the column elements of the first row right by one column and filling the first column with 0; going down in sequence, the elements of the first m-1 columns of the last row are all 0, and the elements of the last n+1 columns are the coefficients of the convolutional code generating polynomial in sequence; A matrix determination module is used to convert the two-dimensional generator matrix into a plurality of matrixes based on the characteristics of the generator polynomial; The parallel encoding module is used to perform parallel encoding on the input code matrix and output it based on each of the divided matrices and its corresponding preset lookup table. The preset lookup table is a table listing all matching input vectors and output vectors corresponding to the divided matrices.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the steps of the tail-biting convolutional encoding method according to any one of claims 1 to 7 are 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 steps of the tail-biting convolutional encoding method as claimed in any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Tail biting convolution coding processing method and device and communication equipment

    CN110278055A

  • Transmitting apparatus and interleaving method thereof

    CN106464270A

  • LDPC encoder with two-stage partial parallel inputting accumulation left shift in DTMB

    CN106788457A