Cyclic redundancy check modification for message length detection and error detection
First Claim
1. A method for a variable-length communications system, wherein messages to be transmitted are divided into variable-length message blocks, the method comprising:
- providing a cyclic redundancy check (CRC) generating polynomial gl(x), wherein l is an integer and is the order of gl(x);
providing a binary flip polynomial fl(x) having an order of l−
1, wherein fl(x)=fl-1xl-1+fl-2xl-2+ . . . +f0; and
encoding a message block M of a message to be transmitted, wherein M includes k binary bits, mk-1, mk-2, . . . , m0, and wherein encoding M includes generating a parity check bit stream P, wherein P includes l parity check bits, pl-1, pl-2, . . . , p0, such that gl(x)|(xlM(x)+P(x)), wherein M(x)=mk-1xk-1+mk-2xk-2+ . . . +m0, and P(x)=pl-1xl-1+pl-2xl-2+ . . . +p0, flipping the parity check bit stream P to generate a flipped parity check bit stream {overscore (P)} including l flipped parity check bits {overscore (pl-1)}, {overscore (pl-2)}, . . . , {overscore (p0)}, such that {overscore (pi-1)}=pl-1+fl-1, {overscore (pl-2)}=pl-2+fl-2, . . . , {overscore (p0)}=p0+f0, wherein “
+”
is a modulo-2 addition operation, and appending the flipped parity check bit stream {overscore (P)} to the end of message block M to create a concatenated bit stream C, such that C includes k+1 bits, mk-1, mk-2, . . . , m0, {overscore (pl-1)}, {overscore (pl-2)}, . . . , {overscore (p0)}.
3 Assignments
0 Petitions
Accused Products
Abstract
In a method for a variable-length communications system including encoding a message and decoding a data bit stream, the message includes a plurality of message blocks. A message block of the message is encoded by generating a parity check bit stream, flipping the parity check bit stream, and appending the flipped parity check bit stream to the end of the message block. When a data bit stream is received, a guessed message block and a guessed flipped parity check bit stream are extracted based on a guessed message block length. A parity check bit stream is generated for the guessed message block and then flipped. If the flipped parity check bit stream is the same as the guessed flipped parity check bit stream, the message block has been identified. Otherwise, the guessed message block length is increased by 1 and the above step is repeated.
-
Citations
17 Claims
-
1. A method for a variable-length communications system, wherein messages to be transmitted are divided into variable-length message blocks, the method comprising:
-
providing a cyclic redundancy check (CRC) generating polynomial gl(x), wherein l is an integer and is the order of gl(x);
providing a binary flip polynomial fl(x) having an order of l−
1, wherein fl(x)=fl-1xl-1+fl-2xl-2+ . . . +f0; and
encoding a message block M of a message to be transmitted, wherein M includes k binary bits, mk-1, mk-2, . . . , m0, and wherein encoding M includes generating a parity check bit stream P, wherein P includes l parity check bits, pl-1, pl-2, . . . , p0, such that gl(x)|(xlM(x)+P(x)), wherein M(x)=mk-1xk-1+mk-2xk-2+ . . . +m0, and P(x)=pl-1xl-1+pl-2xl-2+ . . . +p0, flipping the parity check bit stream P to generate a flipped parity check bit stream {overscore (P)} including l flipped parity check bits {overscore (pl-1)}, {overscore (pl-2)}, . . . , {overscore (p0)}, such that {overscore (pi-1)}=pl-1+fl-1, {overscore (pl-2)}=pl-2+fl-2, . . . , {overscore (p0)}=p0+f0, wherein “
+”
is a modulo-2 addition operation, andappending the flipped parity check bit stream {overscore (P)} to the end of message block M to create a concatenated bit stream C, such that C includes k+1 bits, mk-1, mk-2, . . . , m0, {overscore (pl-1)}, {overscore (pl-2)}, . . . , {overscore (p0)}. - View Dependent Claims (2, 3, 4)
-
-
5. A method for a variable-length communications system, wherein the system includes a receiver, the method comprising:
-
storing in the receiver information of a cyclic redundancy check (CRC) generating polynomial gl(x), wherein l is an integer and is the order of gl(x), and information of a flip polynomial fl(x) having an order of l−
1;
receiving a data bit stream including a plurality of concatenated bit streams, each concatenated bit stream consisting of a message block and a corresponding flipped parity check bit stream; and
identifying a first message block in the data bit stream, including (a) guessing a message block length {circumflex over (k)} and a message block M′
consisting of the first {circumflex over (k)} bits in the data bit stream,wherein {circumflex over (k)} is an integer, and wherein l bits in the data bit stream that immediately follow the message block M′
compose a guessed flipped bit stream P′
,(b) generating a parity check bit stream {circumflex over (P)} including l parity check bits, {circumflex over (p)}l-1, {circumflex over (p)}l-2, . . . , {circumflex over (p)}0, such that gl(x)|(xlM′
(x)+{circumflex over (P)}(x)), wherein(c) flipping the parity check bit stream {circumflex over (P)} using flip polynomial fl(x) to generate a flipped parity check bit stream {circumflex over (P)}′
including l flipped parity check bits, {circumflex over (p)}′
l-1, {circumflex over (p)}′
l-2, . . . , {overscore (p)}′
0, and(d) if P′ and
{circumflex over (P)}′
are different, increasing {circumflex over (k)} by 1 and repeating (a)-(c). - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A method for a variable-length communications system, wherein the system includes a transmitter and a receiver, wherein messages are divided into variable-length message blocks, comprising:
-
providing a cyclic redundancy check (CRC) generating polynomial gl(x), wherein l is an integer and is the order of gl(x);
providing a binary flip polynomial fl(x) having an order of l−
1;
storing in both the transmitter and the receiver information of CRC generating polynomial gl(x) and information of flip polynomial fl(x);
encoding a message to be transmitted by encoding each message block M thereof, wherein encoding M includes generating a parity check bit stream P using the CRC generating polynomial gl(x), flipping the parity check bit stream P to generate a flipped parity check bit stream {overscore (P)} using flip polynomial fl(x), and appending the flipped parity check bit stream {overscore (P)} to the end of the message block M to create a concatenated bit stream C; and
transmitting the concatenated bit streams C of the message blocks M of the message to be transmitted;
receiving a data bit stream including a plurality of concatenated bit streams, each concatenated bit stream consisting of a message block and a corresponding flipped parity check bit stream; and
decoding the data bit stream, including identifying a first message block in the data bit stream, including (a) guessing a message block length {circumflex over (k)} and a message block M′
consisting of the first {circumflex over (k)} bits in the data bit stream,
wherein {circumflex over (k)} is an integer, and wherein l bits in the data bit stream that immediately follow the message block M′
compose a guessed flipped bit stream P′
,(b) generating a parity check bit stream {circumflex over (P)} using CRC generating polynomial gl(x), (c) flipping the parity check bit stream {circumflex over (P)} using flip polynomial fl(x) to generate a flipped parity check bit stream {circumflex over (P)}′
,(d) if P′ and
{circumflex over (P)}′
are different, increasing {circumflex over (k)} by 1 and repeating (a)-(c), and(e) removing the first {circumflex over (k)}+l bits from the data bit stream when P′
={circumflex over (P)}′
, andrepeating the identifying of the first message block in the data bit stream after the first {circumflex over (k)}+l bits are removed. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification