IP Library Granted Patent US 9,104,589
Granted Patent B1
US 9,104,589 · App. 14/055,734 · Granted Aug 11, 2015

Decoding vectors encoded with a linear block forward error correction code having a parity check matrix with multiple distinct pattern regions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,104,589
App. No.
14/055,734
Granted
Aug 11, 2015
Kind
B1
Abstract

A decoder for decoding received vectors r encoded in accordance with a forward error correction code having a parity check matrix H with multiple regions at least two of which have patterns of ones with different pattern characteristics. The decoder can include a permuted decode module configured to decode in accordance with a permuted version of the parity check matrix H in which the ones in one of the regions are permuted into a permuted pattern that has a pattern characteristic of the other region. The decoder can also include a reorder module that permutes probabilities of a received vector r to be decoded to correspond with the permuted parity check matrix H.

Claims (60)

1. A process of decoding a received vector r encoded in accordance with a forward error correction code, wherein said received vector r comprises a first section of k probabilities and a second section of n−k probabilities, wherein said forward error correction code corresponds to an n−k row by n column parity check matrix H, wherein said matrix H comprises a first region of k columns and a second region of n−k columns, wherein all ones of said matrix H in said first region are in a first pattern having a first pattern characteristic and all ones of said matrix H in said second region are in a second pattern having a second pattern characteristic that is different than said first pattern characteristic, said process comprising:

permuting by an electronic processor circuit in accordance with a permutation function one of said first section or said second section of said received vector r to produce a permuted received vector πr, wherein application of said permutation function to a corresponding one of said first region or said second region of said matrix H produces a permuted parity check matrix H comprising one of said first region or said second region of said parity check matrix H and a permuted version of the other of said second region or said first region of said parity check matrix H such that all ones in both regions of said permuted parity check matrix πH are in a pattern having either said first pattern characteristic or said second pattern characteristic; and

decoding by said electronic processor circuit said permuted received vector πr in accordance with said permuted parity check matrix πH.

2. The process of claim 1 , wherein:

said permuting comprises permuting in accordance with said permutation function said n−k probabilities of said second section of said received vector r to produce said permuted received vector πr comprising said first section of k probabilities and a permuted version of said second section of n−k probabilities, and

said decoding comprises decoding said permuted received vector πr in accordance with said permuted parity check matrix πH comprising said first region of k columns and said permuted version of said second region of n−k columns.

3. The process of claim 2 , wherein:

said first region of said parity check matrix H comprises a plurality of contiguous n−k row by M column sub-matrices, and

said first pattern characteristic is that said all ones in said first region are points on lines in said sub-matrices having a slope q, where q equals n−k/M.

4. The process of claim 3 , wherein:

said second characteristic is that said all ones in said second region are part of a stepped pattern from one corner to an opposite corner of said second region, and

said stepped pattern has a slope that is different than q.

5. The process of claim 4 , wherein said all of said ones in said permuted second region of said permuted parity check matrix πH are points on a line having said slope q.

6. The process of claim 3 , wherein said permuting step reorders said n−k probabilities of said second section in groups of q probabilities, where q equals n−k/M.

7. The process of claim 3 , wherein said permuting step reorders said n−k probabilities of said second section such that contiguous pairs of said n−k probabilities in said second section of said received vector r are separated by q probabilities in said permuted received vector πp, where q equals n−k/M.

8. The process of claim 3 , wherein, in said permuted pattern, each of at least some of said ones in said permuted version of said second region are a distance q from positions of each of said at least some of said ones in said second pattern, where q equals n−k/M.

9. The process of claim 3 , wherein said decoding step comprising decoding said permuted received vector πr with a permuted decode module comprising variable nodes interconnected with check nodes in accordance with at least part of a Tanner-Graph of said permuted parity check matrix πH.

10. The process of claim 1 , wherein said electronic processor circuit comprises at least one of:

digital logic circuitry; or

a digital memory device configured to store machine readable instructions and a digital processor configured to operate in accordance with said machine readable instructions.

11. A process of decoding a received vector r encoded in accordance with a forward error correction code, wherein said received vector r comprises a first section of k probabilities and a second section of n−k probabilities, wherein said forward error correction code corresponds to an n−k row by n column parity check matrix H, wherein said matrix H comprises a first region of k columns and a second region of n−k columns, wherein all ones of said matrix H in said first region are in a first pattern having a first pattern characteristic and all ones of said matrix H in said second region are in a second pattern having a second pattern characteristic that is different than said first pattern characteristic, said process comprising:

permuting in accordance with a permutation function one of said first section or said second section of said received vector r to produce a permuted received vector πr, wherein application of said permutation function to a corresponding one of said first region or said second region of said matrix H produces a permuted parity check matrix πH comprising one of said first region or said second region of said parity check matrix H and a permuted version of the other of said second region or said first region of said parity check matrix H such that all ones in both regions of said permuted parity check matrix πH are in a pattern having either said first pattern characteristic or said second pattern characteristic; and

decoding said permuted received vector πr in accordance with said permuted parity check matrix πH,

wherein:

said permuting comprises permuting in accordance with said permutation function said n−k probabilities of said second section of said received vector r to produce said permuted received vector πr comprising said first section of k probabilities and a permuted version of said second section of n−k probabilities,

said decoding comprises decoding said permuted received vector πr in accordance with said permuted parity check matrix πH comprising said first region of k columns and said permuted version of said second region of n−k columns,

said first region of said parity check matrix H comprises a plurality of contiguous n−k row by M column sub-matrices,

said first pattern characteristic is that said all ones in said first region are points on lines in said sub-matrices having a slope q, where q equals n−k/M, and

said decoding step further comprises performing calculations of at least some of said variable nodes and at least one of said check nodes in a combined variable/check node processor.

12. The process of claim 11 , wherein said decoding step further comprises:

successively calculating with M parallel combined variable/check node processors new estimated values for M of said probabilities of said permuted received vector and new check-to-variable-node messages from previous estimated values for said M of said probabilities stored in a first M column wide memory and previous check-to-variable-node messages stored in a second M column wide memory;

storing successive new estimated values for said M of said probabilities of said permuted received vector in said first M column wide memory; and

storing successive new check-to-variable-node messages in said second M column wide memory.

13. A decoder for decoding a received vector r encoded in accordance with a forward error correction code, wherein said received vector r comprises a first section of k probabilities and a second section of n−k probabilities, wherein said forward error correction code corresponding to a parity check matrix H comprising a first region of k columns and a second region of n−k columns, wherein all ones of said matrix H in said first region are in a first pattern having a first pattern characteristic and all ones of said matrix H in said second region are in a second pattern having a second pattern characteristic that is different than said first pattern characteristic, said decoder comprising:

a reorder module configured to permute in accordance with a permutation function one of said first section or said second section of said received vector r to produce a permuted received vector πr, wherein application of said permutation function to a corresponding one of said first region or said second region of said matrix H produces a permuted parity check matrix πH comprising one of said first region or said second region of said parity check matrix H and a permuted version of the other of said second region or said first region of said parity check matrix H such that all ones in both regions of said permuted parity check matrix πH are in a pattern having either said first pattern characteristic or said second pattern characteristic; and

a permuted decode module configured to decode said permuted received vector πr in accordance with said permuted parity check matrix πH;

wherein said reorder module and said permuted decode module comprise an electronic processor circuit comprising at least one of: digital logic circuitry; or a digital memory device configured to store machine readable instructions and a digital processor configured to operate in accordance with said machine readable instructions.

14. The decoder of claim 13 , wherein:

said reorder module is further configured to permute in accordance with said permutation function said n−k probabilities of said second section of said received vector r to produce said permuted received vector πr comprising said first section of k probabilities and a permuted version of said second section of n−k probabilities, and

said permuted decode module is further configured to decode said permuted received vector πr in accordance with said permuted parity check matrix πH comprising said first region of k columns and said permuted version of said second region of n−k columns.

15. The decoder of claim 14 , wherein:

said first region of said parity check matrix H comprises a plurality of contiguous n−k row by M column sub-matrices, and

said first pattern characteristic is that said all ones in said first region are points on lines in said sub-matrices each having a slope q, where q equals n−k/M.

16. The decoder of claim 15 , wherein:

said second characteristic is that said all ones in said second region are part of a stepped pattern from one corner to an opposite corner of said second region, and

said stepped pattern has a slope that is different than q, where q equals n−k/M.

17. The decoder of claim 16 , wherein said all of said ones in said permuted second region of said permuted parity check matrix πH are points on at least one line having said slope q, where q equals n−k/M.

18. The decoder of claim 15 , wherein said reorder module is configured to reorder said n−k probabilities of said second section in groups of q probabilities, where q equals n−k/M.

19. The decoder of claim 15 , wherein, in said permuted pattern, each of at least some of said ones in said permuted version of said second region is a distance q from positions of each of said at least some of said ones in said second pattern, where q equals n−k/M.

20. The decoder of claim 15 , wherein, in said permuted version of said second section, contiguous pairs of said n−k probabilities in said second section of said received vector r are separated by q probabilities in said permuted version of said second section, where q equals n−k/M.

21. The decoder of claim 15 , wherein said permuted decode module comprises variable nodes interconnected with check nodes in accordance with at least part of a Tanner-Graph of said permuted parity check matrix πH.

22. A decoder for decoding a received vector r encoded in accordance with a forward error correction code, wherein said received vector r comprises a first section of k probabilities and a second section of n−k probabilities, wherein said forward error correction code corresponding to a parity check matrix H comprising a first region of k columns and a second region of n−k columns, wherein all ones of said matrix H in said first region are in a first pattern having a first pattern characteristic and all ones of said matrix H in said second region are in a second pattern having a second pattern characteristic that is different than said first pattern characteristic, said decoder comprising:

a reorder module configured to permute in accordance with a permutation function one of said first section or said second section of said received vector r to produce a permuted received vector πr, wherein application of said permutation function to a corresponding one of said first region or said second region of said matrix H produces a permuted parity check matrix πH comprising one of said first region or said second region of said parity check matrix H and a permuted version of the other of said second region or said first region of said parity check matrix H such that all ones in both regions of said permuted parity check matrix πH are in a pattern having either said first pattern characteristic or said second pattern characteristic; and

a permuted decode module configured to decode said permuted received vector πr in accordance with said permuted parity check matrix πH,

wherein:

said reorder module is further configured to permute in accordance with said permutation function said n−k probabilities of said second section of said received vector r to produce said permuted received vector πr comprising said first section of k probabilities and a permuted version of said second section of n−k probabilities, said permuted decode module is further configured to decode said permuted received vector πr in accordance with said permuted parity check matrix πH comprising said first region of k columns and said permuted version of said second region of n−k columns,

said first region of said parity check matrix H comprises a plurality of contiguous n−k row by M column sub-matrices,

said first pattern characteristic is that said all ones in said first region are points on lines in said sub-matrices each having a slope q, where q equals n−k/M,

said permuted decode module comprises variable nodes interconnected with check nodes in accordance with at least part of a Tanner-Graph of said permuted parity check matrix πH, and

at least some of said variable nodes and at least one of said check nodes are configured in a combined variable/check node digital processor.

Assignments (2)
CHANGE OF NAME Recorded Apr 11, 2023
From: L-3 COMMUNICATIONS CORPORATION
To: L3 TECHNOLOGIES, INC.
Reel/Frame 063295/0788 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2013
From: LANDON, DAVID G.; HINTON, RYAN W.; ABBASZADEH, AYYOOB B.
To: L-3 COMMUNICATIONS
Reel/Frame 031419/0912 →