The present invention relates to a transmitter for a communications network and a method of transmitting data in a communications network.
Modern communication systems use Forward Error Correction (FEC) codes in an attempt to convey information more reliably through channels with random events. One such FEC error control system uses low density parity check (LDPC) codes. LDPC codes can have error correcting capabilities that rival the performance of “Turbo-Codes” and can be applicable over a wide range of statistical channels.
Low-Density parity check (LDPC) codes are a class of linear block codes, which provide near-capacity performance on a large set of data transmission and storage channels. These codes have proven to be serious competitors to turbo codes in terms of their error correcting performance. Also, LDPC codes exhibit an asymptotically better performance than turbo codes and also admit a better trade-off between performance and decoding complexity.
By taking into account the density evolution of messages passed in belief propagation decoding, random constructions of irregular LDPC codes can be developed that approach Shannon limits for an assortment of channels (e.g. Additive White Gaussian Noise (AWGN), Binary Erasure Channel (BEC), Binary Symmetric Channel (BSC)). These are typically described as ensembles with variable and check edge polynomials
respectively, where λi and ρj are the fraction of total edges connected to variable and check nodes of degree i=2, 3, . . . , d1 and j=2, 3, . . . , dr respectively.
Thus, some random irregular LDPC constructions based upon edge ensemble designs have error correcting capabilities measured in Bit Error Rate (BER) that are within 0.05 dB of the rate-distorted Shannon limit. Unfortunately, these LPDC code constructions often require long codeword constructions (on the order of 106 to 107 bits) in order to achieve these error rates. Despite good BER performance, these random code constructions often have poor Block Error Rate (BLER) performances required by packet-based communication systems. Therefore, these random constructions typically do not lend themselves well to packet-based communication systems. In actual communication terminals, these random constructions can require storage of the entire parity-check matrix, and for systems employing variable packet-length, the storage of multiple random constructions is both necessary and costly.
Another disadvantage of random constructions based on edge distribution ensembles is that, for each codeword length, a separate random construction is needed. Thus, communication systems employing variable block sizes (e.g. TCP/IP systems) require multiple code definitions. Such multiple code definitions can consume a significant amount of non-volatile memory for large combinations of codeword lengths and code rates.
As an alternative to random LDPC constructions, structured LDPC constructions typically rely on a general algorithmic approach to constructing LDPC matrices which often requires much less non-volatile memory than random constructions. One such structured approach is based upon array codes. This approach can exhibit improved error performance (both BER and BLER performance) and a relatively low error floor for relatively high code rates (higher than 0.85). However, for code rates below 0.85, these code constructions have relatively poor performance with respect to irregular random constructions designed for lower code rates. One reason for this poor performance can be that their constructions are typically based on code ensembles that have poor asymptotic performances despite being an irregular construction.
One challenge therefore is to design irregular structured LDPC codes that have good overall error performance for a wide range of code rates with attractive storage requirements. Such resulting LDPC codes would provide a better performing communication system with lower cost terminals. These factors can make such FEC attractive for applications over a wide range of products, including but not limited to, wireless LAN systems, next generation cellular systems, and ultra wide band systems.
With all the advantages that LDPC codes offer, one major criticism concerning LDPC codes has been their high encoding complexity. Whereas turbo codes can be encoded in linear time, a straightforward encoder implementation of LDPC codes has complexity quadratic in the block length.
Recently, new means of constructing LDPC codes have emerged as described by V. Stolpman in “Irregular Structured Low-Density Parity-Check (LDPC) Codes” a recently filed US patent application claiming priority from U.S. Patent Application No. 60/599,283, filed Aug. 6, 2004, V. Stolpman, J. Zhang, N. van Waes, “Irregular Structured Low-Density Parity-Check (LDPC) Codes,” document submitted to IEEE802.16 ad hoc group, Aug. 6, 2004, and P. Joo, et al., “LDPC coding for OFDMA PHY,” IEEE C802.16d-04/86r1, http://ieee802.org/16, May 2004 (the first two references are hereinafter referred to as V. Stolpman et al). Irregular structured codes based on a shifted identity matrix have gained increasing popularity due to reduced storage and ease of decoder implementation
These consist of using smaller “seed” matrices to be expanded into larger parity-check matrices using a set of “spreading” permutation matrices. The seed matrices can be small binary matrices to be used with a rule-based exponential to select the spreading permutation matrices that construct sub-matrices within the expanded LDPC matrix, or seed matrices may consist of exponentials that define the shift indices of the sub-matrices within the expanded LDPC matrix. Benefits associated with these structured LDPC codes include all the advantages of a modular code-construction approach along with the possibility of layered belief propagation decoding that allows for implementations that speed convergence time and reduce the number of iterations (see, for example, M. M. Mansour and N. R. Shanbhag, “Turbo decoder architectures for low-density parity check codes,” IEEE Global Comm. Conf. (GLOBECOM), November 2002, pp. 1383-1388; M. M. Mansour and N. R. Shanbhag, “Low power VLSI architectures for LDPC codes,” in 2002 International Low Power Electronics and Design, 2002, pp. 284-289; D. E. Hocevar, “LDPC code construction with flexible hardware implementation,” Proc.: IEEE Int'l Conf. On Comm. (ICC), Anchorage, Ak., May 2003; and M. M. Mansour and N. R. Shanbhag, “High-Throughput LDPC Decoders,” IEEE Trans. On VLSI Systems, vol. 11, No. 6, pp. 976-996, December 2003).
A novel encoding approach has been proposed by T. J. Richardson, and R. L. Urbanke, “Efficient Encoding of Low-Density Parity-Check Codes,” IEEE Transactions on Information Theory, vol. 47, pp. 638-656, February 2001 (hereinafter referred to as Richardson and Urbanke), which greatly reduces the encoding complexity of the LDPC codes by first bringing the LDPC parity check matrix into an approximate lower triangular form and then exploiting the structure of this transformed parity check matrix to achieve near linear encoding complexity.
The encoding algorithm proposed by Richardson and Urbanke reduces the encoding complexity for LDPC codes from quadratic to near linear complexity. It was shown by Richardson and Urbanke that the encoding complexity is upper bounded by (n+g2) where n is the code length and g is a measure of the “distance” between the LDPC parity check matrix and a lower triangular matrix.
There is an on going need design transmitters for communications networks which are reduced in complexity in terms of their hardware, which are reduced in complexity in terms of their software, and which are highly efficient at encoding and transmitting data at high rates with low errors. Such transmitters have been previously designed to utilize the aforementioned encoding algorithms. However, these transmitters are still too complex. It is therefore an aim of the present invention to provide a transmitter which is reduced in complexity compared to previous transmitters in terms of both hardware and software, and which is more efficient at encoding and transmitting data at high rates with low errors.
According to a first aspect of the present invention there is provided a transmitter for a communications network, the transmitter comprising: receiving means for receiving data; accessing means for accessing a parity check code; generating means for generating encoded data including an error correction codeword using the data and the parity check code; and transmitting means for transmitting the encoded data and the error correction codeword, wherein the parity check code comprises a parity check matrix which, in expanded form, can be represented by the matrix H having the general structure
wherein A, B, T, C, D and E represent sub-matrices, ET−1B being equal to the null matrix, the generating means comprising summing circuitry arranged to receive matrix elements ET−1A and C to generate a sum, and matrix multiplication circuitry for receiving the sum, a matrix element D−1 and a matrix sT comprising the data, the matrix multiplication circuitry being operable to generate a parity part p1T of the error correction codeword according to the formula
p1T=−D−1(−ET−1A+C)sT.
According to another aspect of the present invention there is provided a method of transmitting data in a communications network, the method comprising the steps of: receiving data; accessing a parity check code; generating encoded data including an error correction codeword using the data and the parity check code; and transmitting the encoded data and the error correction codeword, wherein the parity check code comprises a parity check matrix which, in expanded form, can be represented by the matrix H having the general structure
wherein A, B, T, C, D and E represent sub-matrices and where ET−1B is equal to the null matrix, the step of generating the error correction codeword including supplying selected elements of the matrix H to logic circuitry which includes summing circuitry for summing matrix elements ET−1A and C to generate a sum and matrix multiplication circuitry for receiving the sum, the matrix element D−1 and a matrix sT comprising the data thereby to generate a parity part p1T according to the formula
p1T=−D−1(−ET−1A+C)sT.
Embodiments of the present invention are designed to use a new class of irregular structured LDPC codes based on those disclosed by V. Stolpman et al and exploiting the encoder structure disclosed by Richardson and Urbanke to achieve reduction in encoding complexity without sacrificing performance. Embodiments of the present invention are based upon the observation that the structured LDPC codes proposed by V. Stolpman et al have an even stronger structure than is assumed by Richardson and Urbanke. In particular, the previous codes have been simplified by modifying them such that ET−1B is equal to the null matrix. Such a modification has enabled the present inventors to design a new transmitter arrangement which is reduced in complexity compared to previous transmitters in terms of both hardware and software, and which is more efficient at encoding and transmitting data at high rates with low errors.
The reduction in complexity is achieved by effectively reducing the number of matrix multiplications required to generate the code and reduce the number of matrix multiplications required to use the code in order to generate codewords. The matrices involved in the multiplications may have a size of the order 108×108, for example. By avoiding multiplications involving large matrices, processing time is reduced.
Furthermore, the hardware for implementing the code may also be simplified by reducing the number of XOR and AND gates required for binary matrix multiplication (for example, by a few hundred ASIC gates). Embodiments of the present invention can lead to an approximately 20% reduction in terms of hardware area.
According to another aspect of the present invention there is provided a parity check code comprising a parity check matrix which, in expanded form, can be represented by the matrix H having the general structure
wherein A, B, T, C, D and E represent sub-matrices and wherein ET−1B is equal to the null matrix.
Preferably, the code comprises a seed matrix HSEED and a spreading matrix PSPREAD. Further reduction in complexity is achieved by operating at the seed matrix level without expanding to the full parity check matrix.
According to another aspect of the present invention there is provided an electronic device, comprising: a processor; and a memory unit operative connected to the processor and including the parity check code described above.
According to another aspect of the present invention there is provided a communications system comprising a transmitter and a receiver, and including the parity check code described above for encoding and transmitting data between the transmitter and receiver.
According to another aspect of the present invention there is provided a network element comprising the parity check code described above.
According to another aspect of the present invention there is provided a computer program product comprising the parity check code described above.
According to another aspect of the present invention there is provided a method of generating an error correction code, the method comprising: providing a parity check matrix which, in expanded form, can be represented by the matrix H having the general structure
wherein A, B, T, C, D and E represent sub-matrices; and modifying H wherein ET−1B is equal to the null matrix.
According to another aspect of the present invention there is provided a method of generating an error correction codeword using a parity check code as described above, wherein the error correction codeword x comprises a systematic parts and parity parts p1 and p2, parity parts p1 and p2 being computed as follows: p1T=−φ−1(−ET−1A+C)sT, and p2T=−T−1(AsT+Bp1T), where φ=−ET−1B+D and ET−1B is equal to the null matrix whereby φ is equal to D.
Embodiments of the present invention utilize a novel method of processing the LDPC code matrix which is more efficient than prior art methods. The inverted matrices φ−1 and T−1 used to calculate the parity parts of the codeword can be pre-calculated and stored in a memory. Therefore, a device does not necessarily have to use the efficient calculation methods for forming these matrices. However, the resultant LDPC codes will have the characteristic that ET−1B is a null matrix and this requirement is used for simplifying the calculations.
Embodiments of the present invention may require hardware components (and possible software components) in both the transmitter and receiver. The transmitter facilitates the encoding of the LDPC code, and the receiver decodes the LDPC code after transmission through a channel.
Embodiments of the present invention provide for an irregularly structured LDPC code ensemble that has strong overall error performance and attractive storage requirements for a large set of codeword lengths. Embodiments of the invention offer communication systems with better performance and lower terminal costs due to the reduction in mandatory non-volatile memory over conventional systems.
These and other objects, advantages and features of the invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein like elements have like numerals throughout the several drawings described below.
Various exemplary embodiments of the invention are described below with reference to the drawing figures. One embodiment of the invention can be described in the general context of method steps, which may be implemented in one embodiment by a program product including computer-executable instructions, such as program code, executed by computers in networked environments. Embodiments of the invention may be implemented in either hardware or software, and can be placed within a transmitter and/or a receiver.
For exemplification, the system 10 shown in
Exemplary communication devices of the system 10 may include, but are not limited to, a mobile telephone 12, a combination PDA and mobile telephone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, and a notebook computer 22. The communication devices may be stationary or mobile as when carried by an individual who is moving. The communication devices may also be located in a mode of transportation including, but not limited to, an automobile, a truck, a taxi, a bus, a boat, an airplane, a bicycle, a motorcycle, etc. Some or all of the communication devices may send and receive calls and messages and communicate with service providers through a wireless connection 25 to a base station 24. The base station 24 may be connected to a network server 26 that allows communication between the mobile telephone network 11 and the Internet 28. The system 10 may include additional communication devices and communication devices of different types. A communication device may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like. One such portable electronic device incorporating a wide variety of features is shown in
The communication devices may communicate using various transmission technologies including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc.
Generally, program modules can include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Software and web implementations of the present invention could be accomplished with standard programming techniques with rule-based logic and other logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps. It should also be noted that the words “component” and “module” as used herein, and in the claims, are intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
Constructing an LDPC Matrix H
As discussed in V. Stolpman et al, an irregular “seed” parity-check matrix can be used as the “seed” for irregular structured LDPC code. In one arrangement, the construction of an irregular “seed” low-density parity check-matrix HSEED of dimension ((NSEED−KSEED)×NSEED) is derived from an edge distribution, λSEED(x) and ρSEED(x), with good asymptotic performance and good girth properties. Good asymptotic performance may be characterized by a good threshold value using belief propagation decoding and good girth may be characterized by having very few if no variable nodes with a girth of 4. This can be accomplished manually or via a software program once given the code ensemble and/or node degrees.
Although there are no limits on the maximum values of KSEED and NSEED, which represent the number of information bits and the resulting codeword length, respectively, for the code defined by HSEED, these values can be relatively small in comparison to the target message-word and codeword length. This can allow for more potential integer multiples of NSEED within the target range of codeword lengths, reduced storage requirements, and simplified code descriptions. In one arrangement, the smallest possible value for HSEED can be used with edge distributions defined by λSEED(x) and ρSEED(x), while still maintaining good girth properties.
One function of the seed matrix can be to identify the location and type of sub-matrices in the expanded LDPC parity-check matrix H constructed from HSEED and a given set of permutation matrices. The permutation matrices in HSEED can determine the location of sub-matrices in the expanded matrix H that contain a permutation matrix of dimension (NSPREAD×NSPREAD) from the given set. One selection within the given set of permutation matrices is defined below. As an example only, the given set of permutation matrices used herein can be finite and consist of the set
{PSPREAD∞, PSPREAD0, PSPREAD1, PSPREAD2, . . . , PSPREADp−1}
where p is a positive integer (a prime number in a preferred embodiment of the invention), PSPREAD0=I is the identity matrix, PSPREAD1 is a full-rank permutation matrix, PSPREAD2=PSPREAD1PSPREAD1, etc. up to PSPREADp−1. One example embodiment of PSPREAD1 is a single circular shift permutation matrix
Another example embodiment of PSPREAD1 is an alternate single circular shift permutation matrix
For notational sake, PSPREAD∞ denotes the all zeros matrix φ of dimension (NSPREAD×NSPREAD) (i.e. PSPREAD∞=0 where every element is a zero), and the zeros in HSEED indicate the location of the sub-matrix PSPREAD∞=0 in the expanded matrix H. Thus, the expanded LDPC matrix H can be of dimension (NSPREAD(NSEED−KSEED)×NSPREADNSEED) with sub-matrices consisting of permutation matrices of dimension (NSPREAD×NSPREAD) raised to an exponential power from the set of {0, 1, . . . , p−1, ∞}.
Furthermore, the expanded LDPC code can have the same edge distribution as HSEED and hence can achieve the desired asymptotic performance described by λSEED(x) and ρSEED(x), provided both HSEED and the expanded matrix H have satisfactory girth properties.
The following description concerns one arrangement that constructs a structured array exponent matrix that may be described as
using modulo arithmetic (but not limited to) of a number p. In one arrangement, p can be a prime number, but this is not necessary for the principles of the present invention. p can be at least the column dimension of the irregular “seed” parity check matrix and the column dimension of the spreading permutation matrix. In one arrangement, NSEED≦p and NSPREAD≦p. However, other values are also possible.
Other arrangements can use transformed versions of EARRAY. In particular, one such transformation involves the shifting of rows to construct an upper triangular matrix while replacing vacated element locations with ∞, i.e.
Another arrangement transforms EARRAY by the truncation of columns and/or rows to select a sub-matrix of EARRAY for implementation with a specified HSEED. Still another arrangement uses the combination of both shifting and truncation. For example, given NSEED+1≦p and NSPREAD≦p (with p being a prime number in a particular arrangement)
For NSEED+2≦p and NSPREAD≦p (with p being a prime number in a particular arrangement)
Many shift and truncate arrangements can be used, as well as column and row permutation transformations performed either prior to or after other individual transformations in a nested fashion. More generally, the transformation of the EARRAY matrix can be described using the functional notation T(EARRAY) that represents a transformed exponent matrix of dimension ((NSEED−KSEED)×NSEED). Yet another arrangement of this family of transformations may include an identity transformation. For example, in another arrangement, T(EARRAY)=EARRAY.
In one arrangement HSEED and T(EARRAY) can be used to construct the final exponent matrix in order to expand the seed matrix into H. The final exponent matrix may be defined as
of dimension ((NSEED−KSEED)×NSEED) by replacing each one in HSEED with the corresponding matrix element (i.e. the same row and column) in the transformed structured array exponent matrix T(EARRAY) and each zero in HSEED with ∞. Thus, the elements of FFINAL can belong to the set {0, 1, . . . , p−1, ∞} if modulo arithmetic is used in the construction of EARRAY.
The following is a discussion of one arrangement of the expansion of HSEED using FFINAL to construct a final LDPC parity-check matrix H that describes the LDPC code. The matrix HSEED of dimension ((NSEED−KSEED)×NSEED) can be spread or expanded using the elements of the permutation matrix set
{PSPREAD∞, PSPREAD0, PSPREAD1, PSPREAD2, . . . , PSPREAD−1}
with elements of dimension (NSPREAD×NSPREAD), where PSPREAD∞=0 is the all zeros matrix, PSPREAD0=I is the identity matrix, PSPREAD1 is a permutation matrix, PSPREAD2=PSPREAD1PSPREAD1, PSPREAD3=PSPREAD1PSPREAD1PSPREAD1, etc. (but not limited to) to construct
of dimension (NSPREAD(NSEED−KSEED)×NSPREAD NSEED). Thus, this arrangement can be used to describe an expanded LDPC code with sub-matrices of dimension (NSPREAD×NSPREAD) in the (i,j)th sub-matrix location consisting of the permutation matrix PSPREAD raised to the Fi,j power (i.e. PSPREADF
The following is one particular example of the implementation of one arrangement. In this example,
Therefore, p=11 is the smallest prime number that satisfies the example conditions NSEED+2≦p and NSPREAD≦p. The interim and final exponent matrices as defined above can be:
and the corresponding expanded LDPC matrix can be:
One arrangement of a method for constructing irregularly structured LDPC codes according to the present invention is depicted in
This matrix can be constructed using modulo arithmetic of a number p that can be at least the column dimension of the irregular “seed” parity check matrix and the column dimension of the spreading permutation matrix. In other words, NSEED≦p and NSPREAD≦p.
At step 120, the structured array exponent matrix can be transformed using a transform T(EARRAY) that may perform shifts, truncations, permutations, etc. operations to construct an exponent matrix of dimension ((NSEED−KSEED)×NSEED) from EARRAY. At step 130, a final exponential matrix can be constructed,
of dimension ((NSEED−KSEED)×NSEED) by replacing each one in HSEED with the corresponding element in the transformed structured array exponent matrix T(EARRAY) and each zero in HSEED with ∞. Thus, the elements of FFINAL belong to the set {0, 1, . . . , p−1, ∞}.
At step 140, the expanded parity check matrix can be constructed,
of dimension (NSPREAD(NSEED−KSEED))×NSPREADNSEED) that describes the expanded LDPC code with sub-matrices of dimension (NSPREAD×NSPREAD) in the (i, j)th sub-matrix location consisting of the permutation matrix PSPREAD raised to the Fi,j power, i.e. PSPREADF
Modification of H
Consider a structured LDPC code as proposed V. Stolpman et al, with a seed matrix of dimensions (MSEED×NSEED) and a spreading matrix of dimensions (NSPREAD×NSPREAD). Following the low-complexity encoding algorithm presented in Richardson and Urbanke, we first bring the original LDPC parity check matrix H into the following form by flipping the rows and columns of the original parity check matrix H:
Here A, B, C, D, E, T are sparse matrices and in addition, sub-matrix T has the following lower triangular form:
Since the H matrices in consideration are structured, the constituent sub-matrices are also structured and it is easy to show that these matrices have the following dimensions:
A: ((MSEED−1)*NSPREAD×(NSEED−MSEED)*NSPREAD)
B: ((MSEED−1)*NSPREAD×NSPREAD)
T: ((MSEED−1)*NSPREAD×(MSEED−1)*NSPREAD)
C: (NSPREAD×(NSEED−MSEED)*NSPREAD)
D: (NSPREAD×NSPREAD)
E: (NSPREAD×(MSEED−1)*NSPREAD)
Pre-multiplication of H by the matrix
results in the matrix
which, by definition, must also contain any valid codeword in its null space. For the ease of notation, we represent any codeword x as x=(s, p1, p2) where s is the systematic part, parity part p1 has length NSPREAD and parity part p2 has length ((MSEED−1)*NSPREAD).
Based upon the above definitions, it was shown by Richardson and Urbanke that p1 and p2 can be computed as follows:
p1T=−φ−1(−ET−1A+C)sT, and
p2T=−T−1(AsT+Bp1T),
where φ=−ET−1B+D.
In the above encoding procedure, the most computation intensive procedures are the computation of φ−1 and T−1. In what follows, we address this problem by devising simple algorithms which enable computation of the above matrix inverses in low complexity.
Efficient Computation of T−1
It can be shown that FT, the exponent matrix corresponding to the matrix T, has the following form (ignoring the modulo NSPREAD operation):
The above matrix has zeros along it's main diagonal, the entries [MSEED−1, MSEED−2, . . . , 3, 2] along the lower sub-diagonal and the remaining entries equal negative infinity.
To construct T−1 from FT, we first compute FTinv, the exponent form representation of the matrix T−1 and then construct T−1 from FTinv. The algorithm presented below describes this procedure:
Example: MSEED=12, say. For this example, matrix FT is given as:
Based upon FT, we construct T−1 as follows:
NOTE: It should be noted that the values in the lower sub-diagonal need not be in an order, e.g. [MSEED−1, MSEED−2, 3, 2]. The exponent entries (ε[0, MSEED−1]) can be in any arbitrary order in the lower sub-diagonal. However, the illustration above is for a particular method of code-construction described in V. Stolpman et al.
Efficient Computation of φ, φ−1
Matrix φ is defined by Richardson and Urbanke as φ=−ET−1B+D. In general, one can compute φ using the constituent matrices E, T−1, B, D and then invert this matrix to derive φ−1. However, computation of parity bits is simplified greatly if we can guarantee φ to be a permutation matrix. In their current form, the parity check matrices do not provide this guarantee. Therefore, we wish to modify the H matrix (and thereby propose new LDPC codes) such that without compromising the error correcting performance of the code, φ is guaranteed to be a permutation matrix. We achieve this goal by modifying the matrix H in V. Stolpman et al such that ET−1B is the null matrix.
To be able to achieve the above goal, we first note that the matrices E, B have a regular structure as follows:
Based upon the above observations, ET−1B can be expressed in exponent form as
Modifying the H matrix such that bk=b1+└FTinv┘M
Results
The foregoing description of embodiments of the present invention have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the present invention. The embodiments were chosen and described in order to explain the principles of the present invention and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated. For example, it will be understood that a parity check matrix which, in expanded form, can be represented by the matrix H, can also be represented by the matrix H″ having the general structure
where H″ can be achieved by reversing the elements of each row, and then reversing the elements of each column of H. In one such arrangement, T′ is upper triangular. The matrix dimensions may be expressed as E′=[E′1, 0, . . . , 0] and B′=[0, . . . , 0, B′K, 0, . . . , 0, B′1]. The major equations and overall interpretation do not change except that systematic and parity bits swap their respective position. The appended claims are intended to cover the aforementioned variations.