A two-dimensional cyclic shift network coding method
By using a two-dimensional cyclic shift method in network encoding, the data array is operated from two dimensions, and the problem of insufficient data operation flexibility in the prior art is solved, and smaller column span coding and higher coding flexibility are achieved.
Patent Information
- Application Number
- CN202411465137.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-21
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2044-10-21
AI Technical Summary
The existing cyclic shift network encoding can only perform data operations on one dimension, limiting the flexibility of data operations.
The two-dimensional cyclic shift network encoding method is used to operate the data array from two dimensions, and the two-dimensional cyclic shift encoding is performed by reconstructing the two-dimensional data array at the source and intermediate nodes, and applying a local encoding core to perform two-dimensional cyclic shift encoding.
This increases the flexibility of data operation. Compared with traditional one-dimensional cyclic shift network encoding, smaller column span encoding can be achieved for data packets of the same size, while maintaining the relevant advantages of cyclic shift network encoding.
Smart Images

Figure CN119276428B_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the technical field of network coding communication theory, and specifically is a two-dimensional cyclic shift network coding method. Background Art
[0002] Linear network coding is a data exchange technology that combines routing and coding. Its core idea is to linearly process the data received on each channel at each node in the network, and then output the newly generated coded data to the downstream node. The intermediate node plays not only the role of a router, but also the role of an encoder. Compared with the traditional store-and-forward routing mode, network coding allows intermediate nodes to participate in encoding and decoding, thereby improving the network throughput.
[0003] In traditional cyclic shift network coding, the L′ bit data is encoded in only one dimension. For example, for an L′-dimensional row vector m=(m1,m2,…,m L' ), if a j (1≤j≤L′) bit right shift circular shift operation is performed to generate m′=(m L'-j+1 ,…,m L' ,m1,…m L'-j ), then the operation can be expressed as Among them C L' is an L'×L' dimensional cyclic shift matrix, expressed as:
[0004]
[0005] It can be seen that in the existing cyclic shift network coding, the cyclic shift operation can only be performed on the data in one dimension, which limits the flexibility of data operation. Summary of the invention
[0006] The present invention provides a two-dimensional cyclic shift network coding method to operate on data arrays from two dimensions, thereby increasing the flexibility of data operations. Compared with one-dimensional cyclic shift network coding, for data packets of the same size, smaller column span coding can be achieved while still having the relevant advantages of cyclic shift network coding.
[0007] The present invention provides a two-dimensional cyclic shift network coding method, comprising the steps of:
[0008] S1. The information source s receives w groups of original data of L'=τ(L1-1)(L2-1) bits in length, reconstructs the w groups of original data of L' bits in length into binary data arrays of τ1L1×τ2L2 dimensions by adding all-0 vectors in rows and columns, and performs two-dimensional cyclic shift coding on the binary data array, wherein τ=τ1=τ2=1, generates new w groups of first coded data of L' bits in length, and regards the reconstructed binary data array of τ1L1×τ2L2 dimensions as a block matrix of L1×L2, each element of which is a submatrix of τ1×τ2, and L1 and L2 are different prime numbers greater than 1 respectively;
[0009] The source s has w outgoing edges, each of which is responsible for transmitting a set of first coded data of corresponding L' bits in length and its corresponding packet header to the network;
[0010] S2. The intermediate node v takes each incoming edge d v The received first coded data of L' bit length are respectively reconstructed into a binary data array of L1×L2 dimensions, and the binary data array is recoded by two-dimensional cyclic shift to generate new second coded data of L' bit length, and the corresponding packet header is updated at the same time, and the second coded data of L' bit length and the packet header are transmitted to the next node of the network through the outgoing edge e of the intermediate node v;
[0011] S3. Each destination t has w incoming edges, and each incoming edge d t Each of the destination t and the corresponding packet header of L' bit length transmitted by the intermediate node connected to it can receive the second coded data of L' bit length and the corresponding packet header, and determines whether decoding can be performed based on the w groups of packet headers. If decoding is successful, the destination t can restore the w groups of L' bit length original data received by the source s from the received w groups of L' bit length second coded data.
[0012] Furthermore, in step S1, each outgoing edge e is obtained by two-dimensional cyclic shift coding at the source s. j The transmitted first coded data of L' bit length, where 1≤j≤w, the specific two-dimensional cyclic shift coding scheme: when 1≤i≤w, the original data M of L' bit length received by the source s i Perform the following operations, including the steps:
[0013] Step S101: at the information source s, a group of original data M with a length of L'=(L1-1)(L2-1) bits is processed. i Reconstruction generates a two-dimensional matrix M of size (L1-1)×(L2-1) 1,i As a pre-processed data packet;
[0014] Step S102: In the two-dimensional matrix M 1,i Add a row of (L2-1)-dimensional all-0 vectors at the bottom of the two-dimensional matrix M1,i Add a column of all-zero vectors of dimension L1 to the right of M to obtain a two-dimensional matrix M of size L1×L2. 2,i ,Right now in, T represents the transpose of G, I represents the unit matrix of size (L2-1)×(L2-1), and 0 represents the column vector of (L2-1)×1;
[0015] Step S103: The information source s is a two-dimensional matrix M 2,i Select a set of local encoding kernels, which are composed of u i,j Two-dimensional cyclic shift matrix pair Composition, among which, C L1 is a cyclic shift matrix of size L1×L1, expressed as is a cyclic shift matrix of size L2×L2, expressed as Circular shift matrix The power k 1,i,j,l Satisfy 0≤k 1,i,j,l ≤L1-1, cyclic shift matrix The power k 2,i,j,l Satisfy 0≤k 2,i,j,l ≤L2-1, the number of two-dimensional cyclic shift matrix pairs contained in the local coding kernel u i,j Satisfy 0≤u i,j ≤L1L2, the form is The binary matrix pair M 2,i The local coding kernel for the two-dimensional cyclic shift operation, variable l satisfies 1≤l≤u i,j ;
[0016] Based on the local encoding kernel, the two-dimensional matrix M 2,i The specific implementation of the two-dimensional circular shift operation is:
[0017] Starting from l = 1, follow l from 1 to u i,j The order of the two-dimensional matrix M 2,i First loop up by row k 1,i,j,l Then, cycle right by column k 2,i,j,l bits, and obtain a two-dimensional matrix M of size L1×L2 3,i,l ,Right now The corresponding packet header is defined as a sequence pair (i,k 1,i,j,l ,k 2,i,j,l );
[0018] Get The header is a set of sequence pairs ∪. represents a union;
[0019] Step S104: transform the two-dimensional matrix M 3,i Add the last line to M 3,i On each row before the last row, delete the last row, and add the last column of the resulting (L1-1)×L2 matrix to M 3,i On each column before the last column of , and delete the last column, we get a two-dimensional matrix M of size (L1-1)×(L2-1) 4,i ,Right now in,
[0020] The source s has w outgoing edges, that is, there are w groups of data involved in the encoding. When 1≤j≤w, the original data M received from each incoming edge is i According to the above steps S101-S104, a two-dimensional cyclic shift encoding operation is performed to generate an edge e j The transmitted first coded data of length L' and the corresponding packet header, then the edge e j The transmitted first coded data of L' bit length is The corresponding packet header is It contains sequence pairs;
[0021] Each outgoing edge e j Responsible for transmitting a set of first coded data of L' bits in length and its corresponding packet header to the network.
[0022] Furthermore, in step S2, the intermediate node v has m1 incoming edges and m2 outgoing edges. When 1≤j≤m1, 1≤r≤m2, the intermediate node v has vj The received first coded data of length L' is re-encoded to generate edge e r The second coded data of L' bit length is transmitted, and the corresponding packet header is updated, comprising the following steps:
[0023] Step S201: The intermediate node v is connected to the incoming edge d vj The received first coded data of length L' is reconstructed to generate a two-dimensional matrix N of size (L1-1)×(L2-1) 1,j , the corresponding packet header is Where t is a variable ranging from 1 to u i,j , w is the number of data groups participating in encoding;
[0024] Step S202: In the two-dimensional matrix N 1,j Add a row of (L2-1)-dimensional all-0 vectors to the bottom of the two-dimensional matrix N 1,j Add a column of all-zero vectors of dimension L1 to the right of N to obtain a two-dimensional matrix N of size L1×L2.2,j ,Right now in,
[0025] Step S203: The intermediate node v is a two-dimensional matrix N 2,j Select a set of local encoding kernels, which consists of n j,r Two-dimensional cyclic shift matrix pair Composition, where 0≤h 1,j,r,l ≤L1-1,0≤h 2,j,r,l ≤L2-1, 1≤l≤n j,r , 0≤n j,r ≤L1L2, in the form of The binary matrix pair N 2,j A local coding kernel for performing a two-dimensional cyclic shift operation, based on which the two-dimensional matrix N 2,j The specific implementation of the two-dimensional circular shift operation is:
[0026] Starting from l=1, follow l from 1 to n j,r The order of the two-dimensional matrix N 2,j First loop up by row h 1,j,r,l Then cycle right by column h 2,j,r,l bits, and obtain a two-dimensional matrix N of size L1×L2 3,j ,Right now N 3,j,l The corresponding packet header is
[0027] Get a two-dimensional matrix N 3,j The corresponding packet header is If the number of identical sequence pairs in the packet header is an odd number, one of the sequence pairs is retained. If the number of identical sequence pairs in the packet header is an even number, the sequence pair is not retained. There are at most wL1L2 sequence pairs in the packet header.
[0028] Step S204: transform the two-dimensional matrix N 3,j The last row is added to the two-dimensional matrix N 3,j Add the last column of the resulting (L1-1)×L2 matrix to each column before the last column of the (L1-1)×L2 matrix, and delete the last column to obtain a two-dimensional matrix N of size (L1-1)×(L2-1). 4,j ,Right now in,
[0029] When 1≤j≤m1, the intermediate node v is connected to the incoming edge d vjThe received coded data is subjected to a two-dimensional cyclic shift operation according to steps S201-S204 to generate an edge e r The transmitted second coded data of L' bits and the corresponding packet header, then the edge e r The transmitted second coded data of L' bit length is The corresponding packet header is If the number of identical sequence pairs in the packet header is an odd number, one of the sequence pairs is retained; if the number of identical sequence pairs in the packet header is an even number, the sequence pair is not retained. There are at most wL1L2 sequence pairs in the packet header;
[0030] Each outgoing edge e r Responsible for transmitting the generated second coded data of L' bit length and its corresponding packet header to the next node in the network.
[0031] Furthermore, in step S3, the destination t has w incoming edges, and when 1≤j≤w, the incoming edge d tj The received packet header is u i,j Indicates that the local encoding kernel is composed of u i,j The method for the destination t to determine whether the decoding can be successfully performed based on the received w groups of packet headers is:
[0032] Construct a w×w dimensional matrix Ψ(x,y) and define represents the element in the i-th row and j-th column of the matrix Ψ(x,y), then satisfy:
[0033]
[0034] Then, use Replace x with Instead of y, and The product of and The Kronecker product of , then define the w×w dimensional block matrix Its i-th row and j-th column element is a L1L2×L1L2 dimensional matrix but satisfy:
[0035]
[0036] in, represents the Kronecker product;
[0037] If the matrix If the rank is full, the destination t can successfully restore the w groups of L' bit-length original data received by the source s from the received w groups of L' bit-length second coded data.
[0038] Furthermore, in step S3, when the destination t is successfully decoded, the method for constructing the two-dimensional cyclic shift matrix pair corresponding to the decoding is:
[0039] Given a w×w dimensional matrix Ψ(x,y), the w×w dimensional decoding matrix Φ(x,y) is defined as:
[0040]
[0041] Where det(.) represents the determinant, Adj(.) represents the adjoint matrix, L = L1L2, m L Denotes the multiplication order of 2 modulo L, and defines φ i,j (x,y) represents the element of the i-th row and j-th column of the decoding matrix Φ(x,y), then according to φ i,j (x,y) defines a sequence pair that satisfies:
[0042] (1) If φ i,j (x,y)=0, then there is no corresponding sequence pair;
[0043] (2) If φ i,j (x,y)≠0, then the corresponding sequence pair is:
[0044] Among them, u i,j Represents the polynomial φ i,j The number of terms in (x,y), k 1,i,j,t Represents the polynomial φ i,j (x,y) the power of x in the tth term, k 2,i,j,t Represents the polynomial φ i,j (x,y) the power of y in the tth term; if the polynomial φ i,j There is a constant term 1 in (x,y), then the corresponding sequence pair is (j,0,0); if the polynomial φ i,j There is only a power of x in (x,y), then the corresponding sequence pair is (i, (L1-k 1,i,j,t ),0); if the polynomial φ i,j There is only a power term of y in (x,y), then the corresponding sequence pair is (i,0,k 2,i,j,t ).
[0045] Further, in step S3, after the information sink t receives w groups of L'-bit-length second coded data and the corresponding packet header, it is determined that decoding can be successfully performed according to the packet header, so that the information sink t can restore the w groups of L'-bit-length original data received by the information source s from the received w groups of L'-bit-length second coded data, when 1≤i≤w, the following steps are included:
[0046] Step S301: For the incoming edge d from the destination tti The received second coded data of length L' is reconstructed to generate a two-dimensional matrix T of size (L1-1)×(L2-1) 1,i ;
[0047] Step S302: In the two-dimensional matrix T 1,i Add a row of (L2-1)-dimensional all-zero vectors at the bottom of the 2D matrix T 1,i Add a column of all-zero vectors of dimension L1 to the right of , and get a two-dimensional matrix T of size L1×L2 2,i ,Right now in,
[0048] Step S303: Decode the corresponding w×w dimensional decoding matrix Each position element in is regarded as a set of sequence pairs. After the destination t receives w groups of L' bit-long second coded data, and the decoding matrix Multiply a column of , and restore a set of L'bit length of original data; suppose the two-dimensional matrix T 2,i The corresponding sequence pair is Then we can get the two-dimensional matrix T for decoding 2,i The corresponding two-dimensional cyclic shift matrix pair is Based on this matrix pair, the two-dimensional matrix T 2,i The specific implementation of the two-dimensional circular shift operation is:
[0049] Starting from t = 1, follow the steps from t 1 to u i,j The order of the two-dimensional matrix T 2,i First loop up by row k 1,i,j,t Then, cycle right by column k 2,i,j,t bits, and obtain a two-dimensional matrix T of size L1×L2 3,i,t ,Right now
[0050] Get
[0051] Step S304: transform the two-dimensional matrix T 3,i The last row is added to the two-dimensional matrix T 3,i Add the last column of the resulting (L1-1)×L2 matrix to each of the previous columns of the (L1-1)×L2 matrix and delete the last column to obtain a two-dimensional matrix T of size (L1-1)×(L2-1) 4,i ,Right now in,
[0052] When 1≤i≤w, given a pair of decoding sequences, the second coded data of L' bit length received from the destination t is subjected to a two-dimensional cyclic shift operation according to the above steps S301-S304 to restore a set of original data generated by the source s, which is There are w columns of corresponding decoding sequence pairs in the decoding matrix, which can restore w groups of original data received by the source s.
[0053] The two-dimensional cyclic shift network coding of the present invention can perform cyclic shift operations on data from two dimensions, further enhancing the application flexibility of cyclic shift network coding and providing more possibilities for exploring the application of cyclic shift network coding in actual network environments.
[0054] The present invention operates on L′ bit data in two dimensions. For example, for an L′ dimensional row vector m=(m1,m2,…,m L' ) First, data reconstruction is performed to generate a two-dimensional data array m' of L1×L2 dimensions, where L'=L1×L2, and m' is expressed as:
[0055]
[0056] If an i (1≤i≤L1) bit upward circular shift operation is performed, and then a j (1≤j≤L2) bit right circular shift operation is performed to generate m", the operation can be expressed as Denoted as:
[0057]
[0058] The beneficial effects of the present invention include:
[0059] 1. During the encoding process, only cyclic shift and bit-by-bit XOR operations are performed on the received L' bit data, which can greatly simplify the linear encoding operation of the intermediate nodes of the network, thereby reducing the complexity of the encoding operation.
[0060] 2. Compared with the traditional one-dimensional cyclic shift network coding, the present invention can achieve smaller column span coding for data packets of the same size.
[0061] 3. The present invention can perform cyclic shift operations on data from two dimensions, thereby increasing the flexibility of data operations and the number of optional encoding cores. BRIEF DESCRIPTION OF THE DRAWINGS
[0062] Figure 1 This is a schematic diagram of the (4, 2) combination network of an embodiment of the present invention.
[0063] Figure 2 is a flow chart of an embodiment of the present invention. DETAILED DESCRIPTION
[0064] To make the purpose, technical scheme and advantages of the embodiments of the present application clearer, the technical scheme in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. The components of the embodiments of the present application usually described and shown in the drawings here can be arranged and designed in various configurations. Therefore, the following detailed description of the embodiments of the present application provided in the drawings is not intended to limit the scope of the application claimed for protection, but merely represents the selected embodiments of the present application. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without making creative work belong to the scope of protection of the present application.
[0065] like Figure 1 and Figure 2 As shown, this embodiment specifically describes a two-dimensional cyclic shift network coding method proposed in the present invention in combination with a classic (4, 2) multicast network. The multicast network consists of a source s, a coding node u, four intermediate nodes and six destinations. The number of outgoing edges of the source is w=2. Let L1=3, L2=5, L'=τ(L1-1)(L2-1)=8τ, and let τ=1.
[0066] It should be noted here that in a single-source multi-destination multicast network, there are multiple intermediate nodes v, and each intermediate node v can perform the same operation. The above-mentioned encoding node u and the four intermediate nodes are all specific forms of the intermediate node v.
[0067] The present invention proposes a two-dimensional cyclic shift network coding method, comprising the steps of:
[0068] Step S1: The information source s receives w=2 groups of original data, each group of original data is 8 bits (L' bits), and encodes them at the information source s to generate 8-bit encoded data transmitted by the outgoing edge e1. When the number of outgoing edges i=1, 2, the following steps are included:
[0069] Step S101: The signal source s reconstructs the received two groups of 8-bit original data M1 and M2 to generate a 2×4 dimensional two-dimensional matrix M 1,i , as pre-processed data packets, are represented as:
[0070]
[0071] Step S102: In M 1,1 and M 1,2 Add a row of 4-dimensional all-0 vectors at the bottom of each, and then add ... 1,1 and M 1,2 Add a column of 3-dimensional all-0 vectors to the right of each to obtain a 3×5-dimensional matrix M2,1 and M 2,2 ,Right now Where G1 = [I 2×2 0 2×1 ],G2=[I 4×4 0 4×1 ], T represents the transpose of G, I represents the unit matrix of size (L2-1)×(L2-1), 0 represents the column vector of (L2-1)×1; the matrix M 2,1 and M 2,2 Respectively expressed as:
[0072]
[0073] Step S103: The information source s selects a two-dimensional cyclic shift matrix pair As a countermeasure to M 2,1 The local coding kernel for the two-dimensional cyclic shift operation is selected to be the two-dimensional cyclic shift matrix As a countermeasure to M 2,2 A local coding kernel for a two-dimensional cyclic shift operation; Based on these two local coding kernels, the two-dimensional matrix M 2,1 and M 2,2 The specific implementation of the two-dimensional circular shift operation is:
[0074] For a two-dimensional matrix M 2,1 First, we rotate upwards by 1 bit by row, and then rotate rightwards by 2 bits by column to obtain a 3×5 two-dimensional matrix M. 3,1,1 ,Right now The corresponding packet header is a sequence pair (1, 1, 2);
[0075] For a two-dimensional matrix M 2,1 First, we rotate 2 bits upwards by row, and then rotate 3 bits to the right by column, to get a 3×5 two-dimensional matrix M. 3,1,2 ,Right now The corresponding packet header is a sequence pair (1, 2, 3);
[0076] Get M 3,1 =M 3,1,1 +M 3,1,2 , the packet header is a sequence pair set {(1,1,2),(1,2,3)}; M 3,1 It is expressed as:
[0077]
[0078] For a two-dimensional matrix M 2,2 Circulate 3 bits to the right by column to get a 3×5 two-dimensional matrix M 3,2,1 ,Right now The corresponding packet header is a sequence pair (2, 0, 3);
[0079] For a two-dimensional matrix M 2,2 First, we rotate 2 bits upwards by row, and then rotate 4 bits to the right by column, to obtain a 3×5 two-dimensional matrix M. 3,2,2 ,Right now The corresponding packet header is a sequence pair (2, 2, 4);
[0080] Get M 3,2 =M 3,2,1 +M 3,2,2 , the packet header is a sequence pair set {(2,0,3),(2,2,4)}; M 3,2 It is expressed as:
[0081]
[0082] Step S104: transform the two-dimensional matrix M 3,1 The third row of the 2×5 matrix is added to the first and second rows respectively, and the third row is deleted. The fifth column of the resulting 2×5 matrix is added to each of the previous columns, and the fifth column is deleted to obtain a 2×4 two-dimensional matrix M 4,1 ,Right now Where H1=[I 2×2 1 2×1 ] T , H2=[I 4×4 1 4×1 ] T ; Similarly, for the two-dimensional matrix M 3,2 Following the above operation, we can obtain a 2×4 two-dimensional matrix M 4,2 ,Right now From this, we can get the 8-bit encoded data transmitted by the outgoing edge e1 of the source s as: The corresponding packet headers are: {(1,1,2),(1,2,3),(2,0,3),(2,2,4)}.
[0083] Similarly, the original data M1 and M2 are 2D cyclic shift coded according to steps S101-S104 to generate 8-bit coded data and corresponding packet header transmitted by the outgoing edge e2 of the information source s. At this time, in step S103, the 2D cyclic shift matrix pairs selected by the information source s for M1 and M2 are respectively The 8-bit encoded data transmitted by the generated outgoing edge e2 is: The corresponding packet header is: {(1,1,3),(2,2,3),(2,0,1)}.
[0084] The outgoing edges e1 and e2 of the source s transmit the corresponding coded data and packet header to the coding node u in the network (by Figure 1It can be seen that e1 and e2 are both outgoing edges of the information source s and incoming edges of the coding node u).
[0085] Step S2: The local coding kernel corresponding to the edge pair (e1, e3) of the coding node u is defined as The local encoding kernel corresponding to the edge pair (e1, e4) is 0, and the local encoding kernel corresponding to the edge pair (e1, e5) is The local encoding kernel corresponding to the edge pair (e1, e6) is The local encoding kernel corresponding to the edge pair (e2, e3) is 0, and the local encoding kernel corresponding to the edge pair (e2, e4) is The local encoding kernel corresponding to the edge pair (e2, e5) is The local encoding kernel corresponding to the edge pair (e2, e6) is After the coding node u receives the coded data and packet header from the incoming edges e1 and e2, the coding node u re-encodes the 8-bit coded data received from the incoming edges e1 and e2 to generate the 8-bit coded data transmitted by the outgoing edge e5 as an example to illustrate the coding operation at the intermediate node, including the following steps:
[0086] Step S201: At encoding node u, the 8-bit coded data received from incoming edge e1 is Reconstruction generates a two-dimensional matrix N of size 2×4 1,1 ; The packet header corresponding to N1 is {(1,1,2),(1,2,3),(2,0,3),(2,2,4)};
[0087] At encoding node u, the 8-bit coded data received from incoming edge e2 is Reconstruction generates a two-dimensional matrix N of size 2×4 1,2 ; The packet header corresponding to N2 is {(1,1,3),(2,2,3),(2,0,1)};
[0088] Step S202: In the two-dimensional matrix N 1,1 Add a row of 4-dimensional all-0 vectors at the bottom of the 2D matrix N 1,1 Add a 3-dimensional all-0 vector to the right of to get a 3×5 2D matrix N 2,1 ,Right now Where G1 = [I 2×2 0 2×1 ],G2=[I 4×4 0 4×1 ];
[0089] In the two-dimensional matrix N 1,2 Add a row of 4-dimensional all-0 vectors at the bottom of the 2D matrix N 1,2Add a 3-dimensional all-0 vector to the right of to get a 3×5 2D matrix N 2,2 ,Right now Where G1 = [I 2×2 0 2×1 ],G2=[I 4×4 0 4×1 ];
[0090] Step S203: Define the local encoding kernel corresponding to the edge pair (e1, e5) as The local encoding kernel corresponding to the edge pair (e2, e5) is Binary Matrix Pairs and As pairs N 2,1 and N 2,2 The local coding kernel for the two-dimensional cyclic shift operation is based on the above local coding kernel, and the two-dimensional matrix N 2,1 and N 2,2 The specific implementation of the two-dimensional circular shift operation is:
[0091] For a two-dimensional matrix N 2,1 First, we rotate 1 bit upwards by row, and then rotate 4 bits to the right by column, to get a 3×5 two-dimensional matrix N. 3,1 ,Right now N 3,1 The corresponding packet header is {(1,2,1),(1,0,2),(2,1,2),(2,0,3)};
[0092] For a two-dimensional matrix N 2,2 First, we rotate the rows upward by 1 bit, and then rotate the columns right by 1 bit to obtain a 3×5 two-dimensional matrix N. 3,2 ,Right now N 3,2 The corresponding packet header is {(1,2,4),(2,0,4),(2,1,2)};
[0093] Step S204: transform the two-dimensional matrix N 3,1 and N 3,2 The last row of each is added to each of the previous rows, and the last row of each is deleted. The last column of the resulting 2×5 matrix is added to each of the previous columns, and the last column of each is deleted, resulting in a 2×4 two-dimensional matrix N 4,1 and N 4,2 ,Right now Where H1=[I 2×2 1 2×1 ] T , H2=[I 4×4 1 4×1 ] T ;
[0094] Based on the above operations, the coded data transmitted by the outgoing edge e5 of the coding node u can be obtained as follows: The corresponding packet header is: {(1,2,1),(1,0,2),(2,0,3),(1,2,4),(2,0,4)}.
[0095] Similarly, the coded data transmitted by the outgoing edge e3 of the coding node u can be obtained as: The packet header is {(1,2,0),(1,0,1),(2,1,1),(2,0,2)}; the coded data transmitted by outgoing edge e4 is The packet header is {(1,1,4),(2,2,4),(2,0,2)}; the coded data transmitted by outgoing edge e6 is The packet header is {(1,1,0),(1,2,1),(2,0,1),(1,0,4),(2,1,4)};
[0096] Step S3: The third layer of the (4,2) combined network has four intermediate nodes, each of which has one incoming edge and three outgoing edges. Define the edge pair The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is Side The corresponding local encoding kernel is
[0097] Similarly, according to the operation method encoded in the intermediate node, the outgoing edge can be obtained The second coded data transmitted is The corresponding packet header is {(1,1,3),(1,2,4),(2,0,4),(2,2,0)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,4),(1,0,0),(2,1,0),(2,0,1)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,1),(1,0,2),(2,1,2),(2,0,3)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,1,2),(2,2,2),(2,0,0)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,3),(2,0,3),(2,1,1)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,1,0),(2,2,0),(2,0,3)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,0,2),(1,1,3),(2,1,4),(1,0,0),(2,1,0)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,1,3),(1,2,4),(2,2,0),(1,1,1),(2,2,1)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,3),(1,0,4),(2,0,0),(1,2,1),(2,0,1)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,2),(1,0,3),(2,1,3),(1,1,1),(2,2,1)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,3),(1,0,4),(2,1,4),(1,1,2),(2,2,2)}; outgoing edge The second coded data transmitted is The corresponding packet header is {(1,2,4),(1,0,0),(2,1,0),(1,1,3),(2,2,3)};
[0098] The following is an example of how to determine whether a destination can successfully decode. Destination t1 has two incoming edges d1 and d2. The packet headers received by incoming edges d1 and d2 are {(1,1,3),(1,2,4),(2,0,4),(2,2,0)} and {(1,1,2),(2,2,2),(2,0,0)}, respectively. When determining whether decoding can be successfully performed based on the two sets of received packet headers, the 2×2 matrix Ψ(x,y) is constructed as follows:
[0099]
[0100] Furthermore, the 30×30 dimensional matrix Ψ(C3,C5) is defined as:
[0101]
[0102] Because the matrix The rank is full, so the destination t1 can restore the two groups of 8-bit original data received by the source from the two groups of 8-bit second coded data received.
[0103] According to the above method, when 1≤i≤6, the destination t i All can be decoded successfully.
[0104] The construction method of the two-dimensional cyclic shift matrix pair in the decoding process is explained using the signal sink t1. The signal sink t1 can be successfully decoded, and the construction method of the corresponding two-dimensional cyclic shift matrix pair during decoding is as follows:
[0105] Given a 2×2 dimensional matrix Ψ(x,y), we define a 2×2 dimensional decoding matrix Φ(x,y) as
[0106]
[0107] Definition φ i,j (x,y) represents the element of the i-th row and j-th column of the decoding matrix Φ(x,y), then according to φ i,j (x,y) defines a sequence pair, φ 1,1 The sequence pair corresponding to (x,y) is {(1,2,2),(1,0,4)}; φ 2,1 The sequence pair corresponding to (x,y) is {(2,1,2),(2,2,4),(2,1,1),(2,0,4)}; φ 1,2 The sequence pair corresponding to (x,y) is {(1,2,0),(1,0,3),(1,1,1),(1,1,2)}; φ 2,2 The sequence pairs corresponding to (x,y) are {(2,1,3),(2,1,2),(2,2,4),(2,2,3),(2,2,1),(2,1,0),(2,0,2),(2,0,4)};
[0108] When 1≤i≤6, the above method can be used to construct the destination t i The corresponding two-dimensional cyclic shift matrix pair during decoding.
[0109] The specific decoding process is described using the destination t1. The destination t1 receives two sets of 8-bit second coded data. and After that, restoring the two groups of 8-bit original data received by the source from the two groups of 8-bit second coded data received comprises the following steps:
[0110] Step S301: The received 8-bit second coded data Reconstruction generates a two-dimensional matrix T of size 2×4 1,1 ;
[0111] From the input side The received 8-bit coded data Reconstruction generates a two-dimensional matrix T of size 2×4 1,2 ;
[0112] Step S302: In the two-dimensional matrix T 1,1 Add a row of 4-dimensional all-0 vectors at the bottom of the 2D matrix T 1,1 Add a 3-dimensional all-0 vector to the right of to get a 3×5 2D matrix T 2,1 ,Right now Where G1 = [I 2×2 0 2×1 ],G2=[I 4×4 0 4×1 ];
[0113] In the two-dimensional matrix T 1,2 Add a row of 4-dimensional all-0 vectors at the bottom of the 2D matrix T 1,1 Add a 3-dimensional all-0 vector to the right of to get a 3×5 2D matrix T 2,2 ,Right now
[0114] Step S303: From the construction method of the two-dimensional cyclic shift matrix pair in the decoding process described by the above sink t1, it can be seen that the two-dimensional matrix T 2,1 The corresponding sequence pair is {(1,2,2),(1,0,4)}, and the two-dimensional matrix T for decoding can be obtained 2,1 The corresponding two-dimensional cyclic shift matrix pair is k 1,t Represents the second number in each sequence pair, k 2,t Represents the third number in each sequence pair. Based on this matrix pair, the two-dimensional matrix T2,1 The specific implementation of the two-dimensional circular shift operation is:
[0115] Starting from t=1, the two-dimensional matrix T is sequentially 2,1 First loop up by row k 1,t Then, cycle right by column k 2,t bits, and obtain a two-dimensional matrix T of size L1×L2 3,1,t ,Right now
[0116] Get a two-dimensional matrix
[0117] When decoding, the two-dimensional matrix T 2,2 The corresponding sequence pairs are {(2,1,2),(2,2,4),(2,1,1),(2,0,4)}, and the two-dimensional matrix T for decoding can be obtained 2,2 The corresponding two-dimensional cyclic shift matrix pair is k 1,t Represents the second number in each sequence pair, k 2,t Represents the third number in each sequence pair. Based on this matrix pair, the two-dimensional matrix T 2,2 The specific implementation of the two-dimensional circular shift operation is:
[0118] Starting from t=1, the two-dimensional matrix T is sequentially 2,2 First loop up by row k 1,t Then, cycle right by column k 2,t bits, and obtain a two-dimensional matrix T of size L1×L2 3,2,t , that is, a two-dimensional matrix
[0119] Get a two-dimensional matrix
[0120] Step S304: transform the two-dimensional matrix T 3,1 The last row of the 2×5 matrix is added to each of the previous rows and the last row is deleted. The last column of the resulting 2×5 matrix is added to each of the previous columns and the last column is deleted to obtain a 2×4 two-dimensional matrix T. 4,1 , that is, a two-dimensional matrix in,
[0121] The two-dimensional matrix T 3,2 The last row of the 2×5 matrix is added to each of the previous rows and the last row is deleted. The last column of the resulting 2×5 matrix is added to each of the previous columns and the last column is deleted to obtain a 2×4 two-dimensional matrix T. 4,2 , that is, a two-dimensional matrix
[0122] The received second coded data and According to the above steps S301-S304, the two-dimensional cyclic shift operation is completed to restore a set of original data received by the source, which is T 4,1 +T 4,2 ;
[0123] The two-dimensional matrix T during decoding 2,1 The corresponding sequence pairs are {(1,2,0),(1,0,3),(1,1,1),(1,1,2)}, and the two-dimensional matrix T 2,2 The corresponding sequence pairs are {(2,1,3),(2,1,2),(2,2,4),(2,2,3),(2,2,1),(2,1,0),(2,0,2),(2,0,4)}. 2,1 and T 2,2 A two-dimensional cyclic shift operation is performed to restore the original data received by another group of information sources.
[0124] The above embodiments only express the specific implementation methods of the present application, and the description is relatively specific and detailed, but it cannot be understood as limiting the scope of the present application. For ordinary technicians in this field, several modifications and improvements made without departing from the concept of the present application all belong to the protection scope of the present application.
Claims
1. A method for two-dimensional cyclic shift network coding, characterized by: Includes steps: S1. A signal source s receives w groups of original data of L'=τ(L1-1)(L2-1) bits in length, and reconstructs the w groups of original data of L' bits in length into binary data arrays of τ1L1×τ2L2 dimensions by adding all-0 vectors in rows and columns; and performs two-dimensional cyclic shift coding on the binary data array, wherein τ=τ1=τ2=1, to generate new w groups of first coded data of L' bits in length, and regards the reconstructed binary data array of τ1L1×τ2L2 dimensions as a L1×L2 matrix, each element of which is a τ1×τ2 submatrix, and L1 and L2 are different prime numbers greater than 1; The source s has w outgoing edges, each of which is responsible for transmitting a set of first coded data of corresponding L' bits in length and its corresponding packet header to the network; S2. The intermediate node v takes each incoming edge d v The received first coded data of L' bit length are respectively reconstructed into a binary data array of L1×L2 dimensions, and the binary data array is recoded by two-dimensional cyclic shift to generate new second coded data of L' bit length, and the corresponding packet header is updated at the same time, and the second coded data of L' bit length and the packet header are transmitted to the next node of the network through the outgoing edge e of the intermediate node v; S3. Each destination t has w incoming edges, and each incoming edge d t Each of the destination t and the corresponding packet header of L' bit length transmitted by the intermediate node connected to it can receive the second coded data of L' bit length and the corresponding packet header, and determines whether decoding can be performed based on the w groups of packet headers. If decoding is successful, the destination t can restore the w groups of L' bit length original data received by the source s from the received w groups of L' bit length second coded data.
2. A two-dimensional cyclic shift network coding method as claimed in claim 1, characterized in that: In step S1, each outgoing edge e is obtained by two-dimensional cyclic shift coding at the source s. j The transmitted first coded data of L' bit length, where 1≤j≤w, the specific two-dimensional cyclic shift coding scheme: when 1≤i≤w, the original data M of L' bit length received by the source s i Perform the following operations, including the steps: Step S101: at the information source s, a group of original data M with a length of L'=(L1-1)(L2-1) bits is processed. i Reconstruction generates a two-dimensional matrix M of size (L1-1)×(L2-1) 1,i As a pre-processed data packet; Step S102: In the two-dimensional matrix M 1,i Add a row of (L2-1)-dimensional all-0 vectors at the bottom of the two-dimensional matrix M 1,i Add a column of all-zero vectors of dimension L1 to the right of M to obtain a two-dimensional matrix M of size L1×L2. 2,i ,Right now in, T represents the transpose of G, I represents the unit matrix of size (L2-1)×(L2-1), and 0 represents the column vector of (L2-1)×1; Step S103: The information source s is a two-dimensional matrix M 2,i Select a set of local encoding kernels, which are composed of u i,j Two-dimensional cyclic shift matrix pair Composition, among which, is a cyclic shift matrix of size L1×L1, expressed as is a cyclic shift matrix of size L2×L2, expressed as Circular shift matrix C L1 The power k 1,i,j,l Satisfy 0≤k 1,i,j,l ≤L1-1, cyclic shift matrix C L2 The power k 2,i,j,l Satisfy 0≤k 2,i,j,l ≤L2-1, the number of two-dimensional cyclic shift matrix pairs contained in the local coding kernel u i,j Satisfy 0≤u i,j ≤L1L2, the form is The binary matrix pair M 2,i The local coding kernel for the two-dimensional cyclic shift operation, variable l satisfies 1≤l≤u i,j ; Based on the local encoding kernel, the two-dimensional matrix M 2,i The specific implementation of the two-dimensional circular shift operation is: Starting from l = 1, follow l from 1 to u i,j The order of the two-dimensional matrix M 2,i First loop up by row k 1,i,j,l Then, cycle right by column k 2,i,j,l bits, and obtain a two-dimensional matrix M of size L1×L2 3,i,l ,Right now The corresponding packet header is defined as a sequence pair (i, k 1,i,j,l ,k 2,i,j,l ); Get The packet header is a set of sequence pairs ∪. represents a union; Step S104: transform the two-dimensional matrix M 3,i Add the last line to M 3,i On each row before the last row, delete the last row, and add the last column of the resulting (L1-1)×L2 matrix to M 3,i On each column before the last column of , and delete the last column, we get a two-dimensional matrix M of size (L1-1)×(L2-1) 4,i ,Right now in, The source s has w outgoing edges, that is, there are w groups of data involved in the encoding. When 1≤j≤w, the original data M received from each incoming edge is i According to the above steps S101-S104, a two-dimensional cyclic shift encoding operation is performed to generate an edge e j The transmitted first coded data of length L' and the corresponding packet header, then the edge e j The transmitted first coded data of L' bit length is The corresponding packet header is It contains sequence pairs; Each outgoing edge e j Responsible for transmitting a set of first coded data of L' bits in length and its corresponding packet header to the network.
3. A two-dimensional cyclic shift network coding method as claimed in claim 1, characterized in that: In step S2, the intermediate node v has m1 incoming edges and m2 outgoing edges. When 1≤j≤m1, 1≤r≤m2, the intermediate node v has a vj The received first coded data of length L' is re-encoded to generate edge e r The second coded data of L' bit length is transmitted, and the corresponding packet header is updated, comprising the following steps: Step S201: The intermediate node v is connected to the incoming edge d vj The received first coded data of length L' is reconstructed to generate a two-dimensional matrix N of size (L1-1)×(L2-1) 1,j , the corresponding packet header is Where t is a variable ranging from 1 to u i,j , w is the number of data groups participating in encoding; Step S202: In the two-dimensional matrix N 1,j Add a row of (L2-1)-dimensional all-0 vectors to the bottom of the two-dimensional matrix N 1,j Add a column of all-zero vectors of dimension L1 to the right of N to obtain a two-dimensional matrix N of size L1×L2. 2,j ,Right now in, Step S203: The intermediate node v is a two-dimensional matrix N 2,j Select a set of local encoding kernels, which consists of n j,r Two-dimensional cyclic shift matrix pair Composition, where 0≤h 1,j,r,l ≤L1-1,0≤h 2,j,r,l ≤L2-1, 1≤l≤n j,r , 0≤n j,r ≤L1L2, in the form of The binary matrix pair N 2,j A local coding kernel for performing a two-dimensional cyclic shift operation, based on which the two-dimensional matrix N 2,j The specific implementation of the two-dimensional circular shift operation is: Starting from l=1, follow l from 1 to n j,r The order of the two-dimensional matrix N 2,j First loop up by row h 1,j,r,l Then cycle right by column h 2,j,r,l bits, and obtain a two-dimensional matrix N of size L1×L2 3,j ,Right now N 3,j,l The corresponding packet header is Get a two-dimensional matrix N 3,j The corresponding packet header is If the number of identical sequence pairs in the packet header is an odd number, one of the sequence pairs is retained. If the number of identical sequence pairs in the packet header is an even number, the sequence pair is not retained. There are at most wL1L2 sequence pairs in the packet header. Step S204: transform the two-dimensional matrix N 3,j The last row is added to the two-dimensional matrix N 3,j Add the last column of the resulting (L1-1)×L2 matrix to each column before the last column of the (L1-1)×L2 matrix, and delete the last column to obtain a two-dimensional matrix N of size (L1-1)×(L2-1). 4,j ,Right now in, When 1≤j≤m1, the intermediate node v is connected to the incoming edge d vj The received coded data is subjected to a two-dimensional cyclic shift operation according to steps S201-S204 to generate an edge e r The transmitted L' bit length second coded data and the corresponding packet header, then the edge e r The transmitted second coded data of L' bit length is The corresponding packet header is If the number of identical sequence pairs in the packet header is an odd number, one of the sequence pairs is retained; if the number of identical sequence pairs in the packet header is an even number, the sequence pair is not retained. There are at most wL1L2 sequence pairs in the packet header; Each outgoing edge e r Responsible for transmitting the generated second coded data of L' bit length and its corresponding packet header to the next node in the network.
4. A two-dimensional cyclic shift network coding method as claimed in claim 1, characterized in that: In step S3, the destination t has w incoming edges. When 1≤j≤w, the incoming edge d tj The received packet header is u i,j Indicates that the local encoding kernel is composed of u i,j The method for the destination t to determine whether the decoding can be successfully performed based on the received w groups of packet headers is: Construct a w×w dimensional matrix Ψ(x,y) and define represents the element in the i-th row and j-th column of the matrix Ψ(x,y), then satisfy: Then, use C L1 Replace x with Instead of y, and The product of and The Kronecker product of , then define the w×w dimensional block matrix Its i-th row and j-th column element is a L1L2×L1L2 dimensional matrix but satisfy: in, represents the Kronecker product; If the matrix If the rank is full, the destination t can successfully restore the w groups of L'-bit-long original data received by the source s from the received w groups of L'-bit-long second coded data.
5. A two-dimensional cyclic shift network coding method as claimed in claim 4, characterized in that: In step S3, when the destination t is successfully decoded, the method for constructing the two-dimensional cyclic shift matrix pair corresponding to the decoding is: Given a w×w dimensional matrix Ψ(x,y), the w×w dimensional decoding matrix Φ(x,y) is defined as: Where det(.) represents the determinant, Adj(.) represents the adjoint matrix, L = L1L2, m L Denotes the multiplication order of 2 modulo L, and defines φ i,j (x,y) represents the element of the i-th row and j-th column of the decoding matrix Φ(x,y), then according to φ i,j (x,y) defines a sequence pair that satisfies: (1) If φ i,j (x,y)=0, then there is no corresponding sequence pair; (2) If φ i,j (x,y)≠0, then the corresponding sequence pair is: Among them, u i,j Represents the polynomial φ i,j The number of terms in (x,y), k 1,i,j,t Represents the polynomial φ i,j (x,y) the power of x in the tth term, k 2,i,j,t Represents the polynomial φ i,j (x,y) the power of y in the tth term; if the polynomial φ i,j There is a constant term 1 in (x,y), then the corresponding sequence pair is (j,0,0); if the polynomial φ i,j There is only a power of x in (x,y), then the corresponding sequence pair is (i, (L1-k 1,i,j,t ),0); if the polynomial φ i,j There is only a power term of y in (x,y), then the corresponding sequence pair is (i,0,k 2,i,j,t ).
6. A two-dimensional cyclic shift network coding method as claimed in claim 5, characterized in that: In the step S3, after the information sink t receives the w groups of L' bit length second coded data and the corresponding packet header, it is determined that the decoding can be successfully performed according to the packet header. Then, the information sink t can restore the w groups of L' bit length original data received by the information source s from the received w groups of L' bit length second coded data. When 1≤i≤w, the following steps are included: Step S301: For the incoming edge d from the destination t ti The received second coded data of length L' is reconstructed to generate a two-dimensional matrix T of size (L1-1)×(L2-1) 1,i ; Step S302: In the two-dimensional matrix T 1,i Add a row of (L2-1)-dimensional all-zero vectors at the bottom of the 2D matrix T 1,i Add a column of all-zero vectors of dimension L1 to the right of , and get a two-dimensional matrix T of size L1×L2 2,i ,Right now in, Step S303: Decode the corresponding w×w dimensional decoding matrix Each position element in is regarded as a set of sequence pairs. After the destination t receives w groups of L' bit-long second coded data, and the decoding matrix Multiply a column of , and restore a set of L'bit length of original data; suppose the two-dimensional matrix T 2,i The corresponding sequence pair is Then we can get the two-dimensional matrix T for decoding 2,i The corresponding two-dimensional cyclic shift matrix pair is Based on this matrix pair, the two-dimensional matrix T 2,i The specific implementation of the two-dimensional circular shift operation is: Starting from t = 1, follow the steps from t 1 to u i,j The order of the two-dimensional matrix T 2,i First loop up by row k 1,i,j,t Then, cycle right by column k 2,i,j,t bits, and obtain a two-dimensional matrix T of size L1×L2 3,i,t ,Right now Get Step S304: transform the two-dimensional matrix T 3,i The last row is added to the two-dimensional matrix T 3,i Add the last column of the resulting (L1-1)×L2 matrix to each of the previous columns of the (L1-1)×L2 matrix and delete the last column to obtain a two-dimensional matrix T of size (L1-1)×(L2-1) 4,i ,Right now in, When 1≤i≤w, given a pair of decoding sequences, the second coded data of L' bit length received from the destination t is subjected to a two-dimensional cyclic shift operation according to the above steps S301-S304 to restore a set of original data generated by the source s, which is There are w columns of corresponding decoding sequence pairs in the decoding matrix, which can restore w groups of original data received by the source s.
Citation Information
Patent Citations
Method for constructing quasi-cyclic low-density parity check (LDPC) code
CN101854228A
Cyclic shift network code construction method
CN109547160A