# US 7,610,543 B2 · Method and apparatus for puncturing with unequal error protection in a wireless communication system

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

- Number: US 7,610,543 B2
- Document ID: US7610543B2
- Status: Granted
- Kind: B2
- Application number: 10/443,652
- Filed: 2003-05-21
- Published: 2004-02-26
- Granted: 2009-10-27
- Earliest claimed: 2002-06-18
- Assignees: Nokia Corporation
- Inventors: Hannu Mikkola; Janne Vainio
- Web page: https://patentgrep.com/patent/US7610543B2

## CPC

- H03M 13/35: Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- G10L 19/005: Correction of errors induced by the transmission channel, if related to the coding algorithm
- 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)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

A method and corresponding codec for (channel) encoding speech or other data bits for transmission via a wireless communication channel, the method providing unequal error protection (UEP) using only a single encoder, and including: a step of determining how many bits to puncture in each of typically two protection classes (CA CB) so as to achieve either a predetermined or iterated desired level of error protection; and a step of identifying which bits to puncture for each class so as to provide relatively strong and uniform protection for all bits in the first class (CA), but protection that decreases in the same manner as the subjective importance decreases from the beginning to the end of the other classes. The method also accounts for so-called soft puncturing by modulators transmitting multiple bits per symbol with weaker protection for some of the bits of each symbol.

## Claims

### Claim 1

A method for channel encoding data bits for transmission via a wireless communication channel a frame at a time, the method comprising:
receiving a each frame consisting of a predetermined number of the data bits, the data bits arranged in order from a beginning to an end of the frame according to subjective importance and grouped into a plurality of predetermined different protection classes including a first class CA and one or more other classes CB, . . . , CZ including a last class Clast, the different protection classes having predetermined different desired levels of error protection, the first class CA having the strongest predetermined desired level of error protection,
defining dithering for the first class CA and determining whether dithering is to be applied for all other classes CB, . . . , CZ including the last class Clast;
encoding the data bits of each frame;
determining how many bits to puncture in each protection class so as to achieve the predetermined desired level of error protection for the protection class or, if the desired level of error protection for each class cannot be achieved, then the highest achievable level of error protection closest to the desired level of error protection; and
identifying which bits to puncture for each class so as to provide uniform protection for all bits in the first class CA, and so as to provide protection for bits in each other class CB, . . . , CZ that decreases in the same manner as the subjective importance decreases in the class to the end of the class, and for then providing information indicating which bits to puncture and in which order to puncture the bits.

### Claim 2 (depends on 1)

The method of claim 1, wherein each class CA, CB, . . . , CZ includes bits provided by one or more respective generator polynomials each of which provides bits of different importance in respect to error protection and so each of the generator polynomials for the class is more or less important than others of the generator polynomials of the class, and wherein identifying which bits to puncture for each class includes selecting at least some bits originating from the less important generator polynomials for puncturing out before bits originating from the more important generator polynomials.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
resizing the predetermined first two classes so as to enlarge the first class by a number of bits, and to decrease the second class by the same number of bits.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining how many weak bits to allocate to each class CA, CB, . . . , CZ so as to maintain the predetermined desired level of error protection; and
identifying which weak bits to allocate to each class CA, CB, . . . , CZ so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide for each other class CB, . . . , CZ protection that decreases in the same manner as the subjective importance decreases from the beginning of the class to the end of the class.

### Claim 5 (depends on 1)

The method of claim 1, further comprising either constructing a puncturing table and performing the puncturing using the puncturing table, or performing the puncturing without using a puncturing table.

### Claim 6 (depends on 1)

The method of claim 1, further comprising inverse puncturing, responsive to information indicating which bits to puncture and in what order.

### Claim 7 (depends on 1)

A method, as in claim 1, wherein the predetermined desired level of error protection for a class Ci, is expressible as a ratio Ri, given by:
R
i
=
N
C
i
N
C
i
R
-
N
punctC
i
in which NCi is the number of bits in class Ci, NpunctCi, is the number of bits to be punctured from class Ci, and R is the coding rate of the convolutional code.

### Claim 8 (depends on 7)

A method as in claim 7, wherein the bits in each class are ordered from most important to less important, and NCi is the number of bits in class Ci after a resizing operation to adjust an original number of bits in the class Ci and also the other classes so as to compensate for weakened protection for the bits following the most important bits in the first class.

### Claim 9

An apparatus for channel encoding data bits for transmission via a wireless communication channel a frame at a time, wherein each frame consists of a predetermined number of the data bits, the data bits arranged in order from a beginning to an end of the frame according to subjective importance and grouped into a plurality of predetermined different protection classes including a first class CA and one or more other classes CB, . . . , CZ including a last class Clast, the different protection classes having predetermined different desired levels of error protection, the first class CA having the strongest predetermined desired level of error protection, the apparatus comprising:
means for defining dithering for the first class CA and determining whether dithering is to be applied for all other classes CB, . . . , CZ including the last class Clast;
means for encoding the data bits of each frame;
means for determining how many bits to puncture in each protection class so as to achieve either the predetermined desired level of error protection for the protection class or if the desired level of error protection for each class cannot be achieved, then the highest achievable level of error protection closest to the desired level of error protection; and
means for identifying which bits to puncture for each class so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide relatively weak protection for bits in each other class CB, . . . , CZ wherein the protection decreases in the same manner as the subjective importance decreases in the class.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein each class CA, CB, . . . , CZ includes bits provided by one or more respective generator polynomials each of which provides bits of different importance in respect to error protection and so each of the generator polynomials for the class is more or less important than others of the generator polynomials of the class, and wherein identifying which bits to puncture for each class includes selecting at least some bits originating from the less important generator polynomials for puncturing out before bits originating from the more important generator polynomials.

### Claim 11 (depends on 9)

The apparatus of claim 9, further comprising:
means for resizing the predetermined first two classes so as to enlarge the first class by a number of bits approximately equal to 10% of the size of the first class, and to decrease the second class by the same number of bits.

### Claim 12 (depends on 9)

The apparatus of claim 9, further comprising:
means for determining how many weak bits to allocate to each class CA, CB, . . . , CZ so as to maintain the predetermined desired level of error protection; and
means for identifying which weak bits to allocate to each class CA, CB, . . . , CZ so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide for each other class CB, . . . , CZ protection that decreases in the same manner as the subjective importance decreases from the beginning of the class to the end of the class.

### Claim 13 (depends on 9)

The apparatus of claim 9, further comprising means for either constructing a puncturing table and performing the puncturing using the puncturing table, or for performing the puncturing without using a puncturing table.

### Claim 14 (depends on 9)

The apparatus of claim 9, further comprising inverse puncturing means, responsive to information indicating which bits to puncture and in what order.

### Claim 15 (depends on 9)

An apparatus as in claim 9, wherein the predetermined desired level of error protection for a class Ci is expressible as a ratio Ri, given by:
R
i
=
N
C
i
N
C
i
R
-
N
punctC
i
in which NCi is the number of bits in class Ci, NpunctCi is the number of bits to be punctured from class Ci, and R is the coding rate of the convolutional code.

### Claim 16 (depends on 15)

An apparatus as in claim 15, wherein the bits in each class are ordered from most important to less important, and NCi is the number of bits in class Ci after a resizing operation to adjust an original number of bits in the class Ci and also the other classes so as to compensate for weakened protection for the bits following the most important bits in the first class.

### Claim 17

A system, for channel encoding data bits for transmission via a wireless communication channel a frame at a time, wherein each frame consists of a predetermined number of the data bits, the data bits arranged in order from a beginning to an end of the frame according to subjective importance and grouped into a plurality of predetermined different protection classes including a first class CA and one or more other classes CB, . . . , CZ including a last class Clast, the different protection classes having predetermined different desired levels of error protection, the first class CA having the strongest predetermined desired level of error protection, comprising:
a channel encoder, comprising:
a dithering module configured to define dithering for the first class CA and determining whether dithering is to be applied for all other classes CB, . . . , CZ including the last class Clast;
an encoder module configured to encode the data bits of each frame; and
a puncturing and weak bit allocation module configured to determine how many bits to puncture in each protection class so as to achieve the predetermined desired level of error protection for the protection class or if the desired level of error protection for each class cannot be achieved, then the highest achievable level of error protection closest to the desired level of error protection, and further configured to identify which bits to puncture for each class so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide protection for bits in each other class CB, . . . , CZ protection that decreases in the same manner as the subjective importance decreases in the class; and
a channel decoder, responsive to the transmitter side symbol waveforms as modified by a communication channel, including means for undoing any puncturing performed on bits conveyed by the transmitter side symbol waveforms.

### Claim 18

An apparatus for channel encoding data bits for transmission via a wireless communication channel a frame at a time, wherein each frame consists of a predetermined number of the data bits, the data bits arranged in order from a beginning to an end of the frame according to subjective importance and grouped into a plurality of predetermined different protection classes including a first class CA and one or more other classes CB, . . . , CZ including a last class Clast, the different protection classes having predetermined different desired levels of error protection, the first class CA having the strongest predetermined desired level of error protection, the apparatus comprising:
a dithering module configured to define dithering for the first class CA and determining whether dithering is to be applied for all other classes CB, . . . , CZ including the last class Clast;
an encoder module configured to encode the data bits of each frame; and
a puncturing and weak bit allocation module configured to determine how many bits to puncture in each protection class so as to achieve the predetermined desired level of error protection for the protection class or if the desired level of error protection for each class cannot be achieved, then the highest achievable level of error protection closest to the desired level of error protection, and further configured to identify which bits to puncture for each class so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide protection for bits in each other class CB, . . . , CZ protection that decreases in the same manner as the subjective importance decreases in the class.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein each class CA, CB, . . . , CZ includes bits provided by one or more respective generator polynomials each of which provides bits of different importance in respect to error protection and so each of the generator polynomials for the class is more or less important than others of the generator polynomials of the class, and wherein identifying which bits to puncture for each class includes selecting at least some bits originating from the less important generator polynomials for puncturing out before bits originating from the more important generator polynomials.

### Claim 20 (depends on 18)

The apparatus of claim 18, wherein the puncturing and weak bit allocation module is configured to:
resize the predetermined first two classes so as to enlarge the first class by a number of bits approximately equal to 10% of the size of the first class, and to decrease the second class by the same number of bits.

### Claim 21 (depends on 18)

The apparatus of claim 18, wherein the puncturing and weak bit allocation module is configured to:
determine how many weak bits to allocate to each class CA, CB, . . . , CZ so as to maintain the predetermined desired level of error protection; and
identify which weak bits to allocate to each class CA, CB, . . . , CZ so as to provide relatively strong and uniform protection for all bits in the first class CA, and so as to provide for each other class CB, . . . , CZ protection that decreases in the same manner as the subjective importance decreases from the beginning of the class to the end of the class.

### Claim 22 (depends on 18)

The apparatus of claim 18, wherein the puncturing and weak bit allocation module is configured to either construct a puncturing table and perform the puncturing using the puncturing table, or for perform the puncturing without using a puncturing table.

### Claim 23 (depends on 18)

The apparatus of claim 18, further comprising inverse puncturing and weak bit allocation module, responsive to information indicating which bits to puncture and in what order.

### Claim 24 (depends on 18)

An apparatus as in claim 18, wherein the predetermined desired level of error protection for a class Ci is expressible as a ratio Ri given by:
R
i
=
N
C
i
N
C
i
R
-
N
punctC
i
in which NCi is the number of bits in class Ci, NpunctCi is the number of bits to be punctured from class Ci, and R is the coding rate of the convolutional code.

### Claim 25 (depends on 24)

An apparatus as in claim 24, wherein the bits in each class are ordered from most important to less important, and NCi is the number of bits in class Ci after a resizing operation to adjust an original number of bits in the class Ci and also the other classes so as to compensate for weakened protection for the bits following the most important bits in the first class.
