Michael Carlsson; Per Nilsson MEE 98:15, pp. 51. Inst för telekommunikation och signalbehandling/Dept. of Telecommunications and Signal Processing, 1999.
INTRODUCTION Back in the late 19th century when the telephone was invented (by Alexander Graham Bell), the first step towards the modern information exchange was taken. The last few decades this traditional technology has taken a step further into the world of digital communication. This fast development has created many new opportunities. Among these are digital wireless phones (GSM), which have turned out to become very popular the past few years. The market is very strong and the demand for newer and better performing products is increasing extremely fast. In the forth coming years wideband Will set the new standard for the third generation of mobile communication equipment. One of these proposed new standards is W-CDMA (Wideband Code-Division Multiple Access). This makes new applications such as video/audio-streaming and Internet browsing possible. The high speed and big amount of data for these applications make them very vulnerable for disturbances. Therefore new methods for keeping up the quality is needed. PRESENTATION OF THE PROBLEM If the channel was ideal for communication through any kind of media the transmission would be error free. Unfortunately ideal channels only exist in the theory. In practice, noise and other disturbing sources may cause errors in the transmitted information. To protect the important data from errors, different kinds of error detecting and correcting algorithms are needed. These add redundancy into the data-streams. The procedure is called channel coding. There are two major classifications of coding methods. These are block- and convolutional codes. Both block- and convolutional codes are used in general. The so-talled Viterbi algorithm (VA) is an optimal decoding solution to the convolutional codes for an AWGN channel. It is used to find the most likely noiseless finite-state sequence, given a sequence of finite-state signals that are corrupted with noise. The great advantage of the VA is that the number of operations performed in decoding L bits is linear with L. This algorithm can be found in many modem digital communication protocols. For mobile systems, power consumption is an important issue. Therefore ASIC solutions are generally preferred. The future mobile communication applications demand more powerful and better signal-processing possibilities. For this purpose a DSP solution may be used. To get high performance, the preferred implementation language is assembler. A language like assembler has a very low abstraction level. This makes it very inflexible and hard to over-view. Therefore a high level language like C would make a more flexible and dynamit code structure. PURPOSE OF THE PROJECT One of the largest DSP-producing companies in the world is Texas Instruments Inc. They have a complete implementation in assembly language for the Viterbi algorithm. This is an optimal implementation for the DSP. The purpose of this project is to evaluate the algorithm in C language on a DSP. Sinte this is a high level language the compiler creates some overhead code. The Viierbi algorithm also has a lot of bit level operations, which is difficult to implement in a language like C. The goal is to find a solution that minimizes the differente between the C and assembly performance. Sinte C never Will have as good performance as manually written assembly programs, there are a few possible ways to optimize the code. Among these possibilities are inline assembler. Nevertheless, there are no straightforward methods for implementing an optimal decoder in C.