IP Library Granted Patent US 7,260,770
Granted Patent B2
US 7,260,770 · App. 09/986,241 · Granted Aug 21, 2007

Block puncturing for turbo code based incremental redundancy

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 7,260,770
App. No.
09/986,241
Granted
Aug 21, 2007
Kind
B2
Abstract

A method of block puncturing for turbo code based incremental redundancy includes a first step ( 1200 ) of coding an input data stream into systematic bits and parity bits. A next step ( 1202 ) includes loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner. A next step ( 1204 ) includes selecting a predefined redundancy. A next step ( 1206 ) includes outputting bits from the block interleavers in a row-wise manner in accordance with the selected predefined redundancy.

Claims (363)

1. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

outputting bits from the block interleavers in a row-wise manner in accordance with the selected redundancy; and

further comprising the step of selecting a coding rate dependant upon available symbol memory as defined by the equation

N

P

,

max_row

=

min

(

[

N

S

M

L

2

×

N

C

B

×

N

c

o

l

×

N

ARQ_proc

-

N

r

o

w

2

×

N

C

B

-

N

t

a

i

l

2

×

N

c

o

l

×

N

C

B

]

,

N

r

o

w

)

where N p,max — row the maximum number of rows in the parity block interleaver that can be transmitted, N SML is the total number of Soft Metric Locations provisioned at the user equipment, N CB is the number of code blocks, N col is the number of columns in the parity block interleaver, N row is the number of rows in the parity block interleaver, N tail is the number of tail bits per code block, N ARQ — PROC is the number of ARQ processes currently defined in the user equipment, and given that the size of the systematic block interleaver is substantially fixed.

2. The method of claim 1 , wherein the outputting step includes mapping the bits from the systematic and parity block interleavers into a symbol mapping array wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array.

3. The method of claim 2 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

4. The method of claim 2 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

5. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

outputting bits from the block interleavers in a row-wise manner in accordance with the selected redundancy; and

wherein the selecting step includes implementing a redundancy version for selecting coded bits from the block interleavers, the redundancy version includes substeps of:

setting of one or more starting rows α i,j for each redundancy version j, where i∈{S,P} and α i,j ∈{1, . . . , N i,max — row }; and

reading the coded bits from the selected starting rows in a pre-defined order and ratio, wherein if the end of the N i,max — row th interleaver is reached, reading shall continue from the first row of at least one of said interleavers.

6. The method of claim 5 , wherein the outputting step includes mapping the bits from the systematic and parity block interleavers into a symbol mapping array wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array.

7. The method of claim 6 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

8. The method of claim 6 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

9. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

outputting bits from the block interleavers in a row-wise manner in accordance with the selected redundancy; and

wherein the selecting step includes implementing a redundancy version for selecting coded bits from one of the group of:

setting the starting rows as the respective top rows of both the systematic and parity interleavers, and reading the coded bits of the systematic interleaver from its respective starting row to completion before the remaining coded bits are read from the parity interleaver starting at its respective starting row;

setting the starting row as N p,max — row /4 of the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting row as N p,max — row /2 for the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting row as 3×N p,max — row /4 for the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting rows as the top row of the parity interleaver and N s,max — row /2 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at its their respective starting rows;

setting the starting rows as N p,max — row /4 for the parity interleaver and 3×N S,max — row /4 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows;

setting the starting rows as the top row of the systematic interleaver and N p,max — row /2 for the parity interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows; and

setting the starting rows as 3×N p,max — row /4 for the parity interleaver and N Smax — row /4 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows.

10. The method of claim 9 , wherein the outputting step includes mapping the bits from the systematic and parity block interleavers into a symbol mapping array wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array.

11. The method of claim 10 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

12. The method of claim 10 , wherein in the mapping step the upper rows of the array have a higher priority than the lower rows of the array, such that the systematic bits in a symbol has a higher priority than the parity bits in a symbol.

13. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

turbo coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

mapping the bits from the systematic and parity block interleavers into a symbol mapping array in a row-wise manner in accordance with the selected redundancy, wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array, further comprising the step of selecting a coding rate dependant upon available symbol memory as defined by the equation

N

P

,

max_row

=

min

(

[

N

S

M

L

2

×

N

C

B

×

N

c

o

l

×

N

ARQ_proc

-

N

r

o

w

2

×

N

C

B

-

N

t

a

i

l

2

×

N

c

o

l

×

N

C

B

]

,

N

r

o

w

)

where N p,max — row the maximum number of rows in the parity block interleaver that can be transmitted, N SML is the total number of Sofi Metric Locations provisioned at the user equipment, N CB is the number of code blocks, N col is the number of columns in the parity block interleaver, N row is the number of rows in the parity block interleaver, N tail is the number of tail bits per code block, N ARQ — proc is the number of ARQ processes currently defined in the user equipment, and given that the size of the systematic block interleaver is substantially fixed.

14. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

turbo coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

mapping the bits from the systematic and parity block interleavers into a symbol mapping array in a row-wise manner in accordance with the selected redundancy, wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array;

wherein the selecting step includes implementing a redundancy version for selecting coded bits from the block interleavers the redundancy version includes substeps of:

setting of one or more starting rows α i,j for each redundancy version j, where i∈{S,P} and α i,j ∈{1, . . . , N i,max — row }; and

reading the coded bits from the selected starting rows in a pre-defined order and ratio, wherein if the end of the N i,max — row th interleaver is reached, reading shall continue from the first row of at least one of said interleavers.

15. A method of block puncturing for turbo code based incremental redundancy, the method comprising the steps of:

turbo coding an input data stream into systematic bits and parity bits;

loading the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

selecting a redundancy; and

mapping the bits from the systematic and parity block interleavers into a symbol mapping array in a row-wise manner in accordance with the selected redundancy, wherein the systematic bits are mapped into the upper rows of the array and the parity bits are mapped into the lower rows of the array;,

wherein the selecting step includes implementing a redundancy version for selecting coded bits from the systematic and parity interleavers from one of the group of:

setting the starting rows as the respective top rows of both the systematic and parity interleavers, and reading the coded bits of the systematic interleaver from its respective starting row to completion before the remaining coded bits are read from the parity interleaver starting at its respective starting row;

setting the starting row as N p,max — row /4 of the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting row as N p,max — row /2 for the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting row as 3×N p,max — row /4 for the parity interleaver, and reading the coded bits from the parity interleaver starting at its starting row;

setting the starting rows as the top row of the parity interleaver and N S,max — row /2 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at its their respective starting rows;

setting the starting rows as N p,max — row /4 for the parity interleaver and 3×N Smax — row /4 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows;

setting the starting rows as the top row of the systematic interleaver and N p,max — row /2 for the parity interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows; and

setting the starting rows as 3×N p,max — row /4for the parity interleaver and N S,max — row /4 for the systematic interleaver, and reading the coded bits equally from the systematic and parity interleaver starting at their respective starting rows.

16. A turbo coder with block puncturing for incremental redundancy, comprising:

a channel coder operable to code an input data stream into systematic bits and parity bits;

a first interleaver coupled to the channel coder, the first interleaver operable to load the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

a redundancy version selector coupled to the first interleaver, the redundancy version selector operable to select a redundancy;

a bit priority mapper coupled to the redundancy version selector, the bit priority mapper operable to map bits from the block interleavers in a row-wise manner in accordance with the selected redundancy, further comprising a symbol memory, and wherein the redundancy version selector also selects a. coding rate dependant upon available symbol memory as defined by the equation

N

P

,

max_row

=

min

(

[

N

S

M

L

2

×

N

C

B

×

N

c

o

l

×

N

ARQ_proc

-

N

r

o

w

2

×

N

C

B

-

N

t

a

i

l

2

×

N

c

o

l

×

N

C

B

]

,

N

r

o

w

)

where N p,max — row the maximum number of rows in the parity block interleaver that can be transmitted, N SML is the total number of Sofi Metric Locations provisioned at the user equipment, N CB is the number of code blocks, N col is the number of columns in the parity block interleaver, N row is the number of rows in the parity block interleaver, N tail is the number of tail bits per code block, N ARQ — proc is the number of ARQ processes currently defined in the user equipment, and given that the size of the systematic block interleaver is substantially fixed.

17. A turbo coder with block puncturing for incremental redundancy, comprising:

a channel coder operable to code an input data stream into systematic bits and parity bits;

a first interleaver coupled to the channel coder, the first interleaver operable to load the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

a redundancy version selector coupled to the first interleaver, the redundancy version selector operable to select a redundancy;

a bit priority mapper coupled to the redundancy version selector, the bit priority mapper operable to map bits from the block interleavers in a row-wise manner in accordance with the selected redundancy, wherein the redundancy comprises a redundancy version for the coded bits of the block interleavers wherein the redundancy version sets one or more starting rows α i,j for each redundancy version j, where i ∈{S,P} and α i,j ∈{1, . . , N i,max — row } and reads the coded bits from the selected starting rows in a pre-defined order and ratio, wherein if the end of the N i,max — row th interleaver is reached, reading shall continue from the first row of an interleaver which includes one of the systematic and parity block interleavers.

18. A turbo coder with block puncturing for incremental redundancy, comprising:

a channel coder operable to code an input data stream into systematic bits and parity bits;

a first interleaver coupled to the channel coder, the first interleaver operable to load the systematic bits and parity bits into respective systematic and parity block interleavers in a column-wise manner;

a redundancy version selector coupled to the first interleaver, the redundancy version selector operable to select a redundancy;

a bit priority mapper coupled to the redundancy version selector, the bit priority mapper operable to map bits from the block interleavers in a row-wise manner in accordance with the selected redundancy, wherein the redundancy comprises a redundancy version for the coded bits of the systematic and parity interleavers selected from one of the group of:

set the starting rows as the respective top rows of both the systematic and parity interleavers, wherein the coded bits of the systematic interleaver are read from its respective starting row to completion before the remaining coded bits are read from the parity interleaver starting at its respective starting row;

set the starting row as N p,max — row /4 of the parity interleaver, wherein the coded bits are read from the parity interleaver starting at its starting row;

set the starting row as N p,max — row /2 for the parity interleaver, wherein the coded bits are read from the parity interleaver starting at its starting row;

set the starting row as 3×N p,max — row /4 for the parity interleaver, wherein the coded bits are read from the parity interleaver starting at its starting row;

set the starting rows as the top row of the parity interleaver and N s,max — row /2 for the systematic interleaver, wherein the coded bits are read equally from the systematic and parity interleaver starting at its their respective starting rows;

set the starting rows as N p,max — row /4 for the parity interleaver and 3×N S,max — row /4 for the systematic interleaver, wherein the coded bits are read equally from the systematic and parity interleaver starting at their respective starting rows;

set the starting rows as the top row of the systematic interleaver and N p,max — row /2 for the parity interleaver, wherein the coded bits are read equally from the systematic and parity interleaver starting at their respective starting rows; and

set the starting rows as 3×N p,max — row /4 for the parity interleaver and N S,max — row /4 for the systematic interleaver, wherein the coded bits are read equally from the systematic and parity interleaver starting at their respective starting rows.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034432/0001 →
CHANGE OF NAME Recorded Oct 2, 2012
From: MOTOROLA MOBILITY, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 029216/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2010
From: MOTOROLA, INC
To: MOTOROLA MOBILITY, INC
Reel/Frame 025673/0558 →