CN109951191B - Progressive decoding method and device for non-system Raptor code - Google Patents
Progressive decoding method and device for non-system Raptor code Download PDFInfo
- Publication number
- CN109951191B CN109951191B CN201711395482.5A CN201711395482A CN109951191B CN 109951191 B CN109951191 B CN 109951191B CN 201711395482 A CN201711395482 A CN 201711395482A CN 109951191 B CN109951191 B CN 109951191B
- Authority
- CN
- China
- Prior art keywords
- row
- degree
- judging whether
- equal
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000000750 progressive effect Effects 0.000 title claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims abstract description 114
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 52
- 230000009897 systematic effect Effects 0.000 claims abstract description 44
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000002688 persistence Effects 0.000 claims description 18
- 238000007781 pre-processing Methods 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 6
- 238000004088 simulation Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 15
- 230000008030 elimination Effects 0.000 description 12
- 238000003379 elimination reaction Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002161 passivation Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000002779 inactivation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
The invention discloses a progressive decoding method and device for a non-systematic Raptor code. The method comprises the following steps: before receiving the coding symbols, using a progressive decoding algorithm combined with a confidence coefficient propagation method to simplify a decoding matrix into an upper triangular matrix; in the process of receiving the coding symbol, using a progressive decoding algorithm combined with a confidence coefficient propagation method to reduce the decoding matrix simplified into an upper triangular matrix into a unit matrix to obtain a middle vector of the non-systematic Raptor code; and obtaining the effective load in the coding symbol according to the intermediate vector. According to the invention, the operation amount and the calculation complexity of the non-system Raptor code in the decoding process can be reduced, and the decoding speed is improved.
Description
Technical Field
The invention relates to the technical field of communication coding and decoding, in particular to a progressive decoding method and device of a non-systematic Raptor code.
Background
The Raptor code is a fountain code which can be used for coding and decoding in linear time, and can realize high decoding success rate under low decoding cost. The non-system Raptor code is taken as a subclass of Raptor code, has the advantage of low coding complexity and has good application prospect in the field of broadcast communication.
At present, the Internet Engineering Task Force (IETF) RFC 5053 standard specifies that The Raptor code decoding algorithm starts decoding after receiving a certain number of coded symbols. The decoder using the method of receiving the coded symbol first and then decoding the coded symbol brings about time waste, cannot realize fast decoding, and is not suitable for low-delay communication.
Existing decoders that receive encoded symbols and decode symbols at the same time, also called progressive decoders, are mainly classified into two types. The first is a progressive decoder based on the RFC 5053 standard. The decoding of the decoder is divided into two stages: in the first stage, a greedy algorithm is used for passivating the coding symbols with the ownership greater than or equal to 1, and then a confidence coefficient propagation method is executed to realize receiving and decoding at the same time; and in the second stage, after receiving the coded symbols, executing a Gaussian elimination method to realize the subsequent decoding operation. The drawback of such a progressive decoder is that: and a greedy algorithm is used for passivation, so that the operation speed of the second stage is reduced. And the second progressive decoder is based on Gaussian elimination method, and only adopts greedy algorithm to execute Gaussian elimination operation in decoding. The second decoder does not adopt a confidence coefficient propagation method, so that the efficient advantage of the confidence coefficient propagation method is avoided, and the decoding speed is low.
Therefore, it is desirable to provide a progressive decoding method for non-systematic Raptor codes, which can be combined with the belief propagation method and does not affect the decoding efficiency of the gaussian elimination method.
Disclosure of Invention
An object of the present invention is to provide a new technical solution for a progressive decoding method of a non-systematic Raptor code.
According to a first aspect of the present invention, there is provided a progressive decoding method for a non-systematic Raptor code, comprising:
before receiving the coding symbols, using a progressive decoding algorithm combined with a confidence coefficient propagation method to simplify a decoding matrix into an upper triangular matrix;
in the process of receiving the coding symbols, using a progressive decoding algorithm combined with a confidence coefficient propagation method to reduce the decoding matrix reduced into an upper triangular matrix into an identity matrix to obtain a middle vector of the non-systematic Raptor code;
and obtaining the effective load in the coding symbol according to the intermediate vector.
Optionally, the reducing the decoding matrix into an upper triangular matrix by using a progressive decoding algorithm combined with a belief propagation method includes:
initialization loop variable i =1;
judging whether i is greater than J;
if i > J does not hold, compare A 0 The ith row of (1) is assigned to a;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are all 0, exchanging a with the s-th row in A;
enabling i = i +1, and returning to execute the step of judging whether i > J is true;
if the elements of the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging a with the s-th row in A;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in A is 1, calling a recursive function back _ persistence (A, s) to execute an algorithm in the recursive function back _ persistence (A, s) until the degree of the s-th line in A is not 1;
if the degree of the s-th row in A is not 1, performing exclusive OR on the s-th row in A bit by bit to a, and judging whether the degree of a is greater than 0 or not;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is less than or equal to 0, making i = i +1, and returning to the step of judging whether i > J is true or not;
if i > J is established, the step of simplifying the decoding matrix which is simplified into an upper triangular matrix into an identity matrix in the process of receiving the coding symbols is executed;
wherein J represents the number of check codes in the outer code of the non-systematic Raptor code, A 0 The encoding matrix representing the non-systematic Raptor code has a size of (L + J) × (K + J), a represents a 1 × (K + J) row vector, a represents the decoding matrix, L represents the number of encoded symbols, and K represents the number of source symbols.
Optionally, the reducing the decoding matrix reduced to the upper triangular matrix to the identity matrix by using a progressive decoding algorithm combined with a belief propagation method includes:
each time a code symbol is received, assigning r to the payload of the code symbol and assigning a to a the code information vector of the code symbol;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are not all 0 and the degree of a is less than that in the s-th row in A, exchanging the elements in the s-th rows in a and A and exchanging the elements in the s-th rows in R and R;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in A is 1, calling a recursive function back _ persistence (A, s) to execute an algorithm in the recursive function back _ persistence (A, s) until the degree of the s-th line in A is not 1;
if the degree of the s-th row in A is not 1, carrying out bitwise XOR on the s-th row in A to a, and carrying out bitwise XOR on the s-th row in R to R;
judging whether the degree of a is greater than 0;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is not more than 0, judging whether A is a unit matrix;
if A is not the identity matrix, returning to execute the step of assigning r to the payload of the coding symbol and assigning a to a the coding information vector of the coding symbol when each coding symbol is received;
if A is a unit matrix, obtaining the intermediate vector, and executing the step of obtaining the effective load in the coding symbol according to the intermediate vector;
if the elements of the s-th row in A are all 0, exchanging the elements of the s-th rows in a and A, exchanging the elements of the R-th row and the s-th row in R, and executing the step of judging whether the degree of a is greater than 0;
where R represents a payload vector, the size of which is K × 1.
Optionally, the operation performed by the recursive function back _ contribution (a, s) using a belief propagation method includes the following steps:
let loop variable k =1;
judging whether k is greater than or equal to s;
if k is more than or equal to s, jumping out the recursion function back _ simulation (A, s);
if k is not more than s, judging whether the element of the kth row and the s column in the A is equal to 0 or not;
if the element of the kth row and the s-th column in A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
if the element of the kth line and the s column in the A is not equal to 0, the element of the kth line and the s column in the A is equal to 0, and whether the degree of the kth line in the A is equal to 1 is judged;
if the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
and if the degree of the k-th row in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s.
Optionally, the obtaining the payload in the coding symbol according to the intermediate vector includes:
determining the first K elements of the intermediate vector X as payload X in the encoding symbol K 。
According to a second aspect of the present invention, there is provided a progressive decoding apparatus for a non-systematic Raptor code, comprising:
the preprocessing module is used for simplifying a decoding matrix into an upper triangular matrix by using a progressive decoding algorithm combined with a confidence coefficient propagation method before receiving the coding symbols;
a recursive computation module: for recursively performing the belief propagation method;
the decoding module is used for simplifying the decoding matrix simplified into the upper triangular matrix into an identity matrix by using a progressive decoding algorithm combined with a confidence coefficient propagation method in the process of receiving the coding symbol to obtain a middle vector of the non-systematic Raptor code;
and the output module is used for obtaining the effective load in the coding symbol according to the intermediate vector.
Optionally, the preprocessing module is specifically configured to:
initializing a loop variable i =1;
judging whether i is greater than J;
if i > J does not hold, compare A 0 The ith row of (1) is assigned to a;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are all 0, exchanging a with the s-th row in A;
making i = i +1, and returning to execute the step of judging whether i > J is true;
if the elements of the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging a with the s-th row in A;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in A is 1, calling a recursive function back _ persistence (A, s) to execute an algorithm in the recursive function back _ persistence (A, s) until the degree of the s-th line in A is not 1;
if the degree of the s-th row in A is not 1, performing exclusive OR on the s-th row in A bit by bit to a, and judging whether the degree of a is greater than 0 or not;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is less than or equal to 0, making i = i +1, and returning to the step of judging whether i > J is true or not;
if i is more than J, executing the operation in the decoding module;
wherein J represents the number of check codes in the outer code of the non-systematic Raptor code, A 0 The encoding matrix representing the non-systematic Raptor code has a size of (L + J) × (K + J), a represents a 1 × (K + J) row vector, a represents the decoding matrix, L represents the number of encoded symbols, and K represents the number of source symbols.
Optionally, the decoding module is specifically configured to:
each time a code symbol is received, assigning r to the payload of the code symbol and assigning a to a the code information vector of the code symbol;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are not all 0 and the degree of a is less than that in the s-th row in A, exchanging the elements in the s-th rows in a and A and exchanging the elements in the s-th rows in R and R;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in the A is 1, executing the operation in the recursive computation module until the degree of the s-th line in the A is not 1;
if the degree of the s-th row in A is not 1, carrying out bitwise XOR on the s-th row in A and carrying out bitwise XOR on the s-th row in R to R;
judging whether the degree of a is greater than 0;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is not more than 0, judging whether A is an identity matrix;
if A is not the identity matrix, returning to execute the step of assigning r to the payload of the coding symbol and assigning a to a the coding information vector of the coding symbol when each coding symbol is received;
if A is a unit matrix, obtaining the intermediate vector, and executing the operation in the output module;
if the elements in the s-th row in A are all 0, exchanging the elements in the s-th rows in a and A, exchanging the elements in the s-th rows in R and R, and executing the step of judging whether the degree of a is greater than 0;
where R represents a payload vector, the size of which is K × 1.
Optionally, the recursive computation module is specifically configured to:
let loop variable k =1;
judging whether k is greater than or equal to s;
if k is more than or equal to s, jumping out the recursion function back _ simulation (A, s);
if k is not more than s, judging whether the element of the kth row and the s column in the A is equal to 0 or not;
if the element of the kth row and the s-th column in A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
if the element of the kth row and the s-th column in A is not equal to 0, the element of the kth row and the s-th column in A is equal to 0, and whether the degree of the kth row in A is equal to 1 or not is judged;
if the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to the step of judging whether k is greater than or equal to s;
if the degree of the kth line in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is larger than or equal to s.
Optionally, the output module is specifically configured to:
determining the first K elements of the intermediate vector X as payload X in the encoding symbol K 。
According to one embodiment of the invention, the operation amount and the calculation complexity of the non-systematic Raptor code in the decoding process can be reduced, and the decoding speed is improved.
Other features of the present invention and advantages thereof will become apparent from the following detailed description of exemplary embodiments thereof, which proceeds with reference to the accompanying drawings.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention.
Fig. 1 is a schematic flowchart of a progressive decoding method for a non-systematic Raptor code according to an embodiment of the present invention.
Fig. 2 is a diagram illustrating a step 1100 in a method according to an embodiment of the invention.
Fig. 3 is a schematic diagram of step 1200 in the method according to the embodiment of the present invention.
Fig. 4 is a schematic diagram of the execution steps of the algorithm of the recursive function in the method according to the embodiment of the present invention.
FIG. 5 is a schematic block diagram of a device for progressive decoding of non-systematic Raptor codes according to an embodiment of the present invention.
Detailed Description
Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that: the relative arrangement of the components and steps, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless specifically stated otherwise.
The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application, or uses.
Techniques, methods, and apparatus known to those of ordinary skill in the relevant art may not be discussed in detail but are intended to be part of the specification where appropriate.
In all examples shown and discussed herein, any particular value should be construed as merely illustrative, and not limiting. Thus, other examples of the exemplary embodiments may have different values.
It should be noted that: like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, it need not be discussed further in subsequent figures.
Generally, a sending end broadcasts a file to a user, and the file to be broadcasted needs to be encoded by using a raptor code first, so as to obtain a corresponding encoding symbol and send the encoding symbol to a receiving end. The decoder at the receiving end receives and decodes the encoded symbols to restore the file broadcast by the transmitting end. The embodiment is mainly applied to a decoder at a receiving end, and reduces the operation amount and the calculation complexity of a non-system Raptor code in the decoding process and improves the decoding speed by applying a progressive decoding algorithm combined with a confidence coefficient propagation method before and in the process of receiving a coded symbol. The following describes the progressive decoding method of the non-systematic Raptor code provided by the present invention in detail with reference to the accompanying drawings.
Fig. 1 is a schematic flowchart of a progressive decoding method for a non-systematic Raptor code according to an embodiment of the present invention.
As shown in fig. 1, the progressive decoding method of the non-systematic Raptor code of the present embodiment includes:
Specifically, before receiving the encoded symbol, the decoder may recover the encoded information of the outer code in the decoding matrix, so that the decoder may perform an operation on the encoded information of the outer code in the decoding matrix before receiving the encoded symbol, so as to reduce an operation amount of the decoder when receiving the encoded symbol.
In the preprocessing stage before receiving the coded symbols, a is initialized to zero vector, and r is initialized to 0,A to zero matrix. Wherein a represents a row vector of 1 × (K + J), r represents a variable, a represents a decoding matrix, J represents the number of check codes in the outer code of the non-systematic Raptor code, and K represents the number of source symbols.
In this embodiment, the preprocessing stage before receiving the encoded symbol aims to reduce the decoding matrix containing only the encoded information of the outer code into the upper triangular matrix equivalent to the decoding matrix by using the progressive decoding algorithm combined with the confidence coefficient propagation algorithm.
Specifically, referring to fig. 2, in this step, a progressive decoding algorithm combined with a confidence propagation method is used to reduce a decoding matrix into an upper triangular matrix, which includes:
initialization loop variable i =1.
And judging whether i is greater than J or not.
If i > J does not hold, let a = A 0 [i]I.e. A 0 The ith row of (a) is given as a. Wherein A is 0 The size of the coding matrix representing the non-systematic Raptor code is (L + J) × (K + J), L represents the number of coding symbols, J represents the number of check codes in an outer code of the non-systematic Raptor code, and K represents the number of source symbols.
Let s = leftmost _1 (a), i.e. let s be the position where the leftmost non-zero element of a is located.
It is determined whether Degree [ s ] =0 is established, that is, it is determined whether all elements in the s-th row in a are 0.
If the elements in line s of A are all 0,exchange (A [ s ], a), i.e., exchange a with line s of A.
And returning to the step of judging whether i > J is satisfied or not by making i = i + 1.
If the elements in line s in A are not all 0 and Degree [ s ] > D holds, i.e., the Degree of a is less than the Degree of line s in A, exchange (A [ s ], a), i.e., a is exchanged with line s in A.
It is determined whether or not Degree [ s ] =1 is established, that is, whether or not the Degree of the s-th row in a is 1.
If the degree of the s-th line in a is 1, the recursion function back _ persistence (a, s) is called to execute the algorithm in the recursion function back _ persistence (a, s) until the degree of the s-th line in a is not 1.
If the degree of the s-th row in A is not 1, letThat is, the s-th row in A is bitwise XOR-ed to a, and it is determined whether the degree of a is greater than 0.
And if the degree of a is greater than 0, returning to the step of executing the step of s = leftmost _1 (a).
And if the degree of a is less than or equal to 0, enabling i = i +1, and returning to the step of judging whether i > J is satisfied.
If i > J, go to step 1200.
The algorithm performs operation on the elements of J rows in the decoding matrix before receiving the coded symbols, thereby reducing the operation amount when receiving the coded symbols.
Here, "if the degree of the s-th line in a is 1, the recursive function back _ persistence (a, s) is called," this operation is to call the belief propagation method. The difference from the existing progressive decoding algorithm combined with the confidence propagation algorithm is that: the existing progressive decoding algorithm combined with the confidence coefficient propagation algorithm firstly uses a greedy algorithm to passivate (inactivation) coding symbols with the ownership greater than or equal to 1, then executes the confidence coefficient propagation method, and then executes a Gaussian elimination algorithm. And the implementation efficiency of the gaussian elimination method is affected by passivating the code symbols with the degree greater than 1 and then implementing the belief propagation method. Here, we use the conditional statement to classify the belief propagation algorithm and the gaussian elimination algorithm, i.e., if the degree of the s-th line in a is 1, execute the belief propagation algorithm; and if the degree of the s-th line in the A is greater than 1, executing a Gaussian elimination algorithm. The classification processing not only exerts the advantages of the confidence coefficient propagation algorithm, but also avoids passivation processing, and ensures the efficiency of the subsequent Gaussian elimination algorithm.
In addition, the confidence propagation algorithm is executed in a greedy recursive manner. That is, in the process of executing the confidence propagation algorithm, if a new row appears in a, and the degree of the new row is 1, the execution is continued, and the condition for stopping the execution is as follows: all the row degrees in A are greater than 1. The greedy recursion mode can improve the use frequency of the confidence coefficient propagation operation and improve the decoding efficiency.
In the progressive decoding stage of the code symbol receiving process, the goal is to use the Gaussian elimination method and the confidence coefficient propagation method to operate, so that the decoding matrix A is simplified into an identity matrix.
Specifically, referring to fig. 3, in this step, the reducing the decoding matrix simplified as the upper triangular matrix into the identity matrix includes:
each time a code symbol is received, the payload of the code symbol is assigned to r and the code information vector of the code symbol is assigned to a.
Every time the assignment of a is completed, let s = leftmost _1 (a), i.e., let s be the position where the leftmost nonzero element of a is located.
It is determined whether Degree [ s ] =0 is established, that is, it is determined whether all elements in the s-th row in a are 0.
If the elements in line s in A are not all 0 and Degree [ s ] > D holds, i.e., the Degree of a is less than the Degree of line s in A, then exchange (A [ s ], a), exchange (Rs ], R), i.e., exchange a with line s in A and exchange R with the element in line s in R. Where R represents a payload vector, the size of which is K × 1.
Next, it is determined whether or not depth [ s ] =1 is established, that is, whether or not the Degree of the s-th row in a is 1.
If the degree of the s-th line in a is 1, the recursion function back _ persistence (a, s) is called to execute the algorithm in the recursion function back _ persistence (a, s) until the degree of the s-th line in a is not 1.
If the degree of the s-th row in A is not 1, then orderThat is, the s-th row in A is XOR-ed to a bit by bit, and the s-th row in R is XOR-ed bit by bitExclusive or to r. Then, it is judged whether the degree of a is greater than 0.
And if the degree of a is greater than 0, returning to the step of executing the step of s = leftmost _1 (a).
If the degree of a is not more than 0, judging whether A is an identity matrix.
If A is not the identity matrix, returning to execute the steps of assigning r the payload of the coding symbol and assigning a the coding information vector of the coding symbol to a when one coding symbol is received.
If the elements in the s-th row in A are all 0, exchange (A [ s ], a) and exchange (R [ s ], R), namely, exchanging the elements in the s-th row in a and A, exchanging the elements in the s-th row in R and R, and executing the step of judging whether the degree of a is more than 0.
If A is the identity matrix, the intermediate vector of the non-systematic Raptor code is obtained, and then step 1300 is performed.
The process of obtaining the intermediate vector is explained here. Specifically, the intermediate vector of the non-systematic Raptor code can be solved according to a decoding equation and the decoding matrix simplified to the unit matrix.
Wherein, the decoding equation is:where A is the decoding matrix, a represents a row vector of 1 (K + J), R represents a variable, R represents the payload vector, and X represents the intermediate vector, which has a size of (K + J) X1.
Through the above steps 1100 and 1200, the decoding matrix a has been reduced to an identity matrix, so that the decoder can solve the intermediate vector X faster according to the decoding equation.
After the intermediate vector X is solved, step 1300 is performed to obtain the payload in the encoded symbol according to the intermediate vector X.
In this step, the first K elements of the intermediate vector X are determined as payload X in the code symbol K 。
Here, referring to fig. 4, the steps involved in the operation of the recursive function back _ persistence (a, s) using the belief propagation method will be described as follows:
let the loop variable k =1.
And judging whether k is more than or equal to s.
And if the k is more than or equal to s, jumping out of the recursion function back _ persistence (A, s).
If k is not equal to or greater than s, judging whether A [ k ] [ s ] =0 is true, namely judging whether an element in the kth row and the s column in A is equal to 0.
And if the element in the kth row and the s-th column in the A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is larger than or equal to s.
If the element in the kth row and the s-th column in A is not equal to 0, let A [ k ] [ s ] =0, that is, let the element in the kth row and the s-th column in A be equal to 0, and determine whether Degree [ k ] =1 is true, that is, determine whether the Degree of the kth row in A is equal to 1.
If the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to execute the step of judging whether k is larger than or equal to s.
And if the degree of the k-th row in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s.
The pseudo code for implementing the above steps 1100, 1200 and the recursive function is described below.
The pseudo code of step 1100 above is:
the pseudo code of the above step 1200 is:
the pseudo code of the above recursive function is:
in the technical scheme of the embodiment, before receiving the coding symbol, a progressive decoding algorithm combined with a confidence coefficient propagation method is used for simplifying a decoding matrix into an upper triangular matrix; in the process of receiving the coding symbols, using a progressive decoding algorithm combined with a confidence coefficient propagation method to reduce the decoding matrix reduced into an upper triangular matrix into an identity matrix to obtain a middle vector of the non-systematic Raptor code; and obtaining the effective load in the coding symbol according to the intermediate vector. Before receiving the coding symbols and in the process of receiving the decoding symbols, a progressive decoding algorithm combined with a confidence coefficient propagation method is used, and finally, the decoding matrix is reduced into an identity matrix. Therefore, the decoder can solve the intermediate vector more quickly according to the decoding equation, thereby quickly obtaining the payload in the encoding symbol and restoring the file sent by the sending end. According to the scheme of the embodiment, the operation amount and the calculation complexity of the non-systematic Raptor code in the decoding process can be reduced, and the decoding speed of the decoder is improved.
FIG. 5 is a schematic block diagram of a device for progressive decoding of non-systematic Raptor codes according to an embodiment of the present invention.
As shown in fig. 5, the apparatus 5000 for progressive decoding of non-systematic Raptor codes of this embodiment may include:
the preprocessing module 5100 is configured to reduce the decoding matrix into an upper triangular matrix using a progressive decoding algorithm combined with a belief propagation method before receiving the encoded symbols.
The preprocessing module 5100 is embedded with a progressive decoding program based on a gaussian elimination method, provides an interface for calling the recursive calculation module 5400, inputs a decoding matrix only containing the coding information of the outer code, and outputs an upper triangular matrix equivalent to the decoding matrix. The method is used for reducing a decoding matrix containing only the coding information of the outer code into an upper triangular matrix equivalent to the decoding matrix by using a progressive decoding algorithm combined with a confidence propagation method before receiving the coding symbols.
Recursive computation module 5400: for recursively performing the belief propagation method. The inside of the system is embedded with a greedy recursive operation program for executing a confidence propagation method, the input is a decoding matrix with 1 row degree and a corresponding intermediate vector which are processed in the preprocessing module 5100 and the decoding module 5200, and the output is an equivalent decoding matrix without 1 row degree and a corresponding intermediate vector.
The decoding module 5200 is configured to, in the process of receiving the encoded symbol, reduce the decoding matrix reduced to the upper triangular matrix to an identity matrix by using a progressive decoding algorithm combined with a confidence propagation method, so as to obtain an intermediate vector of the non-systematic Raptor code.
Wherein, the decoding module 5200 is embedded with a progressive decoding program based on gaussian elimination method, and provides an interface for calling the recursive computation module 5400, the input is the output of the preprocessing module 5100 and the received coding symbol, and the output is the intermediate vector of the non-systematic Raptor code. And the method is used for simplifying the decoding matrix simplified into the upper triangular matrix into an identity matrix by using a progressive decoding algorithm combined with a confidence coefficient propagation method in the process of receiving the coding symbols to obtain the intermediate vector of the non-systematic Raptor code.
The output module 5300 is configured to obtain the payload in the coding symbol according to the intermediate vector.
Optionally, the preprocessing module 5100 is specifically configured to: initialization loop variable i =1; judging whether i is greater than J; if i > J does not hold, compare A 0 The ith row of (1) is assigned to a; let s be the position of the leftmost nonzero element of a; judging whether the elements in the s-th row in the A are all 0 or not; if the elements in the s-th row in A are all 0, exchanging a with the s-th row in A; making i = i +1, and returning to execute the step of judging whether i > J is true; if the elements of the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging a with the s-th row in A; judging whether the degree of the s-th line in the A is 1 or not; if the degree of the s-th row in A is 1, the operation in the recursive computation block 5400 is performed until the degree of the s-th row in A is 1The degree is not 1; if the degree of the s-th row in A is not 1, performing exclusive OR on the s-th row in A bit by bit to a, and judging whether the degree of a is greater than 0 or not; if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a; if the degree of a is less than or equal to 0, making i = i +1, and returning to the step of judging whether i > J is true or not; if i > J is true, the operations in the decoding module 5200 are executed; wherein J represents the number of check codes in the outer code of the non-systematic Raptor code, A 0 The encoding matrix representing the non-systematic Raptor code has a size of (L + J) × (K + J), a represents a 1 × (K + J) row vector, a represents the decoding matrix, L represents the number of encoded symbols, and K represents the number of source symbols.
Optionally, the decoding module 5200 is specifically configured to: assigning r to the payload of a code symbol and a to the coded information vector of the code symbol every time a code symbol is received; let s be the position of the leftmost nonzero element of a; judging whether the elements in the s-th row in the A are all 0 or not; if the elements in the s-th row in A are not all 0 and the degree of a is less than that in the s-th row in A, exchanging the elements in the s-th rows in a and A and exchanging the elements in the s-th rows in R and R; judging whether the degree of the s-th line in the A is 1 or not; if the degree of the s-th row in a is 1, executing the operation in the recursive computation module 5400 until the degree of the s-th row in a is not 1; if the degree of the s-th row in A is not 1, carrying out bitwise XOR on the s-th row in A and carrying out bitwise XOR on the s-th row in R to R; judging whether the degree of a is greater than 0; if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a; if the degree of a is not more than 0, judging whether A is an identity matrix; if A is not the identity matrix, returning to execute the step of assigning r to the payload of the coding symbol and assigning a to a the coding information vector of the coding symbol when each coding symbol is received; if A is a unit matrix, the intermediate vector is obtained, and the operation in the output module 5300 is executed; if the elements of the s-th row in A are all 0, exchanging the elements of the s-th rows in a and A, exchanging the elements of the R-th row and the s-th row in R, and executing the step of judging whether the degree of a is greater than 0; where R represents a payload vector, the size of which is K × 1.
The recursive computation module 5400 is specifically configured to: let loop variable k =1; judging whether k is greater than or equal to s; if k is more than or equal to s, jumping out the recursion function back _ simulation (A, s); if k is not more than s, judging whether the element of the kth row and the s column in the A is equal to 0 or not; if the element of the kth row and the s-th column in A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s; if the element of the kth line and the s column in the A is not equal to 0, the element of the kth line and the s column in the A is equal to 0, and whether the degree of the kth line in the A is equal to 1 is judged; if the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s; and if the degree of the k-th row in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s.
Optionally, the output module 5300 is specifically configured to: determining the first K elements of the intermediate vector X as payload X in the encoding symbol K 。
The progressive decoding apparatus of the non-systematic Raptor code of this embodiment can be used to implement the technical solutions of the above method embodiments, and its implementation principle and technical effect are similar, and are not described herein again.
The present invention may be a system, method and/or computer program product. The computer program product may include a computer readable storage medium having computer readable program instructions embodied therewith for causing a processor to implement various aspects of the present invention.
The computer-readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present invention may be assembler instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present invention are implemented by personalizing an electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), with state information of computer-readable program instructions, which can execute the computer-readable program instructions.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. It is well known to those skilled in the art that implementation by hardware, by software, and by a combination of software and hardware are equivalent.
While embodiments of the present invention have been described above, the above description is illustrative, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the invention is defined by the appended claims.
Claims (6)
1. A progressive decoding method of a non-systematic Raptor code is characterized by comprising the following steps:
before receiving the coded symbols, using a progressive decoding algorithm combined with a belief propagation method to reduce a decoding matrix into an upper triangular matrix, wherein,
initialization loop variable i =1;
judging whether i is greater than J;
if i > J does not hold, compare A 0 To (1) ai is given to a;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are all 0, exchanging a with the s-th row in A;
making i = i +1, and returning to execute the step of judging whether i > J is true;
if the elements of the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging a with the s-th row in A;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in A is 1, calling a recursive function back _ persistence (A, s) to execute an algorithm in the recursive function back _ persistence (A, s) until the degree of the s-th line in A is not 1;
if the degree of the s-th row in A is not 1, performing exclusive OR on the s-th row in A bit by bit to a, and judging whether the degree of a is greater than 0 or not; if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is less than or equal to 0, making i = i +1, and returning to the step of judging whether i > J is true or not;
if i > J is established, the step of simplifying the decoding matrix which is simplified into an upper triangular matrix into an identity matrix in the process of receiving the coding symbols is executed;
wherein J represents the number of check codes in the outer code of the non-systematic Raptor code, A 0 An encoding matrix representing the non-systematic Raptor code, the size of which is (L + J) × (K + J), a represents a 1 × (K + J) row vector, A represents the decoding matrix, L represents the number of encoding symbols, and K represents the number of source symbols;
in the process of receiving the coding symbol, using a progressive decoding algorithm combined with a confidence propagation method to reduce the decoding matrix simplified into an upper triangular matrix into an identity matrix to obtain a middle vector of the non-systematic Raptor code,
assigning r to the payload of a code symbol and a to the coded information vector of the code symbol every time a code symbol is received;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging the s-th rows in a and A, and exchanging the elements in the s-th rows in R and R;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in A is 1, calling a recursive function back _ persistence (A, s) to execute an algorithm in the recursive function back _ persistence (A, s) until the degree of the s-th line in A is not 1;
if the degree of the s-th row in A is not 1, carrying out bitwise XOR on the s-th row in A to a, and carrying out bitwise XOR on the s-th row in R to R;
judging whether the degree of a is greater than 0;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a; if the degree of a is not more than 0, judging whether A is an identity matrix;
if A is not the identity matrix, returning to execute the step of assigning r to the payload of the coding symbol and assigning a to a the coding information vector of the coding symbol when each coding symbol is received;
if A is a unit matrix, obtaining the intermediate vector, and obtaining the effective load in the coding symbol according to the intermediate vector;
if the elements of the s-th row in A are all 0, exchanging the elements of the s-th rows in a and A, exchanging the elements of the R-th row and the s-th row in R, and executing the step of judging whether the degree of a is greater than 0;
wherein R represents a payload vector, the size of which is K × 1;
and obtaining the effective load in the coding symbol according to the intermediate vector.
2. The method according to claim 1, wherein the recursive function back _ contribution (a, s) is operated by using a belief propagation method, comprising the following steps:
let loop variable k =1;
judging whether k is greater than or equal to s;
if k is more than or equal to s, jumping out the recursion function back _ simulation (A, s);
if k is not greater than s, judging whether the element in the kth row and the s column in the A is equal to 0 or not;
if the element of the kth row and the s-th column in A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
if the element of the kth line and the s column in the A is not equal to 0, the element of the kth line and the s column in the A is equal to 0, and whether the degree of the kth line in the A is equal to 1 is judged;
if the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to the step of judging whether k is greater than or equal to s;
and if the degree of the k-th row in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s.
3. The method of claim 1, wherein deriving the payload in the encoded symbol from the intermediate vector comprises:
determining the first K elements of the intermediate vector X as the payload XK in the encoding symbol.
4. An apparatus for progressive decoding of non-systematic Raptor codes, comprising:
a preprocessing module, configured to reduce a decoding matrix into an upper triangular matrix by using a progressive decoding algorithm combined with a belief propagation method before receiving a coded symbol, where the preprocessing module is specifically configured to:
initialization loop variable i =1;
judging whether i is greater than J;
if i > J does not hold, assign line i of A0 to a;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are all 0, exchanging a with the s-th row in A;
enabling i = i +1, and returning to execute the step of judging whether i > J is true;
if the elements of the s-th row in A are not all 0 and the degree of a is less than that of the s-th row in A, exchanging a with the s-th row in A;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in the A is 1, executing the operation in the recursive computation module until the degree of the s-th line in the A is not 1;
if the degree of the s-th row in A is not 1, performing exclusive OR on the s-th row in A bit by bit to a, and judging whether the degree of a is greater than 0 or not; if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is less than or equal to 0, making i = i +1, and returning to the step of judging whether i > J is true or not;
if i is more than J, executing the operation in the decoding module;
wherein J represents the number of check codes in an outer code of the non-systematic Raptor code, A0 represents an encoding matrix of the non-systematic Raptor code, the size of the encoding matrix is (L + J) × (K + J), a represents a row vector of 1 × (K + J), A represents the decoding matrix, L represents the number of encoding symbols, and K represents the number of source symbols;
a recursive computation module: for recursively performing the belief propagation method;
a decoding module, configured to reduce the decoding matrix simplified to the upper triangular matrix to an identity matrix by using a progressive decoding algorithm combined with a confidence propagation method in a process of receiving the encoded symbol, so as to obtain a middle vector of the non-systematic Raptor code, where the decoding module is specifically configured to:
each time a code symbol is received, assigning r to the payload of the code symbol and assigning a to a the code information vector of the code symbol;
let s be the position of the leftmost nonzero element of a;
judging whether the elements in the s-th row in the A are all 0 or not;
if the elements in the s-th row in A are not all 0 and the degree of a is less than that in the s-th row in A, exchanging the elements in the s-th rows in a and A and exchanging the elements in the s-th rows in R and R;
judging whether the degree of the s-th line in the A is 1 or not;
if the degree of the s-th line in the A is 1, executing the operation in the recursive computation module until the degree of the s-th line in the A is not 1;
if the degree of the s-th row in A is not 1, carrying out bitwise XOR on the s-th row in A and carrying out bitwise XOR on the s-th row in R to R;
judging whether the degree of a is greater than 0;
if the degree of a is larger than 0, returning to execute the step of enabling s to be the position of the leftmost nonzero element of a;
if the degree of a is not more than 0, judging whether A is an identity matrix;
if A is not the unit matrix, returning to execute the step of assigning the payload of the coding symbol to r and assigning the coding information vector of the coding symbol to a when one coding symbol is received;
if A is a unit matrix, obtaining the intermediate vector, and executing the operation in an output module;
if the elements of the s-th row in A are all 0, exchanging the elements of the s-th rows in a and A, exchanging the elements of the R-th row and the s-th row in R, and executing the step of judging whether the degree of a is greater than 0;
wherein R represents a payload vector, the size of which is K × 1;
and the output module is used for obtaining the effective load in the coding symbol according to the intermediate vector.
5. The apparatus of claim 4, wherein the recursive computation module is specifically configured to:
let loop variable k =1;
judging whether k is greater than or equal to s;
if k is more than or equal to s, jumping out the recursion function back _ persistence (A, s);
if k is not more than s, judging whether the element of the kth row and the s column in the A is equal to 0 or not;
if the element of the kth row and the s-th column in A is equal to 0, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
if the element of the kth line and the s column in the A is not equal to 0, the element of the kth line and the s column in the A is equal to 0, and whether the degree of the kth line in the A is equal to 1 is judged;
if the degree of the kth line in the A is equal to 1, calling the recursion function, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s;
and if the degree of the k-th row in the A is not equal to 1, enabling k = k +1, and returning to execute the step of judging whether k is greater than or equal to s.
6. The apparatus of claim 4, wherein the output module is specifically configured to:
determining the first K elements of the intermediate vector X as the payload XK in the encoding symbol.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395482.5A CN109951191B (en) | 2017-12-21 | 2017-12-21 | Progressive decoding method and device for non-system Raptor code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711395482.5A CN109951191B (en) | 2017-12-21 | 2017-12-21 | Progressive decoding method and device for non-system Raptor code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109951191A CN109951191A (en) | 2019-06-28 |
CN109951191B true CN109951191B (en) | 2023-04-18 |
Family
ID=67006104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711395482.5A Active CN109951191B (en) | 2017-12-21 | 2017-12-21 | Progressive decoding method and device for non-system Raptor code |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951191B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272150A (en) * | 2008-05-14 | 2008-09-24 | 中兴通讯股份有限公司 | Decoding method and device for low-density generating matrix code |
CN101510783A (en) * | 2009-03-26 | 2009-08-19 | 北京理工大学 | Multi-scale fountain encode and decode method based on finite domain |
CN105846958A (en) * | 2016-04-01 | 2016-08-10 | 哈尔滨工业大学深圳研究生院 | Distributed system Raptor code transmission method specific to deep space communication |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414833B (en) * | 2007-10-19 | 2010-08-04 | 中兴通讯股份有限公司 | Method and apparatus for encoding low-density generated matrix code |
-
2017
- 2017-12-21 CN CN201711395482.5A patent/CN109951191B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272150A (en) * | 2008-05-14 | 2008-09-24 | 中兴通讯股份有限公司 | Decoding method and device for low-density generating matrix code |
CN101510783A (en) * | 2009-03-26 | 2009-08-19 | 北京理工大学 | Multi-scale fountain encode and decode method based on finite domain |
CN105846958A (en) * | 2016-04-01 | 2016-08-10 | 哈尔滨工业大学深圳研究生院 | Distributed system Raptor code transmission method specific to deep space communication |
Also Published As
Publication number | Publication date |
---|---|
CN109951191A (en) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10270470B2 (en) | Polar code decoding method and decoder | |
KR102349209B1 (en) | Systems and methods for multi-stage soft input decoding | |
JP4627317B2 (en) | Communication apparatus and decoding method | |
US11303300B2 (en) | Error detection in communication systems using polar coded data transmission | |
US10892848B2 (en) | Devices and methods implementing polar codes | |
KR101817168B1 (en) | Method and Apparatus for Approximated Belief Propagation Decoding of Polar Code | |
CN101478314B (en) | Reed-solomon coder-decoder and decoding method thereof | |
EP3484126B1 (en) | Method and apparatus for carrying identifier information | |
WO2018202097A1 (en) | Encoding method and device | |
EP3364578B1 (en) | Parallel decoding for qc-ldpc codes | |
US11086668B2 (en) | Method, electronic device and computer program product for processing task | |
JP2012151839A (en) | Method for performing soft decision decoding of euclidean space reed-muller code | |
CN105247808A (en) | Systems and methods for decoding with late reliability information | |
US20200028669A1 (en) | Method and system for rateless and pollution-attack-resilient network coding | |
KR20190117186A (en) | Learning-based channel code decoding method and apparatus | |
Doan et al. | Neural dynamic successive cancellation flip decoding of polar codes | |
EP3044882B1 (en) | Ldpc decoding method and apparatus with identification of first and second extreme values from among a set of values | |
US10735141B2 (en) | System and a method for error correction coding using a deep neural network | |
CN101379787A (en) | Wireless communication apparatus | |
CN106664267B (en) | Method and apparatus for decoding | |
CN107181567B (en) | Low-complexity MPA algorithm based on threshold | |
CN109951191B (en) | Progressive decoding method and device for non-system Raptor code | |
KR20040044589A (en) | A Soft-Input Decoding Method of Reed-Muller Codes Using Majority Logic and Apparatus thereof | |
CN109412752B (en) | Non-coherent detection receiver, system and method for polarization code | |
CN101411071A (en) | MAP decoder with bidirectional sliding window architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |