VITERBI DECODER FOR NASA S SPACE SHUTTLE S TELEMETRY DATA

Similar documents
CONVOLUTIONAL CODING

ASYNCHRONOUS COUNTER CIRCUITS

Digital Video Telemetry System

FPGA Implementation of Convolutional Encoder And Hard Decision Viterbi Decoder

MODULE 3. Combinational & Sequential logic

ERROR CORRECTION CODEC

DATUM SYSTEMS Appendix A

Adaptive decoding of convolutional codes

A Robust Turbo Codec Design for Satellite Communications

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003

Error Performance Analysis of a Concatenated Coding Scheme with 64/256-QAM Trellis Coded Modulation for the North American Cable Modem Standard

VA08V Multi State Viterbi Decoder. Small World Communications. VA08V Features. Introduction. Signal Descriptions

Implementation of CRC and Viterbi algorithm on FPGA

Decade Counters Mod-5 counter: Decade Counter:

SERIAL HIGH DENSITY DIGITAL RECORDING USING AN ANALOG MAGNETIC TAPE RECORDER/REPRODUCER

Generation and Measurement of Burst Digital Audio Signals with Audio Analyzer UPD

Communication Lab. Assignment On. Bi-Phase Code and Integrate-and-Dump (DC 7) MSc Telecommunications and Computer Networks Engineering

Synchronous Sequential Logic

Technical Description

A MISSILE INSTRUMENTATION ENCODER

Experiment 7: Bit Error Rate (BER) Measurement in the Noisy Channel

Performance of a Low-Complexity Turbo Decoder and its Implementation on a Low-Cost, 16-Bit Fixed-Point DSP

BER MEASUREMENT IN THE NOISY CHANNEL

Performance Analysis of Convolutional Encoder and Viterbi Decoder Using FPGA

1. Convert the decimal number to binary, octal, and hexadecimal.

AC103/AT103 ANALOG & DIGITAL ELECTRONICS JUN 2015

Transmission System for ISDB-S

Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment

Solution to Digital Logic )What is the magnitude comparator? Design a logic circuit for 4 bit magnitude comparator and explain it,

Department of Communication Engineering Digital Communication Systems Lab CME 313-Lab

Lecture 8: Sequential Logic

Hardware Implementation of Viterbi Decoder for Wireless Applications

Previous Lecture Sequential Circuits. Slide Summary of contents covered in this lecture. (Refer Slide Time: 01:55)

D Latch (Transparent Latch)

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District UNIT-III SEQUENTIAL CIRCUITS

BLOCK CODING & DECODING

Design And Implementation Of Coding Techniques For Communication Systems Using Viterbi Algorithm * V S Lakshmi Priya 1 Duggirala Ramakrishna Rao 2

Chapter 5 Flip-Flops and Related Devices

Logic Design Viva Question Bank Compiled By Channveer Patil

2 Sequential Circuits

Design Project: Designing a Viterbi Decoder (PART I)

ELCT201: DIGITAL LOGIC DESIGN

WINTER 15 EXAMINATION Model Answer

SEQUENTIAL LOGIC. Satish Chandra Assistant Professor Department of Physics P P N College, Kanpur

CMS Conference Report

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers

Higher-Order Modulation and Turbo Coding Options for the CDM-600 Satellite Modem

Sequencing. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall,

PCIe BASED TWO CHANNEL DATA ACQUISITION CARD

Clocking Spring /18/05

ECE 5765 Modern Communication Fall 2005, UMD Experiment 10: PRBS Messages, Eye Patterns & Noise Simulation using PRBS

MODEL 2873 Chassis with RS422 CLOCK RECOVERY Module, IOCRM4

TERRESTRIAL broadcasting of digital television (DTV)

PCM ENCODING PREPARATION... 2 PCM the PCM ENCODER module... 4

A NOTE ON FRAME SYNCHRONIZATION SEQUENCES

Laboratory 4. Figure 1: Serdes Transceiver

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers

Advanced Devices. Registers Counters Multiplexers Decoders Adders. CSC258 Lecture Slides Steve Engels, 2006 Slide 1 of 20

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Chapter 9 MSI Logic Circuits

MUHAMMAD NAEEM LATIF MCS 3 RD SEMESTER KHANEWAL

Synchronization Issues During Encoder / Decoder Tests

Introduction. NAND Gate Latch. Digital Logic Design 1 FLIP-FLOP. Digital Logic Design 1

Exercise 1-2. Digital Trunk Interface EXERCISE OBJECTIVE

Combinational / Sequential Logic

Logic and Computer Design Fundamentals. Chapter 7. Registers and Counters

INTERNATIONAL TELECOMMUNICATION UNION GENERAL ASPECTS OF DIGITAL TRANSMISSION SYSTEMS PULSE CODE MODULATION (PCM) OF VOICE FREQUENCIES

VLSI Chip Design Project TSEK06

Inside Digital Design Accompany Lab Manual

SMPTE STANDARD Gb/s Signal/Data Serial Interface. Proposed SMPTE Standard for Television SMPTE 424M Date: < > TP Rev 0

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic

Chapter 5 Synchronous Sequential Logic

IT T35 Digital system desigm y - ii /s - iii

Flip-Flops. Because of this the state of the latch may keep changing in circuits with feedback as long as the clock pulse remains active.

Logic Design II (17.342) Spring Lecture Outline

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

The Discussion of this exercise covers the following points:

An Implementation of a Forward Error Correction Technique using Convolution Encoding with Viterbi Decoding

Chapter 6. sequential logic design. This is the beginning of the second part of this course, sequential logic.

Optimum Frame Synchronization for Preamble-less Packet Transmission of Turbo Codes

Chapter 3. Boolean Algebra and Digital Logic

RECOMMENDATION ITU-R BT (Questions ITU-R 25/11, ITU-R 60/11 and ITU-R 61/11)

2. Counter Stages or Bits output bits least significant bit (LSB) most significant bit (MSB) 3. Frequency Division 4. Asynchronous Counters

Analogue Versus Digital [5 M]

THE USE OF forward error correction (FEC) in optical networks

CSE115: Digital Design Lecture 23: Latches & Flip-Flops

Commsonic. (Tail-biting) Viterbi Decoder CMS0008. Contact information. Advanced Tail-Biting Architecture yields high coding gain and low delay.

Specification of interfaces for 625 line digital PAL signals CONTENTS

Using the MAX3656 Laser Driver to Transmit Serial Digital Video with Pathological Patterns

INSTRUCTION MANUAL FOR MODEL IOC534 LOW LATENCY FIBER OPTIC TRANSMIT / RECEIVE MODULE

Rec. ITU-R BT RECOMMENDATION ITU-R BT * WIDE-SCREEN SIGNALLING FOR BROADCASTING

data and is used in digital networks and storage devices. CRC s are easy to implement in binary

The Design of Efficient Viterbi Decoder and Realization by FPGA

16 Stage Bi-Directional LED Sequencer

Synchronous Sequential Logic

Detection and demodulation of non-cooperative burst signal Feng Yue 1, Wu Guangzhi 1, Tao Min 1

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

CHAPTER 6 ASYNCHRONOUS QUASI DELAY INSENSITIVE TEMPLATES (QDI) BASED VITERBI DECODER

Efficient Architecture for Flexible Prescaler Using Multimodulo Prescaler

Transcription:

VITERBI DECODER FOR NASA S SPACE SHUTTLE S TELEMETRY DATA ROBERT MAYER and LOU F. KALIL JAMES McDANIELS Electronics Engineer, AST Principal Engineers Code 531.3, Digital Systems Section Signal Recover Group Goddard Space Flight Center Aydin Computer & Monitor Division National Aeronautics and 700 Dresher Road Space Administration Horsham, Pa. 19044 Greenbelt, MD 20771 ABSTRACT In the event of a NASA Space Shuttle mission landing at the While Sands Missile Range, White Sands, New Mexico, a data communications system for processing Shuttle s telemetry data has been installed there in the Master Control Telemetry Station, JIG-56. This data system required a Viterbi decoder since the Shuttle s data is convolutionally encoded. However, the Shuttle uses a nonstandard code, and the manufacturer which in the past has provided decoders for Shuttle support, no longer produces them. Since no other company produced a Viterbi decoder designed to decode the shuttle s data, it was necessary to develop the required decoder. The purpose of this paper is to describe the functional performance requirements and design of this decoder. KEY WORDS: Viterbi decoder, Convolutional Encoding, Constraint Length, Code Generating Polynomials I. INTRODUCTION Due to the possibility of NASA s Space Shuttle landing at the White Sands Missile Range, White Sands, New Mexico, a data communications system for processing Shuttle s telemetry data has been installed there in the Master Control Telemetry Station, JIG-56. This data communications system receives the telemetry data transmitted by the Shuttle orbiter and in realtime processes the data and relays it to NASA s Goddard Space Flight Center in Greenbelt, Maryland for distribution.

Since the Space Shuttle convolutionally encodes its telemetry data, it was necessary to provide the data system with a Viterbi decoding capability. However, Shuttle s coding does not conform to the present industry standard and the manufacturer who in the past had provided decoders for Shuttle support no longer produced them. Thus, no Viterbi decoder designed for this code was available which meant that a decoder had to be specially developed to meet Shuttle s requirements. To meet this requirement, Aydin Computer and Monitor Division responded to a request from the Digital Systems Section, Code 531.3, of the Goddard Space Flight Center by modifying the standard Viterbi decoding option for its Model 335A Bit Synchronizer. This paper outlines the requirements, capabilities and design of this Viterbi decoder. II. REQUIREMENTS AND CAPABILITIES Shuttle uses a one-third rate with a constraint length of seven to encode the data. Of the three code generating polynomials, Shuttle s first two, G1 and G2, have the standard octal values of 171 and 133 respectively. However, for the third polynomial, G3, Shuttle uses 145 instead of the standard 165. Besides its decoding function, this bit synchronizer and decoder has to compensate for inverted data, which can occur due to possible 180º phase ambiguity resulting from BPSK modulation. This data inversion is not transparent to the decoder, because the shuttle s G3 has an even number of coefficients. Thus, this bit synchronizer and Viterbi decoder has been designed to automatically correct for any data polarity inversions. This device can also be used to code data at the one-half or one-third rate. For one-half rate coding, the input data rate is variable from zero to 256,000 data bits per second. When coding at the one-third rate, one of two input data rates may he selected. These two rates are set by the manufacturer. For the units produced for the White Sands Missile Range s data system, the data rates are either 192,000 data bits per second or 90,000 data bits per second. These are the two possible data rates for Shuttle s telemetry. In summary, a device which is a combination bit synchronizer and Viterbi decoder has been designed and built which can decode Shuttle s telemetry data. As part of its decoding capability, it can correct for polarity inversion of the incoming signal. In addition, this device may be used for encoding data for test purposes.

1. GENERAL III. BIT SYNCHRONIZER/VITERBI DECODER DESIGN To accommodate NASA s requirements, a special decoder card, DEC009, was developed and integrated into the Model 335A bit synchronizer. The integration of the DEC009 Decoder Card into the bit synchronizer, involved routing two soft decision bits (SB-MSB and SB-LSB), the reconstructed hard bit (SGN), and the recovered clocks to the DEC009. Also, the design included the necessary control signals to enable decoding, automatic polarity correction, and other special operating functions. This integration is illustrated in Figure 1. No convolutional encoder and Viterbi decoder device which satisfied the requirements was commercially available. After considering several vendors, Aydin selected the VLSI STEL 5269 device developed by Stanford Telecom. This device is a modification of the STEL 5268 Codec which provided the defacto industry and Government standard rate ½ and rate 1/3 convolutional codes of constraint length (K) seven with a maximum data rate of 9600 bps. The polynomial of the two symbols G1 and G2 for code rate ½ are octal values of 171 and 133 respectively. For code rate 1/3, the first two symbols (G1 and G2) are the same as for rate ½; the polynomial of the third symbol G3 is 165 (octal). To meet the requirements for the space shuttle, the 5268 device was modified to change the octal value of the G3 symbol from 165 to 145 and also to increase its operating speed and to include two RAMs which were externally required with the 5268 device. The 5269 VLSI device will hereafter be referred to as Codec. Some of the operating parameters of the Codec device are set up by means of oncard DIP switches. Some of these parameters are remotely selectable. The functions of the DIP switches are to select code rate (½ or 1/3) for both the encoder and the decoder, order in which the symbols are sequenced from the convolutional encoder, normal or inverted G1 symbol from encoder (rate ½ only), reversal of G1 and G2 symbols from encoder (rate ½ only), one of two fixed operating bit rates (rate 1/3 only) of the encoder, one of two soft bit format to decoder (signed magnitude selected), enable the inversion of the G2 symbol (rate ½ only) generated in the encoder and received by the decoder (this Alternate Symbol Inversion serves to scramble the data and ensure bit transitions without the factor of three error rate penalty of conventional scramblers) and establish node sync threshold values for the decoder. The capability to select code rate, inversion of G1 symbol, or reversal of G1 and G2 symbols (rate ½ only) remotely via a 16-bit program setup bus is provided.

2. ENCODER FUNCTIONAL DESCRIPTION The convolutional encoder is functionally independent of the Viterbi decoder. Figure 2 is a functional block diagram of the encoder. The ENRATE control signal determines whether the device generates symbols for rate ½ or rate 1/3 operation. The G1, G2, and G3 are time-division multiplexed into a serial stream by the ENLATCH clock which occurs at twice bit rate for rate ½ and three times bit rate for rate 1/3. The three time bit rate clock is derived from a crystal-controlled oscillator with a frequency a multiple of the maximum fixed bit rate and a divider chain which is rephased by the input DATACLK. SEL A and SEL B determine the order in which the symbols are sequenced. Although the Codec provided the specified polynomials, a difficulty arose in using this encoder with the octal value of 145 for the G3 symbol in a transmission system employing BPSK (Binary Phase Shift Key) modulation which can cause data inversion. The decoder was not capable of decoding inverted data, since the convolutional code is not transparent. If the Output of the encoder was differentially encoded prior to PSK modulation and differentially decoded prior Viterbi decoding, the nontransparent code could he used, but at the expense of doubling the received bit error rate. The nontransparency of the code is due to the fact that the G3 symbol is formed by tapping an even number of encoder stages. One of the characteristics of a transparent code is that the complement of every codeword is also a codeword [1]. This characteristic is illustrated in Figures 3a and 3b for K = 3 with R = ½ and in Figures 4a and 4b for K = 3 with R = 1/3. In Figures 3a and 4a, the symbol generators are tapped from an odd number of encoder stages. In Figures 3b and 4b, at least one symbol generator is tapped from an even number of stages. It is seen in Figures 3a and 4a, the encoders whose generators are odd tapped, that the output sequence consist of six codewords which are three unique words with their complements. However, in Figures 3b and 4b, the encoders which contain generators which are even-tapped, that the output sequences of each contain a pair of codewords which are not complementary. Thus a nontransparent convolutional encoded data stream when inverted will not be recognized by the Viterbi decoder. The solution to this problem will be discussed in paragraph 4 of this paper. 3. VITERBI DECODER FUNCTIONAL DESCRIPTION Refer to Figure 5, Viterbi Decoder Functional Block Diagram. Viterbi decoding consists fundamentally of three processes. The first step in the decoder process is to generate a set of correlation measurements, known as branch metrics, for each m grouping of codewords input from the communication channel (where m is 2 for rate ½ codes, 3 for 1/3 codes). These branch metric values indicate the correlation between the received m codewords and the 2 possible codeword combinations.

Figure 1. DEC009 Decoder Card Integration Figure 2. Convolutional Encoder: K = 7, R = ½ or 1/3

Figure 3a. K = 3, R = ½, Odd-Tapped Encoder (G1 = 7, G2 = 7 ) 8 8 Figure 3b. K = 3, R = ½, Even-Tapped Encoder (G1 = 7, G2 = 6 ) 8 8 Figure 4a. K = 3, R = 1/3, Odd-Tapped Encoder (G1 = 7, G2 = 1, G3 = 7 ) 8 8 8 Figure 4b. K = 3, R = 1/3, Even-Tapped Encoder (G1 = 7, G2 = 5, G3 = 7 ) 8 8 8

Figure 5. Viterbi Decoder Functional Block Diagram The Viterbi decoder determines the state of the 7-bit memory at the encoder using a maximum likelihood technique. Once the value of the encoder memory is determined, the original information is known, since the encoder memory is simply the information that has been stored in the memory. To determine the encoder state, the second step in the Viterbi algorithm generates a set of k-1 2 ( k is the constraint length, i.e., K = 7) state metrics which are measurements of the occurrence probability for each of the 2 k-1 possible encoder memory states. As the state metrics are computed, a binary decision is k-1 formed for each of the 2 possible states as to the probable path taken to arrive at that particular state. These binary decisions are stored in a path memory. Step three computes the decoded output data. To do this, the path from the current state to some point in the finite past is traced back by chaining the binary decisions stored in the path memory during step 2 from state to state. The effects caused by noise to the one and only correct result are mitigated as the paths within the chainback memory converge after some history. The greater the depth of the chainback process the more likely that the final decoded result is error free. As a result, higher code rates and constraint lengths require longer chainback depth for best performance. The chainback memory in the Viterbi decoder traces the history of the previous states to arrive at the most probable state of the encoder in the past, and thus determine the transmitted data.

A single decoded data bit is output for every set of input symbols. The data bit corresponding to a particular symbol set will he output after a delay of 42 symbols. Further information on the theory of operation of Viterbi decoders can be obtained from text books such as reference [1] 4. AUTOMATIC POLARITY CORRECTION As described in paragraph 2, the rate 1/3 convolutional Code utilized by the space shuttle is not a transparent Code. Thus, in the event the received encoded data is inverted, which is likely with BPSK modulation, the Viterbi decoder would not be able to decode the data properly. The trellis structure of the convolutional code is stored in the decoder for comparison with the branch metrics derived from the input codewords as described in paragraph 3. Single bit errors in some of the codewords will direct the corrupted codewords along a most likely path through the trellis. However, an inverted code which is not transparent, cannot find most likely paths through the trellis. Thus, the large number of attempts to find a likely path will cause an out-of-sync condition. This out-of-sync condition is manifested as a pulse which is one bit wide and occurs once per 256 bits when the decoder is not in sync. The generation of this pulse, identified as Node Sync in Figure 5 is determined by the number of traceback mismatches relative to a programmable threshold. The threshold can be programmed from 1 to 128 mismatches per 256 bits in eight binary steps. In general, if the user needs the decoder to maintain lock at a low Eb/No, the highest threshold should be selected. The penalty is a longer reacquisition time. Selecting the lowest threshold allows a quick reacquisition, but the decoder can lose lock at high Eb/No. The factory selection is 64 mismatches out of 256 (25%). The Node Sync signal along with the symbol clock are used to implement the automatic polarity correction function. A single programmable logic device (PLD) implements automatic polarity correction (APC). It is located on the BSD002 soft decision board. Data entering the PLD exits either inverted or not. Data passes uninverted either when the Viterbi decoder is disabled, when operating at rate ½, or when APC is disabled by a DIP switch on the BSD002 board. When APC is enabled, it decides to invert or not based on the node sync signal from the Viterbi decoder on the DEC009 board. A digital filter consisting of two counters is used to smooth the Node Sync signal and reduce sensitivity to noise. There is an eleven bit clock counter that increments with the channel rate clock. The clock counter is always running and generates a signal every time it passes through its terminal count value which is zero. There is a three bit sync transition counter (STC) that increments on every logic one to logic zero transition of the node sync signal from the Viterbi decoder. A DIP switch sets the terminal count of the STC. The STC resets whenever either counter reaches its terminal count. Normally, the clock

counter reaches its terminal count before the STC reaches its terminal count. However, if there is a lot of activity on the node sync signal, the STC reaches its terminal count first. When this happens, a flip flop in the PLD toggles and changes the data polarity. The setting of the STC terminal count controls the APC s threshold. A setting of one means that the polarity change may activate falsely due to noise. A setting of seven means that polarity is very slow to change if at all. Four is the nominal setting. 5. PERFORMANCE OF BIT SYNCHRONIZER/VITERBI DECODER As indicated in paragraph 1, the decoder in the bit synchronizer operates with three bit soft decision input symbols. Thus, the decoder provides a coding gain of 5.2 db for rate ½ and 6.0 db for rate 1/3 relative to uncoded NRZ bit error probability at a bit error rate of one error in 100,000 bits. Because of its coding gain, the use of a Viterbi Decoder places increased demands on bit sync performance [2]. When a decoder is used, the bit sync is typically operated at a considerably lower S/N ratio. This requires the bit sync to have a robust clock recovery algorithm to minimize the occurrence of clock slips which can cause the decoder to lose lock and require many bits to resynchronize. The implementation loss -5 of the bit synchronizer is less than 1 db from theory. Thus a bit error rate of 10 is obtainable and has been verified at Eb/No of less than 5.4 db and 4.6 db for rates ½ and 1/3 respectively. IV. CONCLUSION This paper described a bit synchronizer with built-in dual rate (½ and 1/3) Viterbi decoder, dual rate convolutional encoder, and automatic polarity correction logic. This equipment was designed, built, and installed at the White Sands Missile Range to allow the landing of the Space Shuttle which utilizes a nonstandard, nontransparent, convolutional code in its telemetry communication system. This equipment resolved the problem of receiving inverted data when using a nontransparent rate 1/3 convolutional encoded data over a PSK transmission link. The rate ½ code is transparent, and thus polarity correction is not necessary for proper Viterbi decoding. In summary, the advantage of using convolutional encoded data to achieve improved bit error rate performance (the smaller the code ratio, the greater the improvement) or reduced transmission power; whichever meets the mission s objective, the need to select a transparent code is not necessary. More specifically, if the code is already in place, as it was on the Space Shuttle, equipment can readily be developed to accommodate such situations.

V. ACKNOWLEDGEMENTS The authors wish to thank Stanford Telecommunications, Inc. of Santa Clara, California for its assistance in the development of the Codec used in the bit synchronizer. VI. REFERENCES [1] Bhargava, V.K.; Haccoun, D.; Matyas, R.; and Nuspl, P.P.; Digital Communications by Satellite; John Wiley & Sons; New York, NY; 1981; pp 495, 496. [2] Carlson, John, Specifying and Evaluating PCM Bit Synchronizers, in Proceedings of the European Telemetry Conference, May, 1990, pp 338.