# US 8,787,506 B2 · Decoders and methods for decoding convolutional coded data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,787,506 B2
- Document ID: US8787506B2
- Status: Granted
- Kind: B2
- Application number: 13/464,667
- Filed: 2012-05-04
- Published: 2013-11-07
- Granted: 2014-07-22
- Earliest claimed: 2012-05-04
- Assignees: QUALCOMM Incorporated
- Applicants: Divaydeep Sikri
- Inventors: Divaydeep Sikri
- Web page: https://patentgrep.com/patent/US8787506B2

## CPC

- H03M 13/23: using convolutional codes, e.g. unit memory codes
- H03M 13/3715: {Adaptation to the number of estimated errors or to the channel state}
- H03M 13/373: {with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes}
- H03M 13/3776: {using a re-encoding step during the decoding process}
- H03M 13/09: Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M 13/41: using the Viterbi algorithm or Viterbi processors
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

Decoder and communications devices including such decoders can obtain a convolutional coded bit stream including a plurality of coded data bits. According to some implementations, if a signal quality associated with the convolutional coded bit stream is above a predetermined threshold, a decoded value for each information bit may be calculated at least from a modulo 2 sum of a coded data bit added to at least one other coded data bit, at least one previously calculated information bit, or a combination of at least one other coded data bit and at least one previously calculated information bit. Also, according to some implementations, if the signal quality associated with the convolutional coded bit stream is not above the predetermined threshold, the convolutional coded bit stream may be decoded with a conventional convolutional decoding scheme. Other aspects, embodiments, and features are also claimed and described.

## Claims

### Claim 1

A communications device comprising a decoder, wherein the decoder comprises:
a first decoding circuit configured to:
obtain a plurality of coded data bits ‘C’ from a convolutional coded bit stream that is half-rate convolutional coded according to generator polynomials G0=1+D3+D4 and G1=1+D+D3+D4, where ‘D’ represents a bit location and where only three of four bursts of a data block of the convolutional coded bit stream are available;
determine a decoded value for each information bit U2k−1 at least by calculating a modulo 2 sum of a coded data bit C4k added to another coded data bit C4k +1 from the coded bit stream, where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream; and
determine a decoded value for each information bit U2k at least by calculating a modulo 2 sum of a coded data bit C2(2k+3) added to a previously calculated information bit U2k+3 and to a previously calculated information bit U2k−1.

### Claim 2 (depends on 1)

The communications device of claim 1, wherein the decoder further comprises a second decoding circuit configured to decode the convolutional coded bit stream with Viterbi decoding.

### Claim 3

A method operational on a communications device, comprising:
receiving by a processing circuitry, a half-rate convolutional coded bit stream coded according to generator polynomials G0=1+D3+D4 and G1=1+D+D3+D4 where ‘D’ represents a bit location and including a plurality of coded data bits ‘C’, where three out of four bursts of a data block of the half-rate convolutional coded bit stream are available;
determining whether a signal quality associated with the convolutional coded bit stream is above a predetermined threshold; and
when the signal quality associated with the convolutional coded bit stream is above the predetermined threshold, determining a decoded value for each information bit U2k−1 at least by calculating a modulo 2 sum of a coded data bit C4k added to another coded data bit C4k+1 from the coded bit stream, and determining another decoded value for each information bit U2k at least by calculating a modulo 2 sum of a coded data bit C2(2k+3) added to a previously calculated information bit U2k+3 and to a previously calculated information bit U2k−1, where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream.

### Claim 4 (depends on 3)

The method of claim 3, wherein determining whether the signal quality associated with the convolutional coded bit stream is above the predetermined threshold comprises:
determining the signal quality from one or more factors from a plurality of factors comprising:
whether absolute values for soft decisions associated with the coded bit stream are above a predetermined threshold;
whether a signal-to-noise ratio associated with the coded bit stream is above a predetermined threshold; and
whether a bit error rate is below a predetermined threshold.

### Claim 5 (depends on 3)

The method of claim 3, further comprising: performing a cyclic redundancy (CRC) check to determine whether the data has been decoded accurately; and if the CRC check fails, decoding the convolutional coded bit stream with Viterbi decoding.

### Claim 6 (depends on 3)

The method of claim 3, further comprising: decoding the convolutional coded bit stream with Viterbi decoding if the signal quality associated with the convolutional coded bit stream is below the predetermined threshold.

### Claim 7

A communications device comprising a decoder, wherein the decoder comprises:
a first decoding circuit configured to:
obtain a plurality of coded data bits ‘C’ from a convolutional coded bit stream that is half-rate convolutional coded according to generator polynomials G0=1+D3+D4 and G1=1+D+D3+D4, where ‘D’ represents a bit location, and where only two of four bursts of a data block of the convolutional coded bit stream are available;
determine a decoded value for each information bit U2k−1 at least by calculating a modulo 2 sum of a coded data bit C4k added to another coded data bit C4k+1 from the coded bit stream, where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream; and
determine another decoded value for each information bit U2k at least by calculating a modulo 2 sum of a coded data bit C4k added to a previously calculated information bit U2k−3 and to a previously calculated information bit U2k−4.

### Claim 8 (depends on 7)

The communications device of claim 7, wherein the decoder further comprises a second decoding circuit configured to decode the convolutional coded bit stream with Viterbi decoding.

### Claim 9

A method operational on a communications device, comprising:
receiving, by a processing circuitry, a half-rate convolutional coded bit stream coded according to generator polynomials G0=1+D3+D4 and G1=1+D+D3+D4 and including a plurality of coded data bits ‘C’, where ‘D’ represents a bit location, and where two out of four bursts of a data block of the half-rate convolutional coded bit stream are available;
determining whether a signal quality associated with the convolutional coded bit stream is above a predetermined threshold; and
when the signal quality associated with the convolutional coded bit stream is above the predetermined threshold, determining a decoded value for each information bit U2k−1 at least by calculating a modulo 2 sum of a coded data bit C4k added to another coded data bit C4k+1 from the coded bit stream, and determining another decoded value for each information bit U2k at least by calculating a modulo 2 sum of a coded data bit C4k added to a previously calculated information bit U2k−3 and to a previously calculated information bit U2k−4, where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream.

### Claim 10 (depends on 9)

The method of claim 9, wherein determining whether the signal quality associated with the convolutional coded bit stream is above the predetermined threshold comprises:
determining the signal quality from one or more factors from a plurality of factors comprising:
whether absolute values for soft decisions associated with the coded bit stream are above a predetermined threshold;
whether a signal-to-noise ratio associated with the coded bit stream is above a predetermined threshold; and
whether a bit error rate is below a predetermined threshold.

### Claim 11 (depends on 9)

The method of claim 9, further comprising: performing a cyclic redundancy (CRC) check to determine whether the data has been decoded accurately; and if the CRC check fails, decoding the convolutional coded bit stream with Viterbi decoding.

### Claim 12 (depends on 9)

The method of claim 9, further comprising: decoding the convolutional coded bit stream with Viterbi decoding if the signal quality associated with the convolutional coded bit stream is below the predetermined threshold.

### Claim 13

A communications device comprising a decoder, wherein the decoder comprises:
a first decoding circuit configured to:
obtain coded data bits C3k, C3k+1 and C3k+2 from a convolutional coded bit stream that is 1/3-rate convolutional coded according to generator polynomials G4=1 +D2+D3+D5+D6, G7=1+D+D2+D3+D6, and G5=1+D+D4+D6 , where ‘D’represents a bit location;
determine which of the coded data bits C3k, C3k+1 or C3k+2 has the highest absolute value of soft decision, where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream; and
determine a decoded value for each information bit Uk at least by calculating a modulo 2 sum of one of the coded data bits C3k, C3k+1 or C3k+2 added to a plurality of previously calculated information bits ‘U’.

### Claim 14 (depends on 13)

The communications device of claim 13, wherein if the coded data bit C3k has the highest absolute value of soft decision, the first decoding circuit is configured to:
determine the decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k added to a previously calculated information bit Uk−2, to a previously calculated information bit Uk−3, to a previously calculated information bit Uk−5, and to a previously calculated information bit Uk−6.

### Claim 15 (depends on 13)

The communications device of claim 13, wherein if the coded data bit C3k+1 has the highest absolute value of soft decision, the first decoding circuit is configured to:
determine the decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k+1 added to a previously calculated information bit Uk−1, to a previously calculated information bit Uk−2, to a previously calculated information bit Uk−3, and to a previously calculated information bit Uk−6.

### Claim 16 (depends on 13)

The communications device of claim 13, wherein if the coded data bit C3k+2 has the highest absolute value of soft decision, the first decoding circuit is configured to:
determine the decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k+2 added to a previously calculated information bit Uk−1, to a previously calculated information bit Uk−4, and to a previously calculated information bit Uk−6.

### Claim 17 (depends on 13)

The communications device of claim 13, wherein the decoder further comprises a second decoding circuit configured to decode the convolutional coded bit stream with Viterbi decoding.

### Claim 18

A method operational on a communications device, comprising:
receiving, by a processing circuitry, a 1/3-rate convolutional coded bit stream coded according to generator polynomials G4=1+D2+D3+D5+D6, G7=1+D+D2+D3+D6, and G5=1+D+D4+D6, where ‘D’ represents a bit location, and including a plurality of coded data bits C3k, C3k+1 and C3k+2 , where ‘k’ represents an index value between 0 and a number ‘n’ based on a number of bits in a burst of the bit stream;
determining whether a signal quality associated with the convolutional coded bit stream is above a predetermined threshold; and
when the signal quality associated with the convolutional coded bit stream is above the predetermined threshold, determining a decoded value for each information bit Uk at least by calculating a modulo 2 sum of one of the coded data bits C3k, C3k+1 or C3k+2 added to a plurality of previously calculated information bits ‘U’.

### Claim 19 (depends on 18)

The method of claim 18, wherein determining the decoded value for each information bit Uk at least by calculating a modulo 2 sum of one of the coded data bits C3k, C3k+1 or C3k+2 added to a plurality of previously calculated information bits ‘U’ comprises:
determining which of the coded data bits C3k, C3k+1 or C3k+2 has the highest absolute value of soft decision;
when the coded data bit C3k has the highest absolute value of soft decision, determining a decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k added to a previously calculated information bit Uk−2, to a previously calculated information bit Uk−3, to a previously calculated information bit Uk−5, and to a previously calculated information bit Uk−6;
when the coded data bit C3k+1 has the highest absolute value of soft decision, determining the decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k+1 added to a previously calculated information bit Uk−1, to a previously calculated information bit Uk−2, to a previously calculated information bit Uk−3, and to a previously calculated information bit Uk−6; and
when the coded data bit C3k+2 has the highest absolute value of soft decision, determining the decoded value for each information bit Uk at least by calculating a modulo 2 sum of the coded data bit C3k+2 added to a previously calculated information bit Uk−1, to a previously calculated information bit Uk−4, and to a previously calculated information bit Uk−6.

### Claim 20 (depends on 18)

The method of claim 18, wherein determining whether the signal quality associated with the convolutional coded bit stream is above the predetermined threshold comprises:
determining the signal quality from one or more factors from a plurality of factors comprising:
whether absolute values for soft decisions associated with the coded bit stream are above a predetermined threshold;
whether a signal-to-noise ratio associated with the coded bit stream is above a predetermined threshold; and
whether a bit error rate is below a predetermined threshold.

### Claim 21 (depends on 18)

The method of claim 18, further comprising:
performing a cyclic redundancy (CRC) check to determine whether the data has been decoded accurately; and if the CRC check fails, decoding the convolutional coded bit stream with Viterbi decoding.

### Claim 22 (depends on 18)

The method of claim 18, further comprising:
decoding the convolutional coded bit stream with Viterbi decoding if the signal quality associated with the convolutional coded bit stream is below the predetermined threshold.
