100% found this document useful (1 vote)
982 views13 pages

Lazy Viterbi Slides

The document proposes a new maximum likelihood decoder algorithm for convolutional codes called the Lazy Viterbi decoder. It runs faster than the standard Viterbi algorithm, especially at high signal-to-noise ratios, by expanding fewer trellis nodes. The Lazy Viterbi decoder expands trellis nodes in a best-first manner based on their accumulated metrics, rather than doing a breadth-first search like the Viterbi algorithm. This allows it to take advantage of the decreasing number of trellis expansions needed at higher SNRs. Simulations show it can be up to 10 times faster than an optimized Viterbi decoder in software implementations.

Uploaded by

Vivek Agrawal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
982 views13 pages

Lazy Viterbi Slides

The document proposes a new maximum likelihood decoder algorithm for convolutional codes called the Lazy Viterbi decoder. It runs faster than the standard Viterbi algorithm, especially at high signal-to-noise ratios, by expanding fewer trellis nodes. The Lazy Viterbi decoder expands trellis nodes in a best-first manner based on their accumulated metrics, rather than doing a breadth-first search like the Viterbi algorithm. This allows it to take advantage of the decreasing number of trellis expansions needed at higher SNRs. Simulations show it can be up to 10 times faster than an optimized Viterbi decoder in software implementations.

Uploaded by

Vivek Agrawal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

A Fast Maximum-Likelihood

Decoder for Convolutional Codes


Jon Feldman Matteo Frigo Ibrahim Abou-Faycal
[email protected] [email protected] [email protected]

M.I.T. Vanu, Inc.

J. Feldman, VTC, 9/25/02 – p.1/13


Convolutional Codes
Commonly used in TDMA/GSM cellular phones and
other wireless standards.
Simple linear time encoder.
Viterbi algorithm is an optimal decoder, but:
- Software radios cannot use parallelism,


 


- Running time
( = “constraint length”, = code length).



When SNR is high, decoding should be easier.
- Software radios can take advantage of running time
that (implicitly) depends on SNR...

J. Feldman, VTC, 9/25/02 – p.2/13


Convolutional Decoding Alternatives
Sequential Decoding:
- Suboptimal.
Decoding [ED ’96, HHC ’93, HCW ’02]:


- Time/block:


 

 


(high . . . low SNR).
 











- Worst-case running time worse than Viterbi.
- No experiments available to compare running time.
Our “Lazy Viterbi” algorithm:
- Time/block:
 
 


 

(high . . . low SNR).






- In software: up to 10 times faster than optimized


Viterbi.
- Works on “streaming” data (non-blocked data).
J. Feldman, VTC, 9/25/02 – p.3/13
Outline

Convolutional codes, Viterbi algorithm.


decoding, advantages and limitations.

The Lazy Viterbi decoder.

J. Feldman, VTC, 9/25/02 – p.4/13


Convolutional codes: the trellis
00 00 00 00 00 00
11
11 ... Info. bit 0
01 00 01 01 00 01 01
01 01 ... Info. bit 1
10 10 10 10 10 10
10 ...
11 01 11 11 11 11




Generator Polynomials: ,






Encoding: path through the trellis (labels = code bits).
Info bits:

  
 
 

States:












Code word:

 
 



J. Feldman, VTC, 9/25/02 – p.5/13


Viterbi Algorithm

00 11 00 00 00 00
...
0
01 01 01 00 01 01
2 ...
01
10 10 10 1 10 10
...
11 11 11 11 11

Received: 11 10 01 ...
Branch Metric of edge: (code bits, received bits).
  

 


  


, , .









Viterbi Algorithm: Find path with lowest total metric.

J. Feldman, VTC, 9/25/02 – p.6/13


Viterbi Algorithm is BFS
2 1 1
0 2 3 3
0 1 1
1 ...
2 1 2
2 0 ...
0 0 3 2 3
2 ...
0 0 0

Received: 11 10 01 ...
Computes accumulated error for every node.



 

Running time: (# states = ).





Breadth-First-Search (BFS) is only one possible
“shortest-path” algorithm.
J. Feldman, VTC, 9/25/02 – p.7/13
Dijkstra’s Algorithm
2
0 2
0 ...
2 2
2 ...
0 0
2 ...
0 0 0

Received: 11 10 01 ...
Dijkstra’s Algorithm (Dijkstra, 1959):
- Repeatedly “expand” the node w/ lowest metric.
: Dijkstra’s algorithm with “heuristic” function.


Running time (# expansions) (time/expansion)




J. Feldman, VTC, 9/25/02 – p.8/13


Trellis Expansions as a Function of SNR

103
Avg. nodes expanded / output bit
Viterbi decoder

102
A* / Lazy decoder

1
10

0
10
-2 0 2 4 6 8
Signal-to-Noise Ratio Es/No (dB)


AWGN, QPSK, Rate = , (CDMA), gen. polys (753,541) (octal).







J. Feldman, VTC, 9/25/02 – p.9/13


Limitations of Previous Work
Cost of deciding which node to expand:
- Must maintain priority queue of trellis nodes.





- Cost = per operation.

 

- Not amenable to compile-time optimization.


 


High SNR: , time/block .

 






 

 


 




Low SNR: , time/block .

 




Only defined for block codes (rather than streaming
data).
No implementations given, no evidence useful in


practice.

J. Feldman, VTC, 9/25/02 – p.10/13


The Lazy Viterbi Decoder
Constant time / expansion via new priority queue

 

 

- ( ).

 



“Lazier” version of Dijkstra’s algorithm
- (saves a few cycles per operation).
Represent trellis as sparse matrix;
- (saves memory, could improve cache performance).
Extension to data streams (finite traceback length).
Experimental study on different processors.

J. Feldman, VTC, 9/25/02 – p.11/13


Experimental Comparison (best case)
Decoder Pentium III PowerPC 7400 StrongARM
Lazy 6 201 200 226
Karn Generic 6 1143 626 892
Viterbi Optimized 6 316 239 310
Lazy 7 205 203 232
Karn Generic 7 2108 1094 1535
Karn Optimized 7 558 486 641
Karn SSE 7 108 N/A N/A
Lazy 9 235 225 343
Karn Generic 9 8026 3930 5561
Karn SSE 9 310 N/A N/A
(processor cycles per information bit)
J. Feldman, VTC, 9/25/02 – p.12/13
Conclusion

A new fast convolutional decoder.


Decodes optimally (maximum-likelihood).
Generalizations:
- Soft-decision decoding.
- Data streams (non-block codes).
- Equalizers, or any other application of Viterbi
algorithm.
Takes advantage of the flexibility of software radio.

J. Feldman, VTC, 9/25/02 – p.13/13

You might also like