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