Generalized implicit transmission
The generalized implicit transmission (GIT) technique addresses the challenge of efficiently transmitting coded information implicitly by allowing multiple implicit sequences to be transmitted with a single explicit sequence, achieving a significant increase in transmission rate and operating beyond traditional limits.
Patent Information
- Application Number
- PCT/US2024/052635
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-23
- Filing Date
- 2024-10-23
- Publication Date
- 2025-05-01
AI Technical Summary
Existing communication systems face challenges in efficiently transmitting coded information implicitly without increasing decoding complexity or delay, while maintaining a significant data rate on the implicitly transmitted stream.
The proposed generalized implicit transmission (GIT) technique allows for the transmission of multiple independent implicit sequences implicitly while transmitting a single explicit sequence over a channel, using a GIT coding scheme that collectively considers the explicit sequence and all implicit sequences as a single code.
GIT achieves a significant increase in transmission rate for implicit sequences, with results demonstrating that it can transmit implicit streams at rates up to 25% higher than traditional methods without increasing decoding delay, and can operate in regions beyond the Shannon-Hartley bound.
Smart Images

Figure US2024052635_01052025_PF_FP_ABST
Abstract
Description
GENERALIZED IMPLICIT TRANSMISSIONCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application No. 63 / 592,457, filed on October 23, 2023, and titled “GENERALIZED IMPLICIT TRANSMISSION,” which is incorporated herein by reference in its entirety. Additionally, this application is related to U.S. Non-Provisional Patent Application No. 18 / 473,687, filed September 25, 2023 and entitled “Implicit Transmission of Coded Information,” which claims priority to U.S. Provisional Patent Application No. 63 / 409,598, filed September 23, 2022 and entitled “Implicit Transmission of Coded Information.” The contents of each of these applications are incorporated herein by reference herein in their entirety.OVERVIEW
[0002] Disclosed herein is a novel collection of punctured codes decoding (CPCD) technique that considers a code as a collection of its punctured codes. Two forms of CPCD, serial CPCD that decodes each punctured code serially and parallel CPCD that decodes each punctured code in parallel, are discussed. In contrast to other modifications of LDPC decoding documented in the literature, the proposed CPCD technique views a LDPC code as a collection of punctured LDPC codes, where all punctured codes are derived from the original LDPC code by removing different portions of its parity bits. CPCD technique decodes each punctured code separately and exchanges extrinsic information obtained from that decoding among all other punctured codes for their decoding. Hence, as the iterations increase, the information obtained in the decoding of punctured codes improves making CPCD perform better than standard decoding.
[0003] Also disclosed herein is novel implicit transmission with bit flipping (ITBF) technique to transmit a coded stream implicitly while transmitting a coded stream explicitly over a channel. ITBF flips a set of chosen parity bits of the explicitly transmitted stream according to an implicit stream. Results obtained using the low density parity check (LDPC) code employed in the 5G standard show that ITBF can transmit an implicit stream up to 13.19% of the rate of transmission of the explicit stream without significantly sacrificing performance, or increasing the decoding complexity or the decoding delay. The ITBF is combined with collection of punctured code decoding (CPCD) to form implicit transmission with collection decoding (ITCD) schemes that can further increase the rate of transmission on the implicit stream without increasing the decoding delay, however, with a slight increase in the decoding complexity. Itis demonstrated with the LDPC code in the WiFi standard that ITCD can transmit an implicit stream at up to 25% of the rate of transmission of the explicit stream.
[0004] Also disclosed herein is novel gradual initial decoding (GID) technique to improve implicit transmission with bit flipping (ITBF) and implicit transmission with collection decoding (ITCD) techniques. Further, two additional decoding techniques, namely, feedback implicit decoding (FID) and iterative implicit decoding (IID) are introduced for further improvement. It is demonstrated that all techniques in the present disclosure can significantly improve performance in implicit transmission and increase the transmission rate on the implicit sequence.
[0005] Also disclosed herein is novel generalized implicit transmission (GIT) technique that can transmit any number of independent implicit sequences implicitly while transmitting a single explicit sequence over the channel. The GIT technique, its encoding and decoding are explained in detail. It is demonstrated using the LDPC codes employed in the WiFi and 5G / 6G standards that GIT with multiple implicit sequences can increase the transmission rate significantly higher than those that can be achieved with a single implicit sequence.
[0006] Also disclosed herein is a generalized implicit transmission (GIT) technique that can transmit multiple implicit sequences while transmitting a single explicit sequence over a channel. Instead of considering all sequences as independent sequences, this technique considers the explicit sequence and all implicit sequences of a GIT collectively as a single code referred to as a GIT coding scheme. The overall code rate Roverail and the inherent coding gain achieved by a GIT coding scheme due to the transmission of information implicitly are discussed. A GIT coding scheme constructed from a rate R code to function as a rate Roverail code, on average, transmits Roverail / R number of codewords of a rate R code for every single codeword transmitted over the channel by transmitting (R0Veraii - R) / R number of codewords over all implicit sequences. A simple way to convert existing practical codes into GIT coding schemes is also presented.
[0007] The results presented with the LDPC codes employed in the WiFi and the 5G standards demonstrate that GIT coding schemes can achieve very high coding gains over traditional codes while functioning as high rate codes. It is also demonstrated that GIT coding schemes can operate in the so-called unreachable region relative to the Shannon-Hartley bound.BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The various features of the present disclosure are illustrated in the drawings listed below and described in the detailed description that follows.
[0009] FIG. 1 illustrates a Tanner graph for Quasi-cyclic (QC) LDPC codes.
[0010] FIG. 2 illustrates parallel and serial CPCD.
[0011] FIG. 3 illustrates an example structure of an ITBF transmitter.
[0012] FIG. 4 illustrates actions that may be taken by a bit flipping unit (BFU) when 1 = 6.
[0013] FIG. 5 illustrates an example structure of an ITBF decoder.
[0014] FIG. 6 illustrates a generalized implicit encoding principle.
[0015] FIG. 7 illustrates an example implicit encoder block.
[0016] FIG. 8 illustrates a GIT encoding structure.
[0017] FIG. 9 illustrates an example GIT scheme.
[0018] FIG. 10 illustrates an example implicit decoder block.
[0019] FIG. 11 illustrates an example GIT decoding structure.
[0020] FIG. 12 illustrates decoding of codewords in the example shown in FIG. 9.
[0021] FIG. 13 illustrates variations of an overall code rate Roverail with the number of implicit sequences N used in (a) scheme 1; (b) scheme 2; (c) scheme 3; and (d) scheme 4.
[0022] FIG. 14 illustrates a secure communication structure.
[0023] FIG. 15 illustrates an example message re-ordering unit.
[0024] FIG. 16 illustrates security enhancement with a GIT coding scheme.
[0025] FIG. 17 illustrates GIT encoding with interleavers.
[0026] FIG. 18 illustrates GIT decoding structure with interleavers.DETAILED DESCRIPTION
[0027] LDPC codes, first discovered by Gallager, are linear block codes that have a sparse parity check matrix. LDPC codes can approach the Shannon limit over many different channels using linear time complex decoding algorithms. Due to their superior performance and reasonable decoding complexity, LDPC codes have received significant interest in a variety of communication systems such as deep-space communication systems, wireless communication systems, optical communication systems, underwater acoustic communication systems, magnetic recording (MR) systems, neural networks and antenna systems. Further, LDPC codes have been adopted in different standards such as in 5G NR, IEEE802.11n, IEEE802.11ac, IEEE802.16e (Wi-MAX), lOG-BaseT Ethernet, and Digital Video Broadcasting (DVB).
[0028] Further, LDPC codes provide comparable or better performance than turbo codes with lower decoding complexity. In fact, the fifth-generation (5G) transmission is adopting LDPC codes for the data channel, moving away from turbo codes employed in the fourth generation (4G) standard.
[0029] LDPC codes are defined by their m x n parity check matrix H, where n is the codeword length and m is the number of parity check equations. In general, any LDPC code can have any number of parity check equations but only (n-k) of them will be linearly independent, where k is the number of message bits. Thus, rank2 H=(n-k), where rank2H is the number of rows in H that are linearly independent over GF 2. In addition, LDPC codes can be represented by their Tanner graph (bipartite graph). A Tanner graph associated with H has m check nodes (CNs) corresponding to the set of parity check equations, and n variable nodes (VNs) corresponding to coded bits of the codeword. A CN j is connected to a VN i if the (j ,i)th element hp is equal to 1.
[0030] Different construction methods of LDPC codes such as (pseudo) random and structured constructions of LDPC codes have been proposed in the literature. All the proposed LDPC codes have to follow important design criteria in order to achieve efficient encoding, nearcapacity performance, and low error floor. Quasi-cyclic (QC) LDPC codes which exhibit advantages over other types of LDPC codes, have gained interest recently.
[0031] Different forms of hard and soft-decision decoding algorithms have been discussed for the decoding of LDPC codes. The soft-decision decoding algorithms are widely employed because of their superior performance over hard decision algorithms. Among the soft-decision decoding algorithms available for LDPC decoding, SPA decoding is known to provide the best possible performance that can be achieved by iterative decoding, however, at the expense of increased complexity and decoding delay that may be critical for some delay-sensitiveapplications. Thus, many alternative methods have been proposed to reduce the decoding complexity of SPA at the cost of performance. One of the well-known simpler decoding algorithms is the Min-Sum (MS) algorithm. Several modified versions of the MS algorithm have been proposed in order to recover the performance loss of MS decoding with respect to the SPA decoding.
[0032] In addition, decoding algorithms developed using super codes formed by dividing CNs into two or more disjoint groups and passing soft information among them have been presented. It has been shown that such methods can reduce the required memory. In decoding of each group employs all VNs and the portion of CNs associated with that group.
[0033] In the development of CPCD, instead of dividing CNs into groups, we choose to divide VNs into groups. The best way to follow this thought would be to have the entire message bits and a separate portion of the parity bits in each group. Hence, each group in CPCD that consists of the entire set of message bits and a separate portion of the parity bits would become a punctured code of the original CPCD code. Compared with groups that employ a portion of CNs and all VNs, punctured codes (groups) in CPCD employ a portion of VNs and all CNs. However, it is important to note that in CPCD, the decoding of each punctured code should be performed on the Tanner graph of the mother code in order to maintain the same parity check equations. As a result, decoding of each punctured code provides information of VNs other than those that belong to that punctured code. CPCD can perform better than the standard decoding of the mother code at the same or lower number of iterations.
[0034] Puncturing is one of the effective ways to achieve variable code rate by deleting selected bits (usually parity bits) of codewords before transmission. Many different puncturing methods for LDPC codes such as random puncturing, order puncturing, grouping and sorting program and puncturing with a puncturing matrix obtained by density evolution have been discussed in the literature.
[0035] In the present disclosure, a novel CPCD technique that views an LDPC code as a collection of several of its punctured codes by puncturing only the parity portion of the codeword is described. This view of LDPC codes allows the development of the CPCD technique that is demonstrated here to perform significantly better than standard SPA decoding of LDPC codes. Two different forms of CPCD, namely serial CPCD and parallel CPCD are discussed.
[0036] We next discuss the structure of QC LDPC codes followed by SPA decoding.
[0037] QC LDPC codes are known to have good error performance, high throughput and low latency with simplified hardware implementations. Due to their advantages and specialstructure, QC LDPC codes have been adopted in different standards including IEEE 802.16e, IEEE 802.1 In and 5G standards. Thus, QC LDPC codes are considered throughout this disclosure.
[0038] The mxn parity-check matrix H of a QC LDPC code is constructed by a collection of z*z square circulant matrices Pr(i,j) , each of which is either zero or identity matrix with arbitrary shift (left or right) as shown in the following equation:
[0039] Therefore, m=zmb is the number of rows and n=znb is the number of columns of H. As shown in FIG. 1, similar to any LDPC code, QC LDPC codes can also be represented by the Tanner graph which describes how the VNs are connected to their corresponding CNs. One of the advantages of QC LDPC is their inherent dual diagonal structure, which can be seen from the connections of VNs and CNs as illustrated in FIG. 1.
[0040] In accordance with the present disclosure, LDPC codes are iteratively decoded using the SPA. Each SPA iteration consists of two sequential steps: VN updates and CN updates until a stopping criterion is satisfied. Usually, the stopping criterion is met either when all parity check equations are satisfied or when a preselected maximum number of iterations has been reached.
[0041] In principle, the CPCD technique disclosed herein considers a code, which is referred to as the mother code, as a collection of its smaller punctured codes.
[0042] Simple Example: In order to describe the basic idea, let us consider a simple (7,1) repetitive code C, that repeats every message bit u six times, as the mother code. This mother code can be viewed as a combination of two (4,1) punctured codes; a first punctured code Ci that represents the message bit and the first three parity bits, (u, pi, p2, ps), and a second punctured code C2 that represents the message bit and the last three parity bits, (u, p4, ps, pe). By doing so, Ci and C2 can be separately decoded either in series or in parallel by considering them as punctured codes of the original (7,1) mother code. Both Ci and C2 can provide information about the message bit u and the parity bits of the other code in their respective decoding. Hence, when Ci is soft decoded as a punctured code of the (7,1) mother code, it can provide extrinsic information about the message bit u and the parity bits u, p4, ps and pe of C2.Similarly, soft decoding of C2 can provide extrinsic information of bits u, pi, p2 and ps. The extrinsic information of C2(Ci), which includes both the message bit and its corresponding parity bits, provided in the decoding of Ci(C2) can be used as a-prior information in the decoding of C2(Ci). Therefore, an iterative decoding strategy can be developed to decode the mother code in terms of two or even a higher number of its punctured codes.
[0043] As will be appreciated, the above described (7,1) code has been chosen only as an example, and it should not be decoded iteratively as described above. Since the 7,1 code consists of only two codewords, it can be easily decoded in a maximum likelihood (ML) sense. However, the above described method is beneficial in the decoding of long codes such as LDPC codes that require iterative decoding as ML decoding is not feasible. It is further noticed in the above example that the parity bits of Ci and C2 can be chosen in any arbitrary manner from the six parity bits of the original mother code C. Further, if necessary, more than two punctured codes with a fewer number of parity bits can be similarly considered.
[0044] Based on the example described above, the CPCD technique can be applied to LDPC codes. Let us consider a general systematic (m,n) LDPC mother code C. In CPCD, the mother code is viewed as a collection of any D number of punctured codes, Ci, C2,..., CD by dividing the parity bits into D groups. Let u=(ui,...uk) be the message sequence and p = (pi,..., pn-k) be the corresponding parity sequence of C. Each punctured code Ci contains the same message sequence u and a unique portion p, pi, where 1 = 1,2,---,D. Thus, it follows that p = Uipi. Let the number of parity bits in Ci be Ai , therefore, the total number of parity bits= n — k.
[0045] Puncturing of an LDPC mother code can be done using any puncturing method to generate the set of D punctured codes. Regardless of the selected method of puncturing, it is generally desirable that puncturing is done so that every punctured code Ci, 1=1,2, ...,D, satisfies the following two conditions: (a) as many CNs of C are still connected to the remaining VNs of Ci after puncturing and (b) the VNs that are connected to every CN of Ci has only a single punctured VN.
[0046] The first condition ensures that multiple punctured VNs should not be connected to the same CNs in order to make the recovery of the punctured nodes easier. Similarly, the second condition ensures that the punctured VNs have a low degree or equivalently few connections with CNs. As a result, these two conditions ensure that the effects of punctured bits of every punctured code Ci , 1= 1,2,---,D, are felt by as many CNs as possible in the first half of every SPA iteration and those effects are then communicated back to the VNs, including those VNs of punctured bits, in the second half of every SPA iteration. However, it may not be possible to ensure that all punctured codes Ci can strictly satisfy these two conditions, but an attemptshould be made to maintain them as much as possible. However, the above conditions can be fully satisfied by QC LDPC codes due to their dual-diagonal structure in the parity check matrix H.
[0047] In a system that employs CPCD, modifications are made only in the decoder while all other components of the system remain unchanged. The CPCD of LDPC codes modifies the standard SPA decoding according to the punctured code interpretation of the code described earlier. The task in CPCD is to recover the transmitted sequence u from the received version of the LDPC signal.
[0048] In the CPCD decoder, SPA iterative decoding is used by modifying the operations at the VNs. Every punctured code Ci , 1 = 1,2,---,D, uses the Tanner graph of the mother code C for its decoding. As it has been discussed in the literature, this is done by making the initial channel values of the punctured VNs zero due to the unavailability of the received signal of its punctured bits.
[0049] When SPA decoding of any punctured code Ci is performed on the Tanner graph of the mother code, the soft values of all punctured VNs also become available. Hence, every SPA iteration of any punctured code Ci, which are referred to as SPA sub-iterations, provides information for al message bits and parity bits of every other punctured code Ct, t 1. Consequently, every SPA iteration consists of D SPA sub-iterations, one for each punctured code. The proposed CPCD technique is developed to run any single SPA sub-iteration of every punctured code by additionally using the most recent extrinsic information available from all other punctured codes. As a result, the modification to standard SPA decoding used in CPCD occurs in updating VNs at the beginning of every SPA sub-iteration of every punctured code Ci , l = 1,2,-,D.
[0050] Specifically, the operation at VNs is modified in every sub-iteration of the punctured code Ci by considering the (extrinsic) information provided by all other punctured codes Ct, t l as follows:where, L(Xi)i represents all the extrinsic information of Ci provided by every other punctured codes Ct, 1 = 1,2,--,D t l as follows,L X = m +lt t Ltswhere Lti=(LQi-L(ci))t is the extrinsic information of Ci obtained in the decoding of Ct.
[0051] Since all punctured codes are separately decoded during sub-iterations, two separate implementations of CPCD, namely, (a) Serial CPCD that runs SPA sub-iterations in a serialmanner every SPA iteration as illustrated in FIG. (2a), and (b) Parallel CPCD that runs all D sub-iterations in a parallel manner in every SPA iteration as illustrated in FIG. (2b) are considered.
[0052] Therefore, in serial CPCD, in every 1th sub-iteration of every sth SPA iteration, the information provided by the Ci, C2, ... .C(i-i) from the same sth iteration, and the information provided by C(i+i), C(i+2), ... .CD from the immediately previous (s - 1) th iteration are used to update the VNs. On the other hand, in parallel CPCD, during every sth SPA iteration, every sub-iteration uses information from all punctured codes from the (s - 1) th iteration. During the first SPA iteration (s = 1), all the information from the previous sub-iterations is assumed to be zero.
[0053] The decoder implementation depends on how the SPA sub-iterations run. Since all subiterations are running on the Tanner graph of the mother code, each sub-iteration is similar to a single SPA iteration in the standard SPA decoding. Therefore, serial CPCD runs SPA subiterations one at a time, whereas parallel CPCD requires to run D sub-iterations simultaneously. Therefore, serial CPCD requires only a single processor like standard SPA decoding while parallel CPCD requires D parallel processors. Subsequently, the implementation of serial CPCD does not increase the required processing power, but parallel CPCD increases the processing power by a factor D. In serial CPCD, since the information provided by all subsequent sub-iterations within any given SPA iteration is fed to the current sub -iteration, it is expected that serial CPCD would converge faster, which is supported by the numerical results presented later in the document. Even in parallel CPCD, since the information provided by all sub-iterations in the immediately previous SPA iteration is used in all sub-iterations within the current SPA iteration, the number of SPA iterations N can be expected to be slightly higher than that of serial CPCD but would be still comparable to it as seen from the numerical results presented later in the document.
[0054] Almost all current communication systems employ some form of error control coding to improve the reliability of transmission. LDPC codes, turbo codes, polar codes, etc. are commonly used in current systems. The studies so far have focused primarily on searching for good coding techniques and searching for good high-rate codes within those coding techniques. Studies have also focused on improving the decoding of coded signals to achieve good performance with low decoding complexity and decoding delay.
[0055] Instead of the traditional methods of searching for good codes, it is highly desirable to be able to transmit coded bits implicitly, without transmitting them physically over a channel, while transmitting a coded stream explicitly over that channel. It would be highly beneficial ifsuch schemes can be developed without increasing the decoding complexity or the decoding delay while maintaining a significant data rate on the implicitly transmitted stream. If such implicit transmission methods can be developed, they can preferably be used with known powerful codes that have been derived using traditional methods.
[0056] Additionally in this disclosure, we introduce a scheme, referred to as implicit transmission with bit flipping (ITBF), to transmit a second coded stream (referred to here as the secondary stream or the implicit stream) implicitly without physically transmitting it over a channel during the transmission of a first coded stream (referred to here as the primary stream or the explicit stream) over that channel. In this disclosure, we present a simple way to transmit a secondary stream implicitly without significantly sacrificing the performance of the primary stream or increasing the decoding delay.
[0057] Implicit transmission has been proposed to transmit a turbo-coded implicit stream while transmitting a turbo-coded stream explicitly. There are other known techniques that use implicit transmission, such as spatial modulation (SM) and index modulation (IM). SM adds a new spatial domain using additional antennas to transmit additional information implicitly, while IM adds indices to the transmitted symbols to transmit additional information bits. Even though these schemes can transmit a stream implicitly, the decoding of the two streams need to be done jointly by running iterations between the explicit stream and the implicit stream. As a result, the receiver increases the decoding complexity and the decoding delay significantly. Specifically, these schemes demand an increase in the decoding complexity and the decoding delay by a factor of at least 6 to 10 due to the transmission of the implicit stream. Further, these schemes are: (a) dependent on the coding technique; it generates attractive schemes with turbo coded systems but fails with codes such as LDPC codes, (b) requires use of codes that are similar in coding power on the explicit and implicit streams due to the exchange of information between them during decoding.
[0058] Disclosed herein is a general ITBF method to transmit a secondary coded stream implicitly during the transmission of a primary coded stream explicitly. Throughout this disclosure, the primary stream is also referred to as the explicit stream while the secondary stream is also referred to as the implicit stream. In contrast to the IM and SM schemes, the proposed ITBF method here treats the explicit and the implicit streams independently. Therefore, ITBF does not require iterations that involve both the explicit and implicit streams and as a result, does not increase the decoding delay or significantly increase the decoding complexity.
[0059] In order to describe the ITBF technique, let us consider a code that generates n coded bits corresponding to every k message bits, where k < n. Then it is possible to choose 1(< (n - k)) bits out of (n - k) parity bits that can be removed from the coded sequence and yet correctly recover the original message sequence of length k. These 1 bits can preferably be chosen by using a good known punctured code generated from code C. For example, let us consider a code C with rate %, i.e., n = 3k. Then consider a rate i punctured code generated from that rate % code C. Note that in the construction of the rate i punctured code, n / 6 coded bits of C are identified and removed. Hence, these n / 6 coded bits can be selected as the 1 = n / 6 coded bits of C. Of course, depending on the selected punctured code, the set of 1 coded bits and its length can change. Throughout this disclosure, these 1 bits are referred to as the chosen bits. Therefore, a set of chosen bits of a code C can be pre-selected by preferably considering a punctured code generated from the code C or by using any other method.
[0060] FIG. 3 illustrates the structure of the transmitter for the proposed ITBF scheme. In ITBF, an explicit message sequence mEx and an implicit message sequence rnimare separately encoded according to two codes CEX and Cimto generate two coded streams VEX and vimrespectively. Without loss of generality, in this disclosure, we consider both CEX and Cimto be the same code C, i.e., CEX = Cim = C. However, as stated before, CEX and Cim can be two independent codes. Then identify the 1 number of pre-selected chosen bit positions of VEX. Then, according to 1 bits of the coded implicit stream vim, flip the chosen bits of explicit coded stream VEX using a bit flipping unit (BFU) as illustrated in FIG. 3. Specifically, BFU flips each of these chosen bits of VEX if the corresponding coded bit of the implicit stream is a 1 (or a 0) and not flipped if the corresponding coded implicit bit is a 0 (or a 1). FIG. 4 illustrates an example of the flipping operation performed by the BFU when 1 = 6. The resulting sequence V’EX on the explicit stream is then transmitted over the channel. Note that (a) the transmitted sequence V’EX and the coded sequence VEX have the same length n, (b) none of the coded bits of vimare transmitted over the channel, however, the effect of the corresponding 1 bits of vimthat determined the flipping of the 1 chosen bits of VEX, is transferred by V’EX, and (c) following (a) and (b), the information of the explicit stream contained in VEX and the information of the corresponding 1 coded bits of vim are carried by V’EX. Therefore, upon transmitting ceil (n / 1) number of blocks of V’EX, information of all coded bits of one full codeword of vimwill be available allowing the receiver to decode a codeword of vim. Note also that, due to the flipping of the chosen bits, the transmitted sequence VEX may very well not be a valid coded sequence of CEX.
[0061] The proposed ITBF receiver disclosed herein is based on the following observation: Even though the transmitted sequence V’EX may not be a valid codeword of CEX, any existing invalidity is caused only within the 1 chosen bits due to the flipping of the bits that occurred prior to transmission. Therefore, if the received signal is initially decoded as a punctured code by ignoring those 1 chosen bits, the explicit message sequence niEx and the corresponding explicit coded sequence vEx can be correctly decoded. Further, this decoding provides information about the 1 chosen bits of VEX (without any flips) while the received signal provides information of V’EX (with the flips).
[0062] FIG. 5 shows the general structure of the ITBF decoder proposed here based on the above observation to recover both the explicit and the implicit streams. Below we explain the steps involved in ITBF decoding. In the discusison below, we focus primarily on the 1 chosen bits. In order to assist that discussion, we denote the following quantities of the 1 chosen bits:(a) received signal values by yi, y2, . . . , yi,(b) coded sequence values of VEX (prior to flipping) by VEXI , VEX2, . . . , VExi , and(c) transmitted sequence V’EX (after flipping) by V’EXI, V’EX2, . . . , V’EXI.
[0063] The decoding procedure may involve the following steps:1) Initial Decoding: Initially, decode C as a punctured code by removing the 1 chosen bits from the received signal. If iterative decoding is used (such as in the decoding of a LDPC code), run initially a set of iterations of the punctured code. The number of initial iterations used for the punctured code can be pre-selected or adoptively varied depending on the signal to noise ratio or as the iterations progress. Note that the initial decoding also provide likelihood values of the 1 chosen bits, which are denoted here by LvEx(i) , i = 1, 2, . . . , 1, and they represent the likelihood values of the encoded sequence VEX prior to flipping at the transmitter.2) Detecting Flips: In order to decide whether or not each of the 1 chosen bits is flipped, hard decode each of the 1 chosen bits of VEX, which are denoted by b1, i = 1, 2, . . . , 1, using the likelihood values of those bits found in step 1. Additionally, for each of the 1 chosen bits, hard decode the corresponding received signal value y1, i = 1, 2, . . . , 1, to determine the hard decoded received signal value, y‘h, i = 1, 2, . . . , 1 that correspond to the flipped sequence V’EX. Then, using b1and y‘h values, determine fi asto indicate whether the ith bit was likely to have been flipped or not prior to transmission. Specifically, if fi =0, the ith chosen bit is not likely to have been flippedwhile if fi = 1, it is likely that the ith bit has been flipped. Note that fi values, which use the hard decoded received signals are corrupted by channel noise similar to a received signal.3a) Since fi, i = 1, 2, . . . , 1, found in step 2, indicates whether or not the ith chosen bit has been flipped, it can then be used to modify the received sequence to correspond to vEx by reversing the effect of the flips for the decoding of the explicit stream. Specifically, the received signal yi can be corrected for the 1 chosen bits in the decoding of the explicit stream as (1 - 2fi)yi, i = 1, 2, . . . , 1.3b) In case of iterative decoding, upon reversing the effects of the flips, continue decoding of C as a full code (not as a punctured code) by also including the corrected received signal values of the chosen bits.4) Recall that the flipping of the 1 chosen bits were decided at the transmitter according to the implicit coded stream. Further, observe that if the ith implicit bit, Im;, had actually been transmitted over the channel with the same noise experienced by yi, it would have been received as (1 - 2Imi)|yi|. Hence, an artificially created received signal value can be obtained for each implicit coded bit Imi, i = 1, 2, . . . , 1 as (1 - 2fi)|yi|. Note that depending on the value of fi (0 or 1), the artificially created channel value is positive or negative suggesting that the ith coded implicit bit has not been flipped or flipped respectively. Even though fi values are available after the initial decoding, a more reliable set of fi values can be calculated by using the LvEx(i) values at the end of the decoding of the explicit stream in step 3b. These re-calculated fi values can be used to calculate the artificially created received signal values for the corresponding 1 coded implicit bits. Since fi decisions are noisy, the artificially created received signal values of the Im;, i = I, 2, . . . , 1, are also noisy similar to channel information extracted from a noisy received signal. Therefore, in order to maintain good performance on the implicit stream, it is necessary to employ an error control code on the implicit stream similar to the explicit stream.
[0064] The first three steps describe the decoding of a single codeword of the explicit stream. It is noticed that if the initial decoding step I and the calculation of fs in step 2 are reliable then step 3a would provide a reliable explicit stream that would perform almost as reliably as if no bits were flipped prior to transmission. It is also seen that when every codeword of the explicit stream (n coded bits) is transmitted over the channel, an artificially created channel information of 1 coded bits of the implicit stream can be extracted without transmitting any of those 1 bits over the channel.
[0065] If C is a small code, it can be decoded in a maximum likelihood (ML) sense in the initial decoding of C in step 1 and the decoding of C as a full code in step 3. However, this doubles the decoding complexity and the decoding delay of the explicit stream.
[0066] For a large code, such as an LDPC code and most other codes used in practice, ML decoding is not possible and instead iterative decoding is commonly used. In such situations, the initial decoding in step 1 and the full decoding in step 3b can be done in an efficient manner without increasing the overall decoding delay or the decoding complexity. Throughput this disclosure, the decoding delay is measured in terms of the total number of iterations while the decoding complexity is measured by the number of times the SPA algorithm is called during decoding thereby disregarding any delay or complexity added by the calculation of fs and the correction of the flipped bits of the explicit stream. Focusing on the iterative decoding of C, a pre-selected Ni number of iterations in step 1 and a pre-selected N2 number of iterations in step 3b can be used. The values of Ni and N2 can be chosen to maintain the total number of iterations N = (Ni + N2) close to the number of iterations commonly used without ITBF thereby maintaining about the same decoding delay and the decoding complexity.
[0067] The present disclosure will now explain how ITBF can be combined with CPCD to generate ITCD schemes that can transmit a higher data rate on the implicit stream than using ITBF alone while also improving performance on both explicit and implicit streams.
[0068] In CPCD, a code C (which is considered as the mother code) is viewed as a collection of a pre-selected number of D punctured codes, Ci, i = 1, 2, . . . ,D, generated from that mother code C. Considering C in systematic form, all n coded bits are viewed as a collection of the message bits and the set of its parity bits p. In CPCD, each punctured code Ci is constructed from all message bits and a portion of the parity bits pi, i = 1, 2, . . . ,D. In CPCD, p;s are formed by dividing all parity bits p into non-overlapping segments so that Up; = p. During decoding, each Ci is separately decoded by using the received signal corresponding to its own coded bits (message portion and its corresponding parity portion pi) and also using the extrinsic information of all bits of Ci provided by the remaining punctured codes, Cj, j = 1, 2, . . . ,D, i j-
[0069] ITBF uses a punctured code in the initial decoding (step 1). Therefore, the initial decoding in ITBF inherently consists of the following two punctured codes of C: (a) the punctured code used in the initial decoding (say Ci), and (b) the code formed by the message bits and the chosen bits that are not used in the initial decoding (say C2). However, C2 becomes available after performing decoding steps 1, 2 and 3a. Upon determining C2, the decoding in ITBF was continued by considering C as a full code. Instead, decoding can be continued as inCPCD by considering Ci and C2 as two punctured codes. An ITBF scheme that switches to CPCD decoding after step 3a is considered as a hybrid ITBF / CPCD scheme or simply as an ITCD scheme. The block diagram of an ITCD decoder will be very similar to the ITBF decoder shown in FIG. 5 with the following two changes: (a) the “Decode CEX as a punctured code” block changed to “Decode Ci”, and (b) “Decode CEX as a full code” block changed to “Employ parallel CPCD with Ci and C2 as punctured codes.”
[0070] However, the CPCD technique considered in ITCD has differences between the CPCD technique discussed previously. In order to elaborate on the differences, let us first recall that all CPCD schemes described earlier typically use the same number of parity bits in all of their punctured codes and they all started to decode from the very first CPCD iteration. However, in ITBF, C2 becomes available for decoding only after Ni iterations to complete steps 1 through 3a, and further, the number of parity bits of C2 is generally smaller than that of Ci. Therefore, in order to employ CPCD in ITBF, we first introduce three separate special types of CPCD as follows:1. Unbalanced CPCD (U-CPCD) that employs different numbers of parity bits in different punctured codes.2. Staggered CPCD (S-CPCD) that starts decoding different punctured codes at different numbers of CPCD iterations.3. Unbalanced-staggered CPCD (US-CPCD) is a hybrid of U-CPCD and S-CPCD that employs different numbers of parity bits and starts decoding different punctured codes at different numbers of CPCD iterations.
[0071] In ITBF, the CPCD employed is the US-CPCD type of CPCD. Therefore, ITBF schemes switch to US-CPCD after completing steps 1 through 3 a in the decoding of the first punctured code Ci. In general, if an ITCD scheme employs CPCD with D number of parallel punctured codes with Ni number of initial decoding iterations followed by N2 number of CPCD iterations, the decoding complexity would be increased, compared to SPA decoding, by a factor of (Ni + DN2) / (NI + N2), however, without any increase in decoding delay.
[0072] To summarize, (a) ITBF can transmit a separate implicit coded stream without sacrificing any significant performance on both the explicit and implicit streams and (b) ITCD can transmit a higher data rate on the implicit stream while maintaining the same or better performance on both the explicit and implicit streams compared to traditional decoding of the explicit stream without any implicit stream.
[0073] ITBF and ITCD can be employed in any communication system to improve the overall transmission rate by transmitting a secondary coded stream implicitly. ITBF schemes cantransmit a secondary coded stream implicitly without noticeably sacrificing performance while maintaining the same decoding delay and the decoding complexity. ITCD achieves the same goal as ITBF, but with a slight increase in decoding complexity. However, ITCD can maintain a higher data rate on the implicit stream while maintaining better or similar performance on both the implicit and explicit streams.
[0074] Since both explicit and implicit streams of both ITBF and ITCD schemes operate independently, different types of codes, different code rates, and desired BER values can be independently employed on the two streams. However, based on the common approach of identifying the chosen bits using a punctured code of the mother code, the proposed ITBF and ITCD techniques are more suitable for codes that can generate powerful punctured codes. However, it is important to note that codes employed in most applications, such as 5GNR and WiFi, have a rate adjustment feature which is usually implemented by puncturing the lowest rate code that has been chosen for the application. Therefore, codes employed in most applications are known to have powerful punctured codes. ITBF and ITCD techniques are highly attractive for multimedia applications. In multimedia applications, the explicit stream and the implicit stream can represent two different types of multimedia streams. For example, the explicit stream could transmit a video signal while the implicit stream transmits an audio signal thereby eliminating the need for a separate channel for the transmission of the audio signal.
[0075] Another important application of ITBF and ITCD is in information security. Different types of encryption methods are used in information security. The transmission of an independent implicit stream in ITBF and ITCD allows a secure communication system to add an additional layer of encryption through ITBF or ITCD.
[0076] For ITBF and ITCD schemes to perform well, it is generally necessary for the initial decoding step in the decoder to provide reliable information. Earlier in the present disclosure, it was described that after a pre-selected number of initial iterations, all chosen bits are resolved based on the likelihood values of those chosen bits at that point. However, since some of the chosen bits may not have correctly been decoded at that point, trying to resolve all chosen bits after that fixed number of initial iterations may not be the best approach. With that in mind, we propose here a gradual initial decoding (GID) approach to improve the initial decoding step in the decoding of ITBF and ITCD schemes. Theoretically, iterative decoding numerically searches for the optimal solution to a discrete convex optimization problem. It is well known that gradual adjustments during a numerical search enhance the chances of reaching that optimal solution. As a result, GID presented here which makes changes gradually can beexpected to outperform initial decoding described earlier, which is referred to here as ID. Specifically, GID only resolves chosen bits as they become more reliable as the iterations progress. In this study, GID considers chosen bits to be reliable when the sign of their likelihood values remains unchanged over a pre-selected number of previous iterations. In addition, GID considers the following pre-selected parameters:• Na- the iteration number at which GID starts resolving chosen bits (Na> X)• Nb - the iteration number at which GID stops resolving chosen bits (Nb > Na)• Nc- the number of iterations that ITBF decodes C as a full code considering all corrected chosen bits• Na - the number of initial iterations that ITCD schemes complete before starting CPCD iterations (Na< Nd < Nb)• Ne- the number of iterations used by each punctured code in the CPCD portion of the decoding in ITCD.
[0077] GID also allows resolved chosen bits to be punctured back again between the Nath and Nbth iteration, if the sign of the likelihood value of any already resolved chosen bit happens to flip again. It is seen that in GID, chosen bits are resolved gradually over a span of iterations starting from the Nath iteration to the Nbth iteration as they become reliable. However, at the Nbth iteration, any remaining chosen bits that are not resolved are resolved based on the likelihood values of the chosen bits at the end of that Nbth iteration. If desired, Nb can be chosen to be the total number of iterations employed in the decoding. It is seen that GID is equivalent to ID, when Na= Nb, where all chosen bits are resolved after the Nath iteration. Following the above description, the decoding steps in GID can be summarized as follows:1. In every iteration starting from the Nath iteration, identify chosen bits with Li, i = 1, 2, ..., 1 values that maintain the same sign over the previous X iterations and complete steps 2 through 4 as described earlier to include those chosen bits for future iterations.2. Continue step (1) up to the Nbth iteration or until fi values of all chosen bits have completed step 4 and the corresponding chosen bits are included in the iterations. However, if all 1 chosen bits have not completed steps 2 through 4 at the end of the Nbth iteration, perform those steps for all remaining chosen bits using the Li, i = 1, 2, ..., 1 values available at the end of that Nbth iteration.3. In ITBF, continue decoding of C as a full code for additional Nciterations. In ITCD, start CPCD iterations after Nd iterations and use Neiterations for each punctured code in parallel.
[0078] The total number of iterations in ITBF with GID, which is (Nb + Nc), can be chosen close to that of the commonly used number of iterations to maintain about the same decoding complexity and the decoding delay. Note that in ITCD, the punctured code C2 may still be partly punctured at the beginning of CPCD iterations which occur after Nd iterations. Since each punctured code in CPCD uses Neiterations in parallel, the total decoding time of ITCD is equivalent to using (Nd + Ne) iterations. The values of Na, Nb, Ncand X in ITBF, and Na, Nb, Nd, Neand X in ITCD can be numerically selected to achieve the best possible performance.
[0079] ITCD can be further improved by importing the principle of GID to check and correct chosen bits. Specifically, every time the punctured codes exchange information to obtain updated likelihood values, the decoder can check and correct the channel values of the chosen bits based on the updated likelihood values. ITCD with this addition to continue to correct the channel information values of the chosen bits even after the completion of the GID portion, is referred to as the modified ITCD (M-ITCD). M-ITCD can be used with GID or ID the same way ITCD can be used with GID or ID.
[0080] In order to compare GID with ID, let us consider the bit error rate (BER) variation of a typical rate R mother code C used in an ITBF or an ITCD scheme along with that of a punctured code derived from C with rate Rp (> R) that is employed in ID. It is known that the punctured code with rate Rp performs worse than the mother code C. However, as the signal to noise ratio (SNR) increases, the punctured code starts to provide reasonably reliable information of its punctured bits (which are also the chosen bits) after the initial decoding. As the punctured code begins to provide more reliable information, those punctured coded bits can be corrected to perform close to that of the transmission of the explicit sequence without any flipping. As a result, once the correction process starts to function well with ID, the performance of the punctured code with rate Rp starts to approach that of the original mother code C with rate R after the initial decoding. Hence, ITBF or ITCD with ID attempts to make the transition from the punctured code with rate Rpto the mother code with rate R all at once after a pre-selected number of initial iterations. In contrast, ITBF or ITCD with GID attempts to improve the punctured code with rate Rpto the mother code with rate R gradually, by performing the corrections over a span of iterations and strengthening the rate Rppunctured code in small increments, to approach the rate R mother code between the Nath and the Nbth iteration. As a result, GID can perform better than ID. The improved performance of GID also allows the use of higher values of 1 thereby increasing the transmission rate on the implicit sequence.
[0081] So far, the ITBF and ITCD implicit transmission techniques have been described earlier in this disclosure which are further improved by introducing a gradual initial decoding (GID)technique to improve the initial decoding step used in those techniques. Implicit transmission techniques when combined with the GID technique discussed earlier in the present disclosure can improve the performance and increase the transmission rate on the implicit sequence.
[0082] In the discussion that follows, implicit transmission is further developed. Specifically, a generalized implicit transmission (GIT) technique that can transmit multiple independent coded implicit sequences while transmitting a single coded explicit sequence is introduced. It is described that the GIT technique allows transmission of multiple coded implicit sequences without noticeably degrading the performance of the explicit sequence and every implicit sequence. The GIT technique is presented in two parts. In part 1, the GIT technique is described, and the encoding and decoding of GIT are discussed in detail. Further, in part 2, the explicit sequence and every implicit sequence is considered as a separate independent sequence. It is demonstrated that a code constructed according to the GIT coding technique with an explicit sequence and any number of implicit sequences N using a rate R code can maintain the performance of the explicit sequence and every implicit sequence close to the performance of a rate R code in isolation.
[0083] The LDPC codes employed in the WiFi and 5G standards demonstrate that the proposed GIT technique that can handle multiple implicit sequences can significantly increase the transmission rate on implicit sequences compared with those presented earlier in the disclosure. In part 2, in contrast to considering all sequences as independent sequences, the explicit sequence and all N implicit sequences of a code constructed using the GIT technique, are collectively considered as a single code which is referred to as a GIT coding scheme and compared with traditional codes. In part 2, GIT coding schemes are analyzed and compared with existing codes. It is demonstrated in part 2 using the same LDPC codes used in the WiFi and 5G standards that are considered in part 1 that the GIT coding schemes can function as very powerful codes and they can indeed achieve transmission rates well beyond the Shannon limit.
[0084] In the discussion that follows, we generalize ITBF and ITCD techniques described earlier in the disclosure that consist of an explicit sequence and a single implicit sequence, to include an explicit sequence and any N arbitrary number of implicit sequences. Since both ITBF and ITCD techniques have the same method of generation and they differ only in their decoding, we refer to ITBF and ITCD techniques jointly as implicit transmission (IT) techniques here.
[0085] FIG. 6 illustrates the general functioning of a generalized IT (GIT) scheme. It consists of a single explicit message sequence mEXand N independent implicit message sequences mimi, i = 1, . . . , N. All N implicit sequences are referred to by their corresponding level as illustrated in FIG. 6. Each of the message sequences is independently encoded to generate a coded explicit sequence VEX and N independent coded implicit sequences vlmi , i = 1, 2, . . . , N as illustrated in FIG. 6. Each codeword of the explicit sequence is generated by encoding a mEx bit long message sequence into a nEx bit long codeword according to the explicit code CEX. Similarly, each codeword of any ith level implicit sequence is generated by encoding a mimi bit long message sequence into a nimi bit long codeword according to the ith level implicit code Cimi , i = 1, 2, . . . , N. Throughout this disclosure, when referring to the implicit sequences, the 1st level is also referred to as the highest level, and the Nth level is also referred to as the lowest level.
[0086] Focusing on the interactions that occur between codewords at different levels, GIT interacts between the explicit sequence and the 1st level implicit sequence. Similarly, there is interaction between every ith level implicit sequence with the (i + 1 )th level implicit sequence, i = 1, 2, . . . , (N - 1). All these interactions occur in the form of flipping as described earlier in the disclosure and illustrated in FIG. 6. As described earlier in this disclosure, every codeword on the explicit sequence selects hx (< (nEx - mEx)) number of chosen bits and flips those chosen bits according to 1EXnumber of coded bits of the 1st level coded implicit sequence. Similarly, every codeword of the ith level coded implicit sequence selects hmi (< (nimi -rnimi )) number of chosen bits and flips those chosen bits according to hmi number of coded bits of the (i + l)th level coded implicit sequence, i = 1, 2, . . . , (N -1). These 1EXcoded bits selected from the 1st level implicit sequence can preferably be selected from a single codeword of the 1st level coded implicit sequence vimi , and similarly the hmi coded bits selected from the (i + l)th level coded implicit sequence can preferably be selected from a single codeword of the (i + 1 )th level coded implicit sequence vimi+i. As illustrated earlier in the present disclosure, flipping 1 bits of any n bit long codeword vxaccording to 1 bits of any coded sequence vymeans: flip the jth bit value of the 1 bit long segment of vx, vx(j), from 1 to 0 and from 0 to 1 if the jth bit value of vy, vy(j), is a 1 (or a 0), and not flip vx(j) if vy(j) is a 0 (or a 1), j = 1, 2, . . . , 1. This flipping action can be easily implemented as (vx+vy) (mod 2) or vx®vvover that 1 bit long segment. This operation that converts a n bit long codeword vxand flips its 1 chosen bits according to 1 bits of a coded sequence vyand outputs the flipped n bit long sequence is represented here by a block which is referred to as an implicit encoder block (IEB) and is illustrated in FIG. 7. Note that when the explicit sequence transmits a nEx bit long flipped codeword, the 1st level implicit sequence also transmits information of 1EX(< n) number of its bits implicitly. The flipping operation that occurs between the explicit sequence and the 1st level implicit sequence similarly occursbetween every ith level implicit sequence according to the (i + l)th level implicit sequence as illustrated in FIG. 6, i = 1, 2, . . . , (N - 1). It is noticed that the transmission rate of the 1st level implicit sequence is smaller than that of the explicit sequence. Similarly, the transmission rate of any (i+ 1 )th level implicit sequence is smaller than that of the ith level implicit sequence, i = 1, 2, . . . , (N -1). As a result, the highest transmission rate of a GIT scheme is maintained by the explicit sequence, and it gradually decreases from the 1st level implicit sequence down to the Nth level implicit sequence.
[0087] Since the GIT technique allows transmission of N independent implicit sequences while transmitting a single explicit sequence, a GIT coding scheme can be used to multiplex up to K (N +1) independent message sequences by assigning one or more sequences (among the explicit sequence and N implicit sequences) to a user. In contrast to a traditional multiplexed system that transmits information of each of the K users over the channel, a GIT coding scheme when used for multiplexing transmits only the explicit sequence. Therefore, on the surface, a multiplexed system constructed using the GIT technique appears to transmit only the explicit sequence, but it transmits information of all K users by transmitting some of the information explicitly on the explicit sequence and transmitting the remaining information implicitly on the N implicit sequences.
[0088] The encoding in GIT begins with the encoding of the explicit sequence according to the explicit code CEX and the encoding of all the implicit message sequences to generate their respective codewords according to their respective encoders Cimi , i = 1, 2, ...,N as illustrated in FIG. 6. Then the flipping of the chosen bits of codewords at different levels begins from the (N-l)th level implicit sequence. Specifically, it divides the Nth level implicit sequence into segments of limN-i long coded bits and feeds each of these segments into a codeword of the (N — l)th level coded implicit sequence to control the flipping of the chosen bits of that codeword of the (N — l)th level coded implicit sequence. This flipping process is continued from the (N — l)th level implicit sequence up to the 1st level implicit sequence. Specifically, every ith level implicit coded sequence is divided into segments of lim(i-i) bits and each of those segments of coded bits of the ith level implicit sequence is fed into a codeword of the (i-l)th level implicit sequence to control the flipping of the chosen bits of that codeword of the (i - 1 )th level implicit sequence, i = N, (N-l), (N-2), . . . , 2. FIG. 6 illustrates the flipping of implicit codewords starting from the (N - l)th level implicit sequence up to the 1st level implicit sequence. Using arrows, FIG. 6 illustrates how segments of different coded sequences are fed to the codewords of the immediately higher level coded sequence to control flipping. Once all coded implicit sequences starting from the (N - l)th level through the 1st level have completed their flippingactions, the 1st level coded implicit sequence is similarly divided into segments of length 1EXbits and each of those segments is fed into a codeword of the explicit sequence to control the flipping of the chosen bits of that explicit codeword. Once the flipping on the explicit coded sequence is complete, that flipped explicit sequence is transmitted over the channel. Note that none of the coded bits of any implicit sequence is directly transmitted over the channel and as a result, the number of transmitted coded bits is the same as if none of the implicit sequences were ever present in the system. However, the information of all implicit coded bits of all implicit sequences, from levels 1 through N are carried by the transmitted sequence. As will be described later in the present disclosure, the received signal can be used to decode codewords not only of the explicit sequence but also of the implicit sequences at all levels even though none of those implicit coded bits were ever directly transmitted over the channel. The structure of a GIT encoder can be concisely represented using multiple lEBs as illustrated in FIG. 8. A GIT encoder employs an IEB at every ith implicit sequence, i = (N - 1), (N - 2), . . . , 1, starting from the (N-l)th level implicit sequence. Note that an IEB on any ith implicit sequence, takes in a codeword of that ith level implicit sequence (similar to vxin FIG. 6) and hmi bit long segment from the (i + l)th level coded implicit sequence (similar to 1 bits of vyin FIG. 7). A GIT encoder also employs an IEB on the explicit sequence by including the coded bits of the 1st level implicit sequence to control flipping as illustrated in FIG. 8. As stated before, the transmission rate in GIT is the highest on the explicit sequence and it gradually decreases from the 1st level implicit sequence down to the Nth level implicit sequence. As a result, the number of codewords used in encoding increases from the Nth level implicit sequence up to the 1st level implicit sequence and further from the 1 st level implicit sequence to the explicit sequence. Therefore, the encoder can be configured by grouping codewords at different sequences to form what is referred to here as codeword blocks. Each codeword block has the highest number of codewords on the explicit sequence and gradually lowering numbers of codewords from the 1st level implicit sequence down to the Nth level implicit sequence.
[0089] For example, consider a GIT with N = 2 that employs a (n, n / 2) rate 1 / 2 code on all sequences. Let us also assume that the number of chosen bits of codewords on the explicit sequence and that of the 1st implicit sequence is n / 4; i.e. 1 = n / 4. FIG. 9 illustrates how a codeword block can be formed with 16 codewords on the explicit sequence, 4 codewords on the 1st level implicit sequence, and 1 codeword on the 2nd level implicit sequence of that GIT. The n / 4 segments of the codeword on the 2nd level implicit sequence are denoted by ai, a2, as and a4. Similarly, the n / 4 segments of the four codewords on the 1st level implicit sequence are denoted by bi through bi6, and those of the sixteen codewords of the explicit sequence aredenoted by ci through C64. It is assumed that segment aj , j = 1, 4 of the 2nd level implicit sequence is fed to the jth codeword of the 1st level implicit sequence, and similarly the segment bk, k = 1, 2, 16 of the 1st level implicit sequence is fed to the kth codeword of the explicit sequence in the codeword block. Using arrows, FIG. 9 illustrates how a n / 4 segment of every implicit codeword is fed to control the flipping of the chosen bits of a codeword at the immediately higher level. Specifically, in the flipping of the 1st level implicit sequence, the segments b4, bs, bn and bi6 of the 1st level implicit sequence vimi are changed to (b4®ai), (bs®a2), (bnOas), and (bi6®a4) respectively. The rest of the segments in vimi remain unchanged. Similarly, Table 1 lists all changes that occur on the explicit sequence VEX due to flipping to generate the transmitted sequence vt while keeping all remaining segments of VEX unchanged.TABLE 1
[0090] It is seen from FIG. 9 that every codeword of the 1st level implicit sequence carries information of its own and also the information of a fourth of the codeword of the 2nd level implicit sequence. Similarly, every fourth codeword of the explicit sequence carries information of its own and additionally carries information of a fourth of a codeword of the 1st level implicit sequence along with the information that was transferred from a fourth the codeword of the 2ndlevel implicit sequence. Each of the remaining 12 codewords of the explicit sequence carry information of its own and the information of a fourth of a codeword of the 1st level implicit sequence without any information from the codeword of the 2nd level implicit sequence. It is noticed from FIG. 9 that the transmitted sequence of that codeword block carries information of 16 codewords of the explicit sequence, information of 4 codewords of the 1st level implicit sequence, and information of one codeword of the 2nd level implicit sequence thereby increasing the effective transmission rate of the code by 31.25% due to the use of the two implicit sequences. It follows from FIG. 9 that the transmission rate decreases by a factorof 4 from the explicit sequence to the 1st level implicit sequence and from the 1st level implicit sequence to the 2nd level implicit sequence. If desired, a 3rd level implicit sequence can be added to the codeword block in FIG. 9 by adding another sequence with 64 codewords above the explicit sequence in FIG. 9 and making that sequence with 64 codewords the explicit sequence and making the three remaining sequences below it the 1st, 2nd and the 3rd level implicit sequences respectively.
[0091] Similarly, if N = 2 and 1 = 4n / 5 (where, n is the length of a codeword) for all codewords, a codeword block can be constructed as in FIG. 9 by employing 16 codewords on the 2ndimplicit sequence, 20 codewords on the 1st implicit sequence, and 25 codewords on the explicit sequence.
[0092] The construction of a codeword block is fairly simple when 1 / n is a simple fraction as illustrated through the previous example shown in FIG. 9. However, when 1 / n is not a simple fraction, the approach that was presented earlier with FIG. 9 can result in codeword blocks that would require a very high number of codewords particularly at the higher levels of the codeword block. Therefore, it is desirable to have an easier way to construct codeword blocks with reasonable numbers of codewords at all levels. In practice, the explicit sequence and all N implicit sequences can be considered as sequences that take in codewords on an as needed basis. Therefore, the encoder can be implemented in practice without first constructing codeword blocks. However, when simulating the performance of a code constructed according to GIT, it is beneficial to first build a codeword block and repeat it multiple times to obtain the performance of every sequence individually. With that goal in mind, we introduce a general codeword block construction (GCBC) method using what we refer to here as supporting codewords to build a codeword block at any value of 1 / n and N with a reasonable number of codewords at every level. These supporting codewords are used only at the encoder to complete the flipping of all codewords that are considered at the decoder. However, supporting codewords are not decoded at the decoder or considered in the error probability calculations.
[0093] The proposed GCBC method begins with a single codeword at the lowest Nth level implicit sequence. Then find the number of codewords on every ith implicit sequence, Mimi , i = N, (N - 1), (N - 2), . . . , 1, and the number of codewords needed on the explicit sequence, MEX, iteratively. If desired, instead of using a single codeword, a higher number codewords can be used on the lowest Nth level implicit sequence at the beginning. The steps involved in the proposed GCBC method can be listed as:1. Start with a single codeword on the Nth level implicit sequence; i.e., choose M[m\ = 1.2. Find Mim(N-i) aswhere, [x] is the standard ceiling function of x. If, then insert a supporting codeword on the Nth level implicit sequence. Note that the supporting codeword allows all Mim(N-i) number of codewords on the (N - l)th level implicit sequence to complete their flipping actions during the implicit encoding process.3. Continue step 2 gradually from the (N - l)th level implicit sequence up to the 1st level implicit sequence by inserting supporting codewords when necessary along the way. Specifically, find the number of codewords necessary on the (i - 1 )th level implicit sequence, Mim(i-i) , asand further, ifthen insert a supporting codeword on the ith level implicit sequence, i =N, (N - 1), (N - 2), . . . , 2.4. Continue the same process outlined in steps 2 and 3 from the 1st level implicit sequence to the explicit sequence. Specifically, find the number of codewords necessary on the explicit sequence asand further, if, then insert a supporting codeword on the 1st level implicit sequence.
[0094] Hence the total number of codewords in a codeword block of a GIT that has MimN number of codewords on the Nth implicit sequence is,
[0095] Steps 1 through 4 outlined above determine the number of codewords necessary on each level of the code constructed according to the GIT technique by placing supporting codewords when necessary in the codeword block. Note that the supporting codewords are partially used to complete flipping of all codewords that are counted in the simulation. It is also seen that the supporting codewords are not extended up to higher levels thereby maintaining a reasonable number of codewords at every level of the resulting codeword block. However, it is noticed that in continuous transmission, supporting codewords of any kth codeword block can becompleted in the immediately following (k +l)th codeword block and be used in the error probability analysis. Hence in practice, only the last codeword block will need to use supporting codewords when necessary. Upon building a codeword block, the flipping can begin from the Nth level implicit sequence and move gradually up to the explicit sequence by flipping the chosen bits as described before.
[0096] For simplicity, we consider the same code is used with the same parameters on all sequences of the GIT. Specifically, we assume, CEX = Cimi = C, nEx = nimi = n, i = 1, 2, ...N , and IEX = limi = 1, i = 1, 2, ...(N-l). Let us first summarize the decoding of ITBF and ITCD techniques described earlier in the present disclosure, when both the explicit and the implicit sequences employ LDPC codes, using the following steps:1. Initial decode every explicit codeword as a punctured code by puncturing its chosen bits. This initial decoding provides likelihood values, Li, i = 1, 2, . . . , 1, of the 1 chosen bits of every codeword of the explicit sequence. A pre-selected number of iterations or the gradual initial decoding (GID) technique as discussed earlier in the disclosure that performs better than using a fixed number of initial iterations, can be used in the initial decoding.2. Hard decode the received signal values yi, i = 1, 2, ..., 1, corresponding to the 1 chosen bits.3. Compare the hard decoded received signal values with the signs of the likelihood values obtained in the initial decoding of the 1 chosen bits and determine whether each chosen bit is likely to have been flipped or not before transmission.4. According to the decisions made in step 3, correct the channel information values corresponding to the chosen bits obtained from the received signal to match the encoded sequence before flipping.5. In ITBF, decode the explicit code as a full code by also considering the corrected channel information values obtained in step 4 for the chosen bits. In ITCD, continue decoding as in parallel CPCD described earlier in the disclosure by considering two punctured codes; (a) the punctured code used in the initial decoding, and (b) the punctured code formed by the message bits and the corrected chosen bits found in step 4.6. Extract artificially created channel information values for the 1 coded bits of the implicit sequence that were responsible in deciding whether to flip or not each of the chosen bits at the transmitter, as described earlier in the disclosure.
[0097] It follows from the above decoding steps that when an explicit codeword is decoded, artificially created channel information values of 1 number of coded bits of an implicit sequence can also be extracted. It is further noticed that artificially created channel information values are noisy similar to the channel information values extracted from a received signal that has propagated over a channel. All six steps outlined above are collectively referred to as implicit decoding and represented by an implicit decoder block (IDB) in this disclosure. Therefore, an IDB, that takes in the channel information, Lch(i), i = 1, 2, . . . , n, of a n-bit long explicit codeword that has been flipped over a segment of 1 bits according to 1 coded bits of an implicit sequence, can decode that explicit codeword and provide artificially created channel information of those 1 implicit coded bits of the implicit sequence that were responsible for flipping the chosen bits of the explicit codeword. In general, an IDB can decode a n-bit long codeword x that has undergone flipping over a portion of 1 coded bits according to 1 bits of a second coded sequence y prior to transmission, to generate the decoded codeword x and provide artificially created channel information of 1 coded bits of y, L(y), as illustrated in FIG. 10. When an IDB decodes a codeword that has not undergone any flipping, it functions as a normal LDPC decoder.
[0098] In GIT decoding, the same decoding method outlined in steps 1 through 6 and represented concisely by an IDB, is repeatedly employed to decode all codewords at every level. FIG. 11 shows the general structure of a decoder employed in a GIT to decode all codewords at every level. Specifically, the following decoding steps are used:1. Employ an IDB for each codeword on the explicit sequence. This can be implemented either by passing all codewords of the explicit sequence in a codeword block serially through a single IDB or employing multiple IDBs to decode all codewords of the explicit sequence in parallel. This decoding provides the decoded codewords of the explicit sequence and artificially created channel information values of coded bits of the 1st level implicit sequence.2. Decode codewords on the implicit sequences sequentially starting from the 1 st level implicit sequence down to the (N - l)th level implicit sequence by following the same approach used in the decoding of the codewords on the explicit sequence. Specifically, once artificially created channel information values of all coded bits of a codeword of any ith level implicit sequence are available, pass it through an IDB to decode that codeword on that ith level implicit sequence and to provide artificially created channel information values of the corresponding hmi coded bits of the (i + l)th level implicit sequence, i = 1, 2, . . . , (N - 1).3. Once all artificially created channel information values of coded bits of a codeword on the Nth level implicit sequence are available, decode that codeword using any known method of decoding. Preferably, decode each codeword of the Nth level implicit sequence either as a full code using standard decoding or decode it as in CPCD by splitting parity bits to form multiple punctured codes. It is finally noticed that, decoding can be structured in a way that decoding of lower level codewords can start decoding as soon as artificially created channel information values of codewords become available without waiting for the decoding of all codewords of the immediately higher level complete their decoding.
[0099] Let us consider the decoding of the codeword block shown in FIG. 9. FIG. 12 illustrates the decoding of all codewords in a codeword block shown in FIG. 9. The received signal corresponding to all 16 explicit codewords that have been flipped are passed through either a single IDB in a serial manner as illustrated in FIG. 11, or 16 different IDBs, IDBEx(i), i = 1, 2, . . . , 16, in parallel as illustrated in FIG. 12. Note that the received signal corresponding to each transmitted codeword consists of four segments. For example, the four segments corresponding to the first transmitted explicit codeword are: {cl, c2, c3, (c4 © bl)}, and those of the fourth transmitted explicit codeword are: {cl3, cl4, cl5, (cl6 ©b4 ©al)}. Each IDBEX(I), i = 1, 2, . . . , 16, provides the ith decoded explicit codeword if' Ex(i) and artificially created channel information of a fourth of a codeword on the 1st level implicit sequence. Additionally, every fourth IDBEX(I) provides artificially created channel information of a fourth of the codeword on the 2nd level implicit sequence too. The specific segments of the artificially created channel information values of the 1st level implicit codewords have been identified in FIG. 12. Once artificially created channel information values of all coded bits of a codeword on the 1st level implicit sequence becomes available, that codeword is similarly decoded using an IDB to obtain the decoded codeword if' imi(j) of that jth 1st level coded implicit sequence as illustrated in FIG. 12. Since there are four codewords on the 1st level implicit sequence, 4 IDBs, identified as IDBimi (j), j = 1, 2, 3, 4, are employed as illustrated in FIG. 12. These four IDBs on the 1st level implicit sequence decode the four codewords on the 1st level implicit sequence to obtain the decoded codewords denoted by vimi(l), ..., vimi(4) as in FIG. 12 and to provide all artificially created channel information values of the codeword on the 2nd level implicit sequence. Finally, the 2nd level implicit codeword is decoded using the artificially created channel information values provided by all four codewords of the 1st level implicit sequence. It is seen that the decoding starts from the codewords of the explicit sequence, followed by the decoding of codewords on the 1st level implicit sequence and then to thedecoding of the codeword of the 2nd level implicit sequence to obtain the 2nd level decoded sequence vim2 .
[0100] So far in the present disclosure, the focus was to demonstrate that multiple independent implicit coded sequences can transmit their information implicitly (without actually transmitting over the channel) while transmitting a single coded explicit sequence over the channel. Therefore, in the disclosure above, all sequences were considered to be functioning independently. It was also demonstrated that a code constructed according to the GIT technique with a single coded explicit sequence and any number of N independent coded implicit sequences constructed using a rate R code can maintain performance similar to that of a rate R code in isolation on the explicit sequence and on each of the N implicit sequences.
[0101] We next consider the explicit sequence and all N implicit sequences jointly as a single code which is referred to here as a GIT coding scheme, or a GIT coded scheme, or simply as a GIT scheme. By considering the information carried by the explicit sequence and also the information carried by all N implicit sequences, we first introduce an overall code rate Roverail for a GIT coding scheme. Note also that a GIT coding scheme with overall rate Roverail functions just like a regular code with code rate Roverail and transmits, on average, Roverail message bits for every bit transmitted over the channel. Note that part of that information is carried explicitly by the explicit sequence transmitted over the channel while the remainder of that information is carried implicitly by the N implicit sequences. In the discussion that follows, we analyze GIT coding schemes and explain how GIT coding schemes inherently possess a coding gain due to the transmission of information implicitly over multiple implicit sequences. A simple way to convert an existing code into a powerful GIT coding scheme is also presented. It is demonstrated that due to the inherent coding gain, GIT coding schemes can reach data rates well beyond the rates that are allowed by the well-known Shannon limit.
[0102] We next analyze GIT coding schemes in detail. We first introduce an overall code rate, Roverail, for a GIT coding scheme taking into account the total information carried by the explicit sequence and all implicit sequences. Then we examine the variation of Roverail with the number of implicit sequences N. We also explain why a GIT coding scheme inherently possesses a coding gain due to the transmission of information implicitly.
[0103] In order to analyze the overall code rate of a GIT scheme, let us denote the following quantities: (a) the code rate of the explicit code by REX, (b) the code rate of the implicit code of the ith level implicit sequence by Rimi , i = 1, 2, ,...,N, (c) the code rate of the punctured code employed during the initial decoding of the explicit sequence by RPEX, and (d) the code rate of the punctured code employed during the initial decoding of the ith level implicit sequence byRpimi , i = 1, 2, ..., (N -1). In order to find Roverail, let us focus on (i) the number of message bits transmitted when a single codeword of every sequence is transmitted (explicitly or implicitly), and (ii)how the transmission rate on the implicit sequences 1 through N varies compared with that of the explicit sequence. First we make the following observations:• 0 < REX< RPEX < 1 of the explicit sequence. Similarly, 0 < Rimi< RPimi< 1, i = 1, 2, . . ., (N - 1) of every ith implicit sequence• the number of message bits transmitted by an explicit codeword is niEx = nEx REX• the number of chosen bits used by a codeword on the explicit sequence is 1EX= (nEx - nEx REX / RPEX ) = nEx(l_REX / RPEX )• the number of message bits implicitly transmitted by a codeword on the ith level implicit sequence when all its coded bits are fed to the (i-l)th level implicit sequence to control flipping of the chosen bits of codewords on the (i - 1 )th implicit sequence is rnimi = nimi Rimi• the number of chosen bits used by a codeword on the ith level implicit sequence limi = (nimi -nimi Rlmi / Rplmi) = nimi(l “ Rlmi / Rplmi), i =1, 2, . . . , (N - 1)• the rate at which the coded bits of the ith level implicit sequence are used compared with the rate of transmission of the explicit sequence is Pi = (IEX / HEX) ( Hy limj / nimj) for i = 2, 3, ...,N and Pi = IEX / HEX.
[0104] Therefore, considering the total number of message bits transmitted (explicitly or implicitly) for every nEx bit long flipped explicit codeword transmitted over the channel, the overall code rate of a GIT coding scheme Roverail can be expressed asSpecial case:
[0105] Let us consider the special case when all levels use the same code and the same parameters. In this special case, let nEx = nimi = n, REX= Rimi = R for i = 1, 2, ,...,N, 1EX= limi = 1, and RPEX = Rpimi = RP, for i = 1, 2, . . . , (N -1). Noticing that the transmission rate gradually decreases from the explicit sequence down to the Nth level implicit sequence by a factor 1 / n, the actual achievable overall code rate Roverail of a GIT coding scheme with N implicitsequences in this special case reduces to. It follows from the above equation, the maximum achievable Roverail value as N — > co is(Ro verall)max Rn / (n - 1) = Rp. Therefore, regardless of how low we choose the rate of theindividual codes R to be, a GIT coding scheme under this special case allows the overall rate Roverail to be almost equal to Rp. For example, if R = 0.05 and Rp= 0.5, the resulting GIT can maintain very good performance since the rate of the individual codes, R, is very low, while functioning almost as a rate 1 / 2 code by employing multiple levels of implicit sequences. Due to the simplicity of analyzing, the GIT schemes here are primarily presented under this special case. This case is referred back to as the special case throughout the remainder of this disclosure. However, it is understood that the explicit sequence and different implicit sequences can employ different code rates and different values of 1 / n depending on the situation.
[0106] FIG. 13 shows how Roverail in varies with the number of implicit sequences N in the following four GID coding schemes constructed with a code that has codeword length n = 120 under the special case:• Scheme 1 : R = 0.5, 1 = 43, Rp= 0.779• Scheme 2: R = 0.25, 1 = 81, Rp= 0.769• Scheme 3: R = 0.2, 1 = 91, Rp= 0.823• Scheme 4: R = 0.1, 1 = 107, Rp= 0.923
[0107] FIG. 13 also depicts that the numbers of implicit sequences N needed for scheme 1, scheme 2, scheme 3 and scheme 4 to reach the Roverail values 0.75, 0.75, 0.8, 0.9, are given by N = 3, N = 9, N = 12 and N = 31, respectively.
[0108] It follows from FIG. 13 that:1. a GIT scheme can approach its respective (Roveraii)max value as the number of implicit sequences N increases.2. the number of implicit sequences N required to reach (Roveraii)max increases as the 1 / n ratio increases. It is seen that as 1 / n gets closer to 1, the number of required implicit sequences to approach (Roveraii)max increases fast.3. at lower values of 1 / n, the explicit sequence usually transmits more information than the information carried by all the implicit sequences collectively. For example, in scheme 1 with N = 3, the implicit sequences collectively can transmit only up to 55.8% of the transmission rate of the explicit sequence.4. at higher values of 1 / n, the implicit sequences collectively can transmit more information than the information carried by the explicit sequence. For example, in scheme 4 with N =31, the implicit sequences collectively transmit 8 times more information than that of the explicit sequence. Looking at it from a different angle, the received signal provides n channel information values for every explicit codeword. The decoder uses those n channel information values, and it additionallycreates on average 8n number of artificially created channel information values for codewords on the 31 implicit sequences in the decoding of the GIT coding scheme 4 with N = 31 as described in this disclosure.
[0109] Let us consider a GIT coding scheme with an explicit sequence and N implicit sequences in the special case. Let us also consider that all sequences of the GIT scheme uses a rate R code and achieves an overall code rate of Roveraii as explained earlier in the disclosure. Therefore, when the explicit sequence transmits a single codeword of the rate R code, on average, the GIT coding scheme transmits (ROveraii / R) number of rate R codewords collectively on the explicit sequence and all N implicit sequences. This implies that all implicit sequences 1 through N of the GIT scheme implicitly transmit on average (Roveraii_R) / R number of rate R codewords for every codeword transmitted on the explicit sequence. It is mentioned here that the percentage increase in the transmission rate can also be expressed using Roveraii and R as q = 100(ROVeraii - R) / R. Recall that none of the implicitly transmitted bits are actually transmitted over the channel. Therefore, implicitly transmitted bits do not require any additional transmitted power and they do not require any additional bandwidth. Therefore, a GIT coding scheme that uses a rate R code on the explicit sequence and all N implicit sequences and functions as a rate Roveraii code, inherently benefits a 10 logl0(ROVeraii / R) dB coding gain. This gain achieved by a GIT coding scheme due to the transmission of information implicitly is referred to here as its inherent coding gain. Note that a GIT coding scheme with overall rate Roveraii functions just like a regular code with code rate Roveraii that transmits, on average, Roveraii message bits for every bit transmitted over the channel.
[0110] In order to better understand the inherent coding gain of a GIT coding scheme, let us examine the performance of a GIT coding scheme in comparison to a traditional coding scheme that employs strictly explicit transmission. Specifically, let us compare the following three codes:• (a) Code A: a traditional code with code rate R = 0.1• (b) Code B: a traditional code with code rate Roveraii = 0.8• (c) Code C: a GIT coded scheme with N implicit sequences, constructed from code A that functions as a rate Roverail =0.8 code and achieves a 10 logl0(ROVeraii / R) = 9 dB inherent coding gainLet us compare the above three codes at the same transmitted power and the same information transfer rate. For the above comparison, let us also assume that the codeword length of codes A and B are both 100 bits long. It is well known that code A performs better than code B due to its higher coding power. In addition, it is also noticed that code A needs to increase thetransmission rate compared with that of code B due to its lower code rate. Specifically, when code B transmits 80 message bits using 100 coded bits, code A needs to transmit 800 coded bits to transmit the same amount of information. This increase in the transmission rate requires code A to demand 8 times higher bandwidth than code B. This observation is in agreement with the well-known understanding that a lower rate code can achieve a higher coding gain than a higher rate code, however, at the expense of bandwidth.[OHl] Now let us compare code A with code C for the transmission of the same number of 80 message bits. Since the GIT coding scheme C is constructed from the rate R = 0.1 code A, in total, both codes A and C transmit 800 coded bits to carry the information contained in 80 message bits. In code A all of those 800 coded bits are transmitted over the channel. However, in the GIT coding scheme C, the explicit sequence would carry only 100 coded bits while the remaining 700 coded bits are carried implicitly over all implicit sequences. Therefore, compared with code A, the transmission rate over the channel of code C is 8 times smaller, thereby making both codes B and C to have the same transmission rate. Hence, both codes B and C have the same bandwidth requirement, while code A demands 8 times more bandwidth. In addition, the slowing of the transmission rate of the GIT coding scheme C compared with code A, increases the effective Eb / NO value of code C by a factor 8 compared to that of code A. This increase in Eb / NO by a factor 8 benefited by the GIT coding scheme C is equivalent to a 9 dB gain over the standard rate 0.1 code A, which results in the above mentioned inherent coding gain. Therefore, code C functions very similar to code A by transmitting a total of 800 coded bits, however, transmitting only 100 coded bits over the channel while transmitting the remaining 700 coded bits implicitly using multiple implicit sequences. However, code C has the following advantages over code A: (a) it completely eliminates the bandwidth expansion of code A compared with code B, and (b) it possesses a 9 dB coding advantage over code A due to the slowing of transmission rate over the channel. On the other hand, code C functions similar to code B as they both function as rate 0.8 codes and transmit 100 coded bits over the channel to transfer the information carried by 80 message bits.
[0112] In general, a GIT coding scheme constructed from a low-rate code with code rate R to achieve an overall code rate ROveraii(> R), as the following advantages: (a) it eliminates the bandwidth expansion of the rate R code when compared with a rate Roverail code, (b) achieves an inherent coding gain of 10 loglO(Roveraii / R) dB, and (c) functions as a rate Roverail code.
[0113] One disadvantage of a GIT coding scheme with an explicit sequence and N implicit sequences that functions as a code with code rate Roverail is that it has to decode (N + 1) levels sequentially starting from the explicit sequence, and then moving down from the 1st levelimplicit sequence down to the last Nth level implicit sequence. This increases the decoding complexity and the decoding delay particularly for codewords on the lower level implicit sequences. Comparing with a traditional rate Roverail code, a GIT coding scheme needs to decode Roveraii / R number of codewords, each with rate R, over the explicit sequence and over all N implicit sequences while the traditional rate Roverail code decodes a single codeword. Therefore, the decoding complexity of a GIT scheme increases by a factor R0Veraii / R when compared with a traditional rate Roverail code. In addition, the decoding delay in a GIT scheme gradually increases from the explicit sequence down to the Nth level implicit sequence. Hence, when using a GIT coding scheme, the most urgent information can be transmitted on the explicit sequence. The remaining information can be selectively fed to different implicit sequences at different levels depending on their urgency as the decoding delay increases gradually from the 1st level implicit sequence down to the Nth level implicit sequence.
[0114] As stated before, it is desirable in the development of GIT coding schemes to start with low-rate codes and employ multiple implicit sequences to generate powerful GIT coding schemes. In this disclosure, we present a method to generate low-rate codes from a currently existing code without separately designing them.
[0115] Traditionally, rate adjustable coding schemes employed in practice are developed by first designing an appropriate lowrate mother code and then employing puncturing to generate other higher rate codes. In some applications, multiple codes are separately designed to be used in different situations. For example, WiFi uses a rate 1 / 2 code and a rate 3 / 4 code, and one of these codes is selected depending on the specific application. Instead of starting from a low- rate code and developing higher rate codes from it by puncturing, we propose to generate a low-rate code starting from a good code with moderate or high code rate. The low-rate codes are constructed here from a higher rate code by using only a selected portion of the message and making the remaining message bits all zeroes, or ones, or any other pre-selected pattern of zeros and ones in the encoding process. For convenience, we consider that the selected portion of the message is forced to be zero in the remainder of this disclosure. For example, consider the rate 1 / 2 WiFi code that has code length 1944. This rate ’A code has 972 message bits and 972 parity bits. Suppose that we use only the first half of the message bits (486 bits) as the actual message and force the remaining 486 message bits to be zero in the encoding. By doing so, we use only 486 message bits out of 1944 coded bits thereby making the code effectively function as a rate 1 / 4 code. Alternatively, we can choose not to even transmit the second half of the message portion knowing that it was forced to be zero in the encoding process, thereby using this code as a rate 1 / 3 code of length (1944-486) = 1458 bits. Further, depending on thesituation, the placement of the zeroes within the message portion, can be selected to obtain the best possible performance. In this disclosure, a low-rate code generated from a moderate rate or a high-rate code by forcing a selected set of message bits to be always zero is referred to as a derived low rate code. It is also seen that by adjusting the number of zero message bits, it is possible to easily adjust the rate of the derived low-rate code. In general, a derived low-rate code can be constructed from a (n, k) code by identifying (< k) number of message bits and forcing them to be zero (or any other pattern of zeros and ones) in the encoding process. Therefore, the resultant derived low-rate code can be used either (a) as a (n, k-k) code Cgenwith code rate R = (k X) / n by including the message portion that was forced to be zero in the transmission, or (b) as a (n- , k- ) code C'genwith code rate (k - ) / (n - X) by excluding the message portion that was forced to be zero in the transmission. This (n - , k - ) code is referred to here as the associate low-rate code C'genof the (n, k - k) derived low-rate code Cgen. Note that both the (n, k-k) derived low-rate code Cgenand the (n - , k - ) associate low-rate code C'gen can be decoded using the decoder of the original (n, k) code.
[0116] Even though the above-described method of constructing a low-rate code may not be the optimal way to design low-rate codes, the construction of derived low-rate codes and their associate low-rate codes can be very helpful in practical applications as it allows a user to convert any already employed code into a low-rate code without changing that already existing encoder or the decoder. Further, as described below, the derived low-rate codes and their corresponding associate codes can be very beneficial in converting an existing coding system of any specific application into a GIT coding system without changing that already selected code in that application and instead simply making a software modification to reflect how that selected code is used according to the designed GIT coding scheme.
[0117] Let us now consider a GIT coding scheme constructed from a (n, k-k) derived low-rate code Cgen and its associate (n- , k - ) low rate code C'gen. Since it is desirable to have a higher number of chosen bits in a GIT scheme, it is desirable to use Cgenon the explicit sequence by considering all or some of the X message bits, that are forced to be zero in the encoding, as part of the chosen bits.
[0118] However, when it comes to the implicit sequences, it is not clear at the first glance whether it is more desirable to use Cgenor C'genon the implicit sequences. On one hand, it is desirable to have a shorter code on the implicit sequences because segments of the coded bits on the implicit sequences are involved in the flipping operations as described earlier in this disclosure.
[0119] Based on that observation, the associate code C'gen, which is shorter than Cgen, is more suitable on all implicit sequences. However, C'genhas only a smaller number of parity bits (equal to (n-k)) compared with that of Cgen(equal to (n-k+X)). Hence, C'gencan maintain only a smaller number of chosen bits compared to the number of chosen bits of Cgen. Specifically, when all message bits that are forced to zero are included within the chosen bits, and the same (1-X) number of chosen bits from the (n-k) parity bits of the original code are used by both Cgen and C'gen, the number of chosen bits of Cgenis 1, whereas the number of chosen bits of C'gen is (1 - ).
[0120] Let us examine the important 1 / n ratio of a GIT scheme that determines the spread of information among different sequences. As stated before, GIT schemes with higher values of 1 / n can transmit more information on implicit sequences than those with lower values of 1 / n, and hence, it is desirable to employ a higher value of 1 / n in a GIT scheme. Clearly, that 1 / n ratio of Cgen is 1 / n, and that of C'gen is (1 - X) / (n - X). Since n > 1, the 1 / n ratio of Cgenis higher than that of C'gen. Hence, considering the 1 / n ratio, it is more suitable to use Cgenfrom the 1st level implicit sequence down to the (N - l)th level implicit sequence. However, it can be shown that, asymptotically, the use of either Cgenor C'gen on the implicit sequences would result in the same maximum overall code rate (Roveraii)max as described below.
[0121] Let us focus on the number codewords transmitted by a GIT coding scheme for every single codeword transmitted over the channel when all implicit sequences employ Cgenand C'gen separately. As discussed in the disclosure earlier, the number of codewords transmitted by a GIT scheme (which includes the explicit sequence and all N implicit sequences) for every codeword transmitted explicitly over the channel approaches 1 / (1 - 1 / n) = n / (n - 1) as N increases, which is equal to n / (n - 1) when Cgenis employed on the explicit sequence and on all implicit sequences. Similarly, when C'gen is used on all implicit sequences, the number of codewords transmitted implicitly for every codeword transmitted implicitly on the 1st level implicit sequence approaches to,(n - A) >_ in - A) (n - A) - 0 - A)=(n - I")
[0122] Further, since the length of a codeword on every implicit sequence when C'gen is employed is (n - A), the number of codewords transmitted implicitly on the 1st level implicit sequence for every codeword transmitted on the explicit sequence which employs Cgenthat has 1 chosen bits is l / (n-X). Therefore, the number of codewords transmitted by a GIT scheme for every single codeword transmitted over the channel when Cgenis employed on the explicit sequence and C'genis employed on all implicit sequences is, as N increases, approaches to
[0123] Therefore, a GIT coding scheme that employs Cgenon the explicit sequence and all implicit sequences, and a GIT coding scheme that employs Cgenon the explicit sequence and C'gen on all implicit sequences approach the same (Roveraii)max value as the number of implicit sequences N increases. Now let us focus on practical values of N. It was seen earlier in the present disclosure that the rate of convergence depends on the value of 1 / n. Specifically, if 1 / n is higher, the rate of convergence is slower, meaning that the GIT scheme would require a higher number of implicit sequences N to get close to the (Roveraii)max. Therefore, GIT schemes that can allow only a limited number of implicit sequences, it is desirable to use C'gen, that has a lower value of the ratio 1 / n, on all implicit sequences and use Cgenon the explicit sequence, than using Cgenon the explicit sequence and all implicit sequences.
[0124] Let us analyze a GIT coding scheme that employs Cgenon the explicit sequence and C'gen on all N implicit sequences. As stated before Cgenhas 1 chosen bits while C'genhas (1 - X) chosen bits. Further, it is recalled that codewords of Cgenare n bits long while those of C'genare (n - X) bits long. Following the asymptotic analysis, the total number of codewords transmitted implicitly by all N implicit sequences for every single codeword transmitted implicitly by the 1st level implicit sequence is,
[0125] Since l / (n - X) number of codewords of the 1st level implicit sequence are transmitted implicitly by the 1st level implicit sequence for every codeword transmitted on the explicit sequence, the total number of codewords transmitted by this GIT coding scheme for every codeword transmitted on the explicit sequence is,
[0126] Therefore, the overall rate of the resulting GIT coding scheme when Cgenis used on the explicit sequence and C'genis used on all N implicit sequences is,
[0127] In practice, the value of N can be chosen to reach the Roverail value obtained according to the above equation to get close to the value of the (Roveraii)max. Allowing N in the aboveequation to reach infinity, (Ro verall)max (k-X) / (n - 1). As stated before, (R overa 11) max can also be found as (R overall)max Rp, where Rpis the rate of the punctured code, which in this case is again (k - ) / (n - 1). Since the Nth level implicit sequence does not experience any flipping, the best option for the Nth level implicit sequence is to use C'gen instead of Cgenregardless of whether the other higher level implicit sequences employ Cgenor C'gen. Hence, if a high number of implicit sequences can be tolerated, Cgencan be used on the explicit sequence and on implicit sequences from levels 1 through (N -1) while using C'genon the Nth level implicit sequence. However, in situations where the number of implicit sequences needs to be limited, it is desirable to use Cgenon the explicit sequence and to use C'genon all implicit sequences. Further if desired, the Nth level implicit sequence can employ the original (n, k) code without any forced zeroes in the message or any other code.
[0128] A GIT coding scheme that employs Cgenand / or C'gendecodes according to the GIT decoding methodology described earlier in the present disclosure. The decoding starts from the explicit sequence using an IDB, and the artificially created channel information values in that decoding is passed to the 1st level implicit sequence. This process is gradually continued from the 1st level implicit sequence down to the Nth level implicit sequence. Both codes Cgenand C'gen can be decoded using the decoder of the original (n, k) code. In the implicit decoding of Cgen or C'gen, the initial decoding step can include all X message bits that were forced to be zero at the encoder, to be considered zero and not puncture them from the beginning of that initial decoding step. In other words, only the (1 - X) chosen bits within the (n-k) parity bits are punctured in the initial decoding step. Further, the correction step within the IDB does not need to include the X bits within the message that were forced to be zero at the encoder. In other words, the correction step within the IDB is needed only for the (1- ) chosen bits within the (n-k) parity bits. The method outlined herein to generate low-rate codes, allows an existing coding scheme with any code rate to be converted into a powerful GIT coding scheme without altering either the currently used encoder or the decoder.
[0129] The present disclosure will now describe an approach for designing a powerful GIT coding scheme or to convert an existing code to function as a powerful GIT coding scheme. In order to reduce complexity, it is highly desirable to use the same code and the same parameters on all sequences of a GIT coding scheme. Therefore, we focus on the design of GIT coding schemes in the special case discussed earlier in the disclosure. In addition, it is highly desirable to design GIT schemes to achieve a very high inherent coding gain 10 loglO(Roveraii / R) discussed earlier in the disclosure. Therefore, we focus on designing GIT schemes starting witha code with a low code rate R, and to generate GIT schemes with a high value of Roverail. For example, let us revisit scheme 4 with R = 0.1, and Roverail = 0.8 considered earlier in the disclosure in the context of FIG. 13. This resulting GIT scheme inherently possess a 9 dB coding gain. This 9 dB inherent coding gain results from the fact that the GIT scheme on average transmits 7 codewords implicitly for every codeword transmitted explicitly over the channel. However, the highest (Roveraii / R) value that can be practically selected depends on how bigger increase in complexity can the system tolerate. As seen from FIG. 13 discussed earlier in the disclosure, the number of required implicit sequences N increases as the value of (Roveraii / R) increases thereby increasing complexity. If a low rate code is not available, it is also possible to start from an existing code with a moderate rate or a high rate and choose a suitable value of to generate a derived low rate code Cgenand its associate derived low-rate code C'genas discussed in the disclosure above.
[0130] Upon selecting a low rate with rate R and choosing a desired Roveraii value, choose a suitable value for Rp, the rate of every punctured code. Recall that the selected Rpvalue has to be bigger than the desired Roveraii value, Rp> Roveraii. Note that once the values of R and Rpare selected, the number of chosen bits 1 will also be known. At that point the specific locations of the chosen bits of a codeword can be selected. Then using equations derived earlier in the disclosure for (when = 0), or (when > 0), select the smallest value of N to ensure that the Roveraii value obtained is higher than the target Roverail rate of the resulting GIT coding scheme.
[0131] Therefore, the design steps can be summarized as:• (a) Select a low-rate code with rate R and a desired code rate for the resulting GIT Scheme Roverail• (b) select a value for the punctured code Rp> Roveraii and select the chosen bits• (c) Use above equations to determine the number of required implicit sequences N
[0132] It is noted that in step (b), if the difference between R and Rpis very large, the resulting GIT scheme, disregarding the inherent coding gain, may undergo some performance degradation compared to that of the rate R code in isolation in order to maintain a high value of Rp. This degradation in performance can be reduced by employing the GID technique discussed earlier in the disclosure. However, when the inherent coding gain is accounted for, the resulting GIT coding scheme is likely to achieve a very high coding gain even though there can be a performance degradation in the GIT scheme when that inherent coding gain is disregarded. Even though the above design strategy is discussed under the special case discussed before, the same strategy with appropriate adjustments can be used to design GIT coding schemes when different sequences employ different code rates and different 1 / n values.
[0133] Encryption of information is a well-known technique that is widely used to secure information in digital transmission and in digital storage systems. An encryption method uses scrambling according to a specific scrambling algorithm chosen by that specific encryption method. In an encrypted data transmission system, every user uses his own secret encryption key to decrypt his message. The encrypted message is transmitted over the channel to enhance security. If an intruder is to somehow access the received signal of a user and decode the transmitted encrypted message, the intruder will still need to know the secret encryption key used by that user in order to recover the original message.
[0134] FIG. 14 illustrates the structure of a traditional communication system that transmits coded information encoded according to a code C, that enhances security by encrypting the message prior to feeding it into the encoder. The system can also use an independent channel interleaver 7tcto further enhance security and to mitigate burst errors that might occur during transmission. If desired the encryption can be replaced by a message interleaver. However, as it is well known, encryption provides better protection than that provided by a simple interleaver. It is noted that, if the coded sequence is Ncbits long, Nc! different channel interleaver policies are available for the user to select one interleaving policy in the channel interleaver 7tc. It is realized that if an intruder who has complete knowledge of the code C accesses the received signal, cannot recover the message without knowing the exact interleaving policy employed by the channel interleaver 7tc, and the secret key used by the user in the encryption process prior to transmission. Therefore, a traditional communication system can enhance security by employing encryption (or a message interleaver) and / or a channel interleaver 7tc in the system. We first present a general technique that can be used to enhance security in any transmission system or in a data storage system. FIG. 15 shows a message reordering unit (MRU) that can take in any number of Ma message signals and output any number of Mb message signals. The re-ordering can be done according to a secret reordering policy with secretly selected integer values Maand Mb to enhance security. In addition, all message signals, both at the input and the output of the MRU can be optionally encrypted as illustrated in FIG. 15. When Mb=l, the MRU functions as a message combining (multiplexing) unit according to a secret combining policy. Similarly, when Ma=l, the MRU functions as a message splitting (de-multiplexing) unit operated according to a secret splitting policy. If desired, any preselected number of independent MRUs can be cascaded to further enhance security. In order for an intruder to recover the message, he needs to know the secret policy employed in every MRU along with the secretly selected Maand Mb values of each MRU, and the encryption key used by every message signal within every MRU. Therefore, increasing thenumber of MRUs makes it harder for an intruder to access the original message thereby enhancing security.
[0135] Now let us examine the security enhancement that can be achieved by using a GIT coding scheme that uses one explicit sequence and N independent implicit sequences. FIG. 16 illustrates a GIT scheme that employs an interleaver to interleave the coded sequence on the explicit sequence and independent interleavers to interleave the coded implicit sequence on every implicit sequence. The purpose of these interleavers is to spread the coded bits including the chosen bits of every codeword on every sequence according to a pre-selected secret interleaving policy. These interleaving policies can vary from channel to channel independently thereby further enhancing security. In order to reduce the decoding delay, these interleavers can preferably be selected to operate on individual codewords. For example, nEx coded bits of every codeword on the explicit sequence can be preferably interleaved according to the selected interleaver 7tEx. Similarly, nlmi coded bits of every codeword on the ith level implicit sequence can be preferably interleaved according to the corresponding interleaver 7timi, i = 1, 2, ...,N. These interleavers can instead be operated on multiple codewords by further enhancing security, however, at the expense of decoding delay. As shown in FIG. 16, interleaving is performed prior to flipping of the chosen bits that occur in a GIT scheme. Recalling the previous description of a GIT, flipping of chosen bits starts from the (N - l)th level coded implicit sequence according to the Nth level coded implicit sequence, and gradually moves up to higher sequences to finally flip the chosen bits of the explicit sequence according to the 1 st level coded implicit sequence. With the presence of interleavers, flipping of bits needs to incorporate the effect of the interleavers. Specifically, the llmi chosen bits of a codeword on the ith level coded interleaved implicit sequence are flipped according to llmi number of bits of the (i+l)th level coded interleaved implicit sequence as illustrated in FIG. 17, i = (N -1), (N -2), ..., 1. The implicit encoder block (IEB), shown in Figs. 7 and 8, employed on the ith level implicit sequence can be modified to incorporate the impact of the interleavers 7tlmi and 7tlmi+l employed on the ith level implicit sequence and on the (i + l)th implicit sequence respectively. Finally, lEx chosen bits of a codeword of the coded interleaved explicit sequence are similarly flipped according to 1EXnumber of bits of the 1st level coded interleaved implicit sequence.
[0136] At the decoder, the received channel information values corresponding to one transmitted codeword are de-interleaved according to TI^X , to reverse the effects of interleaving on the explicit sequence performed by TTFX. This de-ineterleaved sequence is implicitly decoded using an implicit decoding block (IDB) shown in Figs. 10 and 11 to obtain thatdecoded explicit codeword and to obtain lEx number of artificially created channel information values of the corresponding lEx number of bits (that were responsible for flipping of the chosen bits of that codeword at the encoder) on the 1st level coded interleaved implicit sequence as shown in FIG. 18. These artificially created channel information values are then de-interleaved according to undo the effects of interleaving that was performed at the encoder on the 1st level implicit sequence by 7iIml. Once all artificially created channel information values of a codeword of the de-interleaved sequence of the 1st level implicit sequence become available, that codeword is implicitly decoded using an IDB to decode that codeword of the implicit sequence and to generate artificially created channel information values of 11ml number of coded bits of the 2nd level interleaved coded implicit sequence. The same process is then gradually continued down from the 1st level implicit sequence down to the (N - l)th level implicit sequence. Finally, the de-interleaved artificially created channel information values of a codeword on the Nth level implicit sequence are used to decode that codeword on the Nth level implicit sequence using any preferable decoding method. The GIT scheme enables the use of interleavers to securely transmit sensitive information. In a structure where only a fewer number of interleavers can be applied to the system, it is preferable to apply interleavers to the explicit sequence and higher level implicit sequences where artificially created channel information along with chosen bits are interleaved. Specifically, if interleaving is initiated at the explicit sequence level, and the intruder is unaware of the use of interleavers, applying the interleaver at the explicit sequence (or even at the 1st level implicit sequence), ensures the protection of all lower level information as the decoding begins at the explicit level, preventing unauthorized access to information on all levels of the transmission. The application of a limited number of encryptors can yield effective results in a similar manner.
[0137] Considering that all interleavers in FIG. 16 are designed on the basis of individual codewords (to reduce decoding delay), the number of different ways to select all interleavers shown in FIG. 16, Nint, is
[0138] Therefore, a user can select a set of interleavers shown in FIG. 16 by choosing one of the options among all possible Nint number of interleaver combinations. Therefore, in order for an intruder to recover the original message back he needs to know the exact interleaving policy of each interleaver by searching through Nint number of possible interleaver selections. It is also seen that Nint can be increased by an interleaver over multiple codewords (instead of singlecodewords as used in the above equation), however, at the expense of decoding delay. It is also noted that any number of MRUs can be used with the structure shown in FIG. 16. However, the last MRU should use Mb = (N +1) to be used with a GIT that employs an explicit sequence and N implicit sequences. It is further noticed that the level of security of the structure shown in FIG. 16 increases gradually from the message on the explicit sequence down to the message on the Nth implicit sequence. Therefore, in an application that employs a structure shown in FIG. 16, can deploy the most secretive information on the Nth level implicit sequence.
[0139] Now let us examine what an intruder needs to know in order to recover the message:1. The channel interleaving policy 7tc2. The interleaving policy used on the explicit sequence 7tEx and the interleaving policy used on every ith implicit sequence 7tlmi , i = 1, 2, ...,N.3. The message reordering policy used in every MRU4. The encryption key used by every encrypted message signal in every MRU5. In addition, the intruder also needs to know the entire GIT coding structure, which includes, the details of the code, the values of N, bx, limi , i = 1, 2, ..., (N - 1), , and the locations of all chosen bits on the explicit sequence and on every ith implicit sequence, i = 1, 2, ..., (N - 1).
[0140] Therefore, it is seen that the use of GIT alone makes it significantly harder for an intruder to access information. Further, the GIT structure can be used in a highly secure manner by further increasing the value of Nint.
[0141] As explained before, GIT can improve performance and enhance security in a communication system. Such applications include data storage systems too. Due to hacking, it is critically important to securely store sensitive information. Due to the expanding usage of digital information formats, sensitive information is stored and transmitted in a variety of applications such as patient information in hospitals, customer information in banks, employee information in offices etc. Due to its improved performance and enhanced security, GIT can be very beneficial in storing and transmitting sensitive information. Further, as stated before, the lowest level of a GIT constructed using any N number of implicit sequences, offers the highest level of security. Therefore, the most sensitive information can be fed into the lowest (Nth) level implicit sequence or into several pre-selected lower-level implicit sequences. When a GIT is used to enhance security, the information is encoded according to the GIT technology using any desired number of encryptors and interleavers as shown in FIG. 16. In a storage system, only the explicit sequence is stored while in a transmission system, only the explicit sequence is transmitted.
[0142] The GIT technique can also be used to transmit data without first transmitting control information (also known as the header) over the channel. The control information usually needs to be transmitted with high precision in a secure manner as it contains information related to the origination and destination. In 5G, the control information is transmitted using Polar codes to improve reliability while data is transmitted using LDPC codes. However, when GIT is used, the control information can be transmitted on the implicit sequences, preferably at lower levels with enhanced security. Consider how a GIT scheme with N implicit sequences can transmit information of user A and move to transmitting information of user B without transmitting the control information of user B over the channel. During transmission of information of user A, the GIT can generate multiple encoder blocks depending on the length of user A’s information. These encoder blocks can be generated using the generalized encoder block construction (GEBC) method described before and joining consecutive encoder blocks to avoid using supporting codewords in the middle encoder blocks and placing supporting codewords when necessary only in the last encoder block. For convenience, the supporting codewords that the last encoder block of a user can be made all zeros. When switching from user A to user B, the control information of user B can be included on the lower level implicit sequences of the last encoder block of user A. This control information can also include information related to the GIT technique, such as the value of N, lambda, encryption keys, interleaver information, etc. that user B intends to use next. Therefore, B can start transmitting its data starting from the very next encoder block. Therefore, the control information and information related to the GIT of the next user (such as user B) can be placed on the lower-level implicit sequences of the last encoder block of the previous user (such as user A) avoiding separate transmission of the control information over the channel. Since the lower-level implicit sequences are used to transmit data, except in the last encoder block, a pre-selected number of bits can used on those selected lower level implicit sequences (preferably at the beginning of those sequences) of every encoder block simply to identify whether those lower level implicit sequences are transmitting data or control information. For example, those pre-selected bits of those selected lower-level implicit sequences can be made zero (or one), when that encoder block is transmitting data on those lower level implicit sequences, and making those pre-selected bits of those selected lower level implicit sequences one (or zero) when those lower level implicit sequences of an encoder block are used to transmit control information. Once the receiver identifies that any current codeword block is transmitting control information on the selected lower level implicit sequences, the receiver can disregard all supporting codewords of that codeword block. However, both the encoder and the decoder need to agree on the GITtechnique for the initial codeword block of the very first user. It is possible that the very first codeword block to carry information of the GIT technique of the following codeword blocks in their selected lower level implicit sequences. The same approach can also be used to switch the GIT technique when necessary, depending on the type of information transmitted. For example, if the information that is transmitted next is sensitive and needs a higher level of accuracy and protection, the GIT technique can be switched to a more secure GIT format preferably with a higher number of implicit sequences with encryptors on all sequences and feeding the most sensitive information into the lower level implicit sequences. This approach eliminates the need to transmit the control information separately over the channel. It also allows switching into different types of GIT formats depending on the need and passing the information related to the switched GIT format on the lower-level implicit sequences in the immediately previous codeword block.
[0143] While the disclosed technology is at times described above in the context of LDPC codes, it will be understood that the disclosed technology can also be applied to quantum LDPC codes.CONCLUSION
[0144] Example embodiments of the disclosed innovations have been described above. Those skilled in the art will understand, however, that changes and modifications may be made to the embodiments described without departing from the true scope and spirit of the present invention, which will be defined by claims.
Claims
CLAIMSWhat is claimed is:
1. A method for transmitting a plurality of sequences over a communication channel, the method comprising: encoding an explicit sequence and one or more implicit sequences independently, wherein the explicit sequence is encoded into a first set of codewords, and each implicit sequence is encoded into subsequent sets of codewords; flipping selected bits of the explicit sequence’s codewords based on a block of coded bits from a first level implicit sequence; sequentially flipping selected bits of each ith level implicit sequence’ s codewords based on a block of coded bits from a (i + l)th level implicit sequence, where i=l,2, .. ,,N-1; transmitting the flipped explicit sequence over the communication channel; at the receiver, decoding the explicit sequence to retrieve the first set of codewords; generating artificial channel information values for the first level implicit sequence during the decoding of the explicit sequence; and sequentially decoding each ith level implicit sequence’s codewords using the artificial channel information generated from the immediately higher level implicit sequence’s codewords, where i=l,2,...,N, to recover the transmitted implicit sequences.
2. A system for transmitting and decoding sequences over a communication channel, the system comprising: an encoding module configured to: encode an explicit sequence and a plurality of implicit sequences independently, wherein each implicit sequence corresponds to a specific level; flip selected bits of the codewords of the explicit sequence using coded bits from a first level implicit sequence; sequentially flip selected bits of each ith level implicit sequence using coded bits from a (i + l)th level implicit sequence, where i=l,2, .. ,,N-1; and transmit the flipped explicit sequence over the communication channel; and a decoding module configured to: decode the flipped explicit sequence to retrieve the explicit sequence codewords; generate artificial channel information values for the first level implicit sequence during decoding of the explicit sequence; andsequentially decode each ith level implicit sequence using artificial channel information generated from the codewords of the immediately higher level implicit sequence, where i=l,2, . . . ,N.
Citation Information
Patent Citations
Bit flipping decoding method of LDPC (Low Density Parity Check) code based on matching pursuit
CN115459785A
Simultaneous packet transmission for 5G systems
US11616634B1
LDPC Decoder Apparatus, Device, System, Method and Computer Program
US20210399744A1
Bit flipping low-density parity-check decoders with low error floor
US20220255561A1