IP Library Granted Patent US 9,270,412
Granted Patent B2
US 9,270,412 · App. 14/314,347 · Granted Feb 23, 2016

Permute codes, iterative ensembles, graphical hash codes, and puncturing optimization

Inventors: Jonathan Perry (Cambridge, MA); Hari Balakrishnan (Belmont, MA); Devavrat D. Shah (Newton, MA)
Assignee: Massachusetts Institute of Technology
H04L1/0009H04L1/0041H04L1/0054H04L1/0058H04L1/0068H04L1/0071H04L1/08H03M13/251H03M13/2742
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,270,412
App. No.
14/314,347
Granted
Feb 23, 2016
Kind
B2
Abstract

Described herein are new error-correction (channel) codes: permute codes, iterative ensembles of permute and spinal codes, and graphical hash codes. In one aspect, a wireless system includes an encoder configured to encode data using one of the aforementioned channel codes. The wireless system also includes a decoder configured to decode the encoded data.

Claims (98)

1. A wireless system, comprising

an encoder configured to encode data using permute codes comprising pseudo-random permutations of k-bit blocks of the data which uses a permute function over message bits of the data to directly produce a sequence of constellation symbols for transmission; and

a decoder configured to decode the encoded data;

wherein k is a positive integer;

wherein the permute function comprises a seed function that uses previous message bits of the data to seed the pseudo-random permute codes.

2. The wireless system of claim 1 wherein the permute function is a non-linear function.

3. The wireless system of claim 1 wherein the permute function is a hash function.

4. The wireless system of claim 1 wherein the permute code is used in a rateless fashion.

5. The wireless system of claim 1 wherein the decoder is configured to provide feedback to the encoder.

6. A method of operating a wireless system which includes a transmitter and a receiver, the method comprising:

seeding pseudo-randomly generated permute codes with previous message bits of message data

transmitting, via the transmitter, a permute coded message over a wireless channel, the permute coded message included data encoded with the pseudo-randomly generated permute codes; and

receiving, via the receiver, the permute coded message over the wireless channel.

7. The method of claim 6 , further comprising providing feedback from the receiver to the transmitter.

8. The method of claim 6 , further comprising, at a transmitter:

generating a sequence of symbols by encoding message bits using the pseudo-randomly generated permute codes; and

mapping each symbol to a constellation point.

modulating constellation points on a carrier; and

transmitting a signal using the carrier.

9. The method of claim 6 , further comprising, at a receiver:

mapping a signal from an encoder to points on an I-Q plane, the signal comprising constellations encoded using pseudo-randomly generated permute codes; and

decoding the points on the I-Q plane.

10. A method to encode a message, the method comprising:

seeding pseudo-randomly generated permute codes with previous message bits of message data

generating a sequence of symbols by encoding message bits using the pseudo-randomly generated permute codes and; and

mapping each symbol to a constellation point.

11. The method of claim 10 , further comprising:

modulating constellation points on a carrier; and

transmitting a signal using the carrier.

12. The method of claim 10 , further comprising:

receiving feedback from a receiver; and

determining when to transmit based on an estimate of a distribution of the amount of symbols required to successfully decode.

13. The method of claim 10 , further comprising:

dividing a message into non-overlapping segments of size k bits each, wherein k is an integer greater than zero;

determining a series of n/k pseudo-randomly generated permute code values, wherein n is an integer greater than zero; and

generating constellation points by making one or more passes over each of the n/k spine values.

14. A method to decode comprising:

seeding pseudo-randomly generated permute codes with previously received message bits of message data

mapping a signal from an encoder to points on an I-Q plane, the signal comprising message bits encoded using the pseudo-randomly generated permute codes; and

using the pseudo-randomly generated permute codes to decode the points on the I-Q plane.

15. The method of claim 14 wherein the decoding comprises:

exploring a decoding tree iteratively; and

pruning at each iteration all but a defined amount of nodes.

16. The method of claim 14 , further comprising providing feedback to the encoder.

17. An encoder comprising:

a non-transitory machine-readable medium that stores executable instructions, the instructions causing a machine to:

seed pseudo-randomly generated permute codes with previous message bits of message data;

generate a sequence of symbols by encoding message bits with the pseudo-randomly generated permute codes; and

map each symbol to a constellation point.

18. The encoder of claim 17 , further comprising instructions causing a machine to:

modulate constellation points on a carrier; and

transmit a signal using the carrier.

19. The encoder of claim 17 , further comprising instructions causing a machine to:

receive feedback from a decoder; and

determine when to transmit based on an estimate of a distribution of the amount of symbols required to successfully decode.

20. The encoder of claim 17 , further comprising instructions causing a machine to:

divide a message into non-overlapping segments of size k bits each, wherein k is an integer greater than zero;

determine a series of n/k permute values, wherein n is an integer greater than zero; and

generate constellation points by making one or more passes over each of the n/k permute values.

21. A decoder comprising:

a non-transitory machine-readable medium that stores executable instructions, the instructions causing a machine to:

seed pseudo-randomly generated permute codes with previous message bits of message data;

map signals from an encoder to points on an I-Q plane, the signals comprising constellations encoded using the pseudo-randomly generated permute codes; and

decode the constellation symbols.

22. The decoder of claim 21 wherein the instructions causing the machine to decode comprises instructions causing the machine to:

explore a decoding tree iteratively; and

prune at each iteration all but a defined amount of nodes.

23. The decoder of claim 21 , further comprising instructions causing a machine to provide feedback to the encoder.

24. A method to provide feedback in a wireless system comprising:

obtaining packets;

dividing a packet of N bits into multiple code blocks;

including a cyclic redundancy check (CRC) for each code block;

seeding pseudo-randomly generated permute codes with previous message bits of message data;

encoding the code block using one or more of the pseudo-randomly generated permute codes in a rateless manner;

determining how many passes and puncturing to send; and

transmitting encoded symbols to a receiver.

25. The method of claim 24 , further comprising:

receiving the encoded symbols from a transmitter;

decoding the received encoded symbols; and

checking the CRCs.

26. The method of claim 24 , further comprising:

sending a feedback signal to an encoder if packets are not all successfully decoded; and

sending a final feedback signal to the encoder if packets are successfully decoded.

27. A wireless system comprising:

a transmitter comprising a non-transitory machine-readable medium that stores a first set executable instructions, the first set of instructions causing a machine to:

obtain packets;

divide a packet of N bits into multiple code blocks;

include a cyclic redundancy check (CRC) for each code block;

seed pseudo-randomly generated permute codes with previous message bits of message data;

encode the code block using one or more of the pseudo-randomly generated permute codes in a rateless manner;

determine how many passes and puncturing to send; and

transmit encoded symbols to a receiver.

28. The wireless system of claim 27 , further comprising the receiver comprising a non-transitory machine-readable medium that stores a second set of executable instructions, the second set of instructions causing a machine to:

receive encoded symbols from the transmitter;

decode the received symbols;

check the CRCs;

send a feedback signal to a transmitter if packets are not all successfully decoded; and

send a final feedback signal to the transmitter if packets are successfully decoded.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2015
From: PERRY, JONATHAN; BALAKRISHNAN, HARI; SHAH, DEVAVRAT D.
To: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
Reel/Frame 035508/0428 →
CONFIRMATORY LICENSE Recorded Jan 2, 2015
From: MASSACHUSETTS INSTITUTE OF TECHNOLOGY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 034719/0472 →
Continuity (2)
Provisional Application 61839615 · Jun 26, 2013
Related Publication 20150003557A1 · Jan 1, 2015