Design of base matrices for quasi-cyclic LDPC codes

EP4702672A1Pending Publication Date: 2026-03-04ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-24
Publication Date
2026-03-04

Smart Images

  • Figure EP2024061167_31102024_PF_FP_ABST
    Figure EP2024061167_31102024_PF_FP_ABST
Patent Text Reader

Abstract

The invention relates to a method for encoding at least one block of K. Z source data, delivering at least one codeword of N. Z size, with Z an integer expansion factor, Z ≥ 1, said method implementing a step of encoding (53) said K. Z source data using a parity matrix H of (M. Z x N. Z) size. According to the invention, said parity matrix H is obtained (52) from a modified base matrix BG' of M x N size, by replacing each element of said modified base matrix BG' with an expansion matrix of Z x Z size, said modified base matrix BG' being expressed in the form (I). Said extension matrix C comprises at least two blocks of rows, each comprising the same number of rows, each block of rows containing a diagonal matrix.
Need to check novelty before this filing date? Find Prior Art

Description

[0001]DESCRIPTION Title: Method for encoding source data, corresponding encoding device and computer program. 1. Field of the invention The field of the invention is that of digital communications. More specifically, the invention relates to error-correcting codes, in particular, but not exclusively, error-correcting codes of the LDPC (Low Density Parity Check) type. The invention finds applications in particular in the field of data storage or transmission, for example via wireless communications (for example by radio waves or unguided optical waves) or wired communications (for example by optical fiber or electric cable). In particular, the invention finds applications in all fields where it is sought to offer good transmission reliability, for example for radio transmissions (Wifi®, 5G, 6G, etc.). 2. Prior art Figure 1 illustrates a transmitter of a digital transmission chain.Such a transmitter uses conventional signal processing modules. Thus, the source data 11, for example binary data from a data generating source of video type (for example a source of animated images, virtual or augmented reality images, an image sequence source), of audio type (for example voice), of flow control type whether of video or audio type or other, or from a sensor, an actuator, etc., are coded in a channel coding block 12 to introduce redundancy. The coded data are then interleaved in an interleaving block 13 to mix the coded data. A mapping block 14 makes it possible to convert the coded data into constellation points (BPSK, QPSK, 16QAM, etc.). The associated symbols are placed in frame 15 and modulated in a single-carrier or multi-carrier modulation block 16, for example of the OFDM (“Orthogonal Frequency-Division Multiplexing”) type.In order to improve the robustness of communications via a communication channel, it is known to use error-correcting codes in the channel 12 coding block. For example, LDPC codes, turbo codes, polar codes, or Reed-Salomon codes offer good performance in terms of error correction. Turbo codes have been chosen in particular for the 4G mobile telephony standard, and LDPC for the 5G mobile telephony standard. The main characteristics of LDPC codes, as defined in the 5G standard in particular, are summarized below.Conventionally, LDPC codes are defined by three parameters ^^^^, ^^^^ and ^^^^: - ^^^^ corresponds to the size of the source data, for example in number of useful bits if we consider binary data, - ^^^^ corresponds to the size of the redundancy data, for example in number of redundancy bits if we consider binary data, and - ^^^^ corresponds to the size of the data coming from the LDPC encoder, for example in number of useful and redundancy bits. The coding efficiency is conventionally given by ^^^^ = ^^^^ / ^^^^, with the relation ^^^^ = ^^^^ + ^^^^. An LDPC code can in particular be defined by a parity matrix ^^^^, which gives the parity relations between the source data and the redundancy data. An example of a parity matrix ^^^^ is given in Figure 2. Values ​​equal to "1" in the parity matrix ^^^^ correspond to the connections (parity equation) between the useful data and the redundancy data. The more connections (i.e. of "1" in the parity matrix ^^^^) is important, the greater the complexity of the decoder will be. As an illustration, following the example of the parity matrix ^^^^ in Figure 2, the parity equation of the first line gives the first redundancy data ^^^^(0): ^^^^(0) = ^^^^(0) ^ ^^^^(1) ^ ^^^^(2) ^ ^^^^(3) ^ ^^^^(4) ^ ^^^^(6) ^ ^^^^(7) ^ ^^^^(9) ^ ^^^^(10) ^ ^^^^(11) ^ ^^^^(12) ^ ^^^^(13) with: ^^^^( ^^^^) = 0 or 1, and ^ the "exclusive or" operation. In the ETSI TS 138 212 V15.2.0 document, the 3GPP standardization consortium defined two basic structures or matrices BG1 and BG2 ("Base Graph" in English) allowing to construct 104 parity matrices ^^^^ (52 matrices constructed from the basic matrix BG1 and 52 matrices constructed from the basic matrix BG2).For example, for 5G, the size of the basis matrices BG1 and BG2 is: - BG1: ^^^^ = 22, ^^^^ = 46, ^^^^ = 68 -BG2: either ^^^^ = 6, ^^^^ = 26, ^^^^ = 32, or ^^^^ = 8, ^^^^ = 34, ^^^^ = 42, or ^^^^ = 9, ^^^^ = 38, ^^^^ =47, or ^^^^ = 10, ^^^^ = 42, ^^^^ = 52. The parity matrices ^^^^ are obtained from the basis matrices BG1 or BG2, from an expansion factor ^^^^ and a circular rotation of a diagonal matrix. Such a construction is known as "Protograph". According to this technique, a parity matrix ^^^^ of size ^^^^. ^^^^ × ^^^^. ^^^^ is obtained by replacing each non-zero element of the basis matrix BG1 or BG2 by a diagonal matrix of size ^^^^ × ^^^^ to which a circular rotation V has been applied (which is not necessarily the same for all non-zero elements of the basis matrix).An advantage of this LDPC encoder family is to easily obtain the set of parity matrices ^^^^ while limiting memory usage. For example, for an expansion factor ^^^^ = 8 and a circular rotation ^^^^ = 2, a non-zero element of the basis matrix BG1 or BG2 is replaced by the following matrix: é0 0 1 0 0 0 0 00 0 0 0 0 0ù ê. 1 0 00ú ê 0 0 1 0 0 0 0 0 0 0 0 1 ú ê 0 0 0 0 0 ú ê0 0 0 1 0 ú ê 0 0 0 0 0 0 0 1úê1 0 0 0 0 0 0 0úë0 1 0 0 0 0 0 0ûAccording to the ETSI TS 138212 V15.2.0 document, for each basic matrix BG1 or BG2, it is thus possible to construct 52 matrices, classified into eight sub-families according to the value of the expansion factor ^^^^ (between 2 and 384), according to the index "ils": Index ils Expansion factor Z 0 2,4,8,16,32,128,256 1 3,6,12,24,48,96,192,384 2 5,10,20,40,80,160,320 3 7,14,28,56,112,224 4 9,18,36,72,144,288 5 11,22,44,88,176,352 6 13,26,52,104,208 7 15,30,60,120,240 Thus, it is possible to encode source data blocks of size ^^^^. ^^^^, ranging from 12 bits (from the BG2 base matrix with ^^^^ = 6 and the minimum expansion factor ^^^^ = 2) to 8448 bits (from the BG1 base matrix with ^^^^ = 22 and the maximum expansion factor ^^^^ = 384). The choice between using the BG1 or BG2 base matrix is ​​made according to the size of the source data to be encoded ^^^^. ^^^^ and the desired coding rate ^^^^.Thus, as illustrated in Figure 3, the BG1 base matrix is ​​mainly used for high coding rates and large source data sizes. These two base matrices are particularly designed to cover the different uses of 5G which may require high throughput and / or high reliability (robustness). Furthermore, according to the 5G standard, the first two columns of the BG1 or BG2 base matrix are removed before transmission, which means that the base rates are respectively ^^^^^^^^^ ^^^^1= ^^^^ / ( ^^^^ − 2) = 22 / 66 = 1 / 3 and ^^^^^^^^ ^^^^2= 10 / 50 = 1 / 5. It is also noted that the basic matrices BG1 or BG2 used to construct the parity matrix ^^^^ of an LDPC code according to the 5G standard can be represented in the form of six sub-matrices ^^^^, ^^^^, 0, ^^^^, ^^^^ and ^^^^, as described in the document “High Area-Efficient Parallel Encoder with compatible architecture for 5G LDPC codes”, Y. Zhu et al., and illustrated in figure 4:. with: ^^^^ a kernel matrix of size 4 × ^^^^ ^^^^ a matrix with at least one double diagonal of size 4 × 4 ^^^^ an extension matrix of size ( ^^^^− 4) × ^^^^ ^^^^ an extension matrix of size ( ^^^^ − 4) × 40a zero matrix of size ( ^^^^ − ^^^^ − 4) × 4^^^^ an identity matrix of size ( ^^^^ − 4 ) × ( ^^^^ − ^^^^ − 4 ) .Although LDPC codes are recognized for their ability to guarantee high-speed transmissions, in particular thanks to the possibility of parallelizing operations at the decoder level, a disadvantage of these codes is the complexity related to decoding. Indeed, the greater the number of decoding iterations, the greater the number of operations to be performed in reception and the greater the resource consumption. The decoding block can thus use up to 90% of the receiver's resources. It can be considered the most energy-consuming part of the physical layer, in particular for 5G. There is therefore a need for a new coding technique seeking to reduce the energy consumption of the decoder. 3. Presentation of the invention The invention proposes a new solution in the form of a method for coding at least one block of ^^^^. ^^^^ source data, delivering at least one code word of size ^^^^. ^^^^ formed from the ^^^^. ^^^^ source data and ^^^^.^^^^ redundancy data, ^^^^ = ^^^^ + ^^^^, with ^^^^ an integer expansion factor, ^^^^ ≥ 1. The method according to the invention implements a step of coding said ^^^^. ^^^^ source data using a parity matrix ^^^^ of size. ( ^^^^. ^^^^ × ^^^^. ^^^^ ) obtained from a basic matrix ^^^^ ^^^^' of size ^^^^ × ^^^^, by replacing each element of said basic matrix ^^^^ ^^^^' by an expansion matrix of size ^^^^ × ^^^^, said basic matrix ^^^^ ^^^^' being expressed in the form: with: ^^^^ a kernel matrix of size ^^^^ × ^^^^ ^^^^ a matrix with at least one double diagonal of size ^^^^ × ^^^^ ^^^^ an extension matrix of size ( ^^^^− ^^^^) × ^^^^ ^^^^ an extension matrix of size ( ^^^^ − ^^^^) × ^^^^0 a zero matrix of size ( ^^^^ − ^^^^ − ^^^^) × ^^^^^^^^ an identity matrix of size ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ ).According to the invention, said extension matrix ^^^^ comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix. In other words, the extension matrix ^^^^ comprises at least two blocks of ^^^^1 rows each comprising a diagonal matrix of size ^^^^1 × ^^^^1, and preferably a single diagonal matrix of size ^^^^1 × ^^^^1. For example, ^^^^1 = 4 if ^^^^ = 6, ^^^^1 = 6 if ^^^^ = 8, ^^^^1 = 7 if ^^^^ = 9, ^^^^1 = 8 if ^^^^ = 10 By choosing the size of the diagonals, it is possible to vary the number of connections per row, and in particular to have only one connection per row for the extension matrix ^^^^, excluding the first two columns. We recall for this purpose that the greater the number of connections (i.e. non-zero elements in the basic matrix, and consequently in the parity matrix ^^^^) is, the greater the complexity of the decoder will be.According to one embodiment, we therefore seek to achieve a compromise between the number of connections and decoding performance. The use of diagonal matrices thus makes it possible to distribute the non-zero elements of the extension matrix ^^^^ over the different rows and / or columns of the extension matrix ^^^^. The proposed solution seeks in particular to improve the performance of error-correcting codes, in particular of the LDPC decoder, by reducing the number of iterations of the decoder and therefore the energy consumption. In particular, the coded data (code word formed of the ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data) can be stored in a memory and / or transmitted from a transmitter to a receiver, via a transmission channel. In particular, the number of rows of the matrices ^^^^ and ^^^^ depends on the value of ^^^^, the basic efficiency (1 / 5 for BG2) and the number of punctured columns.In the general case, ^^^^ = ^^^^ + ^^^^ and the efficiency ^^^^ = ^^^^ / ^^^^. For 5G, the efficiency ^^^^ = ^^^^ / ( ^^^^ − 2) with the first two columns punctured. If ^^^^ = 6, ^^^^ = 4 × ^^^^ + 2 and ^^^^ = 5 × ^^^^ + 2. It is thus possible to calculate the size of the matrices ^^^^ and ^^^^: if the kernel matrix ^^^^ has a size of ^^^^ × ^^^^, then the size of the extension matrix ^^^^ is ( ^^^^ − ^^^^) × ^^^^ and the size of the extension matrix is ​​( ^^^^ − ^^^^) × ^^^^. For 5G, ^^^^ = 4. According to a particular embodiment, said extension matrix ^^^^ comprises at least two blocks of lines, each comprising the same number of lines, each block of lines comprising a diagonal matrix.In other words, the extension matrix ^^^^ comprises at least two blocks of ^^^^2 rows each comprising a diagonal matrix of size ^^^^2 × ^^^^2, with ^^^^1 = ^^^^2 or ^^^^1 ≠ ^^^^2, and preferably a single diagonal matrix of size ^^^^2 × ^^^^2. For example, ^^^^2 = 4 regardless of the value of ^^^^. The use of diagonal matrices makes it possible to distribute the non-zero elements of the extension matrix ^^^^ over the different rows and / or columns of the extension matrix ^^^^. According to a particular embodiment, the number of non-zero elements per column and / or per row relative to the total number of elements per column and / or per row in said kernel matrix ^^^^, excluding the first two columns, is between 50 and 100%.In particular, the number of non-zero elements per column and / or per row relative to the total number of elements per column and / or per row in said kernel matrix ^^^^, excluding the first two columns, is between 75 and 100%. The kernel matrix ^^^^ thus has many connections per row and / or per column, relative to the rest of the matrix ^^^^ ^^^^', which makes it possible to find the source data upon decoding. For the 5G standard, the kernel matrix ^^^^ has, for example, of the order of 3 ^^^^ / 4 non-zero elements per row. According to a particular embodiment, the first two columns of the kernel matrix ^^^^ and / or of said extension matrix ^^^^ comprise an alternation of non-zero elements and zero elements per row and per column. We are thus looking for an equitable distribution of connections in the first two columns of the kernel matrix ^^^^ and / or of the said extension matrix ^^^^ with a staggered structure.As indicated in the preamble, these first two columns may not be transmitted, particularly in 5G. According to a particular embodiment ^^^^ = 4, and - ^^^^ = 6 and ^^^^ = 26, or - ^^^^ = 8 and ^^^^ = 34, or - ^^^^ = 9 and ^^^^ = 38 or - ^^^^ = 10 and ^^^^ = 42. The basic matrix ^^^^ ^^^^' thus has a format similar to the BG2 matrix with a decomposition into six sub-matrices ( ^^^^, ^^^^, ^^^^, ^^^^, 0 and ^^^^) and a size identical to the basic matrix BG2. It can therefore be used in any system compatible with the 5G standard. According to a particular embodiment, according to the value of ^^^^, said kernel matrix ^^^^ is equal to: for K=10 for K=9 for K=8 for K=6 V1 V0 V3 V2 V1 V4 V3 V2 V4 V0 V3 V2 V4 V2 V3 V0 V2 V0 V3 V4 V2 V3 V1 V1 V3 V4 V4 said matrix ^^^^ having at least one double diagonal is equal to: V0 V0 V0 V0 V1 V0 V0 V0 V0 said extension matrix ^^^^ is equal to: for K=10 p. our K=9 pour K=8 pour K=6 V4 V0V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V3 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V 2 V3 V0 V4 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V 1 V4 V2 V0 V4 V4 V2 V0 V 4 V1 V0 V2 V1 V3 V0 V4 said extension matrix ^^^^ is equal to: for for for for V4 K=10 K=9 K=8 K=6 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4V0 V1 V2 V0 V1 V2 V3 V1 V2 V3V4 V1 V2 V3V4 V2 V3 The empty elements of the matrices above correspond to zero values. The matrices ^^^^, ^^^^ and ^^^^ have a nested structure depending on the value of ^^^^. Thus, for ^^^^ = 6, the kernel matrix ^^^^ ( ^^^^ = 6 ) has a size ^^^^ × ^^^^, or 4 × 6 according to the example presented. For ^^^^ = 8, the kernel matrix ^^^^ ( ^^^^ = 8 ) has a size ^^^^ × ^^^^, or 4 × 8 according to the example presented. It is formed from the kernel matrix ^^^^ ( ^^^^ = 6 )to which two columns are added. For ^^^^ = 9, the kernel matrix ^^^^ ( ^^^^ = 9 ) has a size ^^^^ × ^^^^, or 4 × 9 according to the example presented. It is formed from the kernel matrix ^^^^( ^^^^ = 8) to which a column is added. For ^^^^ = 10, the kernel matrix ^^^^ ( ^^^^ = 10) has a size ^^^^ × ^^^^, or 4 × 10 according to the example presented. It is formed from the kernel matrix ^^^^ ( ^^^^ = 9 ) to which a column is added. Similarly, for ^^^^ = 6, the extension matrix ^^^^( ^^^^ = 6) has a size ( ^^^^ − ^^^^) × ^^^^, or 22 × 6 according to the example presented. For ^^^^ = 8, the extension matrix ^^^^ ( ^^^^ = 8 ) has a size ( ^^^^ − ^^^^) × ^^^^, or 30 × 8 according to the example presented. It is formed from the extension matrix ^^^^( ^^^^ = 6) to which two columns and eight rows are added. For ^^^^ = 9, the extension matrix ^^^^ ( ^^^^ = 9 )has a size ( ^^^^− ^^^^ ) × ^^^^, or 34 × 9 according to the example presented. It is formed from the extension matrix ^^^^ ( ^^^^ = 8 ) to which one column and four rows are added. For ^^^^ = 10, the extension matrix ^^^^ ( ^^^^ = 10 ) has a size ( ^^^^ − ^^^^ ) × ^^^^, or 38 × 10 according to the example presented. It is formed from the extension matrix ^^^^ ( ^^^^ = 9 ) to which one column and four rows are added. Finally, for ^^^^ = 6, the extension matrix ^^^^( ^^^^ = 6) has a size ( ^^^^ − ^^^^) × ^^^^, or 22 × 4 according to the example presented. For ^^^^ = 8, the extension matrix ^^^^( ^^^^ = 8) has a size ( ^^^^ − ^^^^ ) × ^^^^, or 30 × 4 according to the example presented. It is formed from the extension matrix ^^^^ ( ^^^^ = 6 )to which eight rows are added. For ^^^^ = 9, the extension matrix ^^^^ ( ^^^^ = 9 ) has a size ( ^^^^ − ^^^^ ) × ^^^^, or 34 × 4 according to the example presented. It is formed from the extension matrix ^^^^ ( ^^^^ = 8 ) to which four lines are added. For ^^^^ = 10, the extension matrix ^^^^ ( ^^^^ = 10 ) has a size ( ^^^^ − ^^^^ ) × ^^^^, or 38 × 4 according to the example presented. It is formed from the extension matrix ^^^^ ( ^^^^ = 9 )to which four lines are added. According to this embodiment: - each empty or null element of said basic matrix ^^^^ ^^^^' is replaced by a null matrix of size ^^^^ × ^^^^, - each non-null element of said basic matrix ^^^^ ^^^^' is replaced by a circular permutation matrix obtained by applying a circular rotation ^^^^ ^^^^ to an identity matrix of size ^^^^ × ^^^^, such that: Circular rotation ^^^^ ^^^^ if ^^^^ belongs to^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] {2,4,8,16,32,128,256} :^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0:63] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0:1] and ^^^^ ∈ [0:63] {3,6,12,24,48,96,192,384} :^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0: 63] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^, ^^^^ ∈ [0: 63] {5,10,20,40,80,160,320} :^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0: 63] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {7,14,28,56,112,224} :^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] {9,18,36,72,144,288} : ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈, [ 0: 1 ]^^^^ ^^^^ ^^^^ ∈ [0:31]^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:31] {11,22,44,88,176,352} :^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] {13,26,52,104,208} :^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^,^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:15]if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] {15,30,60,120,240} :^^^^1 = 1 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] with ^^^^ and ^^^^ random variables. In another embodiment, the invention relates to a device for encoding at least one block of ^^^^. ^^^^ source data, delivering at least one code word of size ^^^^. ^^^^ formed from said ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data, ^^^^ = ^^^^ + ^^^^, with ^^^^ an integer expansion factor, ^^^^ ≥ 1, comprising at least one processing unit configured to encode said ^^^^. ^^^^ source data using a parity matrix ^^^^ of size ( ^^^^. ^^^^ × ^^^^. ^^^^),said parity matrix ^^^^ being obtained from a base matrix ^^^^ ^^^^' of size ^^^^ × ^^^^ as described above. Such a coding device, also called an encoder, is particularly suitable for implementing the coding method described above. It may of course include the various characteristics relating to the method according to the invention, which may be combined or taken in isolation. Thus, the characteristics and advantages of the encoder are the same as those of the method described above. Consequently, they are not detailed further. The invention also relates to one or more computer programs comprising instructions for implementing a method as described above when this or these programs are executed by at least one processor. The invention also relates to a computer-readable information medium,and comprising instructions of a computer program as mentioned above. 4. List of figures Other characteristics and advantages of the invention will appear more clearly on reading the following description of a particular embodiment, given as a simple illustrative and non-limiting example, and the appended drawings,among which: - figure 1 illustrates a transmitter of a conventional digital transmission chain; - figure 2 presents an example of a parity matrix ^^^^ for an LDPC code; - figure 3 illustrates selection criteria for the basic matrix BG1 or BG2; - figure 4 illustrates the decomposition of the basic matrix BG1 or BG2 into sub-matrices; - figure 5 presents the main steps implemented by a coding method according to an embodiment of the invention; - figures 6A and 6B illustrate the structure of the matrix BG1; - figures 7A and 7B illustrate the notion of cycle; - figures 8 to 13D present different structures of the matrices ^^^^,^^^^ and / or ^^^^ allowing optimization of the basic matrix ^^^^ ^^^^' according to an embodiment of the invention; - Figure 14 shows the simplified structure of an encoder implementing a coding method according to an embodiment of the invention. 5. Description of an embodiment of the invention 5.1 General principle The general principle of the invention is based on a clever distribution of the connections (i.e. non-zero elements) in a basic matrix ^^^^ ^^^^', seeking to distribute the connections in a substantially homogeneous manner and / or to limit the number of short cycles. Consequently, a parity matrix ^^^^ obtained from the basic matrix ^^^^ ^^^^' has a particular structure. Such a structure makes it possible to improve the performance of error-correcting codes,in particular by reducing the complexity of decoding. Figure 5 illustrates the main steps of a coding method according to an embodiment of the invention. During a first step 51, the basic matrix ^^^^ ^^^^' of size ^^^^ × ^^^^ is obtained. Such a basic matrix ^^^^ ^^^^' can be decomposed into six sub-matrices ^^^^, ^^^^, 0, ^^^^, ^^^^, ^^^^, and expressed in the form:, with: ^^^^ a kernel matrix of size ^^^^ × ^^^^ ^^^^ a matrix having at least one double diagonal of size ^^^^ × ^^^^ ^^^^ an extension matrix of size ( ^^^^− ^^^^) × ^^^^ ^^^^ an extension matrix of size ( ^^^^ − ^^^^) × ^^^^0 a zero matrix of size ( ^^^^ − ^^^^ − ^^^^) × ^^^^^^^^ an identity matrix of size ( ^^^^ − ^^^^) × ( ^^^^ − ^^^^ − ^^^^)In particular, the extension matrix ^^^^ has a particular structure and comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix, and preferably a single matrix full diagonal. In a second step 52, a parity matrix ^^^^ is obtained from the basic matrix ^^^^ ^^^^'. To do this, each element of the basic matrix ^^^^ ^^^^' is replaced by an expansion matrix of size ^^^^ × ^^^^, with ^^^^ an integer expansion factor, ^^^^ ≥ 1.More precisely, each zero element of the basis matrix ^^^^ ^^^^' is replaced by a zero matrix of size ^^^^ × ^^^^, and each non-zero element of the basis matrix ^^^^ ^^^^' is replaced by a circular permutation matrix, obtained by applying a circular rotation ^^^^ ^^^^ to an identity matrix of size ^^^^ × ^^^^. In a third step 53, at least one block of ^^^^. ^^^^ source data is encoded using the parity matrix ^^^^ of size. ( ^^^^. ^^^^ × ^^^^. ^^^^ ), so as to obtain at least one code word of size ^^^^. ^^^^ formed from the ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data, ^^^^ = ^^^^ + ^^^^. Such a code word may in particular be stored in a memory of the encoder or transmitted by a transmitter to a receiver. In a particular embodiment, the number of non-zero elements per column in said kernel matrix ^^^^ and said extension matrix ^^^^, excluding the first two columns, is between ^^^^ − 3 and ^^^^ + 3, with ^^^^ an integer. The number of non-zero elements per row in said extension matrix ^^^^ and said extension matrix ^^^^, excluding the first two columns, is between ^^^^ − 2 and ^^^^ + 2, with ^^^^ an integer. In this way, we seek to distribute the number of connections homogeneously per column and / or per row in the basic matrix ^^^^ ^^^^'.For example, in 5G, ^^^^ is between 7 and 10, and the number of non-zero elements per column in the matrix formed by the kernel matrix ^^^^ and the extension matrix ^^^^ is between 4 and 13, for example between 7 and 8. According to another example, the number of non-zero elements per column in the extension matrix ^^^^ is between 2 and 8, for example equal to 4 or 5. According to yet another example, the number of non-zero elements per column in said kernel matrix ^^^^ is between 2 and 4, for example equal to 3. For example, in 5G, ^^^^ is between 2 and 4, and the number of non-zero elements per row in the matrix formed by the extension matrix ^^^^ (excluding the first two columns) and the extension matrix ^^^^ is between 0 and 6, for example equal to 2. According to another example, the number of non-zero elements per row in the extension matrix ^^^^ (excluding the first two columns) is equal to 1.According to yet another example, the number of non-zero elements per row in the extension matrix ^^^^ is equal to 1. In particular, if ^^^^ = 4, ^^^^ =. { 6, 8, 9 ^^^^ ^^^^ 10 } et ^^^^ = { 26, 34, 38 ^^^^ ^^^^ 42 }, the basic matrix ^^^^ ^^^^' has a size identical to the basic matrix BG2, and can be used in any system using the 5G standard. 5.2 Basic matrix BG1 In order to better understand the invention, we recall in Figure 6A the structure of the basic matrix BG1 as defined in the document ETSI TS 138212 V15.2.0, formed by the matrices ^^^^, ^^^^, ^^^^ and ^^^^. The sub-matrices ^^^^ and ^^^^ are omitted for the sake of simplification. The elements "1" of the basic matrix BG1 represent the connections of the different parity equations. The number of connections per column and per row has been added in Figure 6A. Thus, the first column of the matrices ^^^^ and ^^^^ includes 30 connections, the second column includes 28 connections, the third column includes 7 connections, etc. The first column of the matrices ^^^^ and ^^^^ includes 12 connections, the second column includes 5 connections, etc.The first four rows of the ^^^^ and ^^^^ matrices each contain 19 connections. The first row of the ^^^^ and ^^^^ matrices contains 2 connections, the second row contains 7 connections, etc. If we do not take into account the zero ^^^^ and identity ^^^^ matrices, the minimum number of connections per row is 2 and the maximum number of connections per row is 19. The minimum number of connections per column is 4 and the maximum number of connections per column is 30. There is therefore a large disparity in the number of connections per row and / or per column in the BG1 matrix. The kernel matrix ^^^^ has, in proportion, many connections, i.e. many non-zero elements, because it is the kernel of the BG1 matrix. This allows the decoder, on reception, to find this data. We also note that the first two columns of the BG1 matrix, which correspond to the untransmitted data, also have many "1".The upper part of the BG1 matrix also has more connections than its lower part, which helps ensure good performance for high yields. This is because the lower part of the BG1 matrix can be punched to achieve the desired yield. Therefore, it is preferable to choose the connections from the upper part of the BG1 matrix. As an example, Figure 6B illustrates the circular rotation factors ^^^^ for the BG1 matrix of Figure 6A, for an expansion factor ^^^^ = 256. The parity matrix ^^^^ is constructed by replacing each non-zero element of the BG1 matrix with an identity matrix of size ^^^^ × ^^^^, and applying a circular rotation ^^^^ according to the factors illustrated in Figure 6B. Thus, the element "1" of the first row / first column of the BG1 matrix in Figure 6A is replaced by an identity matrix of size 256 × 256 to which a circular rotation ^^^^ = 250 is applied.The element "1" in the first row / second column of the BG1 matrix in Figure 6A is replaced by an identity matrix of size 256 × 256 to which a circular rotation ^^^^ = 69 is applied, and so on. 5.3 BG2 Basis Matrix Similarly, ETSI TS 138212 V15.2.0 describes the structure of the BG2 basis matrix, which can be decomposed into sub-matrices ^^^^, ^^^^, ^^^^, ^^^^, ^^^^ and ^^^^. The sub-matrices ^^^^ and ^^^^ are omitted hereafter for simplification. 5.4 Basis Matrix ^^^^ ^^^^' The position of the connections in the BG2 basis matrix, as well as the rotation factors to be used, are specified in the 5G 3GPP standard. However, as previously indicated, it remains desirable to improve the performance of error-correcting codes, in particular by reducing the complexity of decoding, for example by reducing the number of connections.We therefore propose below a basic matrix ^^^^ ^^^^' seeking to reduce the complexity of decoding. New structures of the connections are thus proposed, according to different embodiments of the invention. Depending on the embodiment considered, such structures are efficient and / or easy to reproduce depending on the dimensions of the parity matrix ^^^^. According to a particular embodiment, the structure of the basic matrix ^^^^ ^^^^' is defined so as to have a low disparity in the number of connections per row and / or per column. Indeed, if we consider an LDPC coder for example, we recall that LDPC decoding is based on the bases of the probabilities of having transmitted a value equal to "1" or "0". It is therefore desirable to distribute the number of connections homogeneously, so that the number of connections in rows, and especially in columns, is substantially constant or equally distributed.According to another particular embodiment, the structure of the basic matrix ^^^^ ^^^^' is defined so as to limit the number of short cycles, and if possible to avoid short cycles ("Girth" in English). Indeed, such short cycles limit the performance of error-correcting codes, in particular LDPC codes, especially for small values ​​^^^^, for example of the order of 256 bits or less. To better understand this principle, Figures 7A and 7B illustrate the loop phenomena with an expansion factor ^^^^ = 4. According to Figure 7A, an expansion factor ^^^^ = 4 is applied with the same rotation factor ^^^^ = 0 to the "1" elements located in position. ( ^^^^ + 7, ^^^^), ( ^^^^, ^^^^ + 7) and ( ^^^^ + 7, ^^^^ + 7). We obtain a loop, illustrated by the arrows. According to Figure 7B, we apply an expansion factor ^^^^ = 4 with the same rotation factor ^^^^ = 0 to the "1" elements located in position ( ^^^^ + 7, ^^^^) and ( ^^^^ + 7, ^^^^ + 7), and a rotation factor ^^^^ = 1 to the element located in position ( ^^^^, ^^^^ + 7). In this case, there is no loop. Changing the rotation factor of one of the elements of the matrix therefore eliminates the loops. Below are presented various solutions for obtaining a low disparity in the number of connections per row and / or per column of the basic matrix ^^^^ ^^^^' and / or for limiting (or even avoiding) short cycles. 5.4.1 Optimization of the kernel matrix ^^^^ According to a first example, it is possible to distribute the connections fairly in the kernel matrix ^^^^, while seeking to have a large number of connections as defined in the 5G standard. For example, in the kernel matrix ^^^^ the number of non-zero elements per column, excluding the first two columns, is between 1 and ^^^^. Figures 8A to 8D illustrate an example of a kernel matrix ^^^^, in which the number of non-zero elements per column is constant and equal to 3, respectively for ^^^^ = 6, ^^^^ = 8, ^^^^ = 9 and ^^^^ = 10. 5.4.2 Optimization of the first two columns of the kernel matrix ^^^^ and / or the extension matrix ^^^^ According to a second example, the first two columns (which are generally not transmitted) can be chosen to guarantee a good distribution of the connections.For example, the first two columns of the kernel matrix ^^^^ and / or the extension matrix ^^^^ include alternating non-zero and zero elements per row and per column. In other words, the connections are distributed in a staggered manner, as illustrated in Figure 9. 5.4.3 Optimizing the extension matrix ^^^^ and the extension matrix ^^^^ According to a third example, it is possible to distribute the connections equally in the extension matrix ^^^^ (excluding the first two columns) and / or in the extension matrix ^^^^. The extension matrix ^^^^ is generally the largest in terms of its dimension. For the basic matrix BG2 for example, the extension matrix ^^^^, excluding its first two columns, has a size: 22 × 4 for ^^^^ = 630 × 6 for ^^^^ = 834 × 7 for ^^^^ = 9 and 38 × 8 for ^^^^ = 10.According to this third example, the connections in the extension matrix ^^^^ are distributed on diagonals to ensure a good distribution of the connections. In particular, the connections are distributed to have one connection per row and one connection per column for a block of rows. According to the invention, the extension matrix ^^^^ therefore comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix. Figure 10A illustrates an example of an extension matrix ^^^^ for ^^^^ = 6, excluding the first two columns. The extension matrix ^^^^ according to this example comprises at least two blocks of rows (101A, 102A, 103A), each comprising the same number of rows ( ^^^^1 = 4), each block of rows comprising a diagonal matrix (of size ^^^^1 × ^^^^1). One or more rows of zero elements may be interposed between two blocks of rows.For example, four rows of zero elements are present between two blocks of rows comprising a diagonal matrix. Figure 10B illustrates another example of an extension matrix ^^^^ for ^^^^ = 8, excluding the first two columns. The extension matrix ^^^^ according to this example comprises at least two blocks of rows (101B, 102B, 103B, 104B), each comprising the same number of rows ( ^^^^1′ = 6), each block of rows comprising a diagonal matrix (of size ^^^^1′ × ^^^^1′). One or more rows of zero elements may be interposed between two blocks of rows. For example, two rows of zero elements are present between two blocks of rows comprising a diagonal matrix. Similarly, the extension matrix ^^^^ may comprise at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix.The connections in the continuation matrix ^^^^ can thus be equally distributed on diagonals to ensure a good distribution of the connections. In particular, the connections are distributed to have one connection per row and one connection per column for a block of rows. Figure 11A illustrates an example of a continuation matrix ^^^^ for ^^^^ = 6. The continuation matrix ^^^^ according to this example comprises at least two blocks of rows (111A, 112A, 113A, 114A, 115A), each comprising the same number of rows ( ^^^^2 = 4), each block of rows comprising a diagonal matrix (of size ^^^^2 × ^^^^2). The blocks of rows are consecutive, i.e. no row of zero or non-zero elements is interposed between two blocks of rows. Figure 11B illustrates another example of a continuation matrix ^^^^ for ^^^^ = 8.The extension matrix ^^^^ according to this example comprises at least two row blocks (111B, 112B, 113B, 114B, 115B, 116B, 117B), each comprising the same number of rows ( ^^^^2 = 4), each row block comprising a diagonal matrix (of size ^^^^2 × ^^^^2). The row blocks are consecutive, i.e. no row of zero or non-zero elements is interposed between two row blocks. In particular, all row blocks have an identical size. According to this particular embodiment, since the connections are distributed to have one connection per row and one connection per column for a block of rows in the extension matrices ^^^^ (excluding the first two columns) and continuation ^^^^, the number of connections per row is equal to 1 (if we consider a row of zero elements in the extension matrix ^^^^) or 2. The number of connections per column depends on the size of the variable ^^^^.In the example illustrated in Figures 10A and 11A, for ^^^^ = 6, it is equal to 3 for the extension matrix ^^^^ and equal to 5 or 6 for the continuation matrix ^^^^. In the example illustrated in Figures 10B and 11B, for ^^^^ = 8, it is equal to 4 for the extension matrix ^^^^ and equal to 7 or 8 for the continuation matrix ^^^^. As an example, Figure 12 provides an example of a structure for the kernel matrices ^^^^, double diagonal ^^^^, extension ^^^^ and continuation ^^^^, for different values ​​of ^^^^, using the matrices of Figures 10A and 11A for ^^^^ = 6, and the matrices of Figures 10B and 11B for ^^^^ = 8. The structure is extended to other values ​​of ^^^^, in particular ^^^^ = 9 and ^^^^ = 10. As illustrated in Figure 12, the matrices ^^^^, ^^^^ and ^^^^ have a nested structure depending on the value of ^^^^. Such a structure is notably compatible with the 5G standard.In the matrix formed by the extension matrix ^^^^ and the continuation matrix ^^^^, the number of non-zero elements per row, excluding the first two columns, is between ^^^^ − 2 and ^^^^ + 2, with ^^^^ an integer. In the context of 5G, ^^^^ is for example between 2 and 4. 5.4.4 Global optimization of the basic matrix BG' In the examples above, the extension matrices ^^^^ (excluding the first two columns) and continuation matrices ^^^^ are optimized to reduce short cycles. However, if we take into account the matrix formed by the kernel matrices ^^^^, double diagonal ^^^^, spreading ^^^^ and continuation matrices proposed in the examples above, short cycles may remain. Short cycles can result, for example, from the structure proposed for the kernel matrix ^^^^ or for the first two columns of the spreading matrix ^^^^.As illustrated in Figure 7B, taking rotation factors into account makes it possible to reduce, or even avoid, short cycles. It is thus possible to increase the diversity of the basic matrix ^^^^ ^^^^' and therefore to reduce the number of short cycles by taking rotation factors into account. If we consider the context of the 5G standard, the expansion factor ^^^^ is at least equal to 2. This means that there are at least two possible rotation factors: a non-zero element of the basic matrix ^^^^ ^^^^' can be replaced by 0. 1� for a circular rotation ^^^^ = 0 or 1 0� pour unecircular rotation ^^^^ = 1. Figures 13A to 13D illustrate examples of structure for the matrices ^^^^, ^^^^, ^^^^ and ^^^^, for different values ​​of ^^^^, respectively ^^^^ = 6, ^^^^ = 8, ^^^^ = 9 and ^^^^ = 10, taking into account at least two distinct rotation factors. As illustrated in these figures, it is possible to increase the number of rotation factors to increase the diversity of the basic matrix ^^^^ ^^^^'. For example, five rotation factors denoted V0 to V4 are chosen. Of course, a different number of rotation factors can be chosen, which leads to a different structure for the matrices ^^^^, ^^^^, ^^^^ and ^^^^. As already indicated, the matrices ^^^^, ^^^^ and ^^^^ have a nested structure depending on the value of ^^^^. In particular, it is possible to define the equations that define the rotation factors V0 to V4 as a function of the index "ils" according to the 5G 3GPP standard.Index "they" Circular Rotation V ^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0:63] 0 ^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0:1] and ^^^^ ∈ [0:63] ^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0:63] 1 ^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0:63] ^^^^0 = 0 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0:63] 2 ^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] 3 ^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈. [ 0: 1 ]^^^^ ^^^^ ^^^^ ∈ [0: 31]4 ^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0: 31] ^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] 5 ^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] 6 ^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 15 ^^^^,^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] 7 ^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] with ^^^^ and ^^^^ random variables whose interval is given in the table above. The structures illustrated in Figure 13A to 13D make it possible in particular to reduce short cycles for small matrices, for example for ^^^^ < 256. We note in particular that in the matrix formed by the kernel matrix ^^^^ and the extension matrix ^^^^, the number of non-zero elements per column, excluding the first two columns, is between ^^^^ − 3 and ^^^^ + 3, with ^^^^ an integer. In the matrix formed by the extension matrix ^^^^ and the continuation matrix ^^^^, the number of non-zero elements per row, excluding the first two columns, is between ^^^^ − 2 and ^^^^ + 2,with ^^^^ an integer. If we consider the context of 5G, ^^^^ is for example between 7 and 10, for example equal to 9, and ^^^^ between 2 and 4, for example equal to 3. In the examples illustrated in Figures 13A to 13D, the number of non-zero elements per column in the matrix formed by the kernel matrix ^^^^ and the extension matrix ^^^^ is between 6 and 12, depending on the value of ^^^^, and the number of non-zero elements per row in the matrix formed by the extension matrix ^^^^ and the continuation matrix ^^^^ is between 1 and 2. The number of connections per row and / or per column is therefore fairly homogeneous. 5.4.5 Obtaining a parity matrix From the basic matrix BG' thus obtained, it is possible to obtain a parity matrix ^^^^, by replacing each empty or null element of the basic matrix ^^^^ ^^^^' by a null matrix of size ^^^^ × ^^^^,and each non-zero element of the base matrix ^^^^ ^^^^' by a circular permutation matrix obtained by applying a circular rotation ^^^^ ^^^^ to an identity matrix of size ^^^^ × ^^^^, ^^^^ ∈, { 0.1, … } . The parity matrix ^^^^ thus obtained can be used by an encoder to encode at least one block of ^^^^. ^^^^ source data. 5.4.6 Variants An example has been described above in which the basis matrix BG' has the same size as the basis matrix BG2, with ^^^^ = 4, ^^^^ = { 6, 8, 9 ^^^^ ^^^^ 10 } et ^^^^ = { 26, 34, 38 ^^^^ ^^^^ 42 }. This allows in particular to be able to use the basic matrix BG' in any communications system according to the 5G standard. However, this is a simple example, and other values ​​for ^^^^, ^^^^ and ^^^^ can be considered, in particular for other transmission standards (Wifi®, 6G, etc.). Similarly, a basic matrix BG' has been proposed with five rotation factors V0 to V4. However, a different number of rotation factors can be chosen. Examples have also been given with a matrix ^^^^ of theOther forms of the matrix ^^^^ with at least one double diagonal can be used. In this case, the position of the connections and / or the values ​​of the rotation factors can be updated to take into account the structure of the matrix ^^^^. An LDPC code has also been taken as an example. The invention can also be extended to other error-correcting codes using a parity matrix. 5.5 Coding device Finally, in relation to Figure 14, we present the simplified structure of an encoder according to at least one embodiment described above. As illustrated in Figure 14, an encoder comprises at least one memory 141, at least one processing unit 142, equipped for example with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 143, implementing steps of the coding method according to at least one embodiment of the invention.At initialization, the code instructions of the computer program 143 are for example loaded into a RAM memory before being executed by the processor of the processing unit 142. The processor of the processing unit 142 implements steps of the coding method described previously, according to the instructions of the computer program 143, to code the ^^^^. ^^^^ source data using a parity matrix ^^^^ of size. ( ^^^^. ^^^^ × ^^^^. ^^^^ ) , and deliver at least one code word of size ^^^^. ^^^^ formed from the ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data.

Claims

CLAIMS 1. Method for coding at least one block of ^^^^. ^^^^ source data, delivering at least one code word of size ^^^^. ^^^^ formed from said ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data, ^^^^ = ^^^^ + ^^^^, with ^^^^ an integer expansion factor, ^^^^ ≥ 1, said method implementing a step of coding (53) said ^^^^. ^^^^ source data using a parity matrix ^^^^ of size ( ^^^^. ^^^^ × ^^^^. ^^^^ ) , characterized in that said parity matrix ^^^^ is obtained (52) from a basic matrix ^^^^ ^^^^' of size ^^^^ × ^^^^, by replacing each element of said basic matrix ^^^^ ^^^^' by an expansion matrix of size ^^^^ × ^^^^, said basic matrix ^^^^ ^^^^' being expressed in the form: with: ^^^^ a kernel matrix of size ^^^^ × ^^^^ ^^^^ a matrix with at least one double diagonal of size ^^^^ × ^^^^ ^^^^ an extension matrix of size ( ^^^^− ^^^^) × ^^^^ ^^^^ an extension matrix of size ( ^^^^ − ^^^^) × ^^^^0 a zero matrix of size ( ^^^^ − ^^^^ − ^^^^) × ^^^^^^^^ an identity matrix of size ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ )and in that said extension matrix ^^^^ comprises at least two consecutive row blocks, each comprising the same number of rows, each row block comprising a diagonal matrix.

2. Method according to claim 1, characterized in that at least one of said row blocks comprises a number of rows greater than or equal to 3.

3. Method according to any one of the preceding claims, characterized in that said extension matrix ^^^^ comprises at least two row blocks, each comprising the same number of rows, each row block comprising a diagonal matrix.

4. Method according to any one of the preceding claims, characterized in that the number of non-zero elements per column and / or per row relative to the total number of elements per column and / or per row in said kernel matrix ^^^^, excluding the first two columns, is between 50 and 100%. 5.Method according to any one of the preceding claims, characterized in that the number of non-zero elements per column and / or per row relative to the total number of elements per. column and / or per row in said kernel matrix ^^^^, excluding the first two columns, is between 75 and 100%.

6. Method according to any one of the preceding claims, characterized in that said first two columns of the kernel matrix ^^^^ and / or of said extension matrix ^^^^ comprise an alternation of non-zero elements and zero elements per row and per column.

7. Method according to any one of the preceding claims, characterized in that ^^^^ = 4 and: ^^^^ = 6 and ^^^^ = 26, or ^^^^ = 8 and ^^^^ = 34, or ^^^^ = 9 and ^^^^ = 38 or ^^^^ = 10 and ^^^^ = 42. 8.Procédé selon l'une quelconque des revenictions 1 à 4, characterized en ce que, selon la valeur de ^^^^, ladite matrix noyau ^^^^ est égale à : pour K=10 pour K=9 pour K=8 pour K=6 V1 V0 V3 V2 V1 V4 V3 V2 V4 V0 V3 V2 V4 V2 V3 V0 V2 V0 V3 V4 V2 V3 V1 V1 V3 V4 V4 ladite matrix ^^^^ presenting au moins une double diagonale est égale à : V0 V0 V0 V0 V1 V0 V0 V0 V0 ladite matrix d'extension ^^^^ est égale à : pour K=6 V4 V0 V2 V1 V3 V2 V1 V3 V2 V0 V1 V2 V0 V1 V1 V2 V4 V3. V1 V4 V2 V0 V1 V4 V2 V2 V3 V0 V4 V1 V0 V4 V0 for K=8: V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V4 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V0 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 for K=9: V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V3 V0 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V1 V4 V2 V4 V4 V2 V0 and for K=10: V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V3 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V3 V0 V4 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V1 V4 V2 V0 V4 V4 V2 V0 V4 V1 V0 V2 V1 V3 V0 V4 The said extension matrix ^^^^ is equal to: for K=6: V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 for K=8: V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 for K=9: V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 V3 V4 V1 V2 and for K=10: V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 V3 V4 V1 V2 V3 V4 V2 V3 and in that: - each empty or null element of said base matrix ^^^^ ^^^^' is replaced by a null matrix of size ^^^^ × ^^^^, - each non-null element of said base matrix ^^^^ ^^^^' is replaced by a circular permutation matrix obtained by applying a circular rotation ^^^^ ^^^^ to an identity matrix of size ^^^^ × ^^^^, such that: Circular Rotation ^^^^ ^^^^ if ^^^^ belongs to^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0: 63] {2,4,8,16,32,128,256} :^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0:63] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0:1] and ^^^^ ∈ [0:63] ^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0:63] {3,6,12,24,48,96,192,384} :^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0: 63]if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^,^^^^ ∈ [0:63] ^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0:63] {5,10,20,40,80,160,320} :^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0:63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0:63] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] {7,14,28,56,112,224} :^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0:31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] {9,18,36,72,144,288} :^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] {11,22,44,88,176,352} :^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:31] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] {13,26,52,104,208} :^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0:1] ^^^^ ^^^^ ^^^^ ∈ [0:15] if ^^^^ belongs to^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^1 = 1 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] {15,30,60,120,240} :^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0:2] ^^^^ ^^^^ ^^^^ ∈ [0:15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^,^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] with ^^^^ and ^^^^ random variables.

9. Device for encoding at least one block of ^^^^. ^^^^ source data, delivering at least one code word of size ^^^^. ^^^^ formed from said ^^^^. ^^^^ source data and ^^^^. ^^^^ redundancy data, ^^^^ = ^^^^ + ^^^^, with ^^^^ an integer expansion factor, ^^^^ ≥ 1, comprising at least one processing unit configured to encode (53) said ^^^^. ^^^^ source data using a parity matrix ^^^^ of size ( ^^^^. ^^^^ × ^^^^. ^^^^), characterized in that said parity matrix ^^^^ is obtained (52) from a base matrix ^^^^ ^^^^' of size ^^^^ × ^^^^, by replacing each element of said base matrix ^^^^ ^^^^' by an expansion matrix of size ^^^^ × ^^^^, said base matrix ^^^^ ^^^^' being expressed in the form:, with: ^^^^ a kernel matrix of size ^^^^ × ^^^^ ^^^^ a matrix having at least one double diagonal of size ^^^^ × ^^^^ ^^^^ an extension matrix of size ( ^^^^− ^^^^) × ^^^^ ^^^^ an extension matrix of size ( ^^^^ − ^^^^) × ^^^^0a null matrix of size ( ^^^^ − ^^^^ − ^^^^) × ^^^^^^^^ an identity matrix of size ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ ) and in that said extension matrix ^^^^ comprises at least two consecutive blocks of lines, each comprising the same number of lines, each block of lines comprising a diagonal matrix.

10. Computer program comprising instructions for implementing a method according to any one of claims 1 to 8 when this program is executed by a processor.