LDPC coding method, device, base station and readable storage medium
By segmenting and shifting the original LDPC coded data to generate verification information, the problems of large delay and high resource consumption in the prior art are solved, and a more efficient encoding process is achieved.
Patent Information
- Application Number
- CN201910754120.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-08-15
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2039-08-15
AI Technical Summary
In the prior art, LDPC encoding delay and resource consumption are large, and there is a problem of low encoding efficiency.
By obtaining the encoded original data and the expansion factor, the data is segmented based on the expansion factor, and the shift value is determined based on the expansion factor, and verification information is generated to complete the encoding.
It breaks the dependence between various verification information during the encoding process, shortens the encoding delay, and improves resource utilization and encoding efficiency.
Smart Images

Figure CN112398483B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to an LDPC encoding method, device, base station and readable storage medium. Background Art
[0002] Channel coding is an important component of wireless communication systems, and together with multiple access technology and multiple-input multiple-output technology, it constitutes the three key technologies of 5G air interface.
[0003] Since the Shannon formula was published, a variety of error correction coding methods have emerged, which are divided into two categories: block codes and trellis codes. Due to the limitation of the number of states, trellis codes are suitable for short codes, and the decoding complexity of the two is exponentially related to the code length.
[0004] The Turbo code currently used in 4G is a long code, and its coding performance is close to the Shannon limit. Turbo code adopts a parallel cascade recursive structure, and its component code uses a systematic convolutional code. The introduction of interleaving between encoders reduces the correlation of information between encoders and imitates the random coding form; in decoding, the Soft-in-Soft-out decoding algorithm and the decoding form of information feedback are used to make the Turbo code closer to the Shannon limit. The disadvantage of Turbo code is that the decoding complexity is large, and when the code block length is large, the interleaver delay consumption is too large.
[0005] With the advent of 5G technology, 3GPP has determined that 5G communications will use LDPC codes as long code block coding schemes. LDPC codes are linear block codes with sparse check matrices, which not only have good performance close to the Shannon limit, but also have low decoding complexity and flexible structure.
[0006] LDPC coding structures of different structures have a great impact on throughput, and the hardware resource consumption varies significantly. Summary of the invention
[0007] The embodiments of the present invention provide an LDPC coding method, an apparatus, a base station and a readable storage medium, which are used to solve the problems of large LDPC coding delay and large resource consumption in the prior art.
[0008] In a first aspect, an embodiment of the present invention provides an LDPC encoding method, the method comprising the following steps:
[0009] Acquire coded original data and an expansion factor, and segment the coded original data based on the expansion factor to obtain segmented coded data;
[0010] A shift value is determined according to the expansion factor, and check information is generated based on the shift value and the segmented coded data to complete the coding.
[0011] Optionally, after obtaining the encoded original data and the expansion factor, the method further includes:
[0012] A coding base matrix is selected according to the length of the coded original data and the extension factor.
[0013] Optionally, after segmenting the encoded original data based on the expansion factor to obtain segmented encoded data, the method further includes:
[0014] The segmented coded data is stored.
[0015] Optionally, determining the shift value according to the expansion factor includes:
[0016] The shift value of the encoding basic matrix corresponding to the extension factor is calculated according to the check formula for generating check information in the basic matrix.
[0017] Optionally, after determining the shift value according to the expansion factor, the method further includes:
[0018] Determine a coding intermediate value according to the coding original data, the coding basic matrix and the shift value;
[0019] The generating of the check information based on the shift value and the segmented coded data comprises:
[0020] The check information is generated based on the encoded intermediate value starting from the shift value.
[0021] In a second aspect, an embodiment of the present invention provides an LDPC encoding device, the device comprising:
[0022] A data processing module, used to obtain the coded original data and the expansion factor, and to segment the coded original data based on the expansion factor to obtain segmented coded data, and to determine a shift value according to the expansion factor;
[0023] A check information generation module is used to generate check information based on the shift value and the segmented coded data to complete the coding.
[0024] Optionally, the data processing module is used to select a coding basic matrix according to the length of the encoded original data and the expansion factor.
[0025] Optionally, the device further comprises:
[0026] A storage module is used to store the segmented coded data.
[0027] Optionally, the data processing module is used to calculate the shift value of the encoding basic matrix corresponding to the extension factor according to the verification formula for generating verification information in the basic matrix.
[0028] Optionally, the data processing module is further used to determine a coding intermediate value according to the coding original data, the coding basic matrix and the shift value;
[0029] The verification information generation module is used to generate verification information according to the encoded intermediate value starting from the shift value.
[0030] In a third aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a program for implementing information transmission is stored, and when the program is executed by a processor, the steps of the aforementioned encoding method are implemented.
[0031] In a fourth aspect, an embodiment of the present invention provides a base station, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the steps of the aforementioned encoding method when executed by the processor.
[0032] The embodiment of the present invention obtains segmented coded data by segmenting the original coded data based on the expansion factor, determines the shift value according to the expansion factor, and generates verification information based on the shift value and the segmented coded data to complete the encoding, thereby solving the problems of large coding delay and large resource consumption in the prior art and achieving positive technical effects.
[0033] The above description is only an overview of the technical solution of the present invention. In order to more clearly understand the technical means of the present invention, it can be implemented according to the contents of the specification. In order to make the above and other purposes, features and advantages of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are listed below. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be considered as limiting the present invention. Moreover, the same reference symbols are used throughout the accompanying drawings to represent the same components. In the accompanying drawings:
[0035] Figure 1 This is a schematic diagram of the flow chart of the first embodiment of the present invention;
[0036] Figure 2 A flow chart of obtaining segmented coded data in the first embodiment of the present invention;
[0037] Figure 3 Schematic diagram of the structure of the device according to the second embodiment of the present invention.
[0038] Figure 4 This is a schematic diagram of data processing of a device according to a second embodiment of the present invention;
[0039] Figure 5 is a basic matrix of the expansion factor 512 of the third embodiment of the present invention;
[0040] Figure 6 is a pre-shifted basic matrix of the expansion factor 512 according to the third embodiment of the present invention;
[0041] Figure 7 is a basic matrix with an expansion factor of 256 according to the fourth embodiment of the present invention;
[0042] Figure 8 is a pre-shifted basic matrix with an expansion factor of 256 according to the fourth embodiment of the present invention; DETAILED DESCRIPTION
[0043] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
[0044] In a first aspect, a first embodiment of the present invention provides an LDPC encoding method, such as Figure 1 As shown, the method comprises the following steps:
[0045] Step S1: Obtaining coded original data and an expansion factor, and segmenting the coded original data based on the expansion factor to obtain segmented coded data.
[0046] Step S2: storing the segmented coded data.
[0047] Step S3: Determine a shift value according to the expansion factor, and generate check information based on the shift value and the segmented coded data to complete the coding.
[0048] The embodiment of the present invention obtains segmented coded data by segmenting the coded original data based on the expansion factor, determines the shift value according to the expansion factor, and generates verification information based on the shift value and the segmented coded data to complete the encoding, thereby breaking the dependence between the verification information in the encoding process, thereby solving the problems of large coding delay and large resource consumption in the prior art.
[0049] Optionally, in an optional embodiment of the present invention, the encoded original data is segmented based on the expansion factor to obtain segmented encoded data, such as Figure 2 As shown, including:
[0050] Step S11: selecting a coding basic matrix according to the length of the coded original data and the expansion factor;
[0051] Step S12: segmenting the encoded original data based on the expansion factor to obtain segmented encoded data.
[0052] Specifically, in this embodiment, the coding basic matrix is divided into two parts, the left side is a non-check matrix, and the right side is a check matrix. In this embodiment, there is a corresponding relationship between the basic matrix and the original coding data. For example, when the original coding data is Z×8, where Z is the expansion factor, the coding basic matrix can be selected as 18×26, where the non-check matrix is 18×8 and the check matrix is 18×18.
[0053] By adopting the above technical solution, the dependence between various check information in the encoding process can be broken by shifting the selected encoding basic matrix, and the encoding structure can be reasonably arranged, thereby improving the encoding efficiency.
[0054] Optionally, in an optional embodiment of the present invention, after segmenting the encoded original data based on the expansion factor to obtain segmented encoded data, the method further includes:
[0055] Step S2: storing the segmented coded data.
[0056] By storing the segmented coded data, it is possible to facilitate the scheduling of the data in later processing.
[0057] Optionally, in an optional embodiment of the present invention, determining the shift value according to the expansion factor includes:
[0058] The shift value of the encoding basic matrix corresponding to the extension factor is calculated according to the check formula for generating check information in the basic matrix.
[0059] Specifically, the shift value of the check matrix of the coding basic matrix corresponding to the expansion factor is calculated according to the check formula for generating the check information in the basic matrix. The method can be based on the basic matrix as a prototype, and the check formula for generating the check information according to the check matrix is used to calculate the cyclic shift information of each element, that is, the shift value, and generate the coding control information accordingly. Thus, the corresponding shift value of each element in the basic matrix is obtained, and the pre-shifted basic matrix can also be obtained according to the corresponding shift value calculation of the basic matrix.
[0060] Optionally, in another optional embodiment of the present invention, after determining the shift value according to the expansion factor, the method further includes:
[0061] An encoding intermediate value is determined according to the encoding original data, the encoding basic matrix and the shift value.
[0062] Specifically, in this embodiment, a modulo-2 addition operation can be performed on the encoded original data according to the non-check matrix on the left side of the encoding basic matrix, thereby obtaining a coding intermediate value. Specifically, a pre-shifted basic matrix can be obtained by calculating the encoding basic matrix according to the aforementioned shift value, and then a modulo-2 addition operation can be performed on the encoded original data through the pre-shifted basic matrix to obtain the coding intermediate value. After obtaining the coding intermediate value, the coding intermediate value can also be stored in this embodiment.
[0063] The generating of the check information based on the shift value and the segmented coded data comprises:
[0064] The check information is generated based on the encoded intermediate value starting from the shift value.
[0065] Specifically, after obtaining the encoded intermediate value, the verification information is generated according to the encoded intermediate value based on the aforementioned shift value as the starting position.
[0066] Compared with the prior art, the method described in the first embodiment of the present invention breaks the dependence between the various check information in the encoding process, rationally arranges the encoding structure, and adopts a parallel mechanism to shorten the encoding delay in the entire physical layer link; at the same time, this parallel mechanism improves the throughput of the entire system, so that encoding is no longer a bottleneck for improving the system throughput, and overcomes the problems and defects of large LDPC encoding delay, large resource consumption, and high hardware cost in the prior art.
[0067] In a second aspect, a second embodiment of the present invention provides an LDPC encoding device, such as Figure 3 As shown, the device comprises:
[0068] A data processing module, used to obtain the coded original data and the expansion factor, and to segment the coded original data based on the expansion factor to obtain segmented coded data, and to determine a shift value according to the expansion factor;
[0069] A check information generation module is used to generate check information based on the shift value and the segmented coded data to complete the coding.
[0070] In the embodiment of the present invention, a data processing module segments the encoded original data based on an expansion factor to obtain segmented encoded data, a shift value is determined according to the expansion factor, and a check information generation module generates check information based on the shift value and the segmented encoded data to complete the encoding, thereby breaking the dependence between the various check information in the encoding process, thereby solving the problem of compensation value solidification and inability to automatically correct existing in the prior art.
[0071] Optionally, in an optional embodiment of the present invention, the data processing module is used to select a coding basic matrix according to the length of the coded original data and the expansion factor;
[0072] The encoded original data is segmented based on the extension factor to obtain segmented encoded data.
[0073] Specifically, Figure 4 As shown, in this embodiment, the data processing module includes Figure 4 The data preprocessing module and pre-shift module in the embodiment of the present invention;
[0074] The data preprocessing module is used to select the encoding basic matrix according to the length of the encoded original data and the expansion factor, that is, according to Figure 4 The original length of the data before encoding and the expansion factor in the encoding base matrix are selected, and the segmented encoding data is obtained for the encoded original data based on the encoding base matrix, referring to Figure 4 Data preprocessing module outputs segmented data.
[0075] In this embodiment, the coding basic matrix is divided into two parts, the left side is a non-check matrix, and the right side is a check matrix. In this embodiment, there is a corresponding relationship between the basic matrix and the original coded data. For example, when the original coded data is Z×8, where Z is the expansion factor, the coding basic matrix can be selected as 18×26, where the non-check matrix is 18×8 and the check matrix is 18×18.
[0076] By adopting the above technical solution, the solution of selecting the coding basic matrix through the data preprocessing module can break the dependence between various check information in the coding process, reasonably arrange the coding structure, and thus improve the coding efficiency.
[0077] Optionally, in an optional embodiment of the present invention, the data processing module is used to calculate the shift value of the encoding basic matrix corresponding to the expansion factor according to the verification formula for generating verification information in the basic matrix.
[0078] Specifically, the data processing module calculates the shift value of the check matrix of the coding basic matrix corresponding to the expansion factor according to the check formula for generating the check information in the basic matrix. The pre-shift module of the data processing module can use the basic matrix as a prototype, and calculate the corresponding check information index of the shift jump according to the order of generating the check information by the check matrix, that is, the shift value, and generate the coding control information accordingly. Through the pre-shift module, the corresponding shift value of each element in the basic matrix is obtained, and the pre-shifted basic matrix can also be obtained according to the corresponding shift value calculation of the basic matrix.
[0079] Optionally, the data processing module is further used to determine a coding intermediate value according to the coding original data and the coding basic matrix;
[0080] Specifically, see Figure 4 The data processing module may further include an intermediate value calculation module. In this embodiment, the intermediate value calculation module may perform a modulo-2 addition operation on the coded original data according to the non-check matrix on the left side of the coding basic matrix. Specifically, the pre-shift basic matrix may be obtained according to the aforementioned pre-shift module, and a modulo-2 addition operation may be performed on the coded original data to obtain the coded intermediate value, thereby obtaining the coded intermediate value.
[0081] The verification information generation module is used to generate verification information according to the encoded intermediate value starting from the shift value.
[0082] Specifically, after obtaining the encoded intermediate value, the verification information generation module completes the generation of verification information according to the encoded intermediate value based on the aforementioned shift value as the starting position.
[0083] Optionally, in an optional embodiment of the present invention, the device further includes:
[0084] A storage module is used to store the segmented coded data and, after obtaining the coded intermediate value, store the coded intermediate value.
[0085] Compared with the prior art, the device described in the second embodiment of the present invention breaks the dependence between the various check information in the encoding process, rationally arranges the encoding structure, and adopts a parallel mechanism to shorten the encoding delay in the entire physical layer link; at the same time, this parallel mechanism improves the throughput of the entire system, so that encoding is no longer a bottleneck for improving the system throughput, and overcomes the problems and defects of large LDPC encoding delay, large resource consumption, and high hardware cost in the prior art.
[0086] In a third aspect, the third embodiment of the present invention provides an implementation case of an LDPC encoding method based on the first embodiment. This embodiment describes the LDPC encoding module selecting the received data. Figure 5 When the base matrix is obtained, the encoding process of encoding the original data is completed.
[0087] S101, receiving the encoded original data, which is a Z×8 matrix, and selecting the basic matrix Figure 5 As shown, the basic matrix is 18×26, of which the non-check matrix is 18×8 and the check matrix is 18×18.
[0088] S102, according to the expansion factor Z = 512, the coded original data is divided into code blocks. Each piece of data to be coded is denoted as C, and C is 512×8. The number of rows of the non-check matrix is 18 and the number of columns is 8. Therefore, the original coded data is divided into 8 parts for storage, denoted as [C0, C1, C2, C3, C4, C5, C6, C7], and each piece of data is 512×1. Index value = 0.
[0089] S103, Figure 5 The 0th row of the basic matrix: the check information is the output result of row 0 and column 8. The 8 elements of row 0 of the non-check matrix are all 0, indicating that no shift processing is performed. [C0, C1, C2, C3, C4, C5, C6, C7] are multiplied and added with the 8 elements of row 0 of the non-check matrix, and the result is recorded as M0. M0+V0=0, the shift value is 0, and V0 is directly obtained. V0 is the check information of the 0th row coding result,
[0090] S104, Figure 5 The first row of the base matrix, [C0, C1, C2, C3, C4, C5, C6, C7], is multiplied and added with the 8 elements of the first row of the non-check matrix, and the result is recorded as M1. M1+V0'+V1=0, V0' is the result of 405 shifts of V0, and V1 is the check information of the first row of coding results.
[0091] Here M1+V0'+V1=0 according to Figure 5 The base matrix is converted to M1 107 +V0 0 +V1 107 =0, the shift value is 107. Take the 107th element of M1 and the 0th element of V0, get the 107th element value of V1, and store it directly in the 107 storage space corresponding to the coding verification information V1.
[0092] Figure 5 After processing, Figure 6 ,according to Figure 6 Calculate the original data to obtain the intermediate value, M1 107 The value is obtained by: Figure 6 The first non-check matrix in the pre-shift matrix is [51,-1,-1,91,390,-1,277,107], which means C0 is shifted 51 times to participate in the budget, C3 is shifted 91 times, C4 is shifted 390 times, C6 is shifted 277 times, and C7 is shifted 107 times. The blank space is -1, which means it does not participate in the calculation. In this way, the first M1 element obtained is M1 107 .
[0093] S105, Figure 5The second row of the base matrix, [C0, C1, C2, C3, C4, C5, C6, C7], is multiplied and added with the 8 elements of the second row of the non-check matrix, and the result is recorded as M2. M2+V1'+V2=0, V1' is the result of 195 shifts of V1, and V2 is the check information of the second row of coding results.
[0094] Here, M2+V1'+V2=0 according to Figure 5 The base matrix is converted to M2 424 +V1 107 +V2 424 =0, the shift value is 424. Take the 424th element of M2 and V1 of step S104 107 , get the 424th element value of V2, and store it directly in the 424th storage space corresponding to the coding verification information V2.
[0095] M2 424 The value is obtained by: Figure 6 The second non-check matrix in the pre-shift matrix is [412,73,43,382,115,396,284,425], which means C0 is shifted 412 times to participate in the budget, C1 is shifted 73 times, C2 is shifted 73 times, C3 is shifted 382 times, C4 is shifted 115 times, C5 is shifted 396 times, C6 is shifted 284 times, and C7 is shifted 425 times. The first M2 element obtained is M2 424 .
[0096] S106, Figure 5 The 3rd row of the base matrix, [C0, C1, C2, C3, C4, C5, C6, C7], is multiplied and added with the 8 elements in the 3rd row of the non-check matrix, and the result is recorded as M3. M3+V2'+V3=0, V2' is the result of 161 shifts of V2, and V3 is the check information of the 3rd row of coding results.
[0097] Here M3+V2'+V3=0 according to Figure 5 Fundamental matrix conversion to M3 263 +V2 424 +V3 263 =0, the shift value is 263. Take the 263rd element of M3 and V2 of step S105 424 , get the 263rd element value of V3 and store it directly in the 263rd storage space corresponding to the coding verification information V2.
[0098] M3 263 The value is obtained by: Figure 6The second non-check matrix in the pre-shift matrix is [-1,165,219,473,-1,116,-1,264], which means C0 does not shift, C1 shifts 165 times, C2 shifts 219 times, C3 shifts 473 times, C4 does not shift, C5 shifts 116 times, C6 does not shift, and C7 shifts 264 times. The first M3 element obtained is M3 263 .
[0099] S107, and so on. Figure 5 The 17th row of the basic matrix: [C0, C1, C2, C3, C4, C5, C6, C7] is multiplied and added with the 8 elements of the 17th row of the non-check matrix, and the result is recorded as M17. M17+V1'+V17=0, V1' is the result of 90 shifts of V1, and V17 is the check information of the 17th row of coding result.
[0100] Here, M17+V1'+V17=0 according to Figure 5 Fundamental matrix conversion to M17 17 +V1 107 +V17 17 =0, the shift value is 17. Take the 17th element of M17 and V1 in step S104 107 , get the 17th element value of V17, and store it directly in the storage space 17 corresponding to the coding verification information V17.
[0101] M17 17 The value is obtained by: Figure 6 The 17th non-check matrix in the pre-shift matrix is [233, 266, -1, -1, -1, -1, -1, 17, -1], which means C0 is shifted 233 times, C1 is shifted 266 times, C6 is shifted 17 times, and C2, C3, C4, C5, and C7 are not shifted. The first M17 element obtained is M17 17 , the index value increases by 1.
[0102] S108, repeat S103~107 until the index value is equal to the expansion factor 512, indicating that the encoding is completed, and output the encoding results M0, V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17.
[0103] In a fourth aspect, the fourth embodiment of the present invention provides an implementation case of an LDPC encoding method based on the first embodiment. This embodiment describes that the LDPC encoding module selects Figure 7 When the base matrix is obtained, the encoding process of encoding the original data is completed.
[0104] S201, receiving the original coded data, which is a Z×22 matrix, and selecting a basic matrix such as Figure 7 As shown, the basic matrix is 46×68, the non-check matrix is 46×22, and the check matrix is 46×46.
[0105] S202, encode the original data according to the expansion factor = 256 and perform code block segmentation operation. Each data to be encoded is denoted as C, and C is 256×22. The number of rows of the non-check matrix is 46 and the number of columns is 22. Therefore, the original encoded data is divided into 22 parts for storage, denoted as [C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21], and each data is 256×1. Index value = 0.
[0106] S203, Figure 7 The basic matrix has rows 0 to 3.
[0107] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] are multiplied and added with the 22 elements of the 0th row of the non-check matrix, and the result is recorded as M0. M0+V0'+V1=0, V0' is the result of one shift of V0, and V1 is the check information of the first row of coding result.
[0108] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] are multiplied and added with the 22 elements of the first row of the non-check matrix, and the result is recorded as M1. M1+V0+V1+V2=0, V0 and V2 are the check information of the 0th and 2nd row of the coding results respectively.
[0109] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] are multiplied and added with the 22 elements of the second row of the non-check matrix, and the result is recorded as M2. M2+V2+V3=0, V3 is the check information of the third row of coding results.
[0110] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] and the 22 elements in the third row of the non-check matrix are multiplied and added, and the result is recorded as M3. M3+V0'+V3=0, V0' is the result of V0 being shifted once.
[0111] M0+V0'+V1=0
[0112] M1+V0+V1+V2=0
[0113] M2+V2+V3=0
[0114] M3+V0'+V3=0
[0115] The 0th to 3rd rows of the basic matrix are calculated together to obtain V0, V1, V2, and V3.
[0116] S203, Figure 7 The 4th row of the base matrix
[0117] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] and the 22 elements of the 4th row of the non-check matrix are multiplied and added, and the result is recorded as M4. M4+V4=0, V4 is the check information of the 4th row of coding result.
[0118] The M4 value is obtained by the following method: Figure 8 The fourth non-check matrix in the pre-shift matrix is [157,102,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1], which means C0 is shifted 157 times, C1 is shifted 102 times, and the rest are not shifted. In this way, the first M4 element obtained is M4 0 .
[0119] S203, Figure 7 The fifth row of the basis matrix
[0120] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] and the 22 elements of the 5th row of the non-check matrix are multiplied and added, and the result is recorded as M5. M5+V0'+V5=0, V0' means that V0 is shifted by 115, and V5 is the check information of the 5th row of coding results.
[0121] M5+V0'+V5=0 according to Figure 7 Fundamental Matrix Conversion to M5 141 +V0 0 +V5 141 =0, the shift value is 141. Take the 141th element of M5 and V0 in step S202 0 , get the 141th element value of V5 and store it directly in the storage space 141 corresponding to the encoding verification information 5.
[0122] M5 141 The value is obtained by: Figure 8 The fifth non-check matrix in the pre-shift matrix is [90,121,-1,79,-1,-1,-1,-1,-1,-1,-1,-1,116,-1,-1,-1,169,-1,-1,-1,-1,8], which means C0 is shifted 90 times, C1 is shifted 121 times, C3 is shifted 79 times, C12 is shifted 116 times, C16 is shifted 169 times, C21 is shifted 8 times, and the rest are not shifted. In this way, the first M5 element obtained is M5 141 .
[0123] S205, Figure 7 The sixth row of the basis matrix
[0124] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] are multiplied and added with the 22 elements of the 6th row of the non-check matrix, and the result is recorded as M6. M6+V6=0, V6 is the check information of the 6th row of coding result.
[0125] The M6 value is obtained by the following method: Figure 8 The sixth non-check matrix in the pre-shift matrix is [183,-1,-1,-1,-1,-1,22,-1,-1,-1,28,67,-1,244,-1,-1,-1,11,157,-1,211,-1], which means C0 is shifted 183 times, C6 is shifted 22 times, C10 is shifted 28 times, C11 is shifted 67 times, C13 is shifted 244 times, C17 is shifted 11 times, C18 is shifted 157 times, C20 is shifted 211 times, and the rest are not shifted. In this way, the first M6 element obtained is M6 0 .
[0126] S206, and so on. Figure 7 The 45th row of the base matrix:
[0127] [C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21] and the 22 elements of the 45th row of the non-check matrix are multiplied and added, and the result is recorded as M45. M45+V45=0, V45 is the check information of the 45th row of the coding result.
[0128] The M45 value is obtained by the following method: Figure 8The 45th non-check matrix in the pre-shift matrix is [-1,149,-1,-1,-1,-1,151,-1,-1,-1,167,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1], which means C1 is shifted 149 times, C6 is shifted 151 times, C10 is shifted 167 times, and the rest are not shifted. In this way, the first M45 element obtained is M45 0 , the index value increases by 1.
[0129] S207, repeat S202-206 until the index value is equal to the code block extension factor 256, indicating that the encoding is completed, and output the encoding results M0, V0, V1, V2, ..., V15.
[0130] In a fifth aspect, a fifth embodiment of the present invention provides a computer-readable storage medium, on which a program for implementing information transmission is stored, and when the program is executed by a processor, the steps of the encoding method of the first embodiment are implemented.
[0131] In a sixth aspect, a sixth embodiment of the present invention provides a base station, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the steps of the encoding method of the first embodiment when executed by the processor.
[0132] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.
[0133] The serial numbers of the above embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.
[0134] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for enabling a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present invention.
[0135] The embodiments of the present invention are described above in conjunction with the accompanying drawings, but the present invention is not limited to the above-mentioned specific implementation modes, which are merely illustrative rather than restrictive. Under the guidance of the present invention, ordinary technicians in this field can also make many forms without departing from the scope of protection of the present invention and the claims, all of which are within the protection of the present invention.
Claims
1. An LDPC encoding method, characterized in that: The method comprises the following steps: Acquire coded original data and an extension factor, select a coding basic matrix according to the length of the coded original data and the extension factor, and segment the coded original data based on the extension factor to obtain segmented coded data; Determining a shift value according to the expansion factor, and generating check information based on the shift value and the segmented coded data to complete the coding; The determining of the shift value according to the expansion factor comprises: The shift value of the coding basic matrix corresponding to the extension factor is calculated according to the check formula for generating check information in the coding basic matrix.
2. The method according to claim 1, characterized in that After segmenting the encoded original data based on the expansion factor to obtain segmented encoded data, the method further includes: The segmented coded data is stored.
3. The method according to claim 1, characterized in that After determining the shift value according to the expansion factor, the method further comprises: Determine a coding intermediate value according to the coding original data, the coding basic matrix and the shift value; The generating of the check information based on the shift value and the segmented coded data comprises: The check information is generated based on the encoded intermediate value starting from the shift value.
4. An LDPC encoding device, characterized in that: The device comprises: a data processing module, configured to obtain the original coded data and the expansion factor, select a coding basic matrix according to the length of the original coded data and the expansion factor, segment the original coded data based on the expansion factor to obtain segmented coded data, and determine a shift value according to the expansion factor; A check information generation module, used to generate check information based on the shift value and the segmented coded data to complete the coding; The data processing module is used to calculate the shift value of the coding basic matrix corresponding to the extension factor according to the verification formula for generating verification information in the coding basic matrix.
5. The device according to claim 4, characterized in that The device also includes: A storage module is used to store the segmented coded data.
6. The device according to claim 4, characterized in that The data processing module is further used to determine a coding intermediate value according to the coding original data, the coding basic matrix and the shift value; The verification information generation module is used to generate verification information according to the encoded intermediate value starting from the shift value.
7. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores an implementation program for information transmission, and when the program is executed by a processor, the steps of the encoding method according to any one of claims 1 to 3 are implemented.
8. A base station, characterized in that: The method comprises a memory, a processor and a computer program stored in the memory and executable on the processor, wherein the computer program implements the steps of the encoding method according to any one of claims 1 to 3 when executed by the processor.
Citation Information
Patent Citations
Method for distributing filling bit in split code word
CN101431396A
Error correction coding method and device
CN107370488A