US20070136635A1 - Method of generating structured irregular low density parity checkcodes for wireless systems - Google Patents
Method of generating structured irregular low density parity checkcodes for wireless systems Download PDFInfo
- Publication number
- US20070136635A1 US20070136635A1 US11/300,211 US30021105A US2007136635A1 US 20070136635 A1 US20070136635 A1 US 20070136635A1 US 30021105 A US30021105 A US 30021105A US 2007136635 A1 US2007136635 A1 US 2007136635A1
- Authority
- US
- United States
- Prior art keywords
- code
- ldpc
- steps
- decoding
- ldpc codes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000001788 irregular Effects 0.000 title claims abstract description 21
- 238000004904 shortening Methods 0.000 claims abstract description 13
- 239000000969 carrier Substances 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 63
- 238000004891 communication Methods 0.000 claims description 5
- 238000005562 fading Methods 0.000 claims description 4
- 230000009977 dual effect Effects 0.000 claims description 2
- 230000000750 progressive effect Effects 0.000 claims description 2
- 230000009897 systematic effect Effects 0.000 abstract description 6
- 238000013461 design Methods 0.000 description 20
- 230000000052 comparative effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
- H03M13/6368—Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
- H03M13/6393—Rate compatible low-density parity check [LDPC] codes
Definitions
- the present invention related to wireless systems, and in particular, to structured irregular Low Density Parity Check codes for wireless systems.
- LDPC codes have recently attracted considerable attention owing to their capacity-approaching performance and low complexity iterative decoding. LDPC codes can be applied to a wide range of applications such as wireless communications, satellite communications and storage.
- FIG. 1 shows a functional block diagram of a conventional transmitter 100 .
- the user information bits are encoded using a short to moderate block length Low Density Parity Check (LDPC) code in an LDPC Encoder 102 .
- the encoded bits then pass through a bit-by-bit round robin Spatial Parser 104 , followed by the usual Constellation Mapper 106 , and OFDM modulation including Inverse FFT 108 , Guard Interval (GI) Window 110 and RF modulation windowing 112 .
- LDPC codes which are designed for parallel implementation, provide a good alternative for satisfying stringent requirements in terms of block error rate and decoding throughput.
- LDPC code is a type of linear block coding and can be uniquely defined by a parity check matrix H.
- LDPC codes can be effectively represented using a bipartite graph.
- the nodes in the graph are separated into two distinctive sets and edges are only connecting nodes of two different types.
- the two types of nodes in the bipartite graph are called bits nodes and check nodes.
- One bit node represents one bit in the codeword, corresponding to one column of the parity check matrix H.
- One check node represents one parity check equation, corresponding to one row of the parity check matrix H.
- FIG. 2 shows a graph representation 200 of the (7,4) parity check codes given in relation (1) above.
- an open circle ( ⁇ ) represents the bit node
- a solid square ( ⁇ ) represents the check node.
- LDPC codes can be efficiently decoded using a message-passing algorithm. Such an algorithm operates on the bipartite graph by iteratively updating the soft message. Examples of message-passing algorithms can be found in R. G. Gallager, “Low density parity check codes”, IRE Trans. Inform. Theory, Vol. IT-8, pp. 21-28, Jan. 1962, and in D. J. C. MacKay and R. M. Neal, “Neal Shannon limit performance of low density parity check codes,” Electronics Letters, vol. 32, pp. 1645-1646, 1996.
- An irregular LDPC code contains uneven number of 1's per-column and per-row.
- the H matrix in relation (1) is an irregular code. It has been known that irregular LDPC codes outperform regular LDPC codes and have decoding thresholds very close to Shannon capacity. Design of good irregular code ensemble for randomly generated codes is presented in T. J. Richardson, M. A. Shokrollahi and R.
- the present invention provides a method of generating structured irregular LDPC codes, and LDPC encoding of data, for wireless networks such as wireless local area network (WLAN) systems, allowing systematic generation of improved code ensembles using density evolution, and providing essentially the best tradeoff between decoding performance and decoding complexity.
- WLAN wireless local area network
- Such an LDPC code has a higher diversity order for multiple-input-multiple-output (MIMO) systems, with better built-in interleaving capability.
- MIMO multiple-input-multiple-output
- the code dimension can be tailored to 802.11n system parameters such as the number of sub-carriers and delay.
- the code also provides an improved girth control scheme, provides flexible length with different expanding factors, and supports simple encoding and shortening for multiple rates.
- the present invention provides a method of generating LDPC codes by systematically generating irregular LDPC code ensembles using density evolution by trading off between decoding threshold and decoding complexity.
- the method can further include the steps of: determining the code weight distribution of the code ensemble based on density evolution with Gaussian approximation, wherein decoding threshold is traded off for decoding complexity; determining a base matrix dimension based on the number of sub-carriers per OFDM symbol, minimum number of data streams, and the constellation size; generating an expanding matrix to eliminate cycles and optimize girth distribution; and adjusting the base matrix for shortening by rearranging the columns to support the code shortening.
- FIG. 1 shows an example conventional 802.11n MIMO transmitter with an LDPC encoder
- FIG. 2 shows an example LDPC code graph
- FIG. 3 shows a flowchart of the steps of an embodiment of a method of generating a structured irregular LDPC code according to the present invention
- FIG. 5B shows a further example graph of counting cycles using the spanning-tree algorithm of FIG. 4 ;
- FIG. 7 shows an example girth distribution of an LDPC code according to the present invention
- FIG. 8 shows an example of rate 1/2 irregular LDPC code according to the present invention
- FIG. 9 shows an example of rate 2/3 irregular LDPC code according to the present invention.
- FIG. 11 shows an example binary phase shift keying (BPSK) additive white Gaussian noise (AWGN) performance for the rate 1/2 codes of FIG. 8 ;
- BPSK binary phase shift keying
- AWGN additive white Gaussian noise
- FIG. 12 shows an example BPSK AWGN performance for the rate 2/3 codes of FIG. 9 ;
- FIG. 14 shows example performance comparison of 1/2 code with 16QAM according to the present invention over 2 ⁇ 2 ⁇ 20 MHz 802.11n system of prior art
- FIG. 15 shows example performance comparison of 3/4 code with 16QAM according to the present invention over 2 ⁇ 2 ⁇ 20MHz 802.11n system of prior art
- FIG. 17 shows example performance comparison of 3/4 code with 64QAM according to the present invention over 2 ⁇ 2 ⁇ 20 MHz 802.11n system of prior art.
- the present invention provides a method of generating structured irregular LDPC codes, and LDPC encoding of data, for a wireless networks such as wireless local area network (WLAN) systems, allowing systematic generation of improved code ensembles using density evolution, and providing essentially the best tradeoff between decoding performance and decoding complexity.
- a wireless networks such as wireless local area network (WLAN) systems
- WLAN wireless local area network
- Such an LDPC code has a higher diversity order for multiple-input-multiple-output (MIMO) systems, with better built-in interleaving capability.
- MIMO multiple-input-multiple-output
- the code dimension can be tailored to 802.11n system parameters such as the number of sub-carriers and delay.
- the code also provides an improved girth control scheme, provides flexible length with different expanding factors, and supports simple encoding and shortening for multiple rates.
- FIG. 3 shows a flowchart of an example systematic process for generating improved irregular LDPC codes according to the present invention.
- a code can be utilized to encode data for transmission from e.g. MIMO transmitter and decoding in a MIMO receiver.
- the steps in FIG. 3 are described.
- OFDM Orthogonal Frequency Division Multiplexing
- a 20 MHz and a 40 MHz 802.11n example system is described in “TGn Sync Proposal Technical Specification,” doc.: IEEE 802.11-04/889r0, August 2004, Pages: 1-143 (incorporated herein by reference).
- the base matrix size can be derived similarly with other system parameters.
- Step 302 Determine the code weight distribution of the code ensemble based on density evolution with Gaussian approximation.
- the distribution should jointly consider the decoding complexity and decoding threshold.
- Basic design tradeoff is that the decoding threshold gets closer to the Shannon capacity as the complexity increases. Because a 802.11n system requires high-throughput with low complexity decoding, decoding threshold is traded off for decoding complexity. In one example, the trade off involves two steps. The first step involves determining the desired average row weight (average check node degree) and maximum column weight based on the desired hardware complexity.
- the parity portion of the matrix H is fixed to be dual-diagonal.
- the number of weight 2 column is also decided.
- the weight 2 column in the base is fixed to 7.
- the number of edges connected to the check nodes need to be equal to the number of edges connected to the bit nodes.
- density evolution is used to find the best weight distribution with the lowest decoding threshold satisfying: (1) average row weight, (2) fixed weight 2 columns numbers, and (3) maximum column weight.
- Step 304 Generate the base matrix which has the same distribution in step 302 and dimension determined in step 300 . Furthermore, the base matrix is selected to provide desired build-in interleaving capability to achieve better performance for MIMO fading channels.
- PEG progressive edge growing
- H p is an M ⁇ M modified “dual diagonal” matrix, which corresponds to the “parity” bits of the codeword.
- C 3 is the rightmost check node in level 2) (step 416 ); if so, then incrementing the tree level (step 418 ); determining if the number of parents is greater than two wherein the number of parents corresponds to the length of the cycle in the graph (step 420 ); if so, logging this cycle (step 422 ); determining of the level is greater than maxCycle/2, wherein MaxCycle is the largest cycle length to remove (in general, MaxCycle should be as large as possible, however, the larger the MaxCycle, the more difficult is finding such graph; in this embodiment, MaxCycle to 6 for low rate code such as rate 1/2 and rate 2/3 code, and MaxCycle is set to 4 for high rate codes such as rate 3/4 and rate 5/6 code) (step 424 ); if not, then further expanding the tree by proceeding to step 406 , and if so, then proceeding to processing the next bit node in step 402 .
- step 408 if type of u is check nodes, then the process proceeds to if check nodes, then finding all the bit nodes connected to u (step 426 ); determining if a found node if a parent (step 428 ); if not a parent, then enqueue the found bit node which is not a parent (step 430 ); determining if the found node is the rightmost bit node in the current tree level (e.g., in FIG. 5A , V 6 is the rightmost check node in level 3) (step 432 ); if so, then incrementing the tree level (step 434 ), and proceeding to step 420 for further processing as described above.
- FIG. 5A shows an example graph 500 of counting cycles using the spanning-tree algorithm of FIG. 4 , based on the H matrix of relation (1) above.
- a tree is a connected acyclic graph.
- a rooted tree is such a graph with a vertex singled out as the root.
- any two vertices connected by an edge inherit a parent-child relationship.
- FIG. 5A shows a tree structure.
- V 5 has two children C 1 and C 3 .
- C 1 has a parent V 5 and three children V 1 , V 3 and V 7 .
- V 5 is the root of the tree, which belong to level 1.
- C 1 and C 3 are at the second level.
- V 1 , V 3 , V 7 , V 4 , V 6 belong to the third level.
- Each level has its rightmost node.
- C 3 is the rightmost node for second level while V 6 is the rightmost node for the third level.
- a queue is a basic data structure which in one example follows a first in first out (FIFO) rule.
- FIG. 5A shows an example of finding a cycle using the search algorithm in the code graph as shown in FIG. 2 .
- the cycle length is 4, involving nodes V 5 , C 1 , C 3 and V 7 (indicated by arrows).
- MaxCycle 4 to find out all cycles with length 4.
- the search begins from V 1 , and continues onto V 2 , V 3 , V 4 . No. cycle 4 is found for those bit nodes.
- the queue head is a bit node (step 408 ), so the process finds all the check nodes C 1 and C 3 are connected to V 5 (step 410 ).
- C 1 and C 3 are the children of V 5 , not parents, so C 1 and C 3 are placed into the queue and form the second level of the tree.
- the process goes on in expanding the tree to the third level.
- C 1 has 4 bit nodes that are connected to it (i.e., V 1 , V 3 , V 5 and V 7 ) (step 426 ).
- V 5 is the parent of C 1 , so V 5 is not placed back to the queue (step 428 ), while V 1 , V 3 and V 7 are placed in the queue and form the third level of the tree.
- C 3 is processed similarly, whereby the three is tree expanded to the third level. It can be seen that V 7 has two parents (step 420 ), and as such so it is reported that a cycle is found, and it is logged (step 422 ). Process continues to V 6 after V 5 is processed, generating the graph in FIG. 5B .
- Step 306 Generate the expanding matrix to eliminate cycles, and optimize the girth distribution. It is widely accepted that cycle- 4 in the parity check matrix will cause slow convergence and error floor. Therefore, the object of expanding matrix is to avoid cycles in the code graph.
- step 604 sorting the bit nodes according to the number of cycles involved (step 606 ); picking the first bit node from the sorted list (step 610 ); checking the cycles over the expanded matrix to determine whether there is a cycle or not based on the example process in FIG. 4 (step 610 ); if so, then replacing the expanding value with another random number and proceeding back to step 610 (step 612 ), otherwise determining if the current node is the last node (step 614 ); if so, then rechecking the cycle over the entire code graph (e.g., FIG.
- step 616 determining if cycle exists and if the current iteration is less than MaxCycle (step 618 ); if not, then outputting the generated expanded matrix (step 620 ), otherwise, proceeding back to step 608 .
- step 614 if the current node is not the last node, then moving on to the next bit node (step 622 ), and proceeding back to step 610 for further processing.
- FIG. 7 shows the girth histogram for the design code example, according to the present invention.
- FIG. 7 shows the number of cycles related to each node.
- the code length is 2304
- the x-axis represents Vn
- n 1 to 2304.
- the y-axis represents the cycle length.
- the top plot in FIG. 7 is the cycle length histogram for rate 1/2 code, where it can be seen that all length 4 cycles are eliminated. Similar observations for rates 2/3 and 3/4 are shown by the middle and bottom plots in FIG. 7 .
- the middle plot in FIG. 7 is the cycle length histogram for rate 2/3 code, where it can be seen that length 4 cycles are eliminated.
- Step 308 Adjust the base matrix for shortening, by rearranging the columns to support the code shortening.
- PEG to generate base matrix places the low weight nodes before the high weight nodes.
- the columns are permuted such that after shortening, the code weights are distributed as evenly as possible.
- the above steps provide an ensemble of desirable LDPC codes according to an embodiment of the present invention.
- the designed code can be of any code length by adjusting the base matrix size and expanding factor to different system parameters.
- Three examples with rates 1/2, 2/3 and 3/4, N′ 48, are shown in FIGS. 8-10 , respectively, according to embodiment of the present invention.
- One base matrix example is shown per code rate. Size of a base parity check matrix is denoted as M b ⁇ N b .
- the expansion operation is defined by element values of the base matrix.
- FIGS. 11-13 show the code performance with different lengths, i.e., different expanding factors, using BPSK modulation over AWGN channels.
- FIG. 11 shows simulation result 400 using BPSK AWGN, Rate 1/2 LDPC codes for: code length 576, extension L 12 (curve 402 ), code length 1152, extension L 24 (curve 404 ), code length 1728, extension L 36 (curve 406 ), and code length 2304, extension L 48 (curve 408 ), as detailed in the legend.
- FIG. 11 shows simulation result 400 using BPSK AWGN, Rate 1/2 LDPC codes for: code length 576, extension L 12 (curve 402 ), code length 1152, extension L 24 (curve 404 ), code length 1728, extension L 36 (curve 406 ), and code length 2304, extension L 48 (curve 408 ), as detailed in the legend.
- FIG. 11 shows simulation result 400 using BPSK AWGN, Rate 1/2 LDPC codes for: code length 576, extension L 12 (
- FIG. 12 shows simulation result 500 using BPSK AWGN, Rate 2/3 LDPC codes for: code length 576, extension L 12 (curve 502 ), code length 1152, extension L 24 (curve 504 ), code length 1728, extension L 36 (curve 506 ), and code length 2304, extension L 48 (curve 508 ), as detailed in the legend.
- FIG. 13 shows simulation result 600 using BPSK AWGN, Rate 3/4 LDPC codes for: code length 576, extension L 12 (curve 602 ), code length 1152, extension L 24 (curve 604 ), code length 1728, extension L 36 (curve 606 ), and code length 2304, extension L 48 (curve 608 ), as detailed in the legend.
- An example of the code according to the present invention performs 0.1-0.2 dB better than other irregular codes.
- FIGS. 14-17 The code performance over 802.11n fading channels with higher modulation constellation is shown by example in FIGS. 14-17 , illustrating the fading performance for the codes according to the present invention and conventional codes.
- FIG. 15 shows MCS 12, size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein:
- FIG. 16 shows MCS 13, size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein:
- FIG. 17 shows MCS 14, size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein:
- the code according to the present invention provides higher diversity order and lower decoding complexity.
- the codes generated according to the present invention can be implemented, for example, in a MIMO transmitter encoder such as encoder 102 in FIG. 1 .
- the present invention contemplates MIMO systems including an LDPC encoder in a transmitter and a LDPC decoder in a receiver, according to the present invention.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
- The present invention related to wireless systems, and in particular, to structured irregular Low Density Parity Check codes for wireless systems.
- Low Density Parity Check (LDPC) codes have recently attracted considerable attention owing to their capacity-approaching performance and low complexity iterative decoding. LDPC codes can be applied to a wide range of applications such as wireless communications, satellite communications and storage.
- An example wireless system is a 802.11n communication.
FIG. 1 shows a functional block diagram of aconventional transmitter 100. The user information bits are encoded using a short to moderate block length Low Density Parity Check (LDPC) code in anLDPC Encoder 102. The encoded bits then pass through a bit-by-bit round robin Spatial Parser 104, followed by the usual ConstellationMapper 106, and OFDM modulation including Inverse FFT 108, Guard Interval (GI)Window 110 andRF modulation windowing 112. In such atransmitter 100, the decoding data rates must be over 100 Mbps, which are not favorable for turbo coding. LDPC codes, which are designed for parallel implementation, provide a good alternative for satisfying stringent requirements in terms of block error rate and decoding throughput. - LDPC code is a type of linear block coding and can be uniquely defined by a parity check matrix H. The code rate is R=M/N, where N is the number of columns in the H matrix, representing the size of the code, and M is the number of rows in the H matrix, representing the number of parity check equations. An example of a linear block code with N=7, M=3, is shown in relation (1) below:
- LDPC codes can be effectively represented using a bipartite graph. The nodes in the graph are separated into two distinctive sets and edges are only connecting nodes of two different types. The two types of nodes in the bipartite graph are called bits nodes and check nodes. One bit node represents one bit in the codeword, corresponding to one column of the parity check matrix H. One check node represents one parity check equation, corresponding to one row of the parity check matrix H.
FIG. 2 shows agraph representation 200 of the (7,4) parity check codes given in relation (1) above. In thegraph 200 ofFIG. 2 , an open circle (∘) represents the bit node, and a solid square (▪) represents the check node. - LDPC codes can be efficiently decoded using a message-passing algorithm. Such an algorithm operates on the bipartite graph by iteratively updating the soft message. Examples of message-passing algorithms can be found in R. G. Gallager, “Low density parity check codes”, IRE Trans. Inform. Theory, Vol. IT-8, pp. 21-28, Jan. 1962, and in D. J. C. MacKay and R. M. Neal, “Neal Shannon limit performance of low density parity check codes,” Electronics Letters, vol. 32, pp. 1645-1646, 1996.
- There are two kinds of LDPC codes, regular and irregular. A regular LDPC code contains t number of 1's per-row (row weight) and s number of 1's per column (column weight), where s=t*(1−R). An irregular LDPC code contains uneven number of 1's per-column and per-row. For example, the H matrix in relation (1) is an irregular code. It has been known that irregular LDPC codes outperform regular LDPC codes and have decoding thresholds very close to Shannon capacity. Design of good irregular code ensemble for randomly generated codes is presented in T. J. Richardson, M. A. Shokrollahi and R. L Urbanke, “Design of capacity-approaching irregular low-density parity-check codes”, IEEE Transactions on Information Theory, Volume: 47, Issue: 2, Feb. 2001, Pages: 619-637. A general technical called density evolution is proposed to find the best code weight distribution which provides the best code ensemble. This weight distribution provides design guideline for infinite size LDPC codes. The effectiveness of the design is verified by randomly generated large LDPC codes.
- Although randomly generated long LDPC codes (over 10K size) have threshold-approaching performance, the design of short codes with reasonably good performance has been a challenge. Furthermore, the design of LDPC codes that are fit for hardware implementation such as ASIC is very important, especially for 802.11n systems where the decoding throughput is required to be over 100 Mbps. Therefore, some conventional approaches introduce code structure in the LDPC code design to facilitate hardware implementation. For example, a block structured regular LDPC code design and the corresponding FPGA prototyping is presented in “H. Zhong and T. Zhang, “Block-LDPC: A Practical LDPC Coding System Design Approach”, IEEE Transactions on Circuits and Systems I: Fundamental Theory and Applications, Volume 52,
Issue 4, Apr. 2005 Page (s) 766-775. However, the performance of such regular codes is below that of irregular codes. - In one embodiment, the present invention provides a method of generating structured irregular LDPC codes, and LDPC encoding of data, for wireless networks such as wireless local area network (WLAN) systems, allowing systematic generation of improved code ensembles using density evolution, and providing essentially the best tradeoff between decoding performance and decoding complexity. Such an LDPC code has a higher diversity order for multiple-input-multiple-output (MIMO) systems, with better built-in interleaving capability. Further, the code dimension can be tailored to 802.11n system parameters such as the number of sub-carriers and delay. The code also provides an improved girth control scheme, provides flexible length with different expanding factors, and supports simple encoding and shortening for multiple rates.
- As such, in one implementation the present invention provides a method of generating LDPC codes by systematically generating irregular LDPC code ensembles using density evolution by trading off between decoding threshold and decoding complexity. The method can further include the steps of: determining the code weight distribution of the code ensemble based on density evolution with Gaussian approximation, wherein decoding threshold is traded off for decoding complexity; determining a base matrix dimension based on the number of sub-carriers per OFDM symbol, minimum number of data streams, and the constellation size; generating an expanding matrix to eliminate cycles and optimize girth distribution; and adjusting the base matrix for shortening by rearranging the columns to support the code shortening.
- The above steps provide an ensemble of desirable LDPC codes according to an embodiment of the present invention. These, and other features and advantages of the present invention will be apparent from the following specification taken in conjunction with the following drawings.
-
FIG. 1 shows an example conventional 802.11n MIMO transmitter with an LDPC encoder; -
FIG. 2 shows an example LDPC code graph; -
FIG. 3 shows a flowchart of the steps of an embodiment of a method of generating a structured irregular LDPC code according to the present invention; -
FIG. 4 shows a flowchart of the steps of a method of spanning-tree algorithm for counting cycles, according to an embodiment of the present invention; -
FIG. 5A shows an example graph of counting cycles using the spanning-tree algorithm ofFIG. 4 ; -
FIG. 5B shows a further example graph of counting cycles using the spanning-tree algorithm ofFIG. 4 ; -
FIG. 6 shows a flowchart of the steps of a method of generating an expanded matrix, according to an embodiment of the present invention; -
FIG. 7 shows an example girth distribution of an LDPC code according to the present invention; -
FIG. 8 shows an example ofrate 1/2 irregular LDPC code according to the present invention; -
FIG. 9 shows an example ofrate 2/3 irregular LDPC code according to the present invention; -
FIG. 10 shows an example ofrate 3/4 irregular LDPC code according to the present invention; -
FIG. 11 shows an example binary phase shift keying (BPSK) additive white Gaussian noise (AWGN) performance for therate 1/2 codes ofFIG. 8 ; -
FIG. 12 shows an example BPSK AWGN performance for therate 2/3 codes ofFIG. 9 ; -
FIG. 13 shows an example BPSK AWGN performance for therate 3/4 codes ofFIG. 10 ; -
FIG. 14 shows example performance comparison of 1/2 code with 16QAM according to the present invention over 2×2×20 MHz 802.11n system of prior art; -
FIG. 15 shows example performance comparison of 3/4 code with 16QAM according to the present invention over 2×2×20MHz 802.11n system of prior art; -
FIG. 16 shows example performance comparison of 2/3 code with 64QAM according to the present invention over 2×2×20 MHz 802.11n system of prior art; and -
FIG. 17 shows example performance comparison of 3/4 code with 64QAM according to the present invention over 2×2×20 MHz 802.11n system of prior art. - In one embodiment, the present invention provides a method of generating structured irregular LDPC codes, and LDPC encoding of data, for a wireless networks such as wireless local area network (WLAN) systems, allowing systematic generation of improved code ensembles using density evolution, and providing essentially the best tradeoff between decoding performance and decoding complexity. Such an LDPC code has a higher diversity order for multiple-input-multiple-output (MIMO) systems, with better built-in interleaving capability. Further, the code dimension can be tailored to 802.11n system parameters such as the number of sub-carriers and delay. The code also provides an improved girth control scheme, provides flexible length with different expanding factors, and supports simple encoding and shortening for multiple rates.
-
FIG. 3 shows a flowchart of an example systematic process for generating improved irregular LDPC codes according to the present invention. Such a code can be utilized to encode data for transmission from e.g. MIMO transmitter and decoding in a MIMO receiver. In the following, the steps inFIG. 3 are described. - Step 300: Determine base matrix dimension based on the number of sub-carriers per Orthogonal Frequency Division Multiplexing (OFDM) symbol, minimum number of data streams, and the constellation size. For example, assuming a 20 MHz system with 48 data tones, the modulation is BPSK, QPSK, 16QAM, 64QAM, and minimum number of antennas is 2. In this case, the M′×N′ base matrix is selected to be N′=48 or 24, M′=N′*(1−R). For a 40 MHz example system, there are 108 data tones, same modulation and antennas; therefore, the selection can be N′=36 or 72 depending on the decoding architecture and throughput. A 20 MHz and a 40 MHz 802.11n example system is described in “TGn Sync Proposal Technical Specification,” doc.: IEEE 802.11-04/889r0, August 2004, Pages: 1-143 (incorporated herein by reference). The base matrix size can be derived similarly with other system parameters.
- Step 302: Determine the code weight distribution of the code ensemble based on density evolution with Gaussian approximation. The distribution should jointly consider the decoding complexity and decoding threshold. Basic design tradeoff is that the decoding threshold gets closer to the Shannon capacity as the complexity increases. Because a 802.11n system requires high-throughput with low complexity decoding, decoding threshold is traded off for decoding complexity. In one example, the trade off involves two steps. The first step involves determining the desired average row weight (average check node degree) and maximum column weight based on the desired hardware complexity. The hardware complexity is related to the average row weight and maximum column weight as follows: (1) The size of the memory required is dependent on the total number of edges in the particular code design, which can be represented by the average row weight; as an LDPC decoder requires several times larger memory than that of a turbo decoder, low average weight design is preferred to reduce the memory requirement, and (2) Large maximum column weight introduces detrimental arithmetic precision effects and the complexity of collating a large number of inputs and outputs at the processing elements. The exact tradeoff varies depending on different system requirements. For example, for a rate R=2/3 code LDPC design, there are two check node degrees as: 10 and 11. The average row degree is 10.125. The maximum column weight is 7.
- In the second step, in order to support different efficient encoding schemes, the parity portion of the matrix H is fixed to be dual-diagonal. In this case, the number of
weight 2 column is also decided. In the previous example, theweight 2 column in the base is fixed to 7. Also the number of edges connected to the check nodes need to be equal to the number of edges connected to the bit nodes. Further, density evolution is used to find the best weight distribution with the lowest decoding threshold satisfying: (1) average row weight, (2) fixedweight 2 columns numbers, and (3) maximum column weight. - Step 304: Generate the base matrix which has the same distribution in
step 302 and dimension determined instep 300. Furthermore, the base matrix is selected to provide desired build-in interleaving capability to achieve better performance for MIMO fading channels. LDPC parity check matrix is designed in a way that enables simple encoding as well. It can be represented in the following form:
H=[Hd|Hp]
Hd is an M×K matrix and corresponds to the “data” bits of the codeword. Hd is designed using progressive edge growing (PEG) algorithm which maximizes the girth of the base matrix while following the code distribution with best effort. This design ensures high coding gain. Hp is an M×M modified “dual diagonal” matrix, which corresponds to the “parity” bits of the codeword. LDPC codes applied here are systematic and canonic block codes. Codewords have the following structure:
where d=[d0, d1, . . . , dK−1 ]T is the block of (uncoded) data bits and p=[p0, p1, . . . , pM−1]T are the parity bits. - Because of the small size of the base matrix, cycles always exist, although the PEG algorithm heuristically maximizes the girth. Therefore, all the cycles are counted and listed, to eliminate them by adjusting the expanding matrix (generating the expanding matrix is described in
step 306 further below). -
FIG. 4 shows a flowchart of an example cycle counting on the graph by a breath first search, implementing a spanning-tree algorithm for counting cycles, comprising the steps of: initializing the base matrix (step 400); looping for every column in the matrix (step 402); initializing a queue with the root bit node (step 404), wherein the queue includes bit nodes and check nodes that have been put into the queue (initially, the queue is empty and instep 404 the first bit node is placed into the queue, with more nodes enqueued instep 414 below); dequeue and set u=queue-head (u is the head pointer used in the search) (step 406) wherein the dequeue operation takes the queue head and moves the pointer to the second node; determining if u is a bit node or a check node (step 406); if bit nodes, then finding all the check nodes connected to u (step 410); determining if a found node if a parent (step 412); if not a parent, then enqueue the found check node that is not a parent (step 414); determining if the found node is the rightmost of the check node of current tree level (e.g., inFIG. 5A , C3 is the rightmost check node in level 2) (step 416); if so, then incrementing the tree level (step 418); determining if the number of parents is greater than two wherein the number of parents corresponds to the length of the cycle in the graph (step 420); if so, logging this cycle (step 422); determining of the level is greater than maxCycle/2, wherein MaxCycle is the largest cycle length to remove (in general, MaxCycle should be as large as possible, however, the larger the MaxCycle, the more difficult is finding such graph; in this embodiment, MaxCycle to 6 for low rate code such asrate 1/2 andrate 2/3 code, and MaxCycle is set to 4 for high rate codes such asrate 3/4 andrate 5/6 code) (step 424); if not, then further expanding the tree by proceeding to step 406, and if so, then proceeding to processing the next bit node instep 402. - In
step 408 above, if type of u is check nodes, then the process proceeds to if check nodes, then finding all the bit nodes connected to u (step 426); determining if a found node if a parent (step 428); if not a parent, then enqueue the found bit node which is not a parent (step 430); determining if the found node is the rightmost bit node in the current tree level (e.g., inFIG. 5A , V6 is the rightmost check node in level 3) (step 432); if so, then incrementing the tree level (step 434), and proceeding to step 420 for further processing as described above. -
FIG. 5A shows anexample graph 500 of counting cycles using the spanning-tree algorithm ofFIG. 4 , based on the H matrix of relation (1) above. In graph theory, a tree is a connected acyclic graph. A rooted tree is such a graph with a vertex singled out as the root. In this case, any two vertices connected by an edge inherit a parent-child relationship. For example,FIG. 5A shows a tree structure. V5 has two children C1 and C3. C1 has a parent V5 and three children V1, V3 and V7. V5 is the root of the tree, which belong tolevel 1. C1 and C3 are at the second level. V1, V3, V7, V4, V6 belong to the third level. Each level has its rightmost node. For example, C3 is the rightmost node for second level while V6 is the rightmost node for the third level. A queue is a basic data structure which in one example follows a first in first out (FIFO) rule. - C's presents check nodes. V's represents variable nodes.
FIG. 5A shows an example of finding a cycle using the search algorithm in the code graph as shown inFIG. 2 . The cycle length is 4, involving nodes V5, C1, C3 and V7 (indicated by arrows). In this example, MaxCycle=4 to find out all cycles withlength 4. Following the process algorithm specified in the flowchart ofFIG. 4 , the search begins from V1, and continues onto V2, V3, V4.No. cycle 4 is found for those bit nodes. For V5, the queue head is a bit node (step 408), so the process finds all the check nodes C1 and C3 are connected to V5 (step 410). C1 and C3 are the children of V5, not parents, so C1 and C3 are placed into the queue and form the second level of the tree. The process goes on in expanding the tree to the third level. Now u points to check bits for C1 which is in the queue (step 408). C1 has 4 bit nodes that are connected to it (i.e., V1, V3, V5 and V7) (step 426). V5 is the parent of C1, so V5 is not placed back to the queue (step 428), while V1, V3 and V7 are placed in the queue and form the third level of the tree. C3 is processed similarly, whereby the three is tree expanded to the third level. It can be seen that V7 has two parents (step 420), and as such so it is reported that a cycle is found, and it is logged (step 422). Process continues to V6 after V5 is processed, generating the graph inFIG. 5B . - Referring back to
FIG. 3 , Step 306: Generate the expanding matrix to eliminate cycles, and optimize the girth distribution. It is widely accepted that cycle-4 in the parity check matrix will cause slow convergence and error floor. Therefore, the object of expanding matrix is to avoid cycles in the code graph. -
FIG. 6 shows a flowchart of example steps for generating the expanding matrix, comprising the steps of: initializing the base matrix (step 600); initializing the left side of the expanding matrix (left side is Hd) to a random number between 0 and an expanding factor −1 (expanding factor is determined by the code length N and base matrix dimension, e.g., for a rate 1/2 code with length N=1728, the base matrix dimension is 24×12, and the expanding factor is 1728/24=72) (step 602); finding the cycle list using the spanning-tree algorithm such as inFIG. 4 above (step 604); sorting the bit nodes according to the number of cycles involved (step 606); picking the first bit node from the sorted list (step 610); checking the cycles over the expanded matrix to determine whether there is a cycle or not based on the example process inFIG. 4 (step 610); if so, then replacing the expanding value with another random number and proceeding back to step 610 (step 612), otherwise determining if the current node is the last node (step 614); if so, then rechecking the cycle over the entire code graph (e.g.,FIG. 2 ) (step 616); determining if cycle exists and if the current iteration is less than MaxCycle (step 618); if not, then outputting the generated expanded matrix (step 620), otherwise, proceeding back to step 608. Instep 614, if the current node is not the last node, then moving on to the next bit node (step 622), and proceeding back to step 610 for further processing. -
FIG. 7 shows the girth histogram for the design code example, according to the present invention.FIG. 7 shows the number of cycles related to each node. The code length is 2304, the x-axis represents Vn, n=1 to 2304. The y-axis represents the cycle length. The top plot inFIG. 7 is the cycle length histogram forrate 1/2 code, where it can be seen that alllength 4 cycles are eliminated. Similar observations forrates 2/3 and 3/4 are shown by the middle and bottom plots inFIG. 7 . Specifically, the middle plot inFIG. 7 is the cycle length histogram forrate 2/3 code, where it can be seen thatlength 4 cycles are eliminated. The bottom plot inFIG. 7 is the cycle length histogram forrate 3/4 code, wherelength 4 cycles are eliminated for the best effort (thelength 4 cycles inrate 3/4 can not be fully removed due to the small matrix size). Another important role of the expanding matrix is that by adjusting different expanding factors, we can get different code size. - Referring back to
FIG. 3 , Step 308: Adjust the base matrix for shortening, by rearranging the columns to support the code shortening. Using PEG to generate base matrix places the low weight nodes before the high weight nodes. To obtain good performance for shortening, the columns are permuted such that after shortening, the code weights are distributed as evenly as possible. - The above steps provide an ensemble of desirable LDPC codes according to an embodiment of the present invention. The designed code can be of any code length by adjusting the base matrix size and expanding factor to different system parameters. Three examples with
rates 1/2, 2/3 and 3/4, N′=48, are shown inFIGS. 8-10 , respectively, according to embodiment of the present invention. One base matrix example is shown per code rate. Size of a base parity check matrix is denoted as Mb×Nb. Nb, the number of columns in the base matrix, is fixed for all code rates, Nb=48. Mb, the number of rows in the base matrix, depends on the code rate as follows: Mb=Nb(1−R). Parity check matrix H of size M×N is generated by expanding the base matrix for the selected rate, Hb, z-times: z=N/Nb=M/Mb. In these examples, N=2304, z=2304/48=48. The expansion operation is defined by element values of the base matrix. Each non-empty base matrix element, s, is replaced by a z×z identity matrix, Iz, cyclically shifted to the right s′=smod(z) times. Each empty element in the base matrix is replaced by a z×z zero matrix, 0 z×z (Sd shown below): - The above method constructs a wide range of LDPC codes. Examples in
FIGS. 11-13 show the code performance with different lengths, i.e., different expanding factors, using BPSK modulation over AWGN channels.FIG. 11 shows simulation result 400 using BPSK AWGN,Rate 1/2 LDPC codes for:code length 576, extension L12 (curve 402),code length 1152, extension L24 (curve 404),code length 1728, extension L36 (curve 406), andcode length 2304, extension L48 (curve 408), as detailed in the legend.FIG. 12 shows simulation result 500 using BPSK AWGN,Rate 2/3 LDPC codes for:code length 576, extension L12 (curve 502),code length 1152, extension L24 (curve 504),code length 1728, extension L36 (curve 506), andcode length 2304, extension L48 (curve 508), as detailed in the legend.FIG. 13 shows simulation result 600 using BPSK AWGN,Rate 3/4 LDPC codes for:code length 576, extension L12 (curve 602),code length 1152, extension L24 (curve 604),code length 1728, extension L36 (curve 606), andcode length 2304, extension L48 (curve 608), as detailed in the legend. An example of the code according to the present invention performs 0.1-0.2 dB better than other irregular codes. - The code performance over 802.11n fading channels with higher modulation constellation is shown by example in
FIGS. 14-17 , illustrating the fading performance for the codes according to the present invention and conventional codes. -
FIG. 14 shows MCS 11,size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein: -
-
Curve 701 represents B NLOS, LDPC according to an example of the present invention. -
Curve 702 represents B NLOS, LDPC conventional. -
Curve 703 represents D NLOS, LDPC according to an example of the present invention. -
Curve 704 represents D NLOS, LDPC conventional. -
Curve 705 represents E NLOS, LDPC according to an example of the present invention. -
Curve 706 represents E NLOS, LDPC conventional.
-
-
FIG. 15 shows MCS 12,size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein: -
-
Curve 707 represents B NLOS, LDPC according to an example of the present invention. -
Curve 708 represents B NLOS, LDPC conventional. -
Curve 709 represents D NLOS, LDPC according to an example of the present invention. -
Curve 710 represents D NLOS, LDPC conventional. -
Curve 711 represents E NLOS, LDPC according to an example of the present invention. -
Curve 712 represents E NLOS, LDPC conventional.
-
-
FIG. 16 shows MCS 13,size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein: -
- Curve 7013 represents B NLOS, LDPC according to an example of the present invention.
-
Curve 714 represents B NLOS, LDPC conventional. -
Curve 715 represents D NLOS, LDPC according to an example of the present invention. -
Curve 716 represents D NLOS, LDPC conventional. -
Curve 717 represents E NLOS, LDPC according to an example of the present invention. -
Curve 718 represents E NLOS, LDPC conventional.
-
FIG. 17 shows MCS 14,size 2304 LDPC, Channel B, D and E, NLOS comparative performance for codes designed according to an embodiment of the present invention and a conventional design according to the legends in the figure, wherein: -
-
Curve 719 represents B NLOS, LDPC according to an example of the present invention. -
Curve 720 represents B NLOS, LDPC conventional. - Curve 721 represents D NLOS, LDPC according to an example of the present invention.
-
Curve 722 represents D NLOS, LDPC conventional. -
Curve 723 represents E NLOS, LDPC according to an example of the present invention. -
Curve 724 represents E NLOS, LDPC conventional.
-
- The code according to the present invention provides higher diversity order and lower decoding complexity.
- The present invention can be implemented in a transmitter such as the
transmitter 100 inFIG. 1 , and provides several improvements, including: -
- Systematic design of improved code ensembles using density evolution which provides the best tradeoff between decoding threshold and the decoding complexity;
- Higher diversity order for MIMO systems with better built-in interleaving capability;
- Code dimension tailored to 802.11n system parameters such as number of sub-carriers and delay;
- Good girth control scheme;
- Flexible length with different expanding factor;
- Supporting easy encoding; and
- Supporting shortening for multiple rates.
- The codes generated according to the present invention can be implemented, for example, in a MIMO transmitter encoder such as
encoder 102 inFIG. 1 . As such, the present invention contemplates MIMO systems including an LDPC encoder in a transmitter and a LDPC decoder in a receiver, according to the present invention. - The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/300,211 US7707479B2 (en) | 2005-12-13 | 2005-12-13 | Method of generating structured irregular low density parity checkcodes for wireless systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/300,211 US7707479B2 (en) | 2005-12-13 | 2005-12-13 | Method of generating structured irregular low density parity checkcodes for wireless systems |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070136635A1 true US20070136635A1 (en) | 2007-06-14 |
US7707479B2 US7707479B2 (en) | 2010-04-27 |
Family
ID=38140906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/300,211 Expired - Fee Related US7707479B2 (en) | 2005-12-13 | 2005-12-13 | Method of generating structured irregular low density parity checkcodes for wireless systems |
Country Status (1)
Country | Link |
---|---|
US (1) | US7707479B2 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065956A1 (en) * | 2006-07-17 | 2008-03-13 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US7661037B2 (en) | 2005-10-27 | 2010-02-09 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n systems |
US20100174972A1 (en) * | 2009-01-06 | 2010-07-08 | York-Ted Su | Method for generating parity-check matrix |
US20110004811A1 (en) * | 2009-07-02 | 2011-01-06 | Samsung Electronics Co., Ltd | Encoding/decoding apparatus and method |
US20110083052A1 (en) * | 2009-10-05 | 2011-04-07 | The Hong Kong Polytechnic University | Method and system for encoding and decoding low-density-parity-check (ldpc) codes |
US20120084617A1 (en) * | 2010-10-01 | 2012-04-05 | Nec Laboratories America, Inc. | Modified progressive edge-growth ldpc codes for ultra-high-speed serial optical transport |
CN107888198A (en) * | 2016-09-30 | 2018-04-06 | 中兴通讯股份有限公司 | Quasi-cyclic LDPC coding and decoding method, device and LDPC coders |
WO2018067027A1 (en) * | 2016-10-04 | 2018-04-12 | Huawei Technologies Co., Ltd | Rate-adaptive family of qc-ldpc codes |
US10944434B2 (en) * | 2014-05-22 | 2021-03-09 | Electronics And Telecommunications Research Institute | Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 4/15 and 16-symbol mapping, and bit interleaving method using same |
US11152957B2 (en) * | 2017-09-29 | 2021-10-19 | Cohere Technologies, Inc. | Forward error correction using non-binary low density parity check codes |
US20220321145A1 (en) * | 2018-12-14 | 2022-10-06 | Sanechips Technology Co., Ltd. | Information Processing Method and Device and Computer Storage Medium |
US20240063876A1 (en) * | 2022-08-16 | 2024-02-22 | Qualcomm Incorporated | Antenna switching in frequency bands with power spectral density (psd) limits |
US11955988B2 (en) * | 2015-12-28 | 2024-04-09 | Vivek Sathyanarayana Nittoor | System and method for generation of error-correcting codes in communication systems |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2905210B1 (en) * | 2006-08-24 | 2008-10-31 | St Microelectronics Sa | METHOD AND DEVICE FOR LAYERED DECODING OF AN ESTATE OF BLOCKS ENCODED WITH AN LDPC CODE |
FR2905209B1 (en) * | 2006-08-24 | 2008-10-31 | St Microelectronics Sa | METHOD AND DEVICE FOR DECODING BLOCKS ENCODED WITH LDPC CODE |
US7986441B2 (en) * | 2007-04-04 | 2011-07-26 | Wong Technologies L.L.C. | Embedding watermark into halftone image with low distortion using parity values for overlapping groups of candidate sites |
KR20080102902A (en) * | 2007-05-22 | 2008-11-26 | 삼성전자주식회사 | Method and apparatus for designing low density parity check code with multiple code rate, and information storage medium thereof |
US20080298493A1 (en) * | 2007-05-31 | 2008-12-04 | Texas Instruments Incorporated | N-candidate depth-first decoding |
JP4487213B2 (en) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | Decoding apparatus and method, and program |
JP4487212B2 (en) * | 2007-10-19 | 2010-06-23 | ソニー株式会社 | Decoding device and method, transmission / reception system, receiving device and method, and program |
PL2381582T3 (en) * | 2007-12-06 | 2013-09-30 | Samsung Electronics Co Ltd | Method and apparatus for channel encoding in a communication system using low-density parity-check codes |
CN101741396B (en) * | 2008-11-19 | 2013-03-13 | 华为技术有限公司 | Method and device for coding or decoding low-density parity-check (LDPC) codes with variable code length, coder and decoder |
EP2963829B1 (en) * | 2013-05-07 | 2018-07-11 | Huawei Technologies Co., Ltd. | Coding and decoding method, device and system |
KR102104937B1 (en) * | 2013-06-14 | 2020-04-27 | 삼성전자주식회사 | Method and apparatus for encoding and decoding of low density parity check codes |
US10382064B2 (en) | 2015-10-13 | 2019-08-13 | SK Hynix Inc. | Efficient LDPC encoder for irregular code |
TWI580197B (en) * | 2016-04-27 | 2017-04-21 | 國立清華大學 | Encoding and decoding method of low density parity check code |
Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020042899A1 (en) * | 2000-06-16 | 2002-04-11 | Tzannes Marcos C. | Systems and methods for LDPC coded modulation |
US20030014718A1 (en) * | 2001-07-05 | 2003-01-16 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
US20030126538A1 (en) * | 2001-12-20 | 2003-07-03 | Philippe Mejean | High-efficiency compact turbo-decoder |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US20040034828A1 (en) * | 2002-08-15 | 2004-02-19 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US6718508B2 (en) * | 2000-05-26 | 2004-04-06 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre | High-performance error-correcting codes with skew mapping |
US20040098659A1 (en) * | 2002-11-18 | 2004-05-20 | Bjerke Bjorn A. | Rate-compatible LDPC codes |
US20040141548A1 (en) * | 2000-07-19 | 2004-07-22 | Shattil Steve J. | Software adaptable high performance multicarrier transmission protocol |
US6847678B2 (en) * | 2002-04-25 | 2005-01-25 | Raytheon Company | Adaptive air interface waveform |
US20050034053A1 (en) * | 2003-08-08 | 2005-02-10 | Jacobsen Eric A. | Adaptive bit loading with low density parity check forward error correction |
US20050091570A1 (en) * | 2003-10-27 | 2005-04-28 | Mustafa Eroz | Method and system for providing long and short block length low density parity check (LDPC) codes |
US6895547B2 (en) * | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US20050160351A1 (en) * | 2003-12-26 | 2005-07-21 | Ko Young J. | Method of forming parity check matrix for parallel concatenated LDPC code |
US20050283707A1 (en) * | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US20050283709A1 (en) * | 2004-06-16 | 2005-12-22 | Samsung Electronics Co., Ltd. | Apparatus and method for coding and decoding semi-systematic block low density parity check codes |
US20060036923A1 (en) * | 2004-08-13 | 2006-02-16 | David Hedberg | Systems and methods for decreasing latency in a digital transmission system |
US7002900B2 (en) * | 2002-10-25 | 2006-02-21 | Qualcomm Incorporated | Transmit diversity processing for a multi-antenna communication system |
US20060087961A1 (en) * | 2004-10-21 | 2006-04-27 | Samsung Electronics Co., Ltd. | Apparatus and method for canceling inter-symbol interference in a broadband wireless communication system |
US20060123277A1 (en) * | 2004-11-23 | 2006-06-08 | Texas Instruments Incorporated | Simplified decoding using structured and punctured LDPC codes |
US20060123241A1 (en) * | 2004-12-07 | 2006-06-08 | Emin Martinian | Biometric based user authentication and data encryption |
US20060140294A1 (en) * | 2004-11-05 | 2006-06-29 | Nokia Corporation | Block modulation |
US7072289B1 (en) * | 2001-06-01 | 2006-07-04 | Lin Yang | Pseudo-random sequence padding in an OFDM modulation system |
US20070022352A1 (en) * | 2004-09-10 | 2007-01-25 | Mustafa Eroz | Code design and implementation improvements for low density parity check codes for wireless routers using 802.11N protocol |
US7173978B2 (en) * | 2000-07-21 | 2007-02-06 | Song Zhang | Method and system for turbo encoding in ADSL |
US20070041458A1 (en) * | 2005-08-16 | 2007-02-22 | Texas Instruments Incorporated | Encoding for Digital Communications in a Multiple-Input, Multiple-Output Environment |
US20070064828A1 (en) * | 2005-07-22 | 2007-03-22 | Aldana Carlos H | Method and system for multiple input multiple output (MIMO) channel estimation |
US20070101229A1 (en) * | 2005-10-27 | 2007-05-03 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for 802.11n systems |
US20070143655A1 (en) * | 2005-12-20 | 2007-06-21 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n system with packets length specified in OFDM symbols |
US7260055B2 (en) * | 2003-05-30 | 2007-08-21 | Agency For Science, Technology, And Research | Method for reducing channel estimation error in an OFDM system |
US7283499B2 (en) * | 2004-10-15 | 2007-10-16 | Nokia Corporation | Simplified practical rank and mechanism, and associated method, to adapt MIMO modulation in a multi-carrier system with feedback |
US7324605B2 (en) * | 2004-01-12 | 2008-01-29 | Intel Corporation | High-throughput multicarrier communication systems and methods for exchanging channel state information |
US7418051B2 (en) * | 2003-11-26 | 2008-08-26 | Lucent Technologies Inc. | Nonsystematic repeat-accumulate codes for encoding and decoding information in a communication system |
US20080256426A1 (en) * | 2004-11-12 | 2008-10-16 | Nokia Siemens Networks Oy | Low Density Parity Check Codes For Mimo Systems |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6857097B2 (en) | 2001-05-16 | 2005-02-15 | Mitsubishi Electric Research Laboratories, Inc. | Evaluating and optimizing error-correcting codes using a renormalization group transformation |
US6842872B2 (en) | 2001-10-01 | 2005-01-11 | Mitsubishi Electric Research Laboratories, Inc. | Evaluating and optimizing error-correcting codes using projective analysis |
US7139964B2 (en) | 2002-05-31 | 2006-11-21 | Broadcom Corporation | Variable modulation with LDPC (low density parity check) coding |
JP3815557B2 (en) | 2002-08-27 | 2006-08-30 | ソニー株式会社 | Encoding apparatus, encoding method, decoding apparatus, and decoding method |
US7216283B2 (en) | 2003-06-13 | 2007-05-08 | Broadcom Corporation | Iterative metric updating when decoding LDPC (low density parity check) coded signals and LDPC coded modulation signals |
KR100996029B1 (en) | 2003-04-29 | 2010-11-22 | 삼성전자주식회사 | Apparatus and method for coding of low density parity check code |
US7222284B2 (en) | 2003-06-26 | 2007-05-22 | Nokia Corporation | Low-density parity-check codes for multiple code rates |
US7334181B2 (en) | 2003-09-04 | 2008-02-19 | The Directv Group, Inc. | Method and system for providing short block length low density parity check (LDPC) codes |
KR100922956B1 (en) | 2003-10-14 | 2009-10-22 | 삼성전자주식회사 | Method for encoding of low density parity check code |
US7260763B2 (en) | 2004-03-11 | 2007-08-21 | Nortel Networks Limited | Algebraic low-density parity check code design for variable block sizes and code rates |
US7165205B2 (en) | 2004-05-14 | 2007-01-16 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
KR100913876B1 (en) | 2004-12-01 | 2009-08-26 | 삼성전자주식회사 | Method and apparatus for generating low density parity check codes |
US7343548B2 (en) | 2004-12-15 | 2008-03-11 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US7543197B2 (en) | 2004-12-22 | 2009-06-02 | Qualcomm Incorporated | Pruned bit-reversal interleaver |
US7549105B2 (en) | 2005-01-10 | 2009-06-16 | Broadcom Corporation | Construction of irregular LDPC (low density parity check) codes using RS (Reed-Solomon) codes or GRS (generalized Reed-Solomon) code |
US7516390B2 (en) | 2005-01-10 | 2009-04-07 | Broadcom Corporation | LDPC (Low Density Parity Check) coding and interleaving implemented in MIMO communication systems |
US7523375B2 (en) | 2005-09-21 | 2009-04-21 | Distribution Control Systems | Set of irregular LDPC codes with random structure and low encoding complexity |
US7584406B2 (en) | 2005-12-20 | 2009-09-01 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n system with packets length specific in octets |
-
2005
- 2005-12-13 US US11/300,211 patent/US7707479B2/en not_active Expired - Fee Related
Patent Citations (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6718508B2 (en) * | 2000-05-26 | 2004-04-06 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre | High-performance error-correcting codes with skew mapping |
US20020042899A1 (en) * | 2000-06-16 | 2002-04-11 | Tzannes Marcos C. | Systems and methods for LDPC coded modulation |
US20040141548A1 (en) * | 2000-07-19 | 2004-07-22 | Shattil Steve J. | Software adaptable high performance multicarrier transmission protocol |
US7173978B2 (en) * | 2000-07-21 | 2007-02-06 | Song Zhang | Method and system for turbo encoding in ADSL |
US7072289B1 (en) * | 2001-06-01 | 2006-07-04 | Lin Yang | Pseudo-random sequence padding in an OFDM modulation system |
US6633856B2 (en) * | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US6789227B2 (en) * | 2001-07-05 | 2004-09-07 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
US20030014718A1 (en) * | 2001-07-05 | 2003-01-16 | International Business Machines Corporation | System and method for generating low density parity check codes using bit-filling |
US6895547B2 (en) * | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US20030126538A1 (en) * | 2001-12-20 | 2003-07-03 | Philippe Mejean | High-efficiency compact turbo-decoder |
US6847678B2 (en) * | 2002-04-25 | 2005-01-25 | Raytheon Company | Adaptive air interface waveform |
US20040034828A1 (en) * | 2002-08-15 | 2004-02-19 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US7002900B2 (en) * | 2002-10-25 | 2006-02-21 | Qualcomm Incorporated | Transmit diversity processing for a multi-antenna communication system |
US20040098659A1 (en) * | 2002-11-18 | 2004-05-20 | Bjerke Bjorn A. | Rate-compatible LDPC codes |
US7260055B2 (en) * | 2003-05-30 | 2007-08-21 | Agency For Science, Technology, And Research | Method for reducing channel estimation error in an OFDM system |
US7213197B2 (en) * | 2003-08-08 | 2007-05-01 | Intel Corporation | Adaptive bit loading with low density parity check forward error correction |
US20050034053A1 (en) * | 2003-08-08 | 2005-02-10 | Jacobsen Eric A. | Adaptive bit loading with low density parity check forward error correction |
US20050091570A1 (en) * | 2003-10-27 | 2005-04-28 | Mustafa Eroz | Method and system for providing long and short block length low density parity check (LDPC) codes |
US7418051B2 (en) * | 2003-11-26 | 2008-08-26 | Lucent Technologies Inc. | Nonsystematic repeat-accumulate codes for encoding and decoding information in a communication system |
US20050160351A1 (en) * | 2003-12-26 | 2005-07-21 | Ko Young J. | Method of forming parity check matrix for parallel concatenated LDPC code |
US7324605B2 (en) * | 2004-01-12 | 2008-01-29 | Intel Corporation | High-throughput multicarrier communication systems and methods for exchanging channel state information |
US20050283709A1 (en) * | 2004-06-16 | 2005-12-22 | Samsung Electronics Co., Ltd. | Apparatus and method for coding and decoding semi-systematic block low density parity check codes |
US20050283707A1 (en) * | 2004-06-22 | 2005-12-22 | Eran Sharon | LDPC decoder for decoding a low-density parity check (LDPC) codewords |
US20060036923A1 (en) * | 2004-08-13 | 2006-02-16 | David Hedberg | Systems and methods for decreasing latency in a digital transmission system |
US20070022352A1 (en) * | 2004-09-10 | 2007-01-25 | Mustafa Eroz | Code design and implementation improvements for low density parity check codes for wireless routers using 802.11N protocol |
US7283499B2 (en) * | 2004-10-15 | 2007-10-16 | Nokia Corporation | Simplified practical rank and mechanism, and associated method, to adapt MIMO modulation in a multi-carrier system with feedback |
US20060087961A1 (en) * | 2004-10-21 | 2006-04-27 | Samsung Electronics Co., Ltd. | Apparatus and method for canceling inter-symbol interference in a broadband wireless communication system |
US20060140294A1 (en) * | 2004-11-05 | 2006-06-29 | Nokia Corporation | Block modulation |
US20080256426A1 (en) * | 2004-11-12 | 2008-10-16 | Nokia Siemens Networks Oy | Low Density Parity Check Codes For Mimo Systems |
US20060123277A1 (en) * | 2004-11-23 | 2006-06-08 | Texas Instruments Incorporated | Simplified decoding using structured and punctured LDPC codes |
US20060123241A1 (en) * | 2004-12-07 | 2006-06-08 | Emin Martinian | Biometric based user authentication and data encryption |
US20070064828A1 (en) * | 2005-07-22 | 2007-03-22 | Aldana Carlos H | Method and system for multiple input multiple output (MIMO) channel estimation |
US20070041458A1 (en) * | 2005-08-16 | 2007-02-22 | Texas Instruments Incorporated | Encoding for Digital Communications in a Multiple-Input, Multiple-Output Environment |
US20070101229A1 (en) * | 2005-10-27 | 2007-05-03 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for 802.11n systems |
US20070143655A1 (en) * | 2005-12-20 | 2007-06-21 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n system with packets length specified in OFDM symbols |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7661037B2 (en) | 2005-10-27 | 2010-02-09 | Samsung Electronics Co., Ltd. | LDPC concatenation rules for IEEE 802.11n systems |
US20080065956A1 (en) * | 2006-07-17 | 2008-03-13 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US7607075B2 (en) * | 2006-07-17 | 2009-10-20 | Motorola, Inc. | Method and apparatus for encoding and decoding data |
US8201068B2 (en) * | 2009-01-06 | 2012-06-12 | Mediatek Inc. | Method for generating parity-check matrix |
US20100174972A1 (en) * | 2009-01-06 | 2010-07-08 | York-Ted Su | Method for generating parity-check matrix |
US20110004811A1 (en) * | 2009-07-02 | 2011-01-06 | Samsung Electronics Co., Ltd | Encoding/decoding apparatus and method |
US8745460B2 (en) * | 2009-07-02 | 2014-06-03 | Samsung Electronics Co., Ltd. | Encoding/decoding apparatus and method |
US8196012B2 (en) | 2009-10-05 | 2012-06-05 | The Hong Kong Polytechnic University | Method and system for encoding and decoding low-density-parity-check (LDPC) codes |
US20110083052A1 (en) * | 2009-10-05 | 2011-04-07 | The Hong Kong Polytechnic University | Method and system for encoding and decoding low-density-parity-check (ldpc) codes |
US8381065B2 (en) * | 2010-10-01 | 2013-02-19 | Nec Laboratories America, Inc. | Modified progressive edge-growth LDPC codes for ultra-high-speed serial optical transport |
US20120084617A1 (en) * | 2010-10-01 | 2012-04-05 | Nec Laboratories America, Inc. | Modified progressive edge-growth ldpc codes for ultra-high-speed serial optical transport |
US10944434B2 (en) * | 2014-05-22 | 2021-03-09 | Electronics And Telecommunications Research Institute | Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 4/15 and 16-symbol mapping, and bit interleaving method using same |
US11955988B2 (en) * | 2015-12-28 | 2024-04-09 | Vivek Sathyanarayana Nittoor | System and method for generation of error-correcting codes in communication systems |
US11637568B2 (en) | 2016-09-30 | 2023-04-25 | Zte Corporation | Quasi-cyclic LDPC coding and decoding method and apparatus, and LDPC coder and decoder |
CN107888198A (en) * | 2016-09-30 | 2018-04-06 | 中兴通讯股份有限公司 | Quasi-cyclic LDPC coding and decoding method, device and LDPC coders |
EP3522379A4 (en) * | 2016-09-30 | 2019-09-11 | ZTE Corporation | Quasi-cyclic ldpc coding and decoding method and apparatus, and ldpc coder and decoder |
US11133826B2 (en) | 2016-09-30 | 2021-09-28 | Zte Corporation | Quasi-cyclic LDPC coding and decoding method and apparatus, and LDPC coder and decoder |
WO2018067027A1 (en) * | 2016-10-04 | 2018-04-12 | Huawei Technologies Co., Ltd | Rate-adaptive family of qc-ldpc codes |
US11632133B2 (en) * | 2017-09-29 | 2023-04-18 | Cohere Technologies, Inc. | Forward error correction using non-binary low density parity check codes |
US20220069844A1 (en) * | 2017-09-29 | 2022-03-03 | Cohere Technologies, Inc. | Forward error correction using non-binary low density parity check codes |
US11152957B2 (en) * | 2017-09-29 | 2021-10-19 | Cohere Technologies, Inc. | Forward error correction using non-binary low density parity check codes |
US20220321145A1 (en) * | 2018-12-14 | 2022-10-06 | Sanechips Technology Co., Ltd. | Information Processing Method and Device and Computer Storage Medium |
US11811422B2 (en) * | 2018-12-14 | 2023-11-07 | Sanechips Technology Co., Ltd. | Information processing method and device and computer storage medium |
US20240063876A1 (en) * | 2022-08-16 | 2024-02-22 | Qualcomm Incorporated | Antenna switching in frequency bands with power spectral density (psd) limits |
US12052081B2 (en) * | 2022-08-16 | 2024-07-30 | Qualcomm Incorporated | Antenna switching in frequency bands with power spectral density (PDS) limits |
Also Published As
Publication number | Publication date |
---|---|
US7707479B2 (en) | 2010-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7707479B2 (en) | Method of generating structured irregular low density parity checkcodes for wireless systems | |
US7516391B2 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
US8185797B2 (en) | Basic matrix, coder/encoder and generation method of the low density parity check codes | |
JP4555334B2 (en) | Apparatus and method for encoding / decoding block low density parity check code having variable block length | |
EP1596501B1 (en) | Apparatus and method for encoding and decoding block low density parity check codes with a variable coding rate | |
US7743312B2 (en) | Method for puncturing low density parity check code | |
US7526717B2 (en) | Apparatus and method for coding and decoding semi-systematic block low density parity check codes | |
EP1737133B1 (en) | Apparatus and method for transmitting/receiving data in a multi-antenna communication system using a structured low density parity check (LDPC) code | |
US7814393B2 (en) | Apparatus and method for coding/decoding block low density parity check code with variable block length | |
US20070101243A1 (en) | Method for puncturing a low density parity check code | |
Futaki et al. | Low-density parity-check (LDPC) coded OFDM systems | |
US11646818B2 (en) | Method and apparatus for encoding/decoding channel in communication or broadcasting system | |
EP1901433A1 (en) | A family of LDPC codes for video broadcasting applications | |
US8423860B2 (en) | Apparatus and method for generating a parity check matrix in a communication system using linear block codes, and a transmission/reception apparatus and method using the same | |
US11101926B2 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
US11791845B2 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
Uchôa et al. | LDPC codes based on progressive edge growth techniques for block fading channels | |
CN101150551B (en) | Interweaving scheme of QPSK/8PSK system for low-density checksum coding | |
CN101150378B (en) | Interleaving scheme of 32APSK system for low-density checksum coding | |
US11502781B2 (en) | Method and apparatus for channel encoding and decoding in communication or broadcasting system | |
CN101150550B (en) | Method for interweaving low-density parity check code bit, transmitter and receiver | |
Yang et al. | On the error exponent and the use of LDPC codes for cooperative sensor networks with misinformed nodes | |
Chandrasetty et al. | Construction of a multi-level hierarchical quasi-cyclic matrix with layered permutation for partially-parallel LDPC decoders | |
Krenz et al. | On the Selection of Channel Coding Schemes for Short-Range UAV Wireless Links | |
Healy et al. | Study of Structured Root-LDPC Codes and PEG Techniques for Block-Fading Channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NIU, HUANING;NGO, CHIU;REEL/FRAME:017330/0185 Effective date: 20051208 Owner name: SAMSUNG ELECTRONICS CO., LTD.,KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NIU, HUANING;NGO, CHIU;REEL/FRAME:017330/0185 Effective date: 20051208 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20220427 |