IP Library Granted Patent US 11,095,314
Granted Patent B2
US 11,095,314 · App. 16/793,224 · Granted Aug 17, 2021

Decoding signals by guessing noise

Inventors: Muriel Medard (Belmont, MA); Kenneth R. Duffy (Dublin, IE)
Assignees: Massachusetts Institute of Technology; National University of Ireland Maynooth
H03M13/2951H03M13/05H03M13/2906H03M13/2927H03M13/37H03M13/3746H03M13/6337H04L1/005H04L1/0045H04L1/0054H04L1/0065H04L1/0057
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 11,095,314
App. No.
16/793,224
Granted
Aug 17, 2021
Kind
B2
Abstract

Devices and methods described herein decode a sequence of coded symbols by guessing noise. In various embodiments, noise sequences are ordered, either during system initialization or on a periodic basis. Then, determining a codeword includes iteratively guessing a new noise sequence, removing its effect from received data symbols (e.g. by subtracting or using some other method of operational inversion), and checking whether the resulting data are a codeword using a codebook membership function. This process is deterministic, has bounded complexity, asymptotically achieves channel capacity as in convolutional codes, but has the decoding speed of a block code. In some embodiments, the decoder tests a bounded number of noise sequences, abandoning the search and declaring an erasure after these sequences are exhausted. Abandonment decoding nevertheless approximates maximum likelihood decoding within a tolerable bound and achieves channel capacity when the abandonment threshold is chosen appropriately.

Claims (31)

1. A method, in a decoder, of decoding as a codeword a plurality of symbols received from a data sender using a noisy data channel, the method comprising:

selecting, by a noise guesser according to a noise guessing order, a sequence of noise symbols previously unselected for the received plurality of symbols;

forming, in a buffer, a block of symbols by inverting a noise effect, of the selected sequence of noise symbols, on the received plurality of symbols; and

determining whether the formed block of symbols is a codeword.

2. A method according to claim 1 , wherein selecting according to the noise guessing order comprises selecting according to a maximum likelihood order.

3. A method according to claim 2 , further comprising determining the maximum likelihood order according to a probabilistic model.

4. A method according to claim 3 , wherein the probabilistic model prioritizes noise effects toward the latest received symbols in the plurality of received symbols.

5. A method according to claim 1 , further comprising determining the noise guessing order according to machine learning.

6. A method according to claim 1 , wherein determining the noise guessing order comprises measuring one or more characteristics of the noisy data channel that include: a signal-to-noise ratio, an interference ratio, a change in a codeword error rate, and a multiple-user conflict interference.

7. A method according to claim 1 , wherein selecting according to the noise guessing order comprises selecting according to information, provided by the data sender, regarding a pattern of noise mixed with the codeword by the data sender.

8. A method according to claim 1 , wherein inverting the noise effect comprises subtracting or dividing the selected sequence of noise symbols from the received plurality of symbols.

9. A method according to claim 1 , wherein the codeword is contained in a random codebook, a random linear codebook, a Hamming codebook, or a Low Density Parity Check codebook.

10. A method according to claim 1 , wherein determining whether the formed block of symbols is a codeword comprises validating, by a codeword validator, the formed block of symbols using one or more of: validation information received from the data sender, a codebook memory, a function taking the formed block of symbols as input and having a binary output, and a codebook oracle.

11. A method according to claim 1 , further comprising, in response to determining whether the formed block of symbols is a codeword, outputting, by a noise outputter, the selected sequence of noise symbols.

12. A method according to claim 1 , further comprising storing, by a codeword validator in a storage as a list, each formed block of symbols that is a codeword, then when the list has reached a given number of elements, outputting the list.

13. A method according to claim 1 , performed simultaneously by each of a plurality of distributed decoders on the plurality of symbols received from the data sender.

14. A method according to claim 1 , further comprising:

incrementing a repetition count each time a codeword validator attempts to validate a formed block of symbols; and

determining whether the formed block of symbols is a codeword, by the codeword validator, when the repetition count reaches a first threshold.

15. A method according to claim 14 , further comprising outputting either or both of an error signal and diagnostic information pertaining to an error.

16. A method according to claim 14 , further comprising:

storing, as a list in a codeword memory, each formed block of symbols that is a codeword; and

when the list has reached a given number of elements, outputting the list.

17. A method according to claim 14 , wherein determining whether the formed block of symbols is a codeword comprises determining that the repetition count has reached at least a second threshold that is a function of a codebook rate, an estimated noise property, or both.

18. A method according to claim 17 , wherein determining whether the formed block of symbols is a codeword further comprises determining that the codebook rate is greater than 1 due to a temporary decrease in channel capacity caused by transient noise.

19. A method according to claim 14 , wherein determining whether the formed block of symbols is a codeword further comprises the codeword validator declaring an erasure.

20. A decoder for decoding a plurality of symbols as a codeword, the decoder comprising:

a receiver for receiving the plurality of symbols from a data sender using a noisy data channel;

a noise guesser for selecting, according to a noise guessing order, a sequence of noise symbols previously unselected for the received plurality of symbols;

a buffer for storing a block of symbols formed by inverting a noise effect, of the selected sequence of noise symbols, on the received plurality of symbols; and

a codeword validator for determining whether the formed block of symbols is a codeword.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MEDARD, MURIEL
To: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Reel/Frame 051872/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: DUFFY, KENNETH R.
To: NATIONAL UNIVERSITY OF IRELAND, MAYNOOTH
Reel/Frame 051872/0509 →
Continuity (4)
Continuation 16026822 · Jul 3, 2018
Provisional Application 62609765 · Dec 22, 2017
Provisional Application 62631104 · Feb 15, 2018
Related Publication 20200186172A1 · Jun 11, 2020
Cited By (7)
US 12,328,242 US 12,379,414 US 12,416,662 US 12,442,852 US 12,571,841 US 12,596,145 US 12,687,563