IP Library Granted Patent US 6,950,476
Granted Patent B2
US 6,950,476 · App. 09/789,242 · Granted Sep 27, 2005

Apparatus and method for performing SISO decoding

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 6,950,476
App. No.
09/789,242
Granted
Sep 27, 2005
Kind
B2
Abstract

A device and method for performing SISO decoding. The method comprising the steps of: (a) providing a trellis representative of an output of a convolutional encoder, the convolutional encoder has a coding rate of R, the trellis having a block length T. (b) assigning an initial conditions to each starting node of the trellis for a forward iteration through the trellis. (c) computing a forward metric for each node, starting from the start of the trellis and advancing forward through the trellis and storing forward metrics of nodes of a plurality of starting stages of windows. (d) repeating stages d(1)-d(3) until all lambdas of the trellis are calculated; d(1) retrieving forward metrics of nodes of a starting stage of a window, the retrieved forward metrics were computed and stored during step (c). d(2) computing and storing forward metrics for each node, starting from a second stage of the window and ending at the ending stage of the window. d(3) computing backward metrics for each node, starting from the ending stage of the window and ending at the starting stage of the window; wherein when backward metrics of nodes of a stage are computed and the forward metrics of the nodes of an adjacent stage were previously computed, the computation of backward metrics is integrated with the computation of lambda from the stage to the adjacent stage and a storage of the calculated lambdas.

Claims (62)

1. A method for performing soft-input soft-output (SISO) decoding, the method comprising the steps of:

(One) providing a trellis representative of an output of a convolutional encoder, the convolutional encoder has a coding rate of R, the trellis having a block length T and is divided to windows;

(Two) assigning an initial condition to each node of a starting stage and an ending stage of the trellis;

(Three) computing a forward metric for each node, starting from he starting stage of the trellis and advancing forward through the trellis and storing forward metrics of nodes of a plurality of starting stages of windows;

(Four) repeating the following substeps until all probability factors (lambdas) associated to the trellis are calculated:

(1) retrieving forward metrics of nodes of a starting stage of a window, the retrieved forward metrics were computed and stored during said step of computing a forward metric for each node;

(2) computing and storing forward metrics for each node, starting from a second stage of the window and ending at the ending stage of the window;

(3) computing backward metrics for each node starting from the ending stage of the window and ending at the starting stage of the window; wherein when backward metrics of nodes of a stage are computed and the forward metrics of the nodes of an adjacent stage were previously computed in substep (2), the computation of backward metrics is integrated with the computation of lambda from the stage to the adjacent stage, and;

(4) storing the computed lambda.

2. The method of claim 1 wherein starting to compute the lambdas of a last window of the trellis and advancing backwards through the trellis.

3. The method of claim 1 wherein a number of branch metric values are computed during step (2).

4. The method of claim 1 wherein all windows except a last window of the trellis have a window length that is much smaller than a trellis block length.

5. The method of claim 1 wherein the windows do not overlap.

6. The method of claim 1 wherein a computation of backward metric of nodes of an ending stage of a window that is not a last window in the trellis, is preceded by a computation of a backward metric of a following window, wherein the starting stage of the following window follows the ending stage of the window.

7. The method of claim 1 wherein said step of computing a forward metric for each node involves storing the forward metrics of nodes of the starting stages of windows in an external memory module.

8. The method of claim 1 wherein step (3) involves storing the lambdas in an external memory module.

9. The method of claim 1 wherein step (2) involves storing the forward metrics in an internal memory module.

10. The method of claim 1 wherein the method is used to implement a Log MAP algorithm.

11. A method for performing soft-input soft-output (SISO) decoding, the method comprising the steps of:

(One) providing a trellis representative of an output of a convolutional encoder, the convolutional encoder has a coding rate of R, the trellis having a block length T and is divided to windows;

(Two) assigning an initial condition to each node of an ending stage and a starting stage of the trellis;

(Three) computing a backward metric for each node, starting from nodes the ending stage of the trellis and advancing backward through the trellis and storing backward metrics of nodes of a plurality of ending stages of windows;

(Four) repeating the following substeps until all probability factor (lambdas) associated to the trellis are calculated:

(1) retrieving backward metrics of nodes of an ending stage of a window, the retrieved backward metrics were computed and stored during said step of computing a backward metric for each node;

(2) computing and storing backward metrics for each node, starting from a stage that precedes the ending stage of the window, and ending stage of the window and ending at the first stage of the window;

(3) computing forward metrics for each node starting from the starting stage of the window and ending at the ending stage of the window; wherein when forward metrics of nodes of a stage are computed and the backward metrics of the nodes of an adjacent stage were previously computed in substep (2), the computation of forward metrics is integrated with the computation of lambda from the stage to the adjacent stage, and;

(4) storing the computed lambda.

12. The method of claim 11 wherein computing the lambdas of a first window of the trellis and advancing forwards through the trellis.

13. The method of claim 11 wherein a number of branch metric values are computed during step (2).

14. The method of claim 11 wherein all windows except a last window of the trellis have a window length that is much smaller than a trellis block length.

15. The method of claim 11 wherein the windows do not overlap.

16. The method of claim 11 wherein a computation of forward metric of nodes of a starting stage of a window that is not a first window in the trellis, is preceded by a computation of a forward metric of a preceding window, wherein the ending stage of the preceding window is followed by the starting stage of the window.

17. The method of claim 11 wherein said step of computing a backward metric for each node involves storing the backward metrics of nodes of the ending stages of windows in an external memory module.

18. The method of claim 11 wherein step (3) involves storing the lambdas in an external memory module.

19. The method of claim 11 wherein step (2) involves scoring the backward metrics in an internal memory module.

20. The method of claim 11 wherein the method is used to implement a Log MAP algorithm.

21. A system for decoding a sequence of signals output by a convolutional encoder and transmitted over a channel, the encoder output represented by a trellis having a block length T, the system comprising:

an internal memory module, for storing forward metrics;

an external memory module, adapted to store a plurality of variables that are required for calculating probability factors (lambdas) associated to the trellis; and

a processor, coupled to the external memory and the internal memory for calculating forward metrics, backward metrics, branch metrics and lambdas an for accessing the external and internal memory modules;

wherein the system is adapted to calculate the forward metrics of all the trellis, store forward metrics of nodes of starting stages of windows, calculate forward metrics and branch metrics of a window, store the forward metrics and branch metrics in the internal memory module, use the forward metrics and branch metrics within the internal memory module to calculate lambdas of the window, whereas the system calculates the lambdas of various windows until all lambdas of the trellis are calculated.

22. The system of claim 21 wherein the system start to compute the lambdas of a last window of the trellis and advances backwards through the trellis.

23. The system of claim 22 wherein all windows except a last window of the trellis have a window length that is much smaller than a trellis block length.

24. The system of claim 22 wherein the windows do not overlap.

25. The system of claim 22 wherein the system computes a backward metric of nodes of an ending stage of a window that is not a last window in the trellis, after the system calculates a backward metric of a following window, wherein the starting stage of the following window follows the ending stage of the window.

26. The system of claim 22 wherein the system stores the forward metrics of nodes of starting stages of windows in the external memory module.

27. The system of claim 22 wherein the system stores the lambdas it calculates in the external memory module.

28. The system of claim 22 wherein the system stores the forward metrics and the branch metrics of a window in the internal memory module.

29. The system of claim 22 wherein the system is used to implement a Log MAP algorithm.

30. A system for decoding a sequence of signals output by a convolutional encoder and transmitted over a channel, the encoder output represented by a trellis having a block length T, the system comprising:

an internal memory module, for storing forward metrics;

an external memory module, adapted to store a plurality or variables that are required for calculating probability factors (lambdas) associated to the trellis; and

a processor, coupled to the external memory and the internal memory for calculating forward metrics, backward metrics, branch metrics and lambdas and for accessing the external and internal memory modules;

wherein the system is adapted to calculate the backward metrics of all the trellis, store backward metrics of nodes of ending stages of windows, calculate backward metrics and branch metrics of a window, store the backward metrics and branch metrics in the internal memory module, use the backward metrics and branch metrics within the internal memory module to calculate lambdas of the window, whereas the system calculates the lambdas various windows until all lambdas of the trellis are calculated.

31. The system of claim 30 wherein the system starts to compute the lambdas of a first window of the trellis and advances forward through the trellis.

32. The system of claim 30 wherein all windows except a first window of the trellis have a window length that is much smaller than a trellis block length.

33. The system of claim 30 wherein the windows do not overlap.

34. The system of claim 30 wherein the system computes a forward metric of nodes of a starting stage of a window that is not a first window in the trellis, after the system calculates a forward metric of a previous window, wherein the ending stage of the previous window precedes the starting stage of the window.

35. The system of claim 30 wherein the system stores the backward metrics of nodes of starting stages of windows in the external memory module.

36. The system of claim 30 wherein the system scores lambda that it calculates in the external memory module.

37. The system of claim 30 wherein the system stores the backward metrics and the branch metrics of a window in the internal memory module.

38. The system of claim 30 wherein the system is used to implement Log MAP algorithm.

Assignments (19)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NORTH STAR INNOVATIONS INC.
Reel/Frame 037694/0264 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2004
From: MOTOROLA, INC
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 015360/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2001
From: TARRAB, MOSHE; ELNEKAVE, MARK; TOKAR, JACOB; PISEK, ERAN
To: MOTOROLA, INC.
Reel/Frame 011602/0105 →