METHOD AND APPARATUS FOR DECODING OF DATA IN COMMUNICATION AND BROADCASTING SYSTEMS
20230059393 · 2023-02-23
Inventors
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/114
ELECTRICITY
H03M13/1125
ELECTRICITY
H03M13/116
ELECTRICITY
H03M13/1128
ELECTRICITY
H03M13/1185
ELECTRICITY
H03M13/6502
ELECTRICITY
International classification
Abstract
The disclosure relates to a method performed by an apparatus for decoding an encoded signal in a communication system according to an embodiment of the disclosure may include an operation of receiving an encoded signal including a plurality of codeword bits, an operation of determining a first log-likelihood ratio (LLR) for the plurality of codeword bits, and an operation of performing iterative decoding a predetermined number of times based the first LLR, and the plurality of codeword bits may include a codeword bit included in a first subset and a codeword bit included in a second subset, and the operation of performing iterative decoding may include determining a second LLR only for the codeword bit included in the first subset of the plurality of codeword bits, and estimating, based on the second LLR, a bit value only for the codeword bit included in the first subset.
Claims
1. A method performed by an apparatus for decoding an encoded signal in a communication system, the method comprising: receiving an encoded signal including a plurality of codeword bits; determining a first log-likelihood ratio (LLR) for the plurality of codeword bits; and performing an iterative decoding a predetermined number of times based the first LLR, wherein the plurality of codeword bits comprise a codeword bit included in a first subset and a codeword bit included in a second subset, and wherein the performing of the iterative decoding comprises: determining a second LLR only for the codeword bit included in the first subset of the plurality of codeword bits, and estimating, based on the second LLR, a bit value only for the codeword bit included in the first subset.
2. The method of claim 1, wherein the performing of the iterative decoding comprises determining whether the iterative decoding is successfully performed based on a bit value estimated for the codeword bit belonging to the first subset.
3. The method of claim 1, wherein the performing of the iterative decoding comprises: skipping determining a second LLR for the codeword bit included in the second subset of the plurality of codeword bits, and skipping estimating a bit value for the codeword bit included in the second subset.
4. The method of claim 1, wherein the first subset comprises a codeword bit corresponding to a variable node of which a degree is greater than or equal to 2 in a predetermined code graph for the iterative decoding, and wherein the second subset comprises a codeword bit corresponding to a variable node of which a degree is 1 in the predetermined code graph.
5. The method of claim 1, wherein the plurality of codeword bits are constructed via concatenation of a first code and a second code, wherein the first subset comprises a first parity bit produced based on the first code, and wherein the second subset comprises a second parity bit produced based on the second code.
6. The method of claim 5, wherein the first parity bit is produced based on a precoder, and wherein the second parity bit is produced based on single parity check extension.
7. The method of claim 1, wherein whether the iterative decoding is successfully performed is determined based on a syndrome check, and wherein the syndrome check is performed on an index associated with the codeword bit included in the first subset.
8. An apparatus for decoding an encoded signal in a communication system, the apparatus comprising: a transceiver; and at least one processor configured to: perform control so as to receive an encoded signal including a plurality of codeword bits, determine a first log-likelihood ratio (LLR) for the plurality of codeword bits, and perform iterative decoding a predetermined number of times based on the first LLR, wherein the plurality of codeword bits comprise a codeword bit included in a first subset and a codeword bit included in a second subset, and wherein the at least one processor is further configured to: determine a second LLR only for the codeword bit included in the first subset of the plurality of codeword bits, and estimate a bit value for a codeword bit included in the first subset based on the second LLR.
9. The apparatus of claim 8, wherein the at least one processor is further configured to determine whether the iterative decoding is successfully performed based on the bit value estimated for the codeword bit belonging to the first subset.
10. The apparatus of claim 8, wherein, when performing the iterative decoding, the at least one processor is further configured to: skip determining a second LLR for the codeword bit included in the second subset of the plurality of codeword bits, and skip estimating a bit value for the codeword bit included in the second subset.
11. The apparatus of claim 8, wherein the first subset comprises a codeword bit corresponding to a variation node of which a degree is greater than or equal to 2 in a predetermined code graph for the iterative decoding, and wherein the second subset comprises a codeword bit corresponding to a variable node of which a degree is 1 in the predetermined code graph.
12. The apparatus of claim 8, wherein the plurality of codeword bits are constructed via concatenation of a first code and a second code, wherein the first subset comprises a first parity bit produced based on the first code, and wherein the second subset comprises a second parity bit produced based on the second code.
13. The apparatus of claim 12, wherein the first parity bit is produced based on a precoder, and wherein the second parity bit is produced based on single parity check extension.
14. The apparatus of claim 8, wherein whether the iterative decoding is successfully performed is determined based on a syndrome check, and wherein the syndrome check is performed on an index associated with the codeword bit included in the first subset.
Description
DESCRIPTION OF DRAWINGS
[0024] The above and other aspects, features, and advantages of certain embodiments of the disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041] Throughout the drawings, it should be noted that like reference numbers are used to depict the same or similar elements, features, and structures.
MODE FOR INVENTION
[0042] The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
[0043] The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the disclosure is provided for illustration purpose only and not for the purpose of limiting the disclosure as defined by the appended claims and their equivalents.
[0044] It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces.
[0045] In describing embodiments of the disclosure, descriptions related to technical contents well-known in the art and not associated directly with the disclosure will be omitted. Such an omission of unnecessary descriptions is intended to prevent obscuring of the main idea of the disclosure and more clearly transfer the main idea.
[0046] For the same reason, in the accompanying drawings, some elements may be exaggerated, omitted, or schematically illustrated. Further, the size of each element does not completely reflect the actual size. In the drawings, identical or corresponding elements are provided with identical reference numerals.
[0047] The advantages and features of the disclosure and ways to achieve them will be apparent by making reference to embodiments as described below in detail in conjunction with the accompanying drawings. However, the disclosure is not limited to the embodiments set forth below, but may be implemented in various different forms. The following embodiments are provided only to completely disclose the disclosure and inform those skilled in the art of the scope of the disclosure, and the disclosure is defined only by the scope of the appended claims. Throughout the specification, the same or like reference numerals designate the same or like elements.
[0048] Herein, it will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions can 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 specified in the flowchart block or blocks. These computer program instructions may also be stored in a computer usable or computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
[0049] Further, each block of the flowchart illustrations may represent a module, segment, or portion of code, which includes one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order. 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.
[0050] As used herein, the “unit” refers to a software element or a hardware element, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), which performs a predetermined function. However, the “unit” does not always have a meaning limited to software or hardware. The “unit” may be constructed either to be stored in an addressable storage medium or to execute one or more processors. Therefore, the “unit” includes, for example, software elements, object-oriented software elements, class elements or task elements, processes, functions, properties, procedures, sub-routines, segments of a program code, drivers, firmware, micro-codes, circuits, data, database, data structures, tables, arrays, and parameters. The elements and functions provided by the “unit” may be either combined into a smaller number of elements, or a “unit”, or divided into a larger number of elements, or a “unit”. Moreover, the elements and “units” or may be implemented to reproduce one or more CPUs within a device or a security multimedia card.
[0051] Hereinafter, various embodiments will be described with reference to attached drawings. In this instance, it should be understood that the like reference numerals refer to like elements. In addition, drawings attached are merely provided for a better understanding of the disclosure, it should be construed that the disclosure is not limited to the forms or dispositions illustrated in the drawing. Further, a detailed description of a known function and configuration which may make the subject matter of the disclosure unclear will be omitted. Hereinafter, it should be noted that only the descriptions will be provided that may help understanding the operations provided in association with the various embodiments of the disclosure, and other descriptions will be omitted to avoid making the subject matter of the disclosure rather unclear.
[0052]
[0053] Referring to
[0054] According to various embodiments, the transmission end 110 may encode information bits based on an LDPC code so as to produce a codeword, and the reception end 120 may decode a signal of a received codeword based on an LDPC code. For example, the reception end 120 may decode a signaled codeword using an LDPC decoding scheme according to the disclosure, and may perform a syndrome check in order to determine whether a decoding result is normal. The transmission end 110 and the reception end 120 may perform LDPC encoding and decoding using a parity check matrix that they both are aware of. The parity check matrix may include a parity check matrix defined in the 5G NR standard, for example, TS 38.212, and the like.
[0055]
[0056] Referring to
[0057] The communication unit 210 may perform functions for transmitting or receiving a signal via a wireless channel. For example, the communication unit 210 may perform a function of conversion between a baseband signal and a bit stream according to the physical layer standard of a system. For example, in the case of data transmission, the communication unit 210 may produce complex symbols by encoding and modulating a transmission bit stream. In addition, in the case of data reception, the communication unit 210 may restore a reception bit stream by demodulating and decoding a baseband signal. In addition, the communication unit 210 may up-convert a baseband signal into a radio frequency (RF) band signal and may transmit the same via an antenna, and may down-convert an RF band signal received via an antenna into a baseband signal.
[0058] To this end, the communication unit 210 may include a transmission filter, a reception filter, an amplifier, a mixer, an oscillator, a digital-to-analog convertor (DAC), an analog-to-digital convertor (ADC), and the like. In addition, the communication unit 210 may include a plurality of transmission/reception paths. In addition, the communication unit 210 may include at least one antenna array including a plurality of antenna elements. From the perspective of hardware, the communication unit 210 may be configured with a digital unit and an analog unit. The analog unit may include a plurality of sub-units depending on operating power, an operating frequency, or the like. In addition, the communication unit 210 may include a decoder for performing decoding according to various embodiments of the disclosure.
[0059] The communication unit 210 may transmit or receive a signal as described above. Accordingly, the communication unit 210 may also be referred to as a ‘transmitter’, a ‘receiver’, or a ‘transceiver’. In addition, in the following descriptions, the transmission and reception performed via a wireless channel may be used as a meaning indicating that the above-described processing is performed by the communication unit 210. In addition, if the apparatus of
[0060] The storage 220 may store data such as basic programs, application programs, configuration information, and the like for operation of the reception end 120. The storage 220 may be embodied as volatile memory, nonvolatile memory, or a combination of volatile memory and nonvolatile memory. In addition, the storage 220 may provide data stored therein in response to a request from the controller 230.
[0061] The controller 230 may control overall operation of the apparatus. For example, the controller 230 may perform signal transmission and reception via the communication unit 210. Further, the controller 230 may record data in the storage 220 and may read the recorded data. To this end, the controller 230 may include at least one processor or micro-processor, or may be a part of the processor. According to various embodiments, the controller 230 may perform control so that the apparatus performs operations according to various embodiments described below.
[0062] Hereinafter, unless otherwise noted, various symbols or terms used in the process of describing the disclosure in details may be understood as generally used symbols. An LDPC code may be a linear code, and may be normally defined by a parity-check matrix. It is assumed that the number of information bits (also referred to as a code dimension) to be encoded using an LDPC code is K, and the number of codeword bits (a code length), which is the result of encoding, is N. The information bit sequence with a length of to be encoded may be a codeword sequence encoded by an outer coding such as a cyclic redundancy check (CRC) code or the like. If .sub.2 is a binary field, a codeword bit vector having a code length of N may be expressed as x=(x.sub.1, x.sub.2, . . . , x.sub.N)∈
.sub.2.sup.1×N (defined as a row vector). If a parity check matrix is given as H∈
.sub.2.sup.(N-K)×N, a codeword bit vector may be produced to satisfy the equation shown below.
(pairty check equation) Hx.sup.T=0 Equation 1
[0063] In Equation 1, 0∈.sub.2.sup.N-K denotes a zero vector. According to Equation 1, a codeword bit vector x of an LDPC code defined by the parity check matrix H may be a nullspace for the parity check matrix H. A j.sup.th row of H is expressed as h.sub.j∈
.sub.2.sup.1×N (a row vector), and the element at a j.sup.th row and an i.sup.th column of H is expressed as h.sub.ji∈
.sub.2. Encoding and decoding of an LDPC code may be performed based on the parity check matrix H.
[0064] Given the situation in which a decoder of a receiver performs a series of operations, and {circumflex over (x)} is estimated that is obtained by adding a binary error to a codeword bit vector x, description will be provided. The estimated codeword bit vector {circumflex over (x)} may be expressed as x⊕e which is obtained by adding e∈.sub.2.sup.1×N that is an error vector having an error location value of 1 to the codeword bit vector x. Here, ⊕ is a binary addition (modulo-2 sum or bitwise-XOR). In this instance, the binary multiplication of the parity check matrix H and the estimated codeword bit vector {circumflex over (x)} may be calculated as shown in equation below.
(syndrome check eq.) s=H{circumflex over (x)}.sup.T=H(x⊕e).sup.T=Hx.sup.T⊕He.sup.T=He.sup.T Equation 2
[0065] The result of the binary-multiplication between the parity check matrix H and the estimated codeword bit vector {circumflex over (x)} may be referred to as a syndrome or a syndrome vector s∈.sub.2.sup.N-K. If an error is not present in the estimated codeword bit vector {circumflex over (x)}, e=0. The syndrome result of Equation 2 is s=He.sup.T=0. Conversely, if an error is present in the estimated result {circumflex over (x)} and e≠0, generally it is not satisfied that s=He.sup.T=0. Depending on the configuration of the parity check matrix H, there may be e that satisfies s=He.sup.T=0. However, if a code length is significantly long and the parity check matrix H is appropriately designed, there is a low probability of being s=He.sup.T=0 while satisfying e≠0. Therefore, a decoder of a normal linear code may perform the operation of Equation 2 and may determine whether a codeword includes an error based on a result of the calculation, which is referred to as a syndrome check. The decoder of an LDPC code may perform, based on an estimated bit sequence, a syndrome check for each iterative decoding, so as to identify whether a decoding result is normal.
[0066] A normal process of decoding an LDPC code that is defined by the parity check matrix H will be described in detail with reference to some drawings. Decoding of an LDPC code may be understood as a so-called belief-propagation process that iteratively exchanges messages (message-passing) in a binary graph (bipartite graph) corresponding to a parity check matrix.
[0067]
[0068] Referring to .sub.2.sup.5×10 that is a parity check matrix of a binary LDPC code when the number of rows is N−K=5 and the number of columns is N=10. The number of ‘1’ in the parity check matrix is referred to as a density, and the density may determine the complexity of encoding and decoding. The density of a normal parity check matrix of an LDPC code is significantly lower than the dimension of the entire parity check matrix, and this is referred to as a low-density parity check code. A parity check matrix of
[0069]
[0070] Referring to (|
|=N), a check node set
(|
|=N−K), and an edge set ε that connects the elements of the two sets. Variable nodes correspond to respective bits of a codeword bit vector x∈
.sub.2.sup.N, and an i.sup.th variable node denotes a i.sup.th codeword bit x.sub.i having the same index. A check node is a linear equation expressed by an inner production of each row of the parity check matrix H and the binary field of a codeword bit vector x. That is, a j.sup.th check node may be a linear equation corresponding to h.sub.jx.sup.T=Σ.sub.i=1.sup.Nh.sub.jix.sub.i=0, and this shows that the binary sum (modulo-2 sum, bitwise XOR) of bit values of all variable nodes connected to the j.sup.th check node in a binary graph given by H is 0. The belief-propagation decoding of an LDPC code may be understood as an iterative message exchanging process using a relationship between a variable node and a check node in the graph.
[0071]
[0072] Referring to
[0073] The process is an embodiment of LDPC decoding, and may be corrected, modulated, and supplemented according to various schemes depending on a purpose, a situation, requirements, or the like. Although the above-described decoding process has described a flooding scheme-based LDPC decoding in which all check node finishes operations and all variable nodes performs operations, there may be, as described in the following, a layered scheme-based LDPC decoding in which some check nodes sequentially perform operations and variable nodes connected thereto may perform necessary operations. In addition, in the above-described decoding process, the syndrome check is separately performed after a check node operation, but the syndrome check may be performed together in the check node operation process. As described above, the process of decoding an LDPC code may be embodied and implemented in various schemes, and the schemes do not limit the application or effect of the disclosure. In addition, schemes that are not mentioned may be also clearly understood by those skilled in the art.
[0074] In the above-described conventional belief-propagation decoding process that decodes an LDPC code, a process in which each variable node and a check node calculate a message will be briefly described as follows. For clear description, the following symbols will be used.
[0075] I.sub.max: the maximum number of times that iterative LDPC decoding is performed.
[0076] x=(x.sub.1, x.sub.2, . . . , x.sub.N): a codeword bit vector (bit x.sub.i corresponds to variable node v.sub.i)
[0077] ={v.sub.1, v.sub.2, . . . , v.sub.N}: a set of all variable nodes (|
|=N)
[0078] ={c.sub.1, c.sub.2, . . . , c.sub.N-K}: a set of all check nodes (|C|=N−K)
[0079] .sub.j: a set of variable nodes connected to check node c.sub.j (
⊂
)
[0080] : indices of element variable nodes of set
.sub.j (e.g., if
.sub.j={v.sub.0, v.sub.1, v.sub.5},
={0, 1, 5})
[0081] .sub.i: a set of check nodes connected to variable node v.sub.i (
.sub.i∈
)
[0082] : indices of element check nodes of set
.sub.i (e.g., is
.sub.i={c.sub.0, c.sub.2, c.sub.6},
={0, 2, 6})
[0083] λ.sub.i: intrinsic LLR of a bit corresponding to variable node v.sub.i
[0084] γ.sub.i: a posteriori LLR of a bit corresponding to variable node v.sub.i
[0085] α.sub.i.fwdarw.j: a variable-to-check message that variable node v.sub.i transfers to check node c.sub.j
[0086] β.sub.j.fwdarw.i: check-to-variable message that check node c.sub.j transfers to variable node v.sub.i
[0087] {circumflex over (x)}.sub.i: estimated value of codeword bit x.sub.i corresponding to variable node v.sub.i
[0088] s.sub.j: syndrome calculated by check node c.sub.j
[0089] An embodiment of a belief-propagation decoding process on an LDPC code using the symbols may be expressed as pseudocode below. A mathematical symbol used in the pseudocode may follow a general example. If two sets and
are given,
\
denotes a relative complement (or a set difference) of set
in association with set
.
TABLE-US-00001 Input: Λ = (λ.sub.1, . . . , λ.sub.N) Output: {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K) and decoding report 1: α.sub.i.fwdarw.j ← λ.sub.i for i ∈ {1, . . . , N} and j ∈ 2: for
= 1, . . . , I.sub.max do 3: for j = 1, 2, . . . , N − K do 4: β.sub.j.fwdarw.i ← f ({α.sub.k.fwdarw.j
) 5: end for 6: for i = 1, 2, . . . , N do 7: α.sub.i.fwdarw.j ← λ.sub.i +
8: γ.sub.i ← λ.sub.i +
9: end for 10:
{circumflex over (x)}.sub.i) mod 2 for j ∈ {1, 2, . . . , N − K} 12: if s.sub.j = 0 for all j ∈ {1, 2, . . . , N − K} then 13: report decoding success; return {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K) 14: end if 15: end for 16: report decoding failure; return dummy {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K)
[0090] An iterative belief-propagation decoding process on an LDPC code will be described using the symbol and the pseudocode. An intrinsic LLR input earlier may substitute for a V2C message that each variable node transfers to a neighboring check node (pseudocode Line 1). That is, the initial value of the V2C message that a variable node v.sub.i transfers to a neighboring check node c.sub.j∈.sub.i may be determined as λ.sub.i that is the intrinsic LLR of the corresponding variable node. Belief-propagation decoding may be performed by a predetermined number of times I.sub.max (pseudocode Line 2-15). Each check node may calculate, using a message transferred from a neighboring variable node, a message to be transferred again to the neighboring variable node (pseudocode Line 3-5). A message β.sub.j.fwdarw.i that the check node c.sub.j transfers to the neighboring variable node v.sub.i∈
.sub.j may be calculated as given in Equation 3.
[0091] A physical meaning of the message produced based on Equation 3 is an extrinsic LLR associated with the bit value of a variable node v.sub.i calculated based on a linear relation that a check node c.sub.j has. The check node message operation expression of Equation 3 may need to perform significantly complex tan h(⋅), and multiplexing values may be more complicated than adding values. Accordingly, depending on the situation or requirements, Equation 3 needs to be made a low complex operation model or approximated to be a low complex operation. Representatively, a method of applying log(tan h(⋅)) to messages corresponding to an LLR, and transferring the message to a log domain so as to change a multiplying operation into an add operation, a method of calculating each unit operation using a look-up table that a processor is capable of easily processing, and the like may be used. In addition, min-sum based scheme may be used that approximates the process of Equation 3 as shown in Equation 4, by accepting a slight loss in performance.
[0092] In Equation 4, a correction process such as normalization or offset may be performed in order to increase performance. A C2V message operation processes such as Equation 3 and Equation 4 may be designed not to redundantly perform the same operation. Representatively, a message operation scheduling method which is called a forward-backward operation or the like may be used.
[0093] A variable node may calculate a C2V message based on an intrinsic LLR value and a message received from neighboring check nodes, and may transfer the same to a neighboring check node (pseudocode Line 7). A message that the variable node v.sub.i transfers to the neighboring check node c.sub.j∈.sub.i may be calculated as shown in Equation 5 below.
α.sub.i.fwdarw.j=λ.sub.i+β.sub.k.fwdarw.i Equation 5
[0094] According to Equation 5, the variable node v.sub.i may add an intrinsic LLR value and a C2V message for an extrinsic LLR received from all other neighboring check nodes excluding the check node c.sub.j, and may transfer the same to the check node c.sub.j. As described above, at the initial iterative decoding, a message transferred from a check node to a variable node is not present, and thus, the value of a C2V message for an extrinsic LLR received from a neighboring check node is regarded as 0 and the intrinsic LLR value of each variable node may be transferred to neighboring check nodes as a V2C message. In addition, the variable node may calculate an AP-LLR in order to estimate a bit value (pseudocode Line 8). Provided that the AR-LLR of a variable node v.sub.i is γ.sub.i, Equation 6 below may be calculated as follows.
γ.sub.i=λ.sub.i+β.sub.k.fwdarw.i Equation 6
[0095] A V2C message production equation of Equation 5 associated with variable node v.sub.i may be significantly similar to an AR-LLR value calculation formula of Equation 6. For example, a V2C message and an AR-LLR are in the relationship of α.sub.i.fwdarw.j=γ.sub.i−β.sub.j.fwdarw.i, and thus, an efficient scheme to reduce a redundant operation may be designed and used to actually implement a decoder.
[0096] The receiver may perform hard decision based on an AP-LLR value calculated based on Equation 6, and may estimate a bit value corresponding to each variable node (pseudocode Line 10). In the disclosure, descriptions will be provided given that an LLR value has a high positive value when a probability of a bit value of 0 is high, and an LLR value has a high negative value when a probability of a bit value of 1 is high. However, even though the definition is opposite (i.e., an LLR value has a high positive value when a probability of a bit value of 1 is high, and an LLR value has a high negative value when a probability of a bit of 0 is high), if a receiver operation is designed based thereon, fundamental operation and performance may not be different. According to the hard decision rule, an estimated value {circumflex over (x)}.sub.i of an i.sup.th codeword bit may be determined based on Equation 7.
[0097] As illustrated in
[0098] If an estimated codeword bit vector x=(x.sub.1, x.sub.2, . . . , x.sub.N) is given via the hard decision, a receiver may perform a syndrome check based on s=H{circumflex over (x)}.sup.T that is the syndrome check of Equation 2 (pseudocode Line 11). The receiver may efficiently perform a syndrome check using a binary graph, rather than merely calculating the syndrome check of Equation 2 as it is. For example, the result of s.sub.j=h.sub.j{circumflex over (x)}.sup.T that is a j.sup.th (j∈{1, 2, . . . , N−K}) syndrome value may be the same as the result obtained by performing a binary sum (modulo-2 sum, XOR) on estimated bit values of all variable nodes connected to a j.sup.th check node in a graph. Therefore, the j.sup.th syndrome may be calculated as shown in Equation 8 below.
s.sub.j=h.sub.j{circumflex over (x)}.sup.T={circumflex over (x)}.sub.i Equation 8
[0099] Addition performed in Equation 8 is a binary sum. Syndrome calculation according to Equation 8 may be understood as a process in which each variable node transfers an estimated bit value to a neighboring check node, and each check node calculates a binary sum of all received estimated bit values. In the conventional decoding process, a syndrome may be calculated on all check nodes, that is, check node indices j=1, 2, . . . , N−K.
[0100] While syndrome calculation is performed or after syndrome calculation is performed, a process of checking whether any one of the calculated syndrome values is 0 is referred to as a syndrome check (pseudocode Line 12-14). If a calculated syndrome vector s=(s.sub.1, s.sub.2, . . . , s.sub.N-K) is a zero-vector having a length of N−K, a decoder may provisionally determine that decoding is successfully performed and may proceed with a subsequent procedure. The subsequent procedure after the provisional decoding success may include early termination of iterative decoding, decoding of outer coding such as a CRC code, and the like. Conversely, if a calculated syndrome vector s is not a zero vector, that is, if the elements of the syndrome vector s include at least one 1, the decoder may provisionally determine that decoding fails, and may proceed with a subsequent procedure. The subsequent procedure after the provisional decoding failure may include continuously performing subsequent iterative belief-propagation decoding, or reporting a final decoding failure when the number of times of iterative decoding exceeds the predetermined maximum number I.sub.max, or the like. The syndrome check process may be implemented in various schemes. For example, all syndromes may be calculated, and whether all the syndrome values are 0 is checked. As another example, syndrome calculation is performed one by one or based on a predetermined group, and if any one of the calculated syndrome values is not 0, the syndrome calculation and check process is immediately terminated and a subsequent process associated with a decoding failure will be performed.
[0101] The syndrome check process may be similar to a check node operation process from the perspective that a variable node transfers a message which is an estimated bit value to a neighboring check node and the check node performs an operation based on the received value. For the reason, a check node operation and a syndrome check may be implemented together. There are various methods for effectively scheduling and performing a check node operation and a syndrome check process. In the disclosure, although the schemes are not described, those skilled in the art may clearly understood the schemes.
[0102] Hereinafter, for a quasi-cycle (QC) LDPC code of the 3GPP 5G NR, ATSC 3.0 system or the like, a method of performing efficient decoding based on the characteristic of a parity check matrix will be described. A QC-LDPC code is one of the subclasses of an LDPC code, and is a code that constructs a graph associated with a final parity check matrix via lifting that is an extending and constructing operation based on a small graph called a protograph. The lifting process is a permute process that copies Z small photographs, and rearranges the disposition of edges of the graph according to a determined rule. Z denotes a lifting size. The QC structure is widely used since the QC structure is easily implement a decoder of an LDPC code corresponding thereto to achieve a high throughput. However, the scope of the embodiments of the disclosure is not limited to an LDPC code having a QC structure.
[0103] Among the QC-LDPC codes, a QC-LDPC code used in 3GPP 5G NR, ATSC 3.0, and the like may have a structure that performs 2-step encoding, that is, a precoder and single parity check (SPC) extension, or a QC-LDPC code structure equivalent thereto. x∈.sub.2.sup.1×N that is a codeword bit vector of the QC-LDPC code configured by 2-step encoding may be constructed via concatenation of three subvectors m, p.sub.1, and p.sub.2 as given in Equation 9 below.
x=[mp.sub.1p.sub.2] Equation 9
[0104] The vector m∈.sub.2.sup.K is an input information bit vector to be encoded, and may include a shortening bit of which the value is fixed and is not transmitted. The value of the shortening bit is fixed to 0 but it not be always limited to 0. A bit vector p.sub.1 is a first parity bit vector produced by a precoder, and each parity bit of p.sub.1 is determined based on a linear combination of other bits in p.sub.1 and an input information bit vector m. A bit vector p.sub.2 is a second parity bit vector produced by SPC extension, and each bit of p.sub.2 may be determined by linear combination between bits of a first parity bit vector p.sub.1 and input information bit vector m. According to the characteristic of SPC extension, other bits of p.sub.2 may not affect production of each bit of a second parity bit vector p.sub.2.
[0105] The characteristic of a QC-LDPC code that produces a codeword according to the 2-step encoding may be shown through a parity check matrix H.
[0106]
[0107] Referring to
[0108] In a matrix of
[0109] Referring to
[0110] The submatrices A, B, and C in Equation 10 are matrices that are normally carefully designed matrices. Normally A and C are freely designed areas, and B is designed to have a structure having a predetermined rule to substantially reduce the complexity of encoding of a precoder. 0 is a zero matrix in which all element values are 0, and I is an identity matrix in which diagonal element values are all 1 and the remaining element values are 0.
[0111] Referring to
[0112] Variable nodes corresponding to the second parity bit vector p.sub.2 produced by the SPC extension may have only a single element that is different from 0 in the corresponding column, and this is expressed that a degree is 1. Conversely, the degree of a variable node of a bit corresponding to the first parity bit vector p.sub.1 and information bit vector m may be greater than 1. Generally, the absolute value of an AP-LLR that a variable node operates, that is, reliability, may be determined based on the degree of the corresponding variable node as shown in Equation 6, that is, based on from how many check nodes messages are received. Therefore, generally, the reliability of each bit estimated according to the result of iterative belief-propagation decoding may be increased when the degree is high, may be decreased the degree is low. From the perspective of view, if each bit of the second parity bit vector p.sub.2 having a degree of 1 performs iterative belief-propagation decoding, the reliability thereof is not increased, but the reliability of other connected (important) bits, for example, information bits or the reliability of the first parity bit may be increased and thus, decoding is successfully performed. The objective of the receiver and the decoder is to finally and accurately estimate a bit belonging to an information bit vector, and an LDPC code having the above-described structure may be useful to achieve the objective based on the fact that parity bits are not necessarily accurately estimated.
[0113] According to an embodiment, a variable node operation is not performed on a codeword bit that is expected to have low reliability. Hereinafter, a set of indices of low-reliable codeword bits that are expected to have low reliability is expressed as ⊂{1, 2, . . . , N}. Otherwise, a set of indices of high-reliable codeword bits that are expected to have high reliability is expressed as
={1, 2, . . . , N}\
. It should be construed that the expression ‘reliability’ is not directly related to the reliability of an actual bit, but to describe characteristics briefly.
and
are disjoint sets as indicated by mathematical symbols, which are
∩
=Ø and
∪
={1, 2, . . . , N}. According to an embodiment of the disclosure,
may include all or some of indices of bits included in the second parity bit vector p.sub.2 produced by SPC extension. In addition, indices of some of the codeword bits included in the first parity bit vector p.sub.1 or information bit vector m may be included in
. As described above, if
is determined,
is determined to be
={1, 2, . . . , N}\
. According to another embodiment, a codeword bit index set
that is expected to have high reliability may be determined. Accordingly,
may be determined to be
={1, 2, . . . , N}\
.
[0114] In addition, according to an embodiment of the disclosure, a set of check nodes to which any one of the codeword bits considered to have low reliability is connected is distinguished from others. In the check node universal set {c.sub.1, c.sub.2, . . . , c.sub.N-K}, if the index of any one of the neighboring variable nodes belongs to , a subset of the check nodes denotes
. A set of the remaining indices corresponding to the set difference denotes
={1, 2, . . . , N−K}\
.
[0115] As described above, disjoint sets and
are determined, the decoder of an LDPC code according to an embodiment of the disclosure may perform different variable node operations with respect to variable nodes having indices belonging to two sets. The decoder may calculate a V2C message and an AP-LLR as shown in Equation 5 and Equation 6 with respect to a variable node having an index belonging to an index set
of a codeword bit expected to have high reliability. Conversely, the decoder may omit or simplify an operation with respect to a variable node having an index belonging to an index set
of a codeword bit expected to have low reliability. Particularly, with respect to a variable node having an index belonging to
, the decoder embodied according to an embodiment of the disclosure may not perform some or all of a series of operations including AP-LLR calculation, hard-decision based on an AP-LLR, a syndrome-check related to an estimated value of a bit obtained via the hard decision. For example, any operation is not performed with respect to a variable node having an index belonging to a set
, and a V2C message and an AP-LLR are maintained when the intrinsic LLR is initially set. Particularly, an AP-LLR may not be calculated and stored separately. In addition, the AP-LLR is not calculated and stored, hard decision based thereon is not performed. In addition, a codeword bit is not estimated and thus, a syndrome that the bit is associated with, that is, with respect to a check node having an index belonging to
, syndrome calculation is not performed. Even though syndrome calculation is performed in any way, that may be disregarded when determining whether decoding is successfully performed or fails.
[0116]
[0117] Referring to ) expected to have high reliability. In addition, according to an embodiment of the disclosure, a decoding operation or decoding apparatus may perform a syndrome check on only a check node (of which the index belongs to
) connected to only codeword bits expected to have high reliability, and may determine whether decoding is successfully performed/fails based thereon in operation 705.
[0118] An LDPC decoding apparatus and a reception device configured as hardware such as FPGA, ASIC, SoC, or the like according to an embodiment of the disclosure may not include all or some of a processing unit and a storage, such as a processor for AP-LLR calculation and hard decision value in association with codeword bits corresponding to some or all indices belonging to set , a memory, or the like. In addition, depending on the configuration of the decoder, all or some of a processing unit and a storage may not be included, such as a processor that performs a syndrome check related to an estimated value of a codeword bit corresponding to an index that belongs to set
, a memory, or the like. Operations 706, 707 and 708 are similar to operations 506, 507 and 508 respectively.
[0119]
[0120] Referring to ), and a storage memory. Through the above, the amount of consumption of the processor and the memory of a hardware device may be achieved without a loss of error-correction capability.
[0121] According to an embodiment of the disclosure, although here are described LDPC codes having various lengths and various code rates configured based on two types of photographs (base graph), that is, Base Graph 1 (BG1) and Base Graph 2 (BG2), in consideration of the 3GPP NR system, the disclosure is not limited thereto. Base Graph 1 and Base Graph 2 may be a Base Graph defined in the 5G NR standard, for example, TS 38.212 or the like. The following pseudocode is an embodiment when the disclosure is applied to decoding of an LDPC code of the 3GPP NR system.
TABLE-US-00002 Input: Λ = (λ.sub.1, . . . , λ.sub.N) Output: {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K) and decoding report 1: α.sub.i.fwdarw.j ← λ.sub.i for i ∈ {1, . . . , N} and j ∈ 2: for
= 1, . . . , I.sub.max do 3: for j = 1, 2, . . . , N − K do 4: β.sub.j.fwdarw.i ← f ({α.sub.k.fwdarw.j
) 5: end for 6: for i = 1, 2, . . . , K + 4Z do 7: α.sub.i.fwdarw.j ← λ.sub.i +
β.sub.k.fwdarw.i 8: γ.sub.i ← λ.sub.i +
9: end for 10:
{circumflex over (x)}.sub.i) mod 2 for j ∈ {1, 2, . . . , 4Z} 12: if s.sub.j = 0 for all j ∈ {1, 2, . . . , 4Z} then 13: report decoding success; return {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K) 14: end if 15: end for 16: report decoding failure; return dummy {circumflex over (x)} = ({circumflex over (x)}.sub.1, . . . , {circumflex over (x)}.sub.K)
[0122] A process of applying the disclosure to an LDPC code configured based on BG1 among 3GPP NR LDPC codes will be described. In the case of an LDPC code configured based on BG1, the length of information bit vector m may be K=22Z. Z is determined based on various code parameters (code dimension, code length, code rate, or the like) given as a lifting size. In the information bit vector m, a value is fixed and a shorten bit that a transmitter and a receiver are mutually aware of may be included in. The transmitter may produce a first parity bit vector p.sub.1 having a length of 4Z using a precoder, and may produce a second parity bit vector p.sub.2 having a length of 42Z using SPC extension. In the case of an LDPC code configured based on BG1, the transmitter may produce a codeword bit vector x=[m p.sub.1 p.sub.2] having a total length of 68Z, as shown in Equation 9. The transmitter may perform puncturing of a part of a codeword bit vector based on a given coding rate or the like, and may transmit the rest. For example, the 3GPP NR system may puncture first 2Z bits of a codeword bit vector x and may not transmit the same.
[0123] When the receiver performs decoding according to an embodiment of the disclosure, some or all of the operations associated with a variable node corresponding to the second parity bit vector p.sub.2 may not be performed. The operations that do not performed in association with the variable node may be V2C message calculation, AP-LLR calculation, hard-decision, a related syndrome operation, and the like. Therefore, conventionally, the number of operations required for a total of 68Z variable nodes may be reduced to 26Z by excluding 42Z variable nodes corresponding to the size of p.sub.2. In an LDPC decoding apparatus embodied as a hardware such as FPGA, ASIC, SoC, or the like, variable node units (VNUs) and an AP-LLR memory buffer may be decreased by approximately 61.76%. In addition, according to an embodiment of the disclosure, the number of arithmetic operations that an LDPC decoder performs may be decreased.
[0124]
[0125] Referring to
[0126] A process of applying the disclosure to an LDPC code configured based on BG2 among 3GPP NR LDPC codes will be described. In the case of an LDPC code configured based on BG2, the length of information bit vector m may be K=10Z. Z is determined based on various code parameters (code dimension, code length, code rate, or the like) given as a lifting size. In the information bit vector m, a value is fixed and a shorten bit that a transmitter and a receiver are mutually aware of may be included in. The transmitter may produce a first parity bit vector p.sub.i having a length of 4Z using a precoder, and may produce a second parity bit vector p.sub.2 having a length of 38Z using SPC extension. In the case of an LDPC code configured based on BG2, the transmitter may produce a codeword bit vector x=[m p.sub.1 p.sub.2] having a total length of 52Z, as shown in Equation 9. The transmitter may perform puncturing of a part of a codeword bit vector based on a given coding rate or the like, and may transmit the rest. For example, the 3GPP NR system punctures first 2Z bits of a codeword bit vector x and may not transmit the same.
[0127] When a receiver performs decoding according to an embodiment of the disclosure, some or all of the operations associated with a variable node corresponding to the second parity bit vector p.sub.2 may not be performed. The operation that is not performed with respect to the variable node may be V2C message calculation, AP-LLR calculation, hard-decision, a related syndrome operation, and the like. Therefore, conventionally, the number of operations required for a total of 52Z variable nodes may be reduced to 14Z by excluding 38Z variable nodes corresponding to the size of p.sub.2 In an LDPC decoding apparatus embodied as a hardware such as FPGA, ASIC, SoC, or the like, variable node units (VNUs) and an AP-LLR memory buffer may be decreased by approximately 73.08%. In addition, according to an embodiment of the disclosure, the number of arithmetic operations that an LDPC decoder performs may be decreased.
[0128]
[0129] Referring to
[0130] The disclosure may be easily applied to an LDPC code decoding that uses a scheduling scheme different from the above-described scheme. Particularly, the disclosure is to omit or simplify an operation on codeword bits (e.g., parity bits corresponding to a variable node having a degree of −1, but not necessarily) expected to have low reliability, irrespective of decoding scheduling (flooding-scheduled, layered, shuffled decoding, or the like) that an LDPC decoder uses, an algorithm (sum-product, min-sum, modified min-sum, adjusted min-sum), or a message calculation scheme (forward-backward, sum-and-substation, or the like), and to omit or simplify a required calculation device (a processor), or a memory (a storage).
[0131] An embodiment of the disclosure may be applied to a layered decoding algorithm and decoder which is another representative decoding scheme for an LDPC code. According to the flooding decoding scheme, all check nodes calculate (or update) a message, and all variable nodes calculate (or update) the message. Conversely, according to the layered decoding scheme, the procedure may be performed partially sequentially. All check nodes may be divided into subsets (disjoint subsets) that do not intersect each other according to a predetermined method, and each subset is referred to as a layer. From the perspective of a parity check matrix, each layer may be considered as a submatrix including some rows among the entire parity check matrix. The size of a layer, that is, the number of check nodes included in each layer may be the same for each layer, or may be different from each layer.
[0132] According to the layered LDPC decoding scheme, decoding may be sequentially performed with respect to each layer. Particularly, in the case of a QC-LDPC code, if each layer is configured with each Z rows of a parity check matrix as shown in
TABLE-US-00003 Input: Λ = (λ.sub.0, . . . , λ.sub.N−1) Output: {circumflex over (x)} = ({circumflex over (x)}.sub.0, . . . , {circumflex over (x)}.sub.A−1) and decoding report 1: γ.sub.i ← λ.sub.i for i ∈ {1, 2, . . . , N} 2: β.sub.j.fwdarw.i ← 0 for j ∈ {1, 2, . . . , N − K} and i ∈ 3: for
= 1, . . . , I.sub.max do 4: for q = ϕ.sub.1, ϕ.sub.2, . . . , ϕ.sub.m do 5: for z ∈
.sub.Z do 6: j ← qZ + z 7: α.sub.i.fwdarw.j ← γ.sub.i − β.sub.j.fwdarw.i for i ∈
8: for i ∈
do 9: τ.sub.i← f ({α.sub.k.fwdarw.j
) 10: end for 11: γ.sub.i ← α.sub.i.fwdarw.j + τ.sub.i for i ∈
12: β.sub.j.fwdarw.i ← τ.sub.i for i ∈
13: end for 14: end for 15:
{circumflex over (x)}.sub.i) mod 2 for j ∈ {1, 2, . . . , N − K} 17: if s.sub.j = 0 for all j ∈ {1, 2, . . . , N − K} then 18: report decoding success; return
19: end if 20: end for 21: report decoding failure; return
[0133] The pseudo code illustrates a conventional normal layered decoding algorithm operation. As described above, the check node sequentially performs operations in units of layers (pseudocode Line 4-6). q in the pseudocode is the index of a layer, and the order of layers to be decoded according to the layered scheme may be determined in advance. The order of layers may be determined in order of index values, or in reverse order. Alternatively, the order of layers may be determined based on a previously designed order. The order may be denoted as ϕ.sub.1, ϕ.sub.2, . . . , ϕ.sub.m in the pseudocode. Here, m denotes the total number of layers, and may be determined based on a code parameter (code length, a code rate, or the like). Although it is assumed that the size of each layer is identical to Z in the pseudocode, this is merely an example and the disclosure is not limited thereto. As described above, it should be construed that the size of each layer may differ for each layer.
TABLE-US-00004 Input: Λ = (λ.sub.0, . . . , λ.sub.N−1) Output: {circumflex over (x)} = ({circumflex over (x)}.sub.0, . . . , {circumflex over (x)}.sub.A−1) and decoding report 1: γ.sub.i ← λ.sub.i for i ∈ {1, 2, . . . , N} 2: β.sub.j.fwdarw.i ← 0 for j ∈ {1, 2, . . . , N − K} and i ∈ 3: for
= 1, . . . , I.sub.max do 4: for q = ϕ.sub.1, ϕ.sub.2, . . . , ϕ.sub.m do 5: for z ∈
.sub.Z do 6: j ← qZ + z 7: if q < 4 then 8: α.sub.i.fwdarw.j ← γ.sub.i − β.sub.j.fwdarw.i for i ∈
9: for i ∈
do 10: τ.sub.i← f ({α.sub.k.fwdarw.j
) 11: end for 12: γ.sub.i ← α.sub.i.fwdarw.j + τ.sub.i for i ∈
13: β.sub.j.fwdarw.i ← τ.sub.i for i ∈
14: else 15: α.sub.i.fwdarw.j ← λ.sub.i for i =
.sub.back 16: α.sub.i.fwdarw.j ← γ.sub.i − β.sub.j.fwdarw.i for i ∈
17: for i ∈
do 18: τ.sub.i← f ({α.sub.k.fwdarw.j
) 19: end for 20: γ.sub.i ← α.sub.i.fwdarw.j + τ.sub.i for i ∈
21: β.sub.j.fwdarw.i ← τ.sub.i for i ∈
22: end if 23: end for 24: end for 25:
{circumflex over (x)}.sub.i) mod 2 for j ∈ {1, 2, . . . , 4Z} 27: if s.sub.j = 0 for all j ∈ {1, 2, . . . , 4Z} then 28: report decoding success; return
29: end if 30: end for 31: report decoding failure; return
[0134] The pseudocode illustrates an operation when an embodiment of the disclosure is applied. In the pseudocode, the following two additional symbols are used.
[0135] .sub.back: the last (highest) element in a set
(e.g., if
={v.sub.0, v.sub.1, v.sub.5},
={0, 1, 5} and
.sub.back=5)
[0136] * : a set of elements excluding the last (highest) element in the elements in a set
(e.g., if
={v.sub.0, v.sub.1, v.sub.5},
={0, 1, 5},
.sub.back=5,
*={0, 1})
[0137] In the same manner as the above-described embodiment of the disclosure associated with the flooding decoding algorithm, the layered decoding algorithm does not perform AP-LLR production and updating, hard-decision, a related syndrome check with respect to a variable node of a second parity bit vector p.sub.2 produced via SPC extension. An emphasized part in the pseudocode is to indicate a part that omits an operation associated with the second parity bit produced via SPC extension.
[0138]
[0139] Referring to ) expected to have high reliability, and may not perform an operation on a variable node (of which the index belongs to set
) in operation 1103. If the operation is performed on all layers or determined layers, the decoder may perform hard-decision only on a codeword bit (of which the index belongs to set
) expected to the high reliability in operation 1105. In addition, according to an embodiment of the disclosure, a decoding operation or decoding apparatus may perform a syndrome check on only a check node (of which the index belongs to
) connected to only codeword bits expected to have high reliability, and may determine whether decoding is successfully performed/fails based thereon in operation 1106.
[0140] An LDPC decoding method according to an embodiment of the disclosure based on the above description may include an operation of receiving a transmitted signal of a codeword encoded into an LDPC code; an operation of producing an input of LDPC decoding such as an LLR or the like based on the transmitted signal; and an operation of performing decoding based on iterative belief-propagation using the input of the LDPC decoding, wherein the iterative belief-propagation decoding of an LDPC code may omit or simplify all or some of conventional operations performed on at least one variable nodes, for example, variable-to-check message calculation, posteriori LLR calculation, hard-decision, or the like. In addition, a syndrome check based on an estimated value of a bit corresponding to the variable node may be omitted or simplified. The variable node that omits some or all the operations may be determined based on the structure of an LDPC code, and for example, it may be a variable node of which the degree is 1.
[0141] In addition, an LDPC decoding apparatus according to an embodiment of the disclosure may receive a transmitted signal of a codeword encoded into an LDPC code; may produce an input of an LDPC decoder from the transmitted signal; may perform decoding based on iterative belief-propagation using the input of the LDPC decoding apparatus, wherein when the LDPC decoding apparatus performs the iterative belief-propagation decoding, the LDPC decoding apparatus may omit or simplify all or some of conventional operations performed on at least one variable nodes, for example, variable-to-check message calculation, posteriori LLR calculation, hard-decision, or the like. In addition, a syndrome check based on an estimated value of a bit corresponding to the variable node may be omitted or simplified. The variable node that omits some or all the operations may be determined based on the structure of an LDPC code, and for example, it may be a variable node of which the degree is 1. In
[0142] The methods according to various embodiments described in the claims or the specification of the disclosure may be implemented by hardware, software, or a combination of hardware and software.
[0143] When the methods are implemented by software, a computer-readable storage medium for storing one or more programs (software modules) may be provided. The one or more programs stored in the computer-readable storage medium may be configured for execution by one or more processors within the electronic device. The at least one program may include instructions that cause the electronic device to perform the methods according to various embodiments of the disclosure as defined by the appended claims and/or disclosed herein.
[0144] The programs (software modules or software) may be stored in nonvolatile memories including a random access memory and a flash memory, a read only memory (ROM), an electrically erasable programmable read only memory (EEPROM), a magnetic disc storage device, a compact disc-ROM (CD-ROM), digital versatile discs (DVDs), or other type optical storage devices, or a magnetic cassette. Alternatively, any combination of some or all of them may form a memory in which the program is stored. Further, a plurality of such memories may be included in the electronic device.
[0145] In addition, the programs may be stored in an attachable storage device which may access the electronic device through communication networks such as the Internet, Intranet, Local Area Network (LAN), Wide LAN (WLAN), and Storage Area Network (SAN) or a combination thereof. Such a storage device may access the electronic device via an external port. Further, a separate storage device on the communication network may access a portable electronic device.
[0146] The embodiments of the disclosure described and shown in the specification and the drawings are merely specific examples that have been presented to easily explain the technical contents of the disclosure and help understanding of the disclosure, and are not intended to limit the scope of the disclosure. That is, it will be apparent to those skilled in the art that other modifications and changes may be made thereto on the basis of the technical idea of the disclosure. Further, the above respective embodiments may be employed in combination, as necessary. For example, one embodiment of the disclosure may be partially combined with another embodiment to operate a base station and a terminal. In addition, the embodiments of the disclosure may be applied to other communication systems, and other variants based on the technical idea of the embodiments may also be implemented. For example, the embodiments may be applied to LTE, 5G, or NR systems.
[0147] While the disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.