0
Viterbi Synchronization
DS205 (v1.0) April 30, 2002
0
0
Introduction
A problem with Viterbi decoding occurs when a Viterbi
decoder is not synchronized with received convolutionally
encoded data. For example, phase ambiguities may exist in
I and Q symbols when a phase lock loop (PLL) locks on a
wrong phase, which thus puts a Viterbi decoder that
depends on such a PLL locking to a correct phase out of
synchronization. It’s important to resolve such phase ambiguities, as an unsynchronized Viterbi decoder will not produce valid data. While a 180-degree phase ambiguity or
out-of-phase condition may be resolved with differential
encoding and decoding, other phase ambiguities require a
synchronization algorithm.
Normalization rate may be used to detect Viterbi decoder
synchronization status. A high normalization rate, exceeding a predetermined threshold, indicates a loss of synchronization. Figure 1 and Figure 2 show the normalization rate
plots versus Eb/No for rate ½ mode and rate ¾ mode of the
IEEE 802-Compatible Viterbi Decoder V1.0 core. Though
the normalization rate of the IEEE 802-Compatible Viterbi
works for both punctured and nonpunctured codes, normalization rate threshold is dependent on Eb/No. In other
words, such a normalization rate threshold does not work
for all values of Eb/No. The Qualcomm Q1900 normalization rate works for all values of Eb/No. However, normalization rate threshold depends on code rate. The Qualcomm
Q1900 Viterbi Decoder at a code rate of 1/2 has a normalization rate threshold of 10.2 percent. If a punctured code is
used with a code rate of 3/4, normalization rate threshold is
1.7 percent. A code rate of 7/8 has a normalization rate
threshold of 0.8 percent. Thus, as code rate increases, margin of error decreases, making achieving normalization
more problematic.
Bit Error Rate (BER) may be used to detect Viterbi decoder
synchronization status. BER is estimated by comparing Viterbi decoder decisions to channel hard decisions. A BER
exceeding a predetermined threshold is used to indicate
loss of synchronization of a Viterbi decoder. Though BER
works for both punctured and nonpunctured codes, BER
threshold is dependent on Eb/No. In other words, such a
BER threshold does not work for all values of Eb/No.
Design Brief
that is independent of both Eb/No and code rate. The new
method uses both normalization rate and BER to achieve
this goal.
Summary of the Invention
Figure 3 shows a block diagram of the invented method
used to synchronize the Viterbi decoder. The normalization
signal 13 and the enable signal 14 are both input to the Normalization Count Accumulator 101. When the enable signal
14 is High, the Normalization Count Accumulator counts the
number of times the Viterbi is normalized and outputs the
Normalization Count signal 111. When the Normalization
Count signal 111 exceeds the first threshold signal 18, the
load signal 115 goes High. The Viterbi output data signal 15
is re-encoded to generate the two symbols S0 and S1 represented by the two signals 112 and 113. The I and Q channel hard decisions represented by signals 16 and 17 are
delayed and aligned with the re-encoded signals 112 and
113. The compare logic 104 compares the re-encoded data
with the delayed hard decisions and outputs the Bit Error
signal 114. For punctured codes where punctured data
exists, the comparison is ignored. When the enable signal
14 is High, the Bit Error Accumulator 106 counts the Bit
Errors and outputs the Bit Error Count signal 116. When signal 115 goes High, the Bit Error Count signal 116 is loaded
into the Bit Error Load Register 107. The loaded Bit Error
Count signal 117 is compared to the second threshold signal 19. If the second threshold is exceeded, the Viterbi
decoder is declared to be out of synchronization.
Simulation Results
A VHDL test bench was built that includes random data
generator, convolutional encoder, AWGN generator, the
IEEE 802-Compatible Viterbi Decoder and the Viterbi out of
Synchronization detection method shown in Figure 3. The
test was performed for both rate ½ and rate ¾ codes. When
the normalization count is equal to 100, the Bit Error Count
was recorded for different values of Eb/No. Figure 4 and
Figure 5 show Bit Error Count Per 100 Normalization versus Eb/No when the Viterbi is synchronized and out of synchronization for rate ½ and ¾ codes. It is clear that you can
choose a threshold that works for all ranges of Eb/No.
Accordingly, it would be useful to provide a method and
apparatus to detect when a Viterbi decoder is synchronized
© 2002 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and further disclaimers are as listed at http://www.xilinx.com/legal.htm. All other
trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice.
NOTICE OF DISCLAIMER: Xilinx is providing this design, code, or information "as is." By providing the design, code, or information as one possible implementation of this feature, application, or standard, Xilinx makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may
require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of the implementation, including but not limited to any warranties or representations that this implementation is free from claims of infringement and any implied warranties of merchantability or fitness for a particular purpose.
DS205 (v1.0) April 30, 2002
Design Brief
www.xilinx.com
1-800-255-7778
1
Viterbi Synchronization
R
R a t e 1 /2 V it e r b i
Normalize Rate
0 .1 2
0 .1
0 .0 8
S yn c 'd V i te r b i
0 .0 6
U n s yn c 'd V i te r b i
0 .0 4
0 .0 2
0
0
5
10
15
20
25
E b /N o ( d B )
R a te 1 /2 V ite r b i
0 .4
BER
0 .3
S yn c 'd V i te r b i
0 .2
U n s yn c 'd V i te r b i
0 .1
0
0
5
10
15
20
25
E b /N o ( d B )
R a te 1 /2 U n s yn c ' d V it e r b i
6
5
4
N o r m a l i ze R a te
3
BER
2
B E R /N rm R a te
1
0
0
5
10
15
20
25
Eb /N o ( d B )
R a te 1 /2 S yn c ' d V it e r b i
3
2 .5
2
N o r m a l i ze R a te
1 .5
BER
1
B E R /N rm R a te
0 .5
0
0
2
4
6
8
10
12
E b /N o (d B )
Figure 1: Normalization rate and BER Versus Eb/No for Rate ½ Viterbi
2
www.xilinx.com
1-800-255-7778
DS205 (v1.0) April 30, 2002
Design Brief
Viterbi Synchronization
R
R a te 3 /4 V ite r b i
Normalize Rate
0 .0 6
0 .0 5
0 .0 4
S yn c 'd V i te r b i
0 .0 3
U n s yn c 'd V i te r b i
0 .0 2
0 .0 1
0
0
5
10
15
20
25
E b /N o ( d B )
R a te 3 /4 V ite r b i
0 .2
BER
0 .1 5
S y n c 'd V i te r b i
0 .1
U n s y n c 'd V i te r b i
0 .0 5
0
0
5
10
15
20
25
E b /N o ( d B )
R a te 3 /4 S yn c ' d V it e r b i
3
2 .5
N o r m a li ze R a te
2
1 .5
BER
1
B E R /N rm R a te
0 .5
0
0
5
10
15
20
25
E b /N o (d B )
R a t e 3 /4 U n s yn c ' d V it e r b i
7
6
5
4
3
2
1
0
N o r m a l i ze R a te
BER
B E R /N r m R a te
0
5
10
15
20
25
E b /N o ( d B )
Figure 2: Normalization Rate and BER Versus Eb/No for Rate ¾ Viterbi
DS205 (v1.0) April 30, 2002
Design Brief
www.xilinx.com
1-800-255-7778
3
Viterbi Synchronization
R
18
13
14
Normalization
Count
Accumulator
101
111 Compare
Logic
105
115
100A
112
15
Convolutional
Encoder
102
113
Compare
Logic
104
114
Bit Error
Accumulator
106
116
Bit Error
Load
Register
107
117
16
17
19
Compare
Logic
108
Delay
103
FIG. 2
199
Figure 3: Viterbi Synchronization Detection Based on Normalization Rate and BER
4
www.xilinx.com
1-800-255-7778
DS205 (v1.0) April 30, 2002
Design Brief
Viterbi Synchronization
R
Bit Error Count Per 100 Normalizes
Rate 1/2 Viterbi
600
500
400
Sync'd Viterbi
Unsync'd Viterbi
300
200
100
0
0
5
10
15
20
25
Eb/No (dB)
Figure 4: Bit Error Count Per 100 Normalize Versus Eb/No for rate ½ Viterbi
DS205 (v1.0) April 30, 2002
Design Brief
www.xilinx.com
1-800-255-7778
5
Viterbi Synchronization
R
Bit Error Count Per 100 Normalizes
Rate 3/4 Viterbi
700
600
500
400
Sync'd Viterbi
Unsync'd Viterbi
300
200
100
0
0
5
10
15
20
25
Eb/No (dB)
Figure 5: Bit Error Count Per 100 Normalize Versus Eb/No for Rate ¾ Viterbi
6
www.xilinx.com
1-800-255-7778
DS205 (v1.0) April 30, 2002
Design Brief