Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.

Similar presentations


Presentation on theme: "Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University."— Presentation transcript:

1 Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University

2 Outline  Description of Turbo Encoding  Description of Turbo Decoding  DSP Implementation issues  Performance Analysis  Conclusions

3 Turbo Codes  First introduced in 1993  Parallel Concatenation of two Convolutional Coders with interleaving  Original results showed a BER of 10E-5 at 0.7dB using block size 65,536 bits  For rate R=1/2 code, 0.7dB off channel capacity

4 Turbo Encoder  Parallel concatenation of at least two RSC encoders, with second encoder seeing interleaved version of data  Utilize only one of the systematic streams

5 Turbo Encoder  The output stream of data consists of the systematic data, parity bits from encoder1, and parity bits from encoder2  Through the use of the interleaver, the decoder will have two independent looks at the same data, and can use both streams to decode the information sequence

6 Convolutional Coder  Utilize recursive systematic (RSC) encoders  Unlike feed forward coders, a single 1 in the input will lead to large weight codeword  Performance of turbo codes dependent on low weight codewords

7 State transition Diagram

8 Interleaver  Interleaving is used to reorder the input bits  Random interleaver used for large block sizes  For small block sizes (<1000), random/block interleavers show similar performance  Block interleavers have simple interleaving/de- interleaving mechanism

9 Importance of Interleaver  At a given SNR, tradeoff between latency due to interleaver and QOS  Small block sizes (~300 bits) can be used for real time voice  Mid range block sizes (~4000 bits) used for video play back  Large block sizes (~16000 bits) large latency, very low BER, useful for file transfer

10 Turbo Decoding  Two decoders used in serial fashion, with output of one decoder used as prior information to next decoder  Feedback in decoding circuit allows for multiple iterations, and improves bit error performance

11 Decoder  Constituent decoders need bit probability estimates to be used as priors to the next decoder: standard Viterbi cannot be used for this reason  Soft Output Viterbi Algorithm used (SOVA)  The output of decoder1 contains information that can be used as a prior probabilities for decoder2, and vice versa

12 Steps in Viterbi Algorithm  Calculation of branch metric (distance from received data)  Calculation of path metric (Add compare select)  On reaching the end of trellis, start from the best state  Trace back (knowing the Path metrics)  Decide the data bits while tracing back

13 Hard Decision Viterbi Basics

14 Steps in Turbo Decoding  Evaluate the path metrics  Trace back to obtain the decisions (x)  Trace back using alternate paths to obtain the metric differences  Compute the minimum of all possible metric differences for that stage  Obtain the reliability of decision  Pass this reliability of decision to next decoder  Iterate the above steps

15 Path Metric Calculation for SOVA s (i) : state of i th path at time k u k (i): information bit Y s : received systematic bit, Y p : received parity bit M k (s (i) ): path metric of ith path at time k Lc : Channel value = 4*Ec/N0 L(u k ): output from previous decoder

16 Soft Value (L(u)) Computation

17 Reliability of decisions Δ l k = M k+l (s (i l ) ) – M k+l (s(i’ l )) Δ l k : Metric difference l: index of all non surviving paths L(u k ) = u k * Min( Δ l k ) Min(Δ l k ) : Reliability of the decision

18 Our Implementation  Rate 1/3 coding  Constraint length = 3  Frame length = 400  SOVA algorithm used  Number of iterations are flexible

19 Algorithmic Issues  Two iterations of Turbo decoding used  Traceback depth set at 5 times the constraint length (optimal for Viterbi decoding)  BPSK modulation used (+/-1)  Extrinsic Information (Le(u)) scaled after every decoder

20 Fixed point Issues  Used Q-15 format  Received signal (from AWGN channel) clipped to lie in a range of +/-1  Received signal scaled by a constant factor (32) to avoid overflow

21 Performance in AWGN channel

22 Data Rates Clock cycles / decoder = 654659 Execution time / decoder = 4.36 ms Data rate /decoder = 91.6 Kbps Data rate/ iteration = 45.8 Kbps

23 Conclusions  Fixed point SOVA based Turbo decoder implemented  Performance of DSP matches MATLAB at high SNRs  Real time voice processing possible using our implementation (~22 Kbps for 2 iterations)


Download ppt "Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University."

Similar presentations


Ads by Google