IJCER (www.ijceronline.com) International Journal of computational Engineering research


Published on

Call for paper 2012, hard copy of Certificate, research paper publishing, where to publish research paper,
journal publishing, how to publish research paper, Call For research paper, international journal, publishing a paper, IJCER, journal of science and technology, how to get a research paper published, publishing a paper, publishing of journal, publishing of research paper, research and review articles, IJCER Journal, How to publish your research paper, publish research paper, open access engineering journal, Engineering journal, Mathematics journal, Physics journal, Chemistry journal, Computer Engineering, Computer Science journal, how to submit your paper, peer review journal, indexed journal, research and review articles, engineering journal, www.ijceronline.com, research journals,
yahoo journals, bing journals, International Journal of Computational Engineering Research, Google journals, hard copy of Certificate,
journal of engineering, online Submission

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

IJCER (www.ijceronline.com) International Journal of computational Engineering research

  1. 1. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5 Development of Efficient Decoding Technique for Convolutionaly Encoded Telemetry Data Namratha M1, Pradeep2 1,2 (Dept. of information science, PESIT/visvesvaraya technological university, India)AbstractTelemetry system of spacecraft is meant for radioing information from a spacecraft to the ground. Telemetry is typically amixture of payload or housekeeping health data. Engineering or health data is composed of a wide range of measurements,from switch positions and subsystem states to voltages, temperatures and pressures. Telemetry may be transmitted in real time,or it may be written to a data storage device until transmission is feasible. As the spacecraft health monitoring is veryimportant to maintain the spacecraft in condition, Telemetry system becomes mission critical system in the spacecraft. PacketTelemetry and Telemetry Channel Coding services provide to the user reliable and transparent delivery of telemetryinformation. With the error detecting and correcting capability of the channel code chosen, errors which occur as a result ofthe physical transmission process may be detected and corrected by the receiving entity. The implementation of convolutionencoder is simple, this means these encoders are small and consumes less power on-board spacecraft and thus it has a goodattribute as a spacecraft hardware. The proposed paper aims at decoding the convolution encoded system. There are variousapproaches to decode and broadly they are classified as Sequential decoding Maximum likelihood decoding based on Viterbi decodingThe development of an algorithm, implementation of the same and testing the same with simulated convolution encoded datastream is planned as part of this paper.Keywords: Branch metrics, Convolution encoder, Forward error correction, Path metrics, Survivor paths, Trellis diagram,Viberti algorithmI. INTRODUCTIONThe probability of bit error Pe[1] in a digital transmission can be improved to attain acceptable reliability by increasing E b/No.As Eb/No is directly proportional to C/N0((the ratio of the average carrier power to the noise power density) and the desiredEb/N0 can be achieved by increasing the transmitted power and/or reducing the system noise temperature (to reduce N 0). Boththese measures in a spacecraft are limited by cost, size, power and thermal constraints.. Channel coding is an acceptablealternative. In fact for a fixed Eb/N0, coding is the method of lowering the BER. Channel Coding performs two functions, errordetection and error correction. What is termed as forward error correction (FEC) allows errors to be corrected without the needfor retransmission.In order to overcome this limitation convolutional coding and decoding method can be used. Convolutionalcoding is particularly suited to space and telemetry systems that require simple and small encoders and that obtain excellentcoding gain by using sophisticated decoders at the ground station.The functions of this software product are as follows: Configure the software based on the user requirement (like constraint length). Encodes data either represented in binary or hexadecimal format Decodes the data to recover the original data. The system at present is configured for encoding a block of data obtained . It cannot be used to encode a continuous stream ofdata. In order to do it the system must be configured accordingly. It is assumed that the decoder is synchronized with thestream of incoming data .If the decoder doesnot know which of the n symbols in block initiates a branch of the trellis , thenthe data will be decoded with a very large number of errors .It also assumed that encoded data is not modified such that somepart of it is missing. It contains all the software requirements to level of detail sufficient to enable designers to design asystem to satisfy those requirements , and testers to test that the system satisfies those requirements.Issn 2250-3005(online) September| 2012 Page 1495
  2. 2. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5II. DESIGN CONSIDERATIONS Design should allow for users to specify the two generator polynomials based on which the data is encoded. Should also for request constraint length Other options such as inversion of the output if required should be provided The data to be encoded in binary or hexadecimal format is generated The encoded data in binary format If any of the input like generator polynomial is missing error message should be generated.2.1 System Design:The system that implements forward error correction mainly consists of a channel encoder which adds redundant informationto the stream of input symbols in a way that allows errors which are in the channel to be corrected .This redundancy isprovided in a structured way to provide error control capability .Because of the redundancy introduced by the channel coder,there must be more symbols at the output of the coder than the input .The input to the channel coder is referred to as themessage symbols .The input may also be referred to as information symbols .The stream that consists of the coded messageand injected noise is input to the Viterbi decoder. Within the decoder, a Metric Update kernel is performed, which producestwo streams – a state metric stream, which contains the accumulated state metrics for all delay states, and a transition stream,which contains the optimal path chosen for each delay state. These two streams are passed to a trace back stream, whichtraverses the state metric stream and employs the transition stream to find the optimal path through the Trellis. Fig 1: Simplified block of forward error correction system.Like any error-correcting code, a convolutional code works by adding some structured redundant information to the users dataand then correcting errors using this information. A convolutional encoder is a linear system .A binary convolutional encodercan be represented as a shift register. The outputs of the encoder are modulo 2 sums of the values in the certain registers cells.The input to the encoder is either the un encoded sequence (for non-recursive codes) or the un encoded sequence added withthe values of some registers cells (for recursive codes). Convolutional codes are frequently used to correct errors in noisychannels. They have rather good correcting capability and perform well even on very bad channels (with error probabilities ofabout 10−3 ).2.2 Convolutional EncoderA binary convolutional encoder can be represented as a shift register. The encoder for a binary (2,1,4) code is shown in figure.Note that encoder consists of an m=3 stage shift register together with an n=3 modulo 2 adders and a multiplexer forserializing the encode outputs. The mod-2 adders can be implemented as EXCLUSIVE-OR gates. Since The mod-2 addition isa linear operation. The encoder[2] is a linear feed forward shift register. All the convolutional encoders can be implementedusing a linear feed forward shift register of this type. Fig 2: Convolution Encoder using shift registersThe information sequence u=(u0,u1,u2…..) enters the encoder one bit at a time. Since the encoder is a linear system ,the twoencoder output sequences v(1) =(v0(1) , v1(1) , v2 (1) ….) and v(2) =(v0(2) , v1(2) , v2 (2) ….) can be obtained as the convolution of theIssn 2250-3005(online) September| 2012 Page 1496
  3. 3. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5input sequence with the two encoder “impulse” responses .The impulse responses are obtained by letting u=(1 0 0…) andobserving output sequences. Since the encoder has m –time unit memory, the impulse responses can last at most m+1 timeunits, and are written g(1) =(g0(1) , g1(1) …… gm(1) ) and written g(2) =(g0(2) , g1(2) …… gm(2) ) .The impulse responses for the figareG(1)=1011 G(2)=1111The impulse responses g(1) , g(2) are called generator sequences of the code. The encoding equations can be written as v (1)=u*g(1) v(2) =u*g(2) where * denotes discrete convolution and all operation are modulo-2.the convolution operation impliesthat for all l>=0,vl(j) = =ulg0(j) + ul-1g1(j) +……………..+ ul-mgm(j) for j=1,2..After encoding,the two output sequences are multiplexed into a single sequence,called the code word,for transmission overchannelV=(v0(1) v0(2) , v1 (1) v1 (2) , v2 (1) v2 (2) ,….)The encoding procedure is described here for sequence of 10 with the (2,1,4) code for the input sequence 1011 a) At time t =0, we see that the initial state of the encoder is all zeros (the bits in the right most register positions). The input bit 1 causestwo bits 11 to be output by a mod2 sum of all bits in the registers for the first bit and a mod2 sum of three bits for secondoutput bit per the polynomial coefficients.b) At t = 1, the input bit 0 moves forward one register. The encoder is now in state100. The output bits are now again 11 by the same procedure.c)At time t=2,the input bit 1 moves forward one register .theencoder is now in state 010.The output bits are produced similarly.At t=3,4 the same process continues the output producedis11 11 01 11.The entire process is summarized in the Fig 3 below.A convolutional encoder[3] is often seen as a finite state machine. Each state corresponds to some value of the encodersregister. Given the input bit value, from a certain state the encoder can move to two other states. These state transitionsconstitute a diagram which is called a trellis diagram. A trellis diagram for the code on the Figure 2 is depicted on the Figure3. A solid line corresponds to input 0, a dotted line – to input 1 (note that encoder states are designated in such a way that therightmost bit is the newest one). 2.3 Trellis DiagramEach path on the trellis diagram[4] corresponds to a valid sequence from the encoders output. Conversely, any valid sequencefrom the encoders output can be represented as a path on the trellis diagram. One of the possible paths is denoted as red (as anexample). Each state transition on the diagram corresponds to a pair of output bits. There are only two allowed transitions forIssn 2250-3005(online) September| 2012 Page 1497
  4. 4. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5every state, so there are two allowed pairs of output bits, and the two other pairs are forbidden. If an error occurs, it is verylikely that the receiver will get a set of forbidden pairs, which dont constitute a path on the trellis diagram. So, the task of thedecoder is to find a path on the trellis diagram which is the closest match to the received sequence. Fig 4: Trellis diagram2.4 Viterbi algorithmViterbi algorithm[5] reconstructs the maximum-likelihood path given the input sequence. A soft decision decoder – a decoderreceiving bits from the channel with some kind of reliability estimate. Three bits are usually sufficient for this task. Furtherincreasing soft decision width will increase performance only slightly while considerably increasing computational difficulty.For example, if we use a 3-bit soft decision, then “000” is the strongest zero, “011” is a weakest zero, “100” is a weakest oneand “111” is a strongest one.A hard decision decoder – a decoder which receives only bits from the channel (without anyreliability estimate). A branch metric – a distance between the received pair of bits and one of the “ideal” pairs (“00”,“01”,“10”, “11”).A path metric is a sum of metrics of all branches in the path.A meaning of distance in this context depends on thetype of the decoder:• for a hard decision decoder it is a Hamming distance, i.e. a number of differing bits;• for a soft decision decoder it is an Euclidean distance.In these terms, the maximum-likelihood path is a path with the minimal path metric. Thus the problem of decoding isequivalent to the problem of finding such a path.Lets suppose that for every possible encoder state we know a path withminimum metric[6] ending in this state. For any given encoder state there is two (and only two) states from which the encodercan move to that state, and for both of these transitions we know branch metrics. So, there are only two paths ending in anygiven state on the next step. One of them has higher metric, it is a survivor path.A Viterbi algorithm[7] consists of thefollowing three major parts:1. Branch metric calculation – calculation of a distance between the input pair of bits and the four possible “ideal” pairs (“00”, “01”, “10”, “11”).2. Path metric calculation – for every encoder state, calculate a metric for the survivor path ending in this state (a survivor path is a path with the minimum metric).3. Traceback[8] – this step is necessary for hardware implementations that dont store full information about the survivor paths, but store only one bit decision every time when one survivor path is selected from the two. Fig. 5: Viterbi decoder data flowBranch Metric Calculation:Methods of branch metric calculation are different for hard decision and soft decision decoders.For a hard decision decoder, a branch metric is a Hamming distance between the received pair of bits and the “ideal” pair.Therefore, a branch metric can take values of 0, 1 and 2. Thus for every input pair we have 4 branch metrics (one for each pairof “ideal” values).For a soft decision decoder, a branch metric is measured using the Euclidean distance. Let x be the first received bit in the pair,y – the second, x0 and y0 – the “ideal” values. Then branch metric isMb=( x−x02)+( y−y02) .Furthermore, when we calculate 4 branch metric for a soft decision decoder, we dont actually need to know absolute metricvalues – only the difference between them makes sense. So, nothing will change if we subtract one value from the all fourbranch metrics:Mb=( x2−2 x x0+x0 2 )+( y2−2 y y0+y02 );Issn 2250-3005(online) September| 2012 Page 1498
  5. 5. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5Mb * =Mb−x2−y2=( x02 −2 x x0 )+(y02 −2 y y0).Path Metric Calculation:Path metrics are calculated using a procedure called ACS (Add-Compare-Select). This procedure is repeated for every encoderstate.1. Add – for a given state, we know two states on the previous step which can move to this State , and the output bit pairs that correspond to these transitions. To calculate new path Metrics , we add the previous path metrics with the correspondingbranch metrics.2. Compare, select – we now have two paths, ending in a given state. One of them (withgreater metric) is dropped.As there are 2K−1 encoder states, we have 2K−1 survivor paths at any given time.It is important that the difference between two survivor path metrics cannot exceedδ log(K−1), where δ is a difference between maximum and minimum possible branch metrics.The problem with path metrics is that they tend to grow constantly and will eventually overflow.But, since the absolute values of path metric dont actually matter, and the difference between them is limited, a data type witha certain number of bits will be sufficient.There are two ways of dealing with this problem:1. Since the absolute values of path metric dont actually matter, we can at any time subtract an identical value from the metricof every path. It is usually done when all path metrics exceed a chosen threshold (in this case the threshold value is subtractedfrom every path metric). This method is simple, but not very efficient when implemented in hardware.2. The second approach allows overflow, but uses a sufficient number of bits to be able todetect whether the overflow took place or not. The compare procedure must be modified in this case. The whole range of thedata types capacity is divided into 4 equal parts. If one path metric is in the 3-rd quarter, and the other – in the 0-th, then theoverflow took place and the path inthe 3-rd quarter should be selected. In other cases an ordinary compare procedure isapplied. This works, because a difference between path metrics cant exceed a threshold value, and the range of path variableis selected such that it is at least two times greater than the threshold.Traceback:It has been proven that all survivor paths merge after decoding a sufficiently large block of data (D in fig) i.e. they differ onlyin their endings and have the common beginning.If we decode a continuous stream of data, we want our decoder to have finite latency. It is obvious that when some part of pathat the beginning of the graph belongs to every survivor path, the decoded bits corresponding to this part can be sent to theoutput. Given the above statement, we can perform the decoding as follows:1. Find the survivor paths for N+D input pairs of bits.2. Trace back from the end of any survivor paths to the beginning.3. Send N bits to the output.4. Find the survivor paths for another N pairs of input bits.5. Go to step 2.In these procedure[9] D is an important parameter called decoding depth. A decoding depth should be considerably large forquality decoding, no less then 5K. Increasing D decreases the probability of a decoding error, but also increases latency. Fig. 6: Survivor paths graph example. Blue circles denote encoder states. It can be seen that all survivor paths have a common beginning (red) and differ only in their endings.Issn 2250-3005(online) September| 2012 Page 1499
  6. 6. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5Iii. Testing A few of the sample test cases are as follows: Serial No. of test UTC-1 case: Module under test: ConfigureCODEC Description: Configures the user input Sample input: User input Expected Output: it should configure the user input Actual Output: It is configuring the user input Remarks: Test is successful Serial No. of test case: UTC-2 Module under test: CCSDS_Encoder Description: Encodes the input data Sample input: Data given by the user Expected Output: It should encode the data Actual Output: It is encoding the data Remarks: Test is successful Serial No. of test case: UTC-3 Module under test: CCSDS_Decoder Description: Decodes the received data Sample input: Input from the encoder Expected Output: Decode the received data Actual Output: Decoding the received data Remarks: Test is successfulIV. Conclusion And Future WorkThis paper attempted implementation of encoding and decoding of telemetry data. The major portion of the project isconcentrated on C implementation on Windows platform which has been done successfully, experimentation with differentinput. In this application, the data is not a continuous stream and the noise is not considered . Further work on how tomakethedata a continuous stream can be done. Noise should be simulated. Graphical representation of output from encoderand decoder.Issn 2250-3005(online) September| 2012 Page 1500
  7. 7. International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue.5 REFERENCES[1] http://www.radio-electronics.com/info/rf-technology-design/ber/bit-error-rate-tutorial-definition.php[2] http://apogeelabs.com/pdffiles/convolutional_encoding.pdf[3] http://www.comlab.hut.fi/opetus/333/2004_2005_slides/Convolutional_Coding_Viterbi_Algorithm.pdf[4 ]http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=650373[5] http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=5443417&contentType=Conference+Publications [6] http://www.1-core.com/library/comm/viterbi/[7] http://www.ece.umd.edu/~tretter/enee722/ungerboeck_paper.pdf[8]http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1450960&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fab s_all.jsp%3Farnumber%3D1450960[9]http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=410439&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs _all.jsp%3Farnumber%3D410439Issn 2250-3005(online) September| 2012 Page 1501