Method and apparatus for encoding and decoding data using concatenated polarity-adjusted convolutional codes - Patents.com
The concatenated coding scheme with PAC codes addresses computational complexity and throughput issues, ensuring reliable low frame error rates in data transmission by using a layered structure and customized outer codes.
Patent Information
- Application Number
- JP2024083462
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-09-30
- Filing Date
- 2024-05-22
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-09-28
Smart Images

Figure 0007786757000027 
Figure 0007786757000028 
Figure 0007786757000029
Abstract
Description
[Technical Field]
[0001] The present disclosure generally relates to methods and apparatus for encoding and decoding data using concatenated polarity-adjusted convolutional codes. [Background technology]
[0002] In modern digital data transmission (such as wireless telephones, wireless data transmissions, optical disc transmissions to players, and music players receiving music data), a channel encoder receives a data block and can add redundancy to it (by passing the data block through a converter) to produce an encoded block that is more protected against noise in the transmission channel than the original data block. The encoded block is transmitted over the transmission channel, which produces a received block at its output, where the received block is a version of the encoded block that has been corrupted by channel noise and / or distortion. A channel decoder processes the received block to produce a decoded data block and forwards the decoded data block to a target destination, such as a music player that plays the decoded data as audio or a storage device that saves the decoded data as a file.
[0003] If a decoded data block is not an identical copy of the original data block, a frame error is said to have occurred during transmission. Generally, an acceptable design goal for channel coding is to reduce the frame error rate (FER) to an acceptable level. Channel codes that reduce the FER by requiring excessive computation are of little practical use. There are many classes of channel codes that can achieve an acceptable tradeoff between FER and implementation complexity, such as linear block codes. A subclass of linear block codes is the triangular factorization (TF) code, introduced in U.S. patent application [ARI2019a], which is incorporated herein by reference and included in the file history of this application. The present principles primarily concern codes that combine convolutional codes with channel polarization (ARI2009), called polarity-adjusted convolutional (PAC) codes (ARI2019a, ARI2019b), a special case of TF codes. PAC codes can be decoded using a low-complexity depth-first search method called iterative decoding. In ARI2019a and ARI2019b, iterative decoding was adapted to PAC codes. Simulation studies provided in ARI2019a and ARI2019b showed that a specific PAC code with block length 128 can achieve near-optimal FER performance with iterative decoding.
[0004] The purpose of the present principles is to provide solutions to certain problems that currently limit the practical use of PAC codes. First, there is a need to reduce the adverse effects of variations in the computational complexity of iterative decoding of PAC codes. The complexity of iterative decoding is highly sensitive to the magnitude of channel noise, and this is the main obstacle to applying iterative decoding to PAC codes.
[0005] Second, there is a need to construct long codes that can exploit the near-optimal performance of short PAC codes to achieve extremely low FER values (such as 10-15) required for certain applications such as optical fiber data transmission or hard disk data storage.
[0006] Third, PAC codes are designed for sequential decoding. Decoding decisions must be made in a specific order to take advantage of channel polarization. However, the sequential nature of decoding creates a throughput bottleneck, significantly limiting the number of bits that can be communicated between source and destination. While pipelining and unrolling techniques can be used to improve throughput in hardware implementations of PAC decoders, such techniques require additional memory between pipeline stages, increasing chip area and cost. Increasing clock speed to improve throughput does not solve the throughput problem because increased clock speeds create power density issues in VLSI circuits. The only viable option for increasing the throughput of data processing systems is the use of multicore processors. See [ZAB2013] for more information. The ability to encode and decode multiple copies of a PAC code independently or in parallel requires a custom-designed coding architecture for multicore implementation.
[0007] The present principles solve the above problems by introducing a concatenated coding scheme that uses a PAC code as the inner code. As background, some results on sequential decoding and concatenated coding are presented.
[0008] Sequential decoding is a decoding method originally developed for convolutional codes [FAN1963]. The computational problem of sequential decoding is a well-studied problem for traditional convolutional codes. [JAC1967] shows that the computations for sequential coding are random variables with a Pareto distribution, a heavy-tailed probability distribution. [JAC1967] also shows that the mean computational complexity of sequential coding becomes infinite for data transmission rates above a certain rate threshold, called the (computational) cutoff rate. Unfortunately, the cutoff rate for sequential decoding can be much smaller than the channel capacity.
[0009] The prior art offers several methods for circumventing this cutoff rate barrier by using multiple sequential decoders in parallel in various concatenation schemes. One such method is the concatenated coding scheme presented in [FAL1969]. This uses a (traditional) convolutional code as the inner code and a Reed-Solomon code as the outer code. The outer Reed-Solomon code imposes algebraic constraints on the inputs to the inner convolutional code. At the receiver, each inner convolutional code is decoded by a separate sequential decoder. The outer Reed-Solomon code is responsible for correcting errors and erasures left by the inner sequential decoder. [FAL1969] showed that this type of concatenated coding can achieve channel capacity at finite average complexity per decoded bit, but the technology at the time was far from practical.
[0010] This section reviews concatenated coding. While concatenated coding dates back to the product coding idea of [ELI1954], the foundational work for the development of concatenated coding is [FOR1965], where concatenated coding was introduced as a method for constructing long codes from short codes. Subsequent work significantly generalized the basic idea of [FOR1965], introducing "generalized concatenated coding" (GCC) and "multilevel coding" (MLC) (see [ZYA1999]). GCC / MLC schemes have layered inner codes and multiple outer codes, which need not be of the same rate. By appropriately selecting the types and parameters of the inner and outer codes in GCC / MLC schemes, many tradeoffs can be achieved between FER performance and complexity. The method of [FAL1969] can be viewed as a restricted form of generalized concatenation, restricted in the sense that all outer codes operate at the same rate. In relation to polar coding, GCC / MLC schemes were studied in [ARI2009] and [MAH2016].
[0011] In this disclosure, GCC / MLC coding technology is introduced in relation to PAC codes. Constructing a GCC / MLC scheme with a PAC inner code raises many new issues, such as introducing a layer structure into the PAC code, optimizing the number of layers and the payload capacity of each layer, and introducing an efficient method for error detection in decoding each layer of the inner PAC code. There is also a more general GCC / MLC design issue of balancing error correction capability with the implementation complexity of the inner and outer codes. This disclosure introduces a method for solving these design issues for a GCC / MLC scheme with a PAC inner code.
[0012] When comparing the present principles with the concatenation scheme in [FAL1969], several significant differences are noticeable. First, the concatenation scheme in [FAL1969] uses a (traditional) convolutional code as the inner code, whereas the inner code in the present disclosure is based on a PAC code. Convolutional codes have a uniform tree structure (often represented as a trellis), whereas PAC codes have a non-uniform tree structure, where the tree structure is designed to match the channel polarization effects generated by polarity conversion. Second, the outer codes in the concatenation scheme in [FAL1969] are identical to each other, whereas the more general GCC / MLC concatenation method used in the present principles requires that each layer of the inner PAC code be protected by its own outer code. This layer-specific outer code is customized for the error and erasure statistics remaining in that layer after inner decoding. Third, the inner decoder in [FAL1969] is a standard iterative decoder for convolutional codes, whereas the inner decoder in the present principles is a iterative decoder customized for channel polarization effects. The customization includes the use of a "look-ahead" function and a metric with a non-uniform "bias." The customization further includes the introduction of a "time limit rule" to suppress excessive computation in sequential decoding. This time limit rule is customized to the non-uniform structure of PAC tree codes. Other major differences between the prior art and the present principles will be detailed later.
[0013] In summary, this disclosure introduces the GCC / MLC method, which improves the practicality of PAC codes by providing computational diversity to mitigate the adverse effects of computational variability in sequential decoding, while simultaneously providing a PAC coding architecture that is highly reliable and capable of achieving scalable throughput. [XIA2017] discloses non-binary LDPC-polar concatenated codes. The outer code consists of k / t copies of a non-binary LDPC (NBLDPC) code, which uses t-bit symbols. The inner code consists of m copies of a binary polar code of length n and data payload size k, where k / t and m are both at least 2. [XIA2017] also discloses a method for polar encoding the outer NBLDPC codeword to generate a concatenated output sequence. [XIA2017] further discloses decoding of the resulting concatenated code, which includes feedback from the outer decoding to the inner decoding. These features of [XIA2017] are general features of generalized concatenated coding with multistage decoding (GCC / MLC), a general-purpose technique discussed, for example, in [ZYA1999]. This disclosure also has features specific to any GCC / MLC scheme. The intended technical problem solved by this disclosure is to customize the GCC / MLC technique for the specific case where a PAC code is used as the inner code and a Reed-Solomon (RS) code is used as the outer code, in order to obtain the best possible performance from this combination. [Prior art documents] [Patent documents]
[0014] [Patent Document 1] US Patent Application No. 16453887 [ARI2019a] E. Arikan, “Methods and apparatus for error correction coding with triangular factorization of generator matrices,” US Patent Application No. 16453887, 26-Jun-2019. [Non-patent literature]
[0015] [Non-Patent Document 1] [ARI2009] E. Arikan, “Channel polarization: A method for constructing g caPACity-achieving codes for symmetr ic binary-input memoryless channels,” IEEE Transactions on Information Theor y, vol. 55, no. 7, pp. 3051-3073, Jul. 2009. [Non-patent document 2] [ARI2019b] E. Arikan, “From se quential decoding to channel polarizat ion and back again,” arXiv:1908.09594 [cs, math], 26 Aug. 2019. [Non-patent document 3] [ARI2009] Arikan, E., & Markar ian, G. (2009, July 13). Two-dimensional al polar coding. Proc. Tenth International Symposium on Coding Theory and Applications (ISCTA'09). Ambleside, UK. [Non-patent document 4] [ELI1954] Elias, P. (1954). Er ror-free Coding. Transactions of the I RE Professional Group on Information T heory, 4(4), 29-37. [Non-Patent Document 5] [FAL1969] Falconer, DD (196 9). A hybrid coding scheme for discret e memoryless channels. The Bell System Technical Journal, 48(3), 691-728. [Non-patent document 6] [FAN1963] Fano, R. (1963). A h euristic discussion of probabilistic ecoding. IEEE Transactions on Informa tion Theory, 9(2), 64-74. [Non-Patent Document 7] [FOR1965] Forney Jr, GD (19 65). Concatenated Codes (Technical Rep ort No. 440). Massachusetts Institute of Technology. [Non-patent document 8] [JAC1967] Jacobs, I., & Berlek amp, E. (1967). A lower bound to the d istribution of computation for sequential decoding. IEEE Transactions on Inf ormation Theory, 13(2), 167-174. [Non-Patent Document 9] [MAH2016] Mahdavifar, H., El-K hamy, M., Lee, J., & Kang, I. (2016). Method and system for encoding and decoding data using concatenated polar co des (United States Patent No. US936295 6B2). [Non-Patent Document 10] [XIA2017] Xiaoguang, Li, et a l., “Concatenations of polar codes with outer nonbinary LDPC codes”, Proc. 2 017 IEEE 17th International Conference on Communication Technology (ICCT), I EEE, 27 October 2017 (2017-10-27), 117 -121. [Non-Patent Document 11] [ZAB2013] Zabinski, PJ, Gi lbert, BK, & Daniel, ES (2013). Coming Challenges with Terabit-per-Sec ond Data Communication. IEEE Circuits and Systems Magazine, 13(3), 10-20. [Non-Patent Document 12] [ZYA1999] Zyablov, V., Shavgu lidze, S., & Bossert, M. (1999). An Introduction to Generalized Concatenated Codes. European Transactions on Telec ommunications, 10(6), 609-622. Summary of the Invention
[0016] In one embodiment, a concatenated encoder apparatus for use in a communication system includes an outer encoder configured to receive a concatenated encoder input block d, divide the concatenated encoder input block d into outer code input sequences a, and encode the outer code input sequence a according to a plurality of outer codes to generate an outer code output sequence b; and an inner encoder configured to generate a concatenated code output sequence x from the outer code output sequence b according to a layered polarity adjusted convolutional (LPAC) code and transmit the concatenated code output sequence x over a channel. The plurality of outer codes include at least two outer codes, and the LPAC code includes at least two layers. The inner encoder is optionally further configured to calculate a precoding sequence c from the outer code output sequence b and insert the precoding sequence c into a data container array v. The LPAC code optionally divides the data index set A into a plurality of layer index sets (A1, A2,..., A L ), and a set of layer indexes (A1, A2, . . . , A L ) is selected according to a score function, which may be one of a Hamming score function, a reliability score function, a decoding order score function, or a combination thereof.
[0017] In another embodiment, a concatenated decoder apparatus for use in a communication system includes a layer counter configured to count a number of layers, and a layer counter configured to perform an inner decoding operation of an ith layer according to a Layered Polarity Adjusted Convolutional Code (LPAC) to generate a concatenated decoder input array y and an (i-1)th accumulated decision feedback (b̂1, b̂2, . . . b̂ i-1 ,) to the i-th inner decoder decision b ~ i and an inner decoder configured to perform the outer decoding operation of the ith layer to generate the ith inner decoder decision b. ~ i the i-th outer decoder decision a^ i and an outer decoder configured to perform the re-encoding operation of the ith layer to generate the ith outer decoder decision a^i from the i-th decision feedback b^ i and a re-encoder configured to generate outer encoder decisions (a^1, a^2, . . . , a^ m ), generating a concatenated decoder output block d̂ and transmitting the concatenated decoder output block d̂ to a destination. The i-th layer inner decoding operation optionally includes using a sequential decoder to decode the LPAC code. The sequential decoder optionally has a time limit for computation. [Brief explanation of the drawings]
[0018] [Figure 1] 1 is a block diagram illustrating a communication system 100 in which an embodiment of the present principles may be used; [Figure 2] 1 is a flow chart of a concatenated encoder process in accordance with present principles. [Figure 3] 10 is a flow chart of a concatenated decoder process in accordance with the present principles. [Figure 4] FIG. 1 illustrates an example of a wireless network that can implement data encoding and decoding using concatenated polarity-adjusted convolutional codes in accordance with the present disclosure. [Figure 5A] FIG. 1 illustrates an example user equipment network capable of implementing data encoding and decoding using concatenated polarity-adjusted convolutional codes in accordance with the present disclosure; [Figure 5B] FIG. 1 illustrates an example of an enhanced NodeB (eNB) network capable of implementing data encoding and decoding using concatenated polarity-adjusted convolutional codes in accordance with the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0019] 1-5B discussed below and the various embodiments used to illustrate the principles of the present disclosure in this patent document are for illustrative purposes only and should not be construed as limiting the scope of the present disclosure in any way. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably configured communications system.
[0020] Notation For a subset A of the universal set, A C denotes the complement of A with respect to the universal set. If A and B are any two subsets of the universal set, then the notation A / B denotes the difference of the sets, i.e., A / B=A∩B C For a set A, |A| represents the number of elements in A. The symbol F q represents a finite field with elements {0, 1, , q-1}. The symbol F q denotes a finite field with elements {0, 1, , q-1}. a∈F q N is, a is, a i ∈F q (i=1,2,···,N) is a row vector a=(a1,a2,···,a N ), a = (a1, a2, , a N ) and 1≦i≦j≦N, then a i j is the partial vector a i j =(a i ,a i+1 ,···,a j ), and if i>j, then a i j represents the zero vector. When i=1, a i j instead of a j a∈F q N and for δ ⊂ {1,2, ,N}, a δ is a subvector a whose elements are in the set δ δ =(a i :i∈δ). Similarly, a δC =(a i :i∈δ C) is the index of a in the set δ C is a subvector consisting of elements in δ C represents the complement of δ in {1,2,...,N}. For example, if N=8 and δ={1,2,3,5,8}, then a δ =(a1,a2,a3,a5,a8), and a δC =(a4,a6,a7). By convention, the coordinates of a are a δ Therefore, whether δ is δ={1,2,3,5,8} or δ={2,3,1,5,8}, the partial vector a δ is the same as a δ =(a1,a2,a3,a5,a8). F q The notation is element F q ={1, 2, , q-1}. The notation “a≡b” means “a is equal to b by definition.”
[0021] For a random variable (or probability variable) X and a possible realization x of X, the notation PX(x) denotes the probability of the event {X=x}. If (X,Y) are jointly distributed random variables and (x,y) are possible realizations of the pair (X,Y), then P X,Y (x,y) represents the probability that {X=x,Y=y}. And P Y|X (y|x) represents the conditional probability that {Y=y} given {X=x}.
[0022] where "C is an F matrix with dimension K and block length N." q The symbol above is "C is F" q K From F q N If it is a mapping to C:F q K →F q N The ratio R=K / N is called the rate of the code C. The encoder of the code C is the mapping C:F q K →F q N Any method or apparatus that performs the following: q KEach element of is called an "input block", and the range F of C is q N Each element of is called an "output block." The input block and output block of the code C are also called a "message" and a "codeword," respectively. Here, the input block and output block of the code C are respectively defined as d∈F q K and x∈F q N It is expressed as a row vector as follows. If there exists an input block d that is mapped to x by C, we say that "x belongs to C." If d is mapped to x by C, we may also say that "x is the codeword of C that corresponds to input block d." We denote x = C(d) to indicate that x is the codeword of C that corresponds to message block d.
[0023] PAC code To establish some basic concepts necessary for presenting the present principles, we first provide a prior art review of PAC coding. PAC codes, as the most preferred embodiment of TF codes, were first disclosed in E. Arikan's "Methods and apparatus for error correction coding with triangular factorization of generator matrices" in U.S. patent application Ser. No. 16 / 453,887, filed June 26, 2019, which is incorporated herein by reference. A tutorial description of PAC codes can be found in E. Arikan's paper, "From sequential decoding to channel polarization and back again," (arXiv:1908.09594 [cs, math], 26 Aug. 2019).
[0024] A PAC code over F2 is a linear block code characterized by a set of parameters (N, K, A, f, g), where N is the block length and N=2 for some integer n≧1. nwhere K is a dimension, and the dimension K is an integer in the range 0≦K≦N. A is a data index set, and this data index set A is a subset of {1, 2, , N} with dimension |A|=K. f is a frozen block, and the frozen block f is F2 N-K , and g is the impulse response of the convolution operation. The convolution impulse response g is g=(g0,g1,...,g M )∈F2 M+1 , where g0≠0, g M ≠0 and M≧1.
[0025] g M The restriction that M ≠ 0 and M ≥ 1 ensures that the trivial convolution operation (the identity map) corresponding to g = 1 is excluded from the definition of PAC codes, which in turn ensures that certain prior art codes, such as polar codes and Reed-Muller codes, are excluded from the class of PAC codes.
[0026] The choice of the frozen block f is not a critical design consideration; it can be set to a vector of all zeros. The FER performance and decoding complexity of a PAC code depend heavily on the choice of data index set A. U.S. patent application Ser. No. 16 / 453,887 describes several methods for constructing the data index set A based on various "score functions." We present the score function approach here in a slightly different but equivalent form.
[0027] A score function is any function s:{1,2,···,N}→R(real numbers) that assigns a real number (score) to each index i∈{1,2,···,N}. Given a score function, if a data index set A is A⊂{1,2,···,N} and |A|=K, then Σ i∈A It is chosen so that s(i) is maximized. Two important score functions for constructing PAC codes are the Hamming score function and the reliability score function.
[0028] The Hamming score function for index i∈{1,2,···,N} is s H(i)=Σ j=0 n-1 b j where n=log2N and b0, b1, , b n-1 ∈F2 is the coefficient of the binary representation of (i-1), that is, Σ j=0 n-1 b j 2 j = i-1. For example, 14-1 = 13 = 1 + 2 2 +2 3 Therefore, s H (14)=3.
[0029] The reliability score function for index i∈{1,2,···,N} is s R (i)=1-P e,i where P e,i is defined as the probability of the event that a successive cancellation decoder for a polar code makes an error at the ith stage of decoding. e,i The magnitude of} can be calculated using standard polar code construction methods such as density evolution.
[0030] A drawback of the reliability score function is that it generates channel-specific PAC code designs. Channel-specific code designs may not work well if the channel model used in the code design does not match the characteristics of the actual channel 104 used. On the other hand, the Hamming score function generates channel-independent designs. For polar coding (i.e., for g = 1), those skilled in the art will understand that the Hamming score function and the reliability score function generate Reed-Muller codes and polar codes, respectively. Based on this, it can be expected that the Hamming score function emphasizes code minimum distance in PAC code constructions, while the reliability score function emphasizes PAC code constructions that are more compatible with channel polarization effects.
[0031] Next, we will outline the conventional methods for encoding and decoding PAC codes. PAC Let be a PAC code with fixed but otherwise arbitrary parameters (N, K, A, f, g).
[0032] PAC code C PAC The encoding of input block d∈F2 K Receive v A = d and v Ac = f to extract the data container block v∈F2 from the input block by setting N Generate and convolve
number
number
number
number
number
[0033] PAC code C PAC To discuss the decoding of PAC code C PAC An output block x of P is transmitted through the channel and a channel output block y is received at the channel output. Y|X (y|x) represents the channel probability assignment, i.e., the conditional probability that y is received at the channel output given that x is transmitted at the channel input. (Here, X and Y represent random vectors at the channel input and channel output, respectively.) Also, the PAC encoder input block d is assigned by F2 K The uniform probability assignment of d and the channel probability assignment P Y|X (y|x) is the PAC code C PAC Determine joint probability assignments for variables that appear in the sequential decoding of
[0034] PAC code C PAC We discuss the decoder for C by viewing the decoder as a tree search algorithm. To do so, we define the code tree as the PAC code C PAC The code tree has an ith level for each integer i in the range 0≦i≦N. There are multiple nodes at the ith level, and each node at the ith level of the code tree represents a data container block v = (v1, v2, , v N ) the i-th initial segment v i ≡(v1,v2, ,v i ), where v i = 0 is interpreted as a null vector, and the (i=0)th level of the code tree forms a single node called the root node, which is the null vector v 0 The data index set A determines the structure of the code tree. For each choice of data index set A, the rate profile {R1, R2, . . . , R N} corresponds to R i is defined as the part of elements {1, 2, , i} that belong to A, i.e., R i≡|A∩{1,2,···,i}| / i. iR i is the i-th initial segment v i =(v1,v2, ,v i ) is interpreted as the number of "free coordinates" of (v i The other coordinates of are encoded as v Ac = 0.) Therefore, with the understanding that there are only root nodes at level i = 0, the number of nodes at the i-th level of the code tree is 2 iRi is given by
[0035] Convolution map
number
[0036] PAC code C PAC The encoding operation for v is equivalent to choosing the correct path through the code tree for the PAC code, where the correct path is the sequence v of nodes corresponding to the initial segment of the data container block v. 0 ,v 1 ,v 2 ,…,v N Similarly, a correct path is a sequence of nodes u corresponding to the initial segment of the convolution output block u. 0 ,u1 ,u 2 ,…,u N Pass through.
[0037] Decoding a PAC code CPAC can be seen as searching for the correct path in the code tree for CPAC. Given a channel output block y, the decoder searches the code tree to find the actual data container block v=v at the encoder. N A path v along 0 ,v 1 ,v 2 ,…,v N The estimated value of v^ 0 ,v^ 1 ,v^ 2 ,…,v^ N Generate the estimated value v^≡v^ of the data container block v. N Given, d=v^ A By setting, the estimated value d̂ of the encoder input block d is extracted.
[0038] Apparently, PAC code C PAC Any tree search method can be used as a decoder for PAC codes. U.S. Patent Application No. 16 / 453,887 discusses sequential decoding (depth-first heuristic) and mentions some alternatives to sequential decoding, such as Viterbi decoding (a breadth-first search algorithm) and beam search (a less complex version of breadth-first search). This disclosure is primarily based on sequential decoding of PAC codes.
[0039] Iterative decoding of PAC codes PAC code C PAC The sequential decoding of PAC code C PAC This consists of a depth-first search for the correct path in the code tree of
number
number
number
number
[0040] The sequential decoding algorithm is PAC code C PAC Node u in the code tree of i The value Γ(u i,y) is given priority. There are various versions of the sequential decoding algorithm, such as the "Fano" algorithm and the "stack" algorithm, which differ in implementation details. The stack algorithm is easier to explain, but the Fano algorithm is more practical for implementation purposes. For details on both algorithms, see the prior art on sequential decoding. For details on sequential decoding of PAC codes, see U.S. patent application Ser. No. 16 / 453,887. Here, we will only outline the operation of the stack algorithm.
[0041] Stack Algorithm A stack is a data structure that consists of a variable number of records, each consisting of a node ID and a metric value. The records in the stack are maintained in sorted order with respect to metric value, with the "top" node having the largest metric value. The stack is initially empty. The stack algorithm begins with a root node u^ 0 =u 0 The metric value Γ(u^ 0 Start the tree traversal by inserting u(y)=0 into the stack (as the top node). 0 Initial hypothesis u^ regarding 0 is obviously correct, since there is only one node at level 0. Then, the root node u^ 0 is removed from the top of the stack, and u^ 0 Each hypothesis of continuation u^ 1 The general steps of the stack algorithm are: insert a new node u^ at some level i of the code tree into the stack, and re-sort the stack to preserve the order of the metric values. i Contains the node u^ i is removed from the top of the stack and the metric value is u^ i All possible continuations of u^ i+1 is calculated for each new node u^ i+1 is inserted into the stack and the stack is re-sorted with respect to the metric value of the current node. PACNode u^ at the final level N of the code tree for N appears on the top of the stack, the sequential decoding is completed. At this point, the estimated value u^≡u^ of the convolution output block u is N Convolution
number
number
[0042] As noted in the technical background, a major drawback of iterative decoding is computational variability. Computational variability is due to infrequent noise bursts, leading to exponentially large search volumes in the code tree, resulting in a heavy-tailed Pareto distribution of search complexity. This problem becomes more pronounced when the channel is not bounded by polar transform operations and the metric is Γ(u i ,y i ) is particularly challenging in sequential decoding of conventional convolutional codes of the form Γ(u i ,y i This partially alleviates the computational problem by using a metric of the form y i Replacing with y gives the metric some "look-ahead" capability. However, the computational variability in sequential decoding of PAC codes remains a major obstacle to their practical application. To address this, we introduce a concatenated coding scheme along with layered PAC (LPAC) codes.
[0043] LPAC code The LPAC code in F2 is a set of parameters (N, K, A, L1, L2, L L , f, g), where N is the block length and N=2 for some integer n≧1. nwhere K is a dimension, and the dimension K is an integer in the range 0≦K≦N. A is a data index set, and the data index set A is a subset of {1, 2, , N} with dimension |A|=K. L i is the index set of the ith layer, where 1≦i≦L, and (L1, L2 , L L ) is a set of layer indexes, and the set of layer indexes (L1, L2, L L ) is a data index set A, where 1≦i <j≦Lにおいて、A=∪ i=1 L L i KatsuL i ∩L j =Φ, where f is a frozen block, and frozen block f is F2 N-K is a fixed vector belonging to , and g is the impulse response of the convolution operation of , and the impulse response g is g=(g0,g1, ,g M )∈F2 M+1 (g0≠0,g M ≠0, and M≧1).
[0044] As is clear from the definition, the parameters (N, K, A, L1, L2, L L , f, g) is obtained by dividing A into (L1, L2, L L ) can be obtained by selecting the appropriate PAC code. Conversely, PAC codes can also be considered as LPAC codes with only one layer (L=1). The coding differences between PAC and LPAC codes are minor. The layer structure of LPAC codes is important only during decoding. The layer structure is designed for layer-by-layer decoding, and external assistance (from an external decoder) is possible during the decoding of successive layers. For completeness, we will describe the details of the encoding and decoding of LPAC codes, although they are similar to those of PAC codes.
[0045] C LPAC In F2, the parameters (N, K, A, L1, L2, L L, f, g), and d = (d1, d2 , d L )∈F2 K is the input block and d i For each 1≦i≦L, the length |L i Let d be a vector on F2 of |L1| element of d, d2 the next |L2| element of d, etc. Let d be the output block x∈F2 N Encoding it into v Li =d i (where 1≦i≦L) and v Ac = f, and then data container block x∈F2 N Generate and convolve
number
number
number
number
number
[0046] LPAC code C LPAC To explain the layer decoding of d = (d1,d2 ,d L ) is the encoder input (not visible to the decoder), and y∈F2 N Let be the channel output. Layer decoding is performed by decoding the first layer PAC code, obtained from the first layer of the LPAC code and characterized by parameters (N, K1≡K, A1≡A, f1≡f, g), using any PAC decoder to convert the channel output block y into a data container block v=(v1, v2, , v N ) initial estimate v ~ =(v ~ 1,v ~ 2,···,v ~ N ) and then d ~ 1=v L1 By setting ~ Extract 1. (LPAC code C LPAC The decoder for ~ To obtain 1, we use all the initial guesses v ~ =(v ~ 1,v ~ 2,···,v ~ N ) and the partial initial guess v Li (Note that it is sufficient to generate , which can be useful for reducing the complexity of layer decoding.)
[0047] The main advantage of layered decoding is that it allows an external agent (such as the outer code of a concatenated code system) to decode the initial estimate d ~The goal of layer decoding is to provide a final estimate d^1 of d^1, using some n extrinsic information, giving an opportunity to correct one error. The next stage of layer decoding is performed under the assumption that d^1 = d^1. If d^1 ≠ d^1, the layer decoder cannot recover from this error. On the other hand, if d^1 is correct, the decoding problem reduces to a smaller (and easier) instance of the PAC decoding problem. Some layer decoders may receive an indication that d^1 is in error, for example, due to an error in a particular parity-check bit or the outer decoder's failure to produce a valid decoded output. In such cases, the decoding of the LPAC code is aborted. If there is no such indication that d^1 is in error, the decoder continues decoding the second layer.
[0048] The second layer decoding is performed based on the second layer PAC code C2, which is obtained from the second layer of LPAC codes and characterized by parameters (N, K2≡K-|L1|, A2≡A\L1, f2, g), where f2∈F2 N-K2 sets the coordinates f1 and d1 to the index set A1 C and in a particular order determined by L1. More precisely, f2 contains α Ac1 = f1 and α L1 = d^1 vector α∈F2 N Considering (the remaining coordinates of α are not important), f2 = α Ac2 , and it can be obtained by (A2 C =A1 C Note that ∪L1.)
[0049] Layer decoding then decodes the second layer PAC code C2 using a decoding procedure similar to that used to decode the first layer PAC code C1. The decoding of the second layer PAC code C2 begins with the output block y as the decoder input and an initial estimate d of the second layer data block d2. ~ 2. As with the first layer decoding, if an external agent ~ 2 and uses some external information to provide a final estimate of d^2.
[0050] In general, in the ith round of decoding, the layered decoder is derived from the ith layer of the LPAC code and has the parameters (N,K i ≡K-Σ (k=1) (i-1) |L k |,A i ≡A\∪ k=1 i-1 L k ,f i , g) is the i-th PAC code C i Decrypt f i ∈F2 N-Ki is the coordinate f (i-1) and d^ (i-1) index set A i-1 C and L i-1 More precisely, f i is α Aciー1 =f i-1 and α Liー1 =d^ i-1 vector α∈F2 N Considering f i =α Aci (A i C =A i-1 C (Note that ∪L1.) In the last round of decoding, d=d1,d2,···,d L ) final estimate d^=(d^1,d^2,···,d^ L ) is obtained and the decoding is complete.
[0051] The key points in constructing an LPAC code are the selection of the data index set A and the layer index set (L1, L2, L L ) The selection of the data index set A can be performed using the score function technique described above in connection with the construction of PAC codes. The division of the data index set A into layer index sets can also be performed using the same type of score function technique. Given a data index set A, let A be a set of layers L with a given number of layers, L, and each i-th layer index set L, where 1≦i≦L. i is the given dimension |Li |=k i A set of layer indices (L1, L2, L L ) into the following layers: The score function s:{1, 2, , N} → R is used to divide the layer index set into the following layers in reverse order L L ,L L-1 ,···,Select with L1, and |L i |=k i , all sets L such that 1≦i≦L i ⊂A\(∪ k=i+1 L L k ) across L i Σ i∈Li Try to maximize s(i). (For i=L, ∪ k=i+1 L L k is interpreted as an empty set.) The data index set A is divided into multiple layer index sets (L1, L2, L L ), two preferred score functions are the Hamming score function and the reliability score function mentioned above. The data index set A is divided into multiple layer index sets (L1, L2, L L ), the third score function is the decoding order score function sD, where s D (i)=Ni.
[0052] The data index set A is selected by one type of score function and the layer index set (L1, L2, L L ) can also be chosen with a different type of score function.
[0053] The layer index set (L1, L2, L L ) is constructed by the number of layers L and the layer dimensions {k i :1≦i≦L} is given. i :1≦i≦L} depends on the type of outer code used in the system.
[0054] Next, a specific embodiment of the present principle will be described with reference to FIGS. 1 to 5B.
[0055] 1 is a block diagram of a communication system 100 in accordance with an embodiment of the present principles. As used herein, the term "communication system" is intended to encompass any type of system for transmitting or storing data. The specific embodiment of the present principles described below is for illustrative purposes. It will be apparent to those skilled in the art that alternative embodiments of the present principles may be configured for reliable transmission or storage in a wide variety of communication systems.
[0056] The primary function of a communication system is to convey data from a source to a destination using concatenated codes. Communication system 100 includes a concatenated encoder 102, a channel 104, and a concatenated decoder 106. Concatenated encoder 102 receives a concatenated encoder input block d from a source via concatenated encoder input port 130, encodes concatenated encoder input block d (as described below) to generate a concatenated encoder output array x, and transmits x onto channel 104 via channel input port 134. In response to transmitting x, channel 104 generates a concatenated decoder input array y at channel output port 136. Concatenated decoder 106 receives and decodes y to generate a concatenated decoder output block d̂, which is then sent to the destination via concatenated decoder output port 144.
[0057] Ideally, communication system 100 would ensure that the concatenated decoder output block d̂ is an exact replica of the concatenated encoder input block d. However, due to system imperfections and noise in the channel 104, d̂ does not necessarily equal d. A frame error is said to have occurred when d̂ ≠ d, i.e., when d̂ differs from d in at least one coordinate. The primary performance criterion for communication system 100 is the frame error rate (FER), defined as the frequency with which the event {d̂ ≠ d} occurs. Communication system 100 aims to reduce the FER by implementing an FEC (Forward Error Correction Coding) scheme consisting of concatenated encoder 102 and concatenated decoder 106.
[0058] Before going into the details of the encoding and decoding operations of communication system 100, it should be noted that channel 104 typically includes a transmission medium and other modules, such as modulators, amplifiers, antennas, digital-to-analog and analog-to-digital converters, signal acquisition and synchronization circuits, equalizers, etc., which are necessary for transmitting and receiving signals over the transmission medium but are not directly related to the principles of the present invention. It should also be noted that the transmission medium may be copper wire, optical cable, airwaves, or other types of physical media capable of carrying information by modulation of the transmission signal, which may be, for example, electrical, optical, or electromagnetic in nature. In some cases, channel 104 may also include a data storage device to which information can be written at one time and read at a later time.
[0059] Turning now to the details of communication system 100, an embodiment of the present principles will be described, where concatenated code C is a code over F2 = {0,1} with dimension K (bits), block length N (bits), and rate R = K / N. Restricting concatenated code C to codes over the binary alphabet F2 simplifies the presentation of the present principles, although it will be clear to those skilled in the art that the present principles can be extended to concatenated codes over non-binary alphabets.
[0060] Returning to Figure 1, it can be seen that concatenated encoder 102 consists of outer encoder 110 and inner encoder 112. Concatenated encoder 102 further includes concatenated encoder control logic, a concatenated encoder input module, and a concatenated encoder output module, which are not shown in Figure 1 to avoid cluttering the figure with routine detail.
[0061] The outer encoder 110 generates a plurality of outer codes C out =(C out,1 ,C out,2 ,···,C out,m ), where m ≥ 2 is the number of outer codes, and C out,iis the i-th outer code, and the i-th outer code C out,i is a code F over a finite field qi ={0,1,···,q i-1} and the dimension Kout,i(F qi symbols from), block length N out (F qi symbols from ), and rate R out,i =K out,i / N out and qi is the ith outer code C out,i Symbol for alphabet F qi is the dimension, and q i is a power of 2 and q i =2 pi and p i is the i-th external code C out,i is the symbol length (in bits) for p i is an integer equal to or greater than 1, and the i-th outer code dimension K out is an integer equal to or greater than 1. The length of the i-th outer code block, N out is K out An integer greater than or equal to .
[0062] The i-th outer code C out,i Dimension K out,i may depend on i, but the block length N out is common to all outer codes. Measured in bits, the ith outer code C out,i Dimension K out,i p i and the code block length is N out p i The total number of bits that go into the outer codes (per coding cycle) is Σ i=1 m K out,i p i , which is the length of the concatenated encoder input block d∈F2 K , therefore, K=Σ i=1 m K out,i p i The total number of bits in the output of the multiple outer codes is N out Σ i=1 m pi Therefore, multiple outer codes C out is the effective rate R out ≡(Σ i=1 m K out,i p i ) / (N out Σ i=1 m p i )
[0063] The inner encoder 112 generates the inner code C in N out identical copies {C in,j :1≦j≦N out}, where the inner code C in is the parameter (N in ,K in ,A,L1,L2,···,L L=m , f, g), and the block length is some integer n in ≧1 for N in =2 nin where the number of layers is L=m (the same as the number of outer codes), and the i-th layer index set L i is the dimension |L i |=p i +r i (1≦i≦m), and p i is the i-th external code C out,i is the symbol length of r i is the length of the i-th layer precoding block (1≦i≦m), and the impulse response g is the vector g=(g0,g1, ,g M )∈F2 M+1 And g0≠0,g M ≠0 and M≧1. Thus, the code C in,j is LPAC code C in is a copy of C in,j is called the jth inner code.
[0064] To describe the concatenated encoder 102 in more detail, reference is made to Figure 2, which illustrates a flowchart 200 illustrating the operation of the concatenated encoder 102. Steps 204, 206, and 208 are performed by the outer encoder 110, steps 210, 212, 214, 216, and 218 are performed by the inner encoder 112, and steps 202 and 220, along with the transitions between steps in the flowchart, are performed by the concatenated encoder control logic.
[0065] The concatenated encoder 102 begins operation at step 202, where the concatenated encoder control logic waits for a concatenated encoder input block d to become available at the concatenated encoder input port 130. Once the concatenated encoder input block d is available, the concatenated encoder control logic moves to step 204.
[0066] In step 204 , the outer encoder 110 receives the concatenated encoder input block d at the concatenated encoder input port 130 .
[0067] In step 206, the outer encoder 110 generates a concatenated encoder input block d=( d1, d2, . . . , d K )∈F2 K Divide the external code input array a≡(a i,j : 1≦i≦m; 1≦j≦K out,i ), where a i,j =(a i,j,1 , a i,j,2 ,···,a i,j,pi )∈F qi =F2 pi and a i,j,k ∈F2. The outer encoder 110 follows the natural order partitioning rule, which copies the bits of d to the bits of a in their natural order from left to right. 1,1,1 =d1,a 1,1,2 =d2,...,a 1,1,p1 =d p1 ,a 1,2,1 =d p1+1 ,a 1,2,2 =d p1+2 ,···,a1,2,p1 =d 2p1, ,···,a m,K out,m,pm =d K According to the natural order partitioning rules, the expression a i,j,k =d h , where h= k+(j-1)p i +Σ s=1 i-1 K out,s p s This allows for a concise expression.
[0068] The natural order partitioning rule has the advantage of being simple and easy to implement, but the principle is compatible with any other partitioning rule that assigns elements of d to elements of a in any order.
[0069] In step 208, the outer encoder 110 performs an outer code encoding operation on the outer input array a to obtain an outer code output array b≡(b i,j :1≦i≦m;1≦j≦N out ), where b i,j =(b i,j,1 ,b i,j,2 ,···,b i,j,pi )∈F qi =F2 pi , and b i,j,k ∈F2.
[0070] The outer code encoding operation includes, for each integer i in the range 1≦i≦m, an ith outer code encoding operation, where the ith outer code encoding operation is the ith outer code input block a i is the i-th external code output block b i and encoding the i-th outer code input block a i is defined as the i-th row of the external code input array a and the i-th external code output block b i is defined as the ith row of the outer code output array b. More specifically, a i ≡(a i,1 ,a i,2 ,···,a i,Kout, i ) and b i ≡(b i,1 ,b i,2,···,b i,Nout ) In this way, b i is C out,i :b i =C out,i (a i ) a i The outer encoder 110 completes step 208 by sending b to the inner encoder 112 via the inner encoder input port 132.
[0071] Step 210 is an optional precoding step that is skipped if precoding is not used. In step 210, the inner encoder 112 derives a precoding sequence c≡(c j,i :1≦j≦N out ;1≦i≦m) where c j,i ∈F2 ri As we will see later, c j,i is the jth inner code C in,j As will be explained later, there are many options for implementing step 210 within the framework of the present principles. j,i =h j,i (b) is the most common precoding format, where h j,i is b≡F2 m×Nout from cj,i∈F2 ri For each 1≦i≦m, r i In the particular case where =0, there is effectively no precoding.
[0072] In step 212, the inner encoder 112 generates the outer code output sequence b and the precoding sequences c to v j,L1 =(b 1,j ,c j、1 ),v j,L2 =(b 2,j ,c j,2 ),···,v j,Lm =(b m,j ,c j,m ) and v j,Ac By setting =f, the data container array v≡(v j,k:1≦j≦N out ;1≦k≦N in ), where v j,k ∈F2, v j , Li ≡(v j ,k:k∈Li), and v j,Ac ≡(v j,k :k∈A c ) In terms of construction, |L i |=p i +r i Therefore, v j,Li and (b i,j ,c j,i ) are of the same size (in terms of the number of bits they contain) and the allocation v j,Li and (b i,j ,c j,i ) is feasible. In this principle, a sequence of bits b i,j =(b i,j,1 ,b i,j,2 ,···,b i,j,pi )∈F2 pi Any particular symbol denoted as b i,j ∈F qi , assign v j , Li =(b i,j ,c j,i ) can be used as part of
[0073] In step 214, the inner encoder 112 applies a convolution operation to the data container array v to generate a convolution output array u≡(u j,k :1≦j≦Nout;1≦k≦N in ), where u j,k ∈F2, and the convolution operation is in The impulse response of g=(g0,g1,...,g M )∈F2 M+1 By the formula u j,i =Σ k=0 M g k v j,i-k is defined as, the sum is over F2, and v j,i-k is interpreted as 0 if ik≦0.
[0074] In step 216, the inner encoder 112 performs a polar transform operation on the convolution output array u to generate a concatenated encoder output array x, where x≡(x j,k :1≦j≦N out ;1≦k≦N in ) and x j,k In a preferred embodiment of the present principles, the concatenated encoder output array undergoes a polar transform operation row by row.
number
number
number
[0075] In step 218, the inner encoder 112 transmits the concatenated encoder output array x to the channel 104 via the channel input port 134. (The modulation and demodulation operations are considered part of the channel 104.)
[0076] In step 220, the concatenated encoder 102 enters a stopped state. If there is data to continue encoding, step 220 is omitted and step 202 follows step 218 directly.
[0077] This concludes the description of the concatenated encoder 102. Before describing the concatenated decoder 106, a few comments are made.
[0078] In the embodiment of the inner encoder 112 described above, the inner coding mapping b→x is out independent mappings b j →x j (j=1,,...,N out ), where b j ≡(b i,j : 1≦i≦m) is the jth column of the outer encoder output array b. Thus, the inner encoding steps 210 to 216 are performed independently. If speed is important, one option is to use dedicated hardware or software to encode each mapping b j →x j Alternatively, if execution cost is important, multiple mappings b j →x j Alternatively, the principle provides a wide range of implementation options, from fully parallel to semi-parallel to fully serial, allowing for a trade-off between hardware cost and throughput. On the other hand, the scope of the principle is limited to Nout independent mappings b j →x j The present invention is not limited to the inner encoder mapping b→x, which separates x into x and x. The particular mapping given in connection with Figure 2 is for illustrative purposes only. Those skilled in the art will be able to devise many other inner coding mappings that can be used without departing from the essential features of the present principles.
[0079] Step 210 is j,i =h j,i (b) allows any precoding rule of the form: Alternatively, a "local" precoding function c j,i =h i (b j ) to c j Ga b j A second alternative is to use a "locally causal" precoding function c j,i =h i (b 1,j ,b 2,j ,···,b i,j) for i=1,2,...,m-1. i = 0, and r m It is also possible to set only .times. ...
[0080] The local and causal precoding function has the advantage that it allows the inner decoder to prune the search tree by detecting precoding violations as it performs decoding. On the other hand, the general precoding rule c j,i =h j,i (b) allows for precoding the entire inner code input sequence, potentially detecting errors more efficiently (and thus improving the overall coding gain of the concatenated code). The remainder of this description assumes the use of a local and causal precoding function.
[0081] In general, it is advantageous to detect errors and mark them as erasures as part of the inner decoding, since erasures present less of a challenge to the outer decoder 116 than undetected errors. On the other hand, error detection with precoding is particularly important when the number of bits in the precoding block is greater than the inner code block length N in If the overhead is significant compared to , the coding overhead is increased. The overhead of precoding is the ratio of the number of bits before and after precoding, pre =(Σ i=1 m pi) / (Σ i=1 m (p i +r i )) Optimizing the precoding rate is a key aspect for successful application of this principle.
[0082] From the description of the inner encoder 112, the concatenated encoder 102 is i=1 m K out,i p i Receive bits and N=N out N inTherefore, a concatenated code C has rate R=(Σ i=1 m K out,i p i / N out N in This rate has the product R=R out R in where R out =(Σ i=1 m K out,i p i ) / (N out Σ i=1 m p i ) is the rate of the outer encoder 110 (the code generated by it), and R in =(Σ i=1 m p i ) / N in is the rate of the inner encoder 112 (the code generated by it), where R in is the precoding rate R pre =(Σ i=1 m p i ) / ((Σ i=1 m (p i +r i ) and LPAC code rate R lpac =(Σ i=1 m (p i +r i ) / N in Note that the rate of a concatenated code C is equal to the product of the three rates R=R out R pre R lpac is factored into
[0083] 1, channel 104 will now be described in a little more detail. In response to transmitting a concatenated encoder output array x, channel 104 transmits a concatenated decoder input array y(y j,k :1≦j≦N out ;1≦k≦N in ), where y j,k ∈F2. According to the model here, the channel 104 is xj,k In response to the transmission of j,k and ideally y j,k =x j,k However, due to noise and other imperfections in the channel 104, y j,k x j,k is a corrupted version of y j,k and x j,k The relationship between is described by a probabilistic model.
[0084] The present principles use a stochastic model of the communication channel 104, where the stochastic model is characterized by a channel transmission probability assignment W(y|x), where W(y|x) is the conditional probability (or probability density) that the channel will produce a concatenated decoder input sequence y at the channel output port 136, given that a concatenated encoder output sequence x is sent to the channel input port 134. The channel 104 conforms to a memoryless stochastic model such that the channel transition probability assignment is the product W(y|x)=Π j=1 Nout Pi k=1 Nin W(y j,k │x j,k This principle is most effectively applied if the
[0085] 1 further shows that concatenated decoder 106 comprises an inner decoder 114, an outer decoder 116, and a re-encoder 118. Concatenated decoder 106 further includes concatenated decoder control logic, which is not shown in FIG. 1 to avoid cluttering the figure with routine detail.
[0086] The concatenated decoder 106 performs layer decoding operations on the concatenated code C, where the layer decoding operations include a decoding operation of the i-th layer, where i is an integer in the range of 1≦i≦m and m is the number of layers, and the decoding operation of the i-th layer includes an inner decoding operation of the i-th layer, an outer decoding operation of the i-th layer, and a re-encoding operation of the i-th layer, where the decoding operation of the i-th layer is performed by the inner decoder 114 and the outer decoding operation of the i-th layer is performed by the outer decoder 116.
[0087] For details of the layered decoding operation, see Figure 3, which is a flow chart 300 illustrating an embodiment of the concatenated decoder 106, where c j,i =h i (b 1,j ,b 2,j ,···,b i,j ) is assumed to be a locally causal precoding function of the form
[0088] The concatenated decoder 106 begins operation at step 302. In the start state, the concatenated decoder 106 waits for a concatenated decoder input array y to become available at the channel output port 136. Once y is available, the concatenated decoder 106 proceeds to step 304 to receive y from the channel output port 136.
[0089] In step 306, the concatenated decoder 106 initializes a layer counter to i = 1. The role of the layer counter is to keep track of the layer of the concatenated code currently being decoded.
[0090] In step 308, the layer counter value is set to i, the inner decoder 114 receives y from the channel, and the (i-1)th decision feedback b̂ from the re-encoder 118. i-1 Receive the (i-1)th cumulative decision feedback (b^1, b^2, , b^ i-1 ) to decode y and make the jth inner decoder decision b ~ i ≡(b ~ i,1 ,b ~ i,2 ,···,b ~ i,Nout ) where b^ for k=1, ,i-2 k is the k-th decision feedback generated by the re-encoder 118 in the k-th layer re-decoding operation, and b ~ i is the jth outer code output block b iIn the first layer of joint decoding, if i=1, the (i-1)th accumulated decision feedback (b^1, b^2, , b^ i-1 Note that y is null. Therefore, the inner decoder 114 can perform the first layer decoding using only y. Also, ideally, the j-th inner decoder decision b ~ i is the jth outer code output block b i However, due to noise and other imperfections in the channel 104, it may sometimes be equal to b ~ i and b i Note also that the are different. ~ i Ga b i If it does not match, this principle out,i Relying on b ~ i Correct the error in b i The i-th decision feedback b^ that matches i Therefore, the i-th decision feedback b^ i is b i The form that matches b^ i =(b^ i,1 ,b^ i,1 ,···,b^ i,Nout ) where b^ i,j =(b^ i,j,1 ,b^ i,j,2 ,···,b^ i,j, pi )∈F qi =F2 pi and b^ i,j,k ∈F2.
[0091] Further details of the inner decoder 114 are as follows: In step 308, once the layer counter value is set to i, the inner decoder 114 performs the layer counter for each j=1, 2,...,N out In this case, symbol C in,j,i where C in,j,i is the parameter (N in ,K in,j,i ≡K in -Σ k=1i-1 )|L k |,A i ≡A\∪ k=1 i-1 )L k ,f j,i , g) and the frozen block f j,i is f j,i =α Aic and α∈F2 Nin is α for 1≦k≦i-1 Ac = f and α Lk =(b^ k,j ,c^ j,k ) and c^ j,k =h k (b^ 1,j ,b^ 2,j ,···,b^ k,j ) Note that the causal nature of the precoding function is essential for the performance of the inner decoding operation of this step.
[0092] Each 1≦j≦N out Regarding the internal code C in,j,i The inner decoding operation of the ith layer in j ,(b^ 1,j ,b^ 2,j ,···,b^ i-1,j ) and (c^ j,1 ,c^ j,2 ,···,c^ j,i-1 ) using b ~ i,j This includes generating y j ≡(y j,k :1≦k≦N in ) is the jth row of y. In a preferred embodiment of the present principles, inner decoder 114 uses a tree search algorithm, such as a sequential decoder, to find b ~ i,j Generate each 1≦j≦N out For b ~ i,j is ready, the inner decoder 114 makes the i-th inner decoder decision b ~ i to the outer decoder 116 to complete step 308.
[0093] In general, decision b ~ i,j is b i,j However, in some embodiments of the present principles, the inner decoder 114 uses b ~ i,j For example, if the inner decoder 114 marks the precoding block ĉ as an erasure, j,k Matches b ~ i,j This may occur if the generation of the .DELTA. ...time fails, or if a calculation time limit is imposed on the internal decoder and decoding cannot be completed within the calculation time limit.
[0094] internal code C in,j,i In performing the inner decoding operation of the ith layer above, the inner decoder 114 decodes (b̂ 1,j ,b^ 2,j ,···,b^ i-1,j ) to the correct evaluation value (b 1,j ,b 2,j ,···,b i-1,j ) . If the decision feedback is incorrect, the concatenated decoder 106 cannot recover from such an error. That is, the inner decoder 114 cannot correct an error in the decision feedback. However, the outer decoder 116 generally treats the decision b ~ i,j Correct the errors in b. ~ i,j ≠b i,j If the number of indices j for which b̂ is small enough, the outer decoder 116 can correct the error, and i,j =b i,j The final decision b^ i,j Next, the outer decoder 116 will be described in detail.
[0095] In step 310, the layer counter value is set to i and the outer decoder 116 generates the ith outer code C out,iThe outer decoder 116 performs the outer decoding operation of the ith layer on the ith layer. The outer decoder 116 receives the ith inner decoder decision b from the inner decoder 114 at the inner decoder input port 138. ~ i , and the ith outer decoder decision a^ i Ideally, a^ i is the i-th row a of the external decoder input array a i is an exact copy of . In some cases, there may be a decoding failure in the outer decoding operation of the ith layer, for example if a boundary distance decoder is used and the number of errors and / or erasures exceeds a certain threshold. If the outer decoder 116 detects a decoding failure, it sets an abort flag. If there is no decoding failure, the ith outer decoder decision a i is a^ i ≡(a^ i,1 ,a^ i,2 ,···,a^ i,Kout,i ) where a^ i,j =(a^ i,j,1 ,a^ i,j,2 ,···,a^ i,i, pi )∈F qi =F2 pi and K out,i is the i-th external code C out,i is the dimension of p i is the i-th external code C out,i Ideally, for all i, j, k, a^ i,j,k =a i,j,k and a i,j,k is the external code input array a=(a i,j :1≦i≦m;1≦j≦K out,i ) element a i,j =(a i,j,1 ,a i,j,2 ,···,a i,i, pi ) is the kth bit of
[0096] In step 312, the concatenated decoder 106 checks whether the abort flag is set. If the abort flag is set, decoding is stopped by execution of step 314. Based on the abort operation, the concatenated decoder 106 may transition from step 314 to step 302 to begin a new decoding cycle.
[0097] In step 316, the concatenated decoder 106 checks whether the decoding of the mth (final) layer is complete. If the answer is yes, the process proceeds to step 322, where a termination procedure is performed (described below). If the answer is no, the decoding continues in step 318.
[0098] In step 318, the re-encoder 1118 sets the layer counter value to i and performs the re-encoding operation of the ith layer, where the re-encoding operation of the ith layer is performed based on the ith outer decoder decision â i is encoded as the i-th decision feedback b^ i Generate b^ i is sent to the inner decoder 114 via the inner decoder input port, where the i-th decision feedback b̂ i is the i-th outer decoder decision a^ i The i-th external code C corresponding to out,i The codeword b^ of i =C out,i (a^ i ) . Therefore, the re-encoding operation of the ith layer is the outer encoding operation b i =C out,i (a i ) is the same as
[0099] In step 320, the concatenated decoder 106 increments the layer counter i by 1 and proceeds to step 308 to begin decoding the next layer.
[0100] In step 322, the outer decoder 116 calculates d̂ h =a^ ijkBy setting (a^1,a^2,···,a^ m ) to the concatenated decoder output block d^=(d^1,d^2,···,d^ K )∈F2 K where i=1,···,m, j=1,···,K out,i , s=1,···,p i For h=k+(j-1)p i +Σ S=1 i-1 K out,s p s and a^ ijk is as defined above in connection with step 322. This operation of step 322 is the inverse of step 210 of FIG.
[0101] In step 324, the outer decoder 116 transmits the concatenated decoder output block through the concatenated decoder output port 144 to the destination.
[0102] The layered decoding operation is completed by the concatenated decoder 106 entering a stopped state in step 324. In some embodiments of the present principles where one layered decoding operation is followed by another, step 326 may be omitted and a new round of decoding may begin.
[0103] This completes the description of the concatenated decoder 106. This also completes the discussion of the basic form of the present principles. We now turn to the most preferred embodiment of the present principles.
[0104] Most Preferred Design Methodology Next, we present the most suitable method for designing a concatenated code C according to this principle. The primary design goal is to find a concatenated code C that satisfies a target rate R and a target FER P(d^≠d). Consider an initial design that satisfies the target rate. Below, we present a method for evaluating the FER P(d^≠d) for such a design.
[0105] The first task is to i,j ≡P(b ~ i,j ≠b i,j), δ i,j ≡P(b ~ i,j = e), and ν i,j ≡ε i,j -δ i,j The goal is to estimate ε i,j is the internal code C in,j,i is the symbol error rate of the i-th layer for i,j is the internal code C in,j,i is the symbol erasure rate of the i-th layer for i,j is the undetected symbol error rate of the ith layer for the ith inner code, e represents an erased symbol, which may be any symbol that is not a member of the ith outer code symbol alphabet, and the symbol error rate of the ith layer ε i,j and the symbol erasure rate ε of the i-th layer i,j is the symbol value that the decoder uses to find the correct symbol value b k,j : 1≦k≦i−1}. It is well known to those skilled in the art that such Genie-assisted analysis of error performance is common to the design of polar codes, and a similar type of design methodology is adopted herein.
[0106] For all i and j, probability ν i,j and δ i,j Once is estimated, the next step is to find, for each i, the i-th outer code C out,i P(a^ i ≠a i ) where the boundary condition P(a^ i ≠a i )≦φ i where φ i is {2t+s≧d out,i}, and d out,i is the i-th external code C out,i where t and s are the minimum distances between the inner codes of multiple ith layers, C in,j,i :1≦j≦N out φ is the number of undetected symbol errors and symbol erasures at the output of i The calculation of is performed using the parameter ε i,j ,δi,j , and ν i,j This is simple if does not depend on the inner code index j. Then, φ i teeth,
number
[0107] φ i If we calculate using the above formula or estimate using other methods, the coupling boundary P(d^≠d)≦Σ i=1 m φ i find an upper bound on the FERP (d^≠d) of the concatenated code C using . If the design goal for FERP (d^≠d) is not achieved, try a new parameter set. Finding and improving a feasible design involves a lot of exploration in the parameter space of the inner and outer codes.
[0108] Most Preferred Embodiment In the most preferred embodiment of the present principles, the i-th outer code C out,i , q i =2 pi ,1≦i≦m qi Here, the Reed-Solomon code is a block of length N. out,i =2 qi -1, or a regular Reed-Solomon code with block length N out,i <2 qi -1, or a shortened Reed-Solomon code with block length N out,i =2 qi is an extended Reed-Solomon code.
[0109] Since Reed-Solomon codes are separable at minimum distance, the i-th outer code in the most preferred embodiment has a minimum distance d out,i ≡N out,i -K out,i +1. The i-th outer code C out,iis decoded using a bounded distance decoder (such as the Berlekamp-Massey algorithm), which is 2t+s <d out,i If , then any combination of t errors and s erasures can be corrected.
[0110] In the most preferred embodiment of the present principles, the inner code is an LPAC code d with the same number of layers as the number of outer codes.The most preferred method for selecting the set of multiple data layer indices is the reliability score function method.
[0111] Optionally, the inner encoder 112 uses precoding for error detection at the decoder. If precoding is an option, the most preferred method of precoding is to use a cyclic redundancy check (CRC), which is a type of error detection method with low complexity coding and error detection circuitry.
[0112] In the most preferred embodiment, the inner decoder 114 uses a sequential decoding algorithm. If the inner encoder uses a precoding option, the inner decoder uses error detection to output erased symbols when an error is detected.
[0113] In the most preferred embodiment, the sequential decoder used in the inner decoder 114 is equipped with a timeout rule to prevent excessive computation. Here, the timeout rule counts the number of times the sequential decoder visits a particular subset of nodes δ of the code tree and stops (aborts) decoding if the count exceeds a predetermined limit Vmax. For example, δ can be the set of all nodes of the code tree or the set of all nodes at a particular level i in the code tree. It is also possible to apply several timeout rules simultaneously. When a stack algorithm is used as the sequential decoder, the number of visits to nodes in δ is well-defined, since the stack algorithm does not allow any node to be visited more than once. On the other hand, the Fano algorithm allows nodes to be visited multiple times (with different "threshold" values). For the Fano algorithm, an alternative way to implement the timeout rule is to count only the first visit to nodes in the set δ.
[0114] Example Four examples of the most preferred embodiments of the present principles are presented below. The purpose of providing these examples is to illustrate the practicality of the present principles, particularly the usefulness of LPAC codes as an effective inner coding method in GCC / MLC systems. The examples also aim to demonstrate that precoding and computation timeout methods are effective components of the present principles for improving performance and reducing decoder complexity. First, common features of the four examples are described.
[0115] All examples are based on a target data rate of R=0.75 and a target FER of 10. -15 All concatenated codes C in the examples have the same block length N out =256,N in =128 and N=N out N in = 32,768, which allows for a fair comparison between different designs.
[0116] The example channel is a binary-input additive Gaussian noise channel (BI-AWGN), with a product-form channel transition density function W(y|x)=Π j=1 Nout )Π k=1 Nin W(y j,k )│x j,k ), where:
number
[0117] In the embodiment, the outer code {C out,i : 1≦i≦m} is the block length N out =256, F q=256 The number of outer codes m is fixed, and the outer codes {C out,i} dimension {K out,i} remains a free design parameter. The i-th outer code C out,i is decoded using a boundary distance decoder, which means that d out,i ≡N out,i -K out,i In +1, 2t+s <d out,i If , then any combination of t errors and s erasures can be corrected.
[0118] Internal code C in the examples in is an LPAC code on F2 with block length N in =128,K in= 104, m = 13 layers, impulse response g = (1, 0, 1, 1, 0, 1, 1), frozen block f = 0. Inner code C in The data index set A and the layer index set L i} is selected using a reliability score function, where reliability is calculated by density evolution method in a BI-AWGN channel with an operating SNR of 5.5 dB. The layer index set in all four examples is as follows: L 1 ={14,15,20,41,49,67,69,73},L2={22,23,26,27,36,38,81,97},L3={29,39,4 2,43,45,50,68,70},L4={16,51,53,71,74,75,77,82},L5={24,28,57,83,85,89 ,98,99},L6={30,31,40,44,46,101,105,113},L7={47,52,54,55,58,72,76,78},L8={59,61,79,84,86,87,90,100},L9={91,93,102,103,106,107,109,114},L 10 ={32,48,56,60,80,115,117,121},L 11 ={62,63,88,92,94,95,104,108},L 12 =,{110,111,116,118,119,122,123,125},L 13 ={64,96,112,120,124,126,127,128}.
[0119] In the example, the inner decoder is a Fano sequential decoder. In all the examples below, there is a limit V max A timeout rule with is applied so that each visit to each node is counted (not just the first visit).
[0120] In the design method of the embodiment, the symbol error probability v i,j and symbol erasure probability δ i,j This involves simulations to estimate the parameter ν i,j and δ i,jis independent of the index j due to the symmetry between the BI-AWGN channel and BPSK modulation. Therefore, we can simplify the notation and write it as ν i,j and δ i,j Instead of ν i and δ i Let's say.
[0121] Undetected symbol error rate ν i and the estimated symbol erasure rate δ i To estimate ν, simulations were run until 200 undetected symbol errors or symbol erasures were observed, or until the number of trials reached 1 million. i and δ i is too small to be practically estimated by simulation. In such cases, a conservative upper bound based on density estimation can be used to estimate ν i and δ i For all i, we estimated the probability ν i and δ i Once is estimated, Σ i=1 m φ i is smaller than the target FER. out,i where φ i ≡P(a^ i ≠a i ) is the FER of the ith outer code. Thus, using the formula given above, φ i was calculated.
[0122] Example 1 In the first embodiment, the inner code has a block length of N in =128, dimension K in = 104, and the number of layers m = 13. out,i :1≦i≦m} is the block length N as listed in the second column of Table 1 out = 256, the dimension is {K out,i :1≦i≦m}, F q=256 (For i=12, 13, the i-th outer code C out,iis rate 1, meaning that layers 13 and 14 are not protected by an outer code. In practice, therefore, layers 12, 13, and 14 can be combined into one layer and viewed as a single layer with a symbol length of 8 + 8 = 16 bits.)
[0123] The symbol length of the outer code is p i = 8. In this embodiment, there is no precoding, so the precoding block length r i is also set to 0 as shown in the third column of Table 1.
[0124] The inner decoder visits all nodes in the code tree within a timeout limit V max =5,000, N in = 640,000. The fourth column of Table 1 shows V ave / N in where Vave is the average number of visited nodes in the code tree across all simulation runs. (Every visit to each node counts, not just the first visit.) The average calculation is V max / N in = 5000.
[0125] The fifth and sixth columns of Table 1 show the estimated undetected symbol error rate ν for each column of 1≦i≦13. i and the estimated symbol erasure rate δ i In this embodiment, there is no precoding, so error detection by averaging precoding is not possible. However, the timeout limit V max Losses can still occur because of δ i The fact that =0 means that V max = 640,000 is suggested as a loose bound on the amount of computation.
[0126] For layers 7–13, we used the conservative analytical upper bounds mentioned above, since no undetected errors or erasures occurred in 1 million simulation runs. These analytical estimates are marked with an “*” in column 6 of Table 1.
[0127] FER value φ in the seventh column of Table 1 i was obtained using the above formula. i=1 m=13 φ i is 1.32 10 -16 This means that the FER for the concatenated code in this embodiment is equal to the target FER of 10. -15 This shows that
[0128] Regarding the code rate, the final concatenated code has dimension K=Σ i=1 13 K out,i p i = 24,560, code block length N = N out N in = 32,768, and rate R = K / N = 0.750. The Shannon limit of the minimum required SNR to achieve a data rate R = 0.750 in a BI-AWGN channel (allowing arbitrarily large block lengths) is 3.381 dB. Thus, the distance to the Shannon limit for the concatenated code of this example is approximately 2.119 dB. [Table 1]
[0129] Example 2 The second embodiment uses the impulse response polynomial g(x)=1+x+x 4 This is the same as the first embodiment except that it uses precoding with a 4-bit CRC having the following structure: The CRC checks the entire data payload of the inner code, and the CRC bits are inserted into the last layer (layer 13) of the inner code as shown in the last column of the second column of Table 2. The CRC allows some errors to be marked as erasures at the inner decoder output, which improves the efficiency of the outer code.
[0130] The simulation results for the third embodiment are shown in Table 2. i=1 m=13 )φ i is 3.08·10 -16 , which means that the FER for the concatenated code in this example is 10 times the target FER. -15 It is shown that the concatenated code in this example satisfies the following equation: i=1 13 K out,i p i = 25,296, block length N = 32,768, and rate R = K / N = 0.772. The Shannon limit of the minimum required SNR to achieve a data rate R = 0.772 in a BI-AWGN channel is 3.686 dB. Therefore, the distance to the Shannon limit for the concatenated code of this example is estimated to be approximately 1.814 dB.
[0131] This second example shows that the CRC can narrow the gap to the Shannon limit by helping to mark some errors as erasures, allowing the outer decoder to recover from many errors left by the PAC code. In general, a b-bit CRC will reduce the number of symbol errors at the output of the inner code by 2. -b The CRC length b must be chosen carefully: a small b reduces the precoding overhead, but a large b is less effective at detecting errors. [Table 2]
[0132] Example 3 The third embodiment is V max =8, N in The simulation results for the third embodiment are shown in Table 3. i=1 m=13 φ i is 4.33 10 -16 This means that the FER for the concatenated code in this example is equal to the target FER of 10. -15 It is shown that
[0133] Concatenated codes are of dimension K=Σ i=1 13 K out,i p i = 24,536, block length N = 32,768, and rate R = K / N = 0.749. The Shannon limit of the minimum required SNR to achieve R = 0.749 in a BI-AWGN channel is 3.371 dB. Therefore, the distance to the Shannon limit for the concatenated code of this example is estimated to be approximately 2.219 dB.
[0134] The code rate, the difference in capacity, and the average calculation V ave / N in Here is a much stricter time limit: max It is noteworthy that the numerical bounds are all close to the corresponding quantities in the first embodiment, despite the fact that the latter have a higher error / erasure bound. Tight computation time limits manifest themselves as erasure generation as a result of decoder timeouts. Such timeouts become particularly important at higher layers, where they are the primary determinant of inner code performance. In this embodiment, errors / erasures were measured at all layers by simulation, so analytical bounds were not required. [Table 3]
[0135] Example 4 In the fourth embodiment, the same 4-bit CRC as in the second embodiment is used, and V max =8, N in = 1024. The rest is the same as in the first embodiment. The simulation results for the fourth embodiment are shown in Table 4. i=1 m=13 φ i is 2.91·10 -16 This means that the FER of the concatenated code in this embodiment is equal to the target FER of 10. -15 It is shown that the concatenated code in this example has dimension K=Σ i=1 13 K out,i p i= 25,056, block length N = 32,768, and rate R = K / N = 0.765. The Shannon limit of the minimum SNR required to achieve R = 0.765 in a BI-AWGN channel is 3.585 dB. Therefore, the distance to the Shannon limit for the concatenated code of this example is estimated to be approximately 1.915 dB.
[0136] Comparing the first and third embodiments, there is a significant improvement in the capacity gap, which is explained by the presence of precoding. Compared to the second embodiment, there is a slight degradation in the capacity gap, which indicates that the use of a strict time limit does not significantly degrade performance. It is also considered that the timeout mechanism is effective in decoding the early layers, while the CRC is effective in detecting errors in the final layers. Therefore, the two methods complement each other in erasure generation. [Table 4]
[0137] Additional implementation details
[0138] Four examples have been presented to illustrate the most preferred embodiments of the present principles. Below, some alternative embodiments not included in these examples are described.
[0139] The most preferred embodiment has been described in terms of a sequential decoder as the inner decoder for the PAC code. The sequential decoder is a depth-first search algorithm originally designed for decoding convolutional codes. Those skilled in the art will appreciate that various other decoding methods originally designed for convolutional coding can be adapted to decode the inner PAC code. These include breadth-first search algorithms, including Viterbi decoding, Viterbi decoding with a candidate path list per state, or beam search algorithms similar to the sequential cancellation list decoding of polar codes.
[0140] In the most preferred embodiment of the present principles, the timeout rule is a time limit V max An alternative to this is to switch from inner decoding of the ith layer to decoding of the ith outer code as soon as the number of inner decoders of the ith layer that have completed their decoding task exceeds a certain threshold.
[0141] In the second and fourth embodiments described above, one precoding block is placed in the last layer of the LPAC code. Such a precoding block provides a check for all layers. However, the sequential decoder for the inner code must complete its search before using the precoding block for error detection. An alternative approach is to use multiple precoding blocks distributed across multiple layers to speed up error detection.
[0142] The most preferred embodiment has been described in terms of a boundary distance decoder for the outer Reed-Solomon code. In an alternative implementation, it could be replaced by a more powerful decoder, such as a generalized minimum distance (GMD) decoder, which is a type of decoder that can utilize the soft information provided by the inner decoder.
[0143] The present principles have been presented for inner codes on a binary alphabet F2 = {0,1}. Those skilled in the art will have no difficulty generalizing the principles to the case of inner codes on non-binary alphabets.
[0144] Although the principles have been presented in the context of a non-systematic encoding of an internal LPAC code, they can also be implemented with a systematic encoding of an internal LPAC code.
[0145] The present principles have been presented for the case where the inner LPAC code has a block length that is a power of 2. Alternatively, the block length N may be increased using the method disclosed in E. Arikan, U.S. Patent Application No. 16700972, 2-Dec-2019, which is incorporated herein by reference. inThere are methods of shortening and puncturing the PAC code that adjust .gt; to any desired value.
[0146] This concludes the description of various embodiments of the present principles. We now describe some examples of communication systems in which the present principles can be used. The present principles can be used in any type of communication or storage system where reliable data protection is required. Examples of such systems include wireless and wired communication systems (including satellite or optical communications), as well as computer memory systems or cloud storage systems.
[0147] 4 illustrates an example wireless network in which encoding and decoding can be implemented using concatenated polarity-adjusted convolutional codes in accordance with the present disclosure. The embodiment of wireless network 400 illustrated in FIG. 4 is for illustrative purposes only. Other embodiments of wireless network 400 may be used without departing from the scope of the present disclosure. Wireless network 400 includes eNodeB (eNB) 401, eNB 402, and eNB 403. eNB 401 communicates with eNB 402 and eNB 403. eNB 401 also communicates with at least one Internet Protocol (IP) network 430, such as the Internet, a dedicated IP network, or other data network.
[0148] Depending on the type of network, other well-known terms such as "base station" or "access point" may be used instead of "eNodeB" or "eNB." For convenience, this patent document uses the terms "eNodeB" and "eNB" to refer to the infrastructure components of the network that provide wireless access to remote terminals. Also, depending on the type of network, other well-known terms such as "mobile station" (or "MS"), "subscriber station" (or "SS"), "remote terminal," "wireless terminal," or "user device" may be used instead of "user equipment" or "UE." For convenience, "user equipment" and "UE" refer to remote wireless equipment that wirelessly accesses an eNB, regardless of whether the UE is typically considered to be a mobile device (such as a mobile phone or smartphone) or a fixed device (such as a desktop computer or vending machine).
[0149] An eNB 802 provides wireless broadband access to a network 430 for a first plurality of user equipments (UEs) within a coverage area 420 of the eNB 802. The first plurality of user equipments (UEs) includes a UE 411 that may be located at a small business (SB), a UE 412 that may be located at an enterprise (E), a UE 413 that may be located at a WiFi hotspot (HS), a UE 414 that may be located at a first residence (R1), a UE 415 that may be located at a second residence (R2), and a UE 416 that may be a mobile device (M) such as a mobile phone, a wireless laptop, or a wireless personal digital assistant (PDA). An eNB 403 provides wireless broadband access to a network 430 for a second plurality of UEs within a coverage area 425 of the eNB 403. The second plurality of UEs includes the UE 415 and the UE 416. In some embodiments, one or more eNBs 401-403 may communicate with each other using 3G, 4G, or 5G, Long Term Evolution (LTE), LTE-A, WiMAX, or other advanced wireless communication technologies.
[0150] The dotted lines indicate the approximate extent of coverage areas 420, 425, which are shown as approximately circular for purposes of illustration and explanation. It will be clearly understood that coverage areas associated with eNBs, such as coverage areas 420, 425, may be other shapes, including irregular shapes, depending on the configuration of the eNB and variations in the radio environment with respect to natural and man-made obstructions.
[0151] As described in more detail below, one or more of eNB401, eNB402, and eNB403 include a 2D antenna array that can be used in conjunction with embodiments of the present disclosure. In some embodiments, one or more of eNB401, eNB402, and eNB403 support codebook design and construction for systems with 2D antenna arrays.
[0152] Although Figure 4 illustrates an example of wireless network 400, various modifications may be made to Figure 4. For example, wireless network 400 may include any number of eNBs and any number of UEs in any suitable configuration. Additionally, eNB 401 may be in direct communication with any number of UEs and provide those UEs with wireless broadband access to network 430. Similarly, each of eNBs 402-403 may be in direct communication with network 430 and provide those UEs with direct wireless broadband access to network 430. Furthermore, eNBs 401, 402, and / or 403 may provide access to other or additional external networks, such as an external telephone network or other type of data network.
[0153] The exemplary channel decoding system shown in the figures and described above may be implemented in an eNB (such as eNB 402) and / or a UE (such as UE 416), as described in further detail below.
[0154] 5A illustrates an example user equipment network capable of implementing data encoding and decoding using concatenated polarity-adjusted convolutional codes in accordance with the present disclosure. The embodiment of UE 416 illustrated in FIG. 5A is for illustrative purposes only; UEs 411-416 of FIG. 4 may have the same or similar configurations. However, UEs may have many different configurations, and FIG. 5A does not limit the scope of the present disclosure to any particular UE implementation.
[0155] The UE 416 includes an antenna 505, a radio frequency (RF) transceiver 510, a transmit (TX) processing circuit 515 (which may include the concatenated encoder 102 of FIG. 1), a microphone 520, and a receive (RX) processing circuit 525 (which may include the concatenated decoder 106 of FIG. 1). The UE 416 also includes a speaker 530, a main processor 540, an input / output (I / O) interface (IF) 545, a keypad 550, a display 555, and memory 560. The memory 560 includes a basic operating system (OS) program 561 and one or more applications 562. Either the OS program 561, one of the applications 562, or some combination thereof may implement programming for using the error correction coding described in the various embodiments of FIGS. 1-3.
[0156] The RF transceiver 510 receives an incoming RF signal transmitted by an eNB of the network 400 from an antenna 505. The RF transceiver 510 downconverts the incoming RF signal to generate an intermediate frequency (IF) or baseband signal that is transmitted to a receiver (RX) processing circuit 525. The RX processing circuit 525 transmits the processed signal to a speaker 530 (e.g., for voice data) or to a main processor 540 for further processing (e.g., for web browsing data).
[0157] The transmit (TX) processing circuitry 515 receives at least some input data for the source data blocks, such as analog or digital audio data from a microphone 520, or other output baseband data (such as web data, email, or interactive video game data) from the main processor 540. The TX processing circuitry 515 performs encoding. The RF transceiver 510 receives transmit-processed baseband or IF signals from the TX processing circuitry 515 and upconverts the baseband or IF signals to RF signals that are transmitted via the antenna 505.
[0158] The main processor 540 may include one or more processors or other processing devices and execute a basic OS program 561 stored in memory 560 to control the overall operation of the UE 416. For example, the main processor 540 may control the reception of forward channel signals and the transmission of reverse channel signals by the RF transceiver 510, the RX processing circuitry 525, and the TX processing circuitry 515, according to well-known principles. In some embodiments, the main processor 540 includes at least one programmable microprocessor or microcontroller. In still other embodiments, the main processor includes dedicated circuitry (e.g., for systematic and / or non-systematic encoding or decoding processes, shortening processes, data mapping, etc.) and (optionally) programmable logic or processing circuitry.
[0159] The main processor 540 may also execute other processes and programs resident in the memory 560, such as operations for channel quality measurement and reporting for systems with 2D antenna arrays. The main processor 540 may move data and / or instructions in and out of the memory 560 as required by the executing processes. In some embodiments, the main processor 540 is configured to execute applications 562 based on an OS program 561 or in response to signals received from an eNB or operator. The main processor 540 is also coupled to an I / O interface 545, which allows the UE 416 to connect to other devices, such as laptop computers and handheld computers. The I / O interface 545 is the communication path between these accessories and the main controller 540.
[0160] Main processor 540 is also coupled to a keypad 550 (which may be simply a button or an array or other set of buttons) and a display unit 555. An operator of UE 416 can use keypad 550 to input data into UE 416. Display 555 may be a touchscreen display or other display capable of rendering text and / or at least limited graphics, such as from a website, and receiving touch input from a user in accordance with known practices.
[0161] Memory 560 is coupled to main processor 540, at least a portion of memory 560 may include random access memory (RAM), and another portion of memory 560 may include flash memory or other read-only memory (ROM).
[0162] While FIG. 5A illustrates an example of a UE 416, various modifications to FIG. 5A may be made. For example, various components of FIG. 5A may be combined, further subdivided, or omitted, and additional components may be added according to particular needs. As a specific example, the main processor 540 may be divided into multiple processors, such as one or more central processing units (CPUs), one or more field programmable gate arrays (FPGAs), and one or more graphics processing units (GPUs). Also, while FIG. 5A illustrates the UE 416 as a mobile phone or smartphone, the UE may be configured to operate as another type of mobile or stationary device.
[0163] 5B illustrates an example of an enhanced NodeB (eNB) network capable of implementing data encoding and decoding using concatenated polarity-adjusted convolutional codes according to the present disclosure. The embodiment of eNB 402 shown in FIG. 5B is for illustrative purposes only, and other eNBs in FIG. 4 may have the same or similar configurations. However, eNBs may have many different configurations, and FIG. 5B does not limit the scope of the present disclosure to any particular eNB implementation. Note that eNB 401 and eNB 403 may include the same or similar structure as eNB 402.
[0164] 5B, the eNB 402 includes multiple antennas 570a-570n, multiple RF transceivers 572a-572n, transmit (TX) processing circuitry 574, and receive (Rx) processing circuitry 576. In a particular embodiment, one or more of the multiple antennas 570a-570n include a 2D antenna array. The eNB 402 also includes a controller / processor 578, a memory 580, and a backhaul or network interface 582.
[0165] RF transceivers 572a-572n receive input RF signals, such as signals transmitted from a UE or another eNB, from antennas 570a-570n. RF transceivers 572a-572n downconvert the input RF signals to generate IF or baseband signals. The IF or baseband signals are transmitted to Rx processing circuitry 576, which filters, decodes, and / or digitizes the baseband or IF signals to generate processed signals. Rx processing circuitry 576 transmits the processed signals to controller / processor 578 for further processing.
[0166] TX processing circuitry 574 receives at least some input data from concatenated encoder 102. Tx processing circuitry 574 implements circuitry to encode, multiplex, and / or digitize the output baseband data to generate processed signals. RF transceivers 572a-572n receive the output processed signals from Tx processing circuitry 574 and upconvert the baseband or IF signals to RF signals that are transmitted via antenna 905.
[0167] The controller / processor 578 may include one or more processors or other processing devices that control the overall operation of the eNB 402. For example, the controller / processor 578 may control the reception of forward channel signals and the transmission of reverse channel signals by the RF transceivers 572a-572n, the Rx processing circuitry 576, and the TX processing circuitry 574 in accordance with well-known principles. The controller / processor 578 may also support additional functionality, such as more advanced wireless communication features. Any of a variety of other functions of the eNB 402 may be supported by the controller / processor 578. In some embodiments, the controller / processor 578 includes at least one microprocessor or microcontroller, while in other embodiments, the main processor includes dedicated circuitry (e.g., for encoding and decoding processes, code puncturing and / or shortening processes, data mapping, etc.) and (optionally) programmable logic or processing circuitry.
[0168] The controller / processor 578 can also execute programs such as a basic operating system and other programs resident in the memory 580. The controller / processor 578 can also perform channel quality measurements and reporting for systems with 2D antenna arrays. In some embodiments, the controller / processor 578 supports communications between entities. The controller / processor 578 can move data and / or instructions in and out of the memory 580 as needed by the executing process.
[0169] The controller / processor 578 is also coupled to a backhaul or network interface 582. The backhaul or network interface 582 enables the eNB 402 to communicate with other devices or systems over a backhaul connection or network. The interface 582 may support communication over any suitable wired or wireless connection. For example, if the eNB 402 is implemented as part of a cellular communication system (such as one supporting 3G, 4G, 5G, LTE, or LTE-A), the interface 582 may enable the eNB 402 to communicate with other eNBs over a wired or wireless backhaul connection. If the eNB 402 is implemented as an access point, the interface 582 may enable the eNB 402 to communicate over a wired or wireless local area network or to a larger network (such as the Internet) by way of a wired or wireless connection. The interface 582 includes any suitable structure supporting communication over a wired or wireless connection, such as an Ethernet or RF transceiver.
[0170] Memory 580 is coupled to controller / processor 578. A portion of memory 580 may include RAM, and another portion of memory 580 may include flash memory or other ROM. In particular embodiments, instructions are stored in the memory. The instructions are configured to cause controller / processor 578 to perform tissue and / or non-tissue encoding or decoding processes, shortening processes, data mapping, etc.
[0171] While Figure 5B illustrates one example of an eNB 402, various modifications can be made to Figure 5B. For example, the eNB 402 can include any number of each of the illustrated components. As a particular example, an access point may include multiple interfaces 582, and the controller / processor 578 may support a routing function that routes data between different network addresses. As another particular example, the eNB 402 is shown as including a single instance of the TX processing circuit 574 and a single instance of the Rx processing circuit 576, but may include multiple instances of each (e.g., one per RF transceiver).
[0172] While certain embodiments have been described in detail and illustrated herein, it should be understood that the subject matter encompassed by this disclosure is limited only by the scope of the claims. While this disclosure has been described with illustrative embodiments, various changes and modifications will suggest themselves to those skilled in the art. The present disclosure is intended to encompass such changes and modifications as fall within the scope of the appended claims.
Claims
1. 1. An encoder method in a communication system, comprising: generating a first input array a based on an input block d; encoding the first input sequence a based on at least two outer codes to generate a first output sequence b; generating a second output array x from the first output array b based on a layered polarization adjusted convolutional (LPAC) code, the LPAC code including at least two layers, each layer corresponding to one layer index set, the layer index set being a division of a data index set of the polarization adjusted convolutional (PAC) code; transmitting the second output array x to a channel.
2. 2. The encoding method of claim 1, wherein the at least two outer codes correspond to Reed-Solomon codes.
3. The step of generating the second output array x comprises: generating a data array v from the first output array b; 2. The encoder method of claim 1, further comprising: encoding the data array v based on the LPAC code to generate the second output array x.
4. The encoder method of claim 3 , wherein a precoding sequence c is inserted into the data sequence v, and the precoding sequence c is generated from the first output sequence b.
5. The encoding method of claim 4 , wherein the pre-coding sequence c corresponds to a cyclic redundancy check (CRC) based on the first output sequence b.
6. 2. The encoder method of claim 1, wherein the LPAC code is obtained from a polarization adjusted convolutional (PAC) code by dividing the set of data indices of the PAC code into L sets of layer indices.
7. the L layer index sets are selected based on a score function; The encoder method of claim 6 , wherein the score function is one of a Hamming score function, a reliability score function, a decoding order score function, or a combination thereof.
8. The encoder method of claim 1 , wherein the number of outer codes is the same as the number of layers of the LPAC code.
9. 1. A decoder method in a communication system, comprising: receiving a decoder input array y; For a particular layer, a first decoder decision b of the particular layer is derived from the decoder input array y and the accumulated decision feedback of the previous layer based on a layered polarization adjusted convolutional (LPAC) code. ~ performing a first decoding operation to generate The first decoder decision b for the particular layer based on the outer code ~ performing a second decoding operation to generate a second decoder decision a for the particular layer from performing re-encoding based on the second decoder decision â of the particular layer to generate a decision feedback b̂ for the particular layer; generating a decoder output block d based on the second decoder decisions a of the at least two layers; The LPAC code includes the at least two layers, each layer corresponding to one layer index set, and the layer index set is a division of a data index set of a polarization adjusted convolutional (PAC) code.
10. 10. The decoding method of claim 9, wherein the outer code corresponds to a Reed-Solomon code.
11. 10. The decoder method of claim 9, wherein the first decoding operation includes a sequential decoder for decoding the LPAC code.
12. 12. The decoder method of claim 11, wherein the first decoding operation involving the sequential decoder is aborted by a timeout rule.
13. 12. The decoder method of claim 11, wherein the first decoding operation involving the sequential decoder is aborted when a count of the number of times the sequential decoder visits a subset of nodes in a code tree of the LPAC code exceeds a critical value.
14. The decision feedback b for the particular layer generated by the re-encoding is the first decoder decision b for the next layer. ~ 10. The decoder method of claim 9, used to generate
15. if a failure of the second decryption operation is detected, the second decryption operation is aborted; New first decoder decision b ~ 10. The decoder method of claim 9, wherein the first decoding operation is performed to generate:
16. 1. An encoder in a communication system, comprising: generating a first input array a based on the input block d; a first encoder configured to encode the first input sequence a based on at least two outer codes to generate a first output sequence b; a second encoder configured to generate a second output array x from the first output array b based on a layered polarization adjusted convolutional (LPAC) code, the LPAC code including at least two layers, each layer corresponding to one layer index set, the layer index set being a division of a data index set of the polarization adjusted convolutional (PAC) code; The second output array x is transmitted to a channel.
17. 17. The encoder of claim 16, wherein the at least two outer codes correspond to Reed-Solomon codes.
18. The second encoder comprises: generating a data array v from the first output array b; 17. The encoder of claim 16, configured to encode the data array v based on the LPAC code to generate the second output array x.
19. 20. The encoder of claim 18, wherein a precoding sequence c is inserted into the data sequence v, the precoding sequence c being generated from the first output sequence b.
20. The encoder of claim 19 , wherein the pre-coding sequence c corresponds to a cyclic redundancy check (CRC) based on the first output sequence b.
21. 17. The encoder of claim 16, wherein the LPAC code is obtained from a polarization adjusted convolutional (PAC) code by dividing the set of data indices of the PAC code into L sets of layer indices.
22. the L layer index sets are selected based on a score function; 22. The encoder of claim 21, wherein the score function is one of a Hamming score function, a reliability score function, a decoding order score function, or a combination thereof.
23. The encoder of claim 16 , wherein the number of outer codes is the same as the number of layers of the LPAC code.
24. 1. A decoder for a communication system, comprising: Receive a decoder input array y; For a particular layer, a first decoder decision b of the particular layer is derived from the decoder input array y and the accumulated decision feedback of the previous layer based on a layered polarization adjusted convolutional (LPAC) code. ~ a first decoder configured to perform a first decoding operation to generate The first decoder decision b for the particular layer based on the outer code ~ a second decoder configured to perform a second decoding operation to generate a second decoder decision a for the particular layer from a re-encoder configured to perform re-encoding based on the second decoder decision â of the particular layer to generate a decision feedback b̂ for the particular layer; a decoder output block d is generated based on the second decoder decisions a of the at least two layers; The LPAC code includes the at least two layers, each layer corresponding to one layer index set, and the layer index set is a division of a data index set of a polarization adjusted convolutional (PAC) code.
25. 25. The decoder of claim 24, wherein the outer code corresponds to a Reed-Solomon code.
26. 25. The decoder of claim 24, wherein the first decoding operation includes a sequential decoder for decoding the LPAC code.
27. 27. The decoder of claim 26, wherein the first decoding operation involving the sequential decoder is aborted by a timeout rule.
28. 27. The decoder of claim 26, wherein the first decoding operation involving the sequential decoder is aborted when a count of the number of times the sequential decoder visits a subset of nodes in a code tree of the LPAC code exceeds a critical value.
29. The decision feedback b for the particular layer generated by the re-encoding is the first decoder decision b for the next layer. ~ 25. A decoder as claimed in claim 24, for use in generating
30. if a failure of the second decryption operation is detected, the second decryption operation is aborted; The new first decoder decision b ~ 25. The decoder of claim 24, wherein the first decoding operation is performed to generate:
Citation Information
Patent Citations
Encoder, Decoder and Transmitter
JP2020516119A
US16453887
Method and system for encoding and decoding data using concatenated polar codes
US20140208183A1
Spatially coupled polar codes
US20190245650A1
Method and system for encoding and decoding data using concatenated polar codes
US9362956B2