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

Slides:



Advertisements
Similar presentations
Noise-Predictive Turbo Equalization for Partial Response Channels Sharon Aviran, Paul H. Siegel and Jack K. Wolf Department of Electrical and Computer.
Advertisements

Iterative Equalization and Decoding
Convolutional Codes Representation and Encoding  Many known codes can be modified by an extra code symbol or by deleting a symbol * Can create codes of.
Decoding of Convolutional Codes  Let C m be the set of allowable code sequences of length m.  Not all sequences in {0,1}m are allowable code sequences!
VITURBO: A Reconfigurable Architecture for Future Ubiquitous Wireless Networks Mani Vaya August 7, 2002 Rice University.
Inserting Turbo Code Technology into the DVB Satellite Broadcasting System Matthew Valenti Assistant Professor West Virginia University Morgantown, WV.
Forward Error Correction Demystified Presented by Sunrise Telecom Broadband … a step ahead.
6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011
Modern Digital and Analog Communication Systems Lathi Copyright © 2009 by Oxford University Press, Inc. C H A P T E R 15 ERROR CORRECTING CODES.
Maximum Likelihood Sequence Detection (MLSD) and the Viterbi Algorithm
Submission May, 2000 Doc: IEEE / 086 Steven Gray, Nokia Slide Brief Overview of Information Theory and Channel Coding Steven D. Gray 1.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Turbo Codes – Decoding and Applications Bob Wall EE 548.
Turbo Codes Azmat Ali Pasha.
Figure 6.1. A convolutional encoder. Figure 6.2. Structure of a systematic convolutional encoder of rate.
ECE 559 VLSI – Design Project Viterbi Decoder VLSI Design Project Spring 2002 Dan Breen Keith Grimes Damian Nowak David Rust Advisor: Prof. Goeckel.
An FPGA Based Adaptive Viterbi Decoder Sriram Swaminathan Russell Tessier Department of ECE University of Massachusetts Amherst.
EE436 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
EE 3220: Digital Communication Dr Hassan Yousif 1 Dr. Hassan Yousif Ahmed Department of Electrical Engineering College of Engineering at Wadi Aldwasser.
EE 3220: Digital Communication Dr Hassan Yousif 1 Dr. Hassan Yousif Ahmed Department of Electrical Engineering College of Engineering at Wadi Aldwasser.
Improving the Performance of Turbo Codes by Repetition and Puncturing Youhan Kim March 4, 2005.
ECED 4504 Digital Transmission Theory
S Advanced Digital Communication (4 cr)
RICE UNIVERSITY Implementing the Viterbi algorithm on programmable processors Sridhar Rajagopal Elec 696
ECE 4371, Fall, 2014 Introduction to Telecommunication Engineering/Telecommunication Laboratory Zhu Han Department of Electrical and Computer Engineering.
III. Turbo Codes.
1 –Mandatory exercise for Inf 244 –Deadline: October 29th –The assignment is to implement an encoder/decoder system.
A Novel technique for Improving the Performance of Turbo Codes using Orthogonal signalling, Repetition and Puncturing by Narushan Pillay Supervisor: Prof.
Wireless Mobile Communication and Transmission Lab. Theory and Technology of Error Control Coding Chapter 5 Turbo Code.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 12.
Outline Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) Receivers (Chapter 5) (week 3 and 4) Received Signal Synchronization.
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
Turbo Codes COE 543 Mohammed Al-Shammeri. Agenda PProject objectives and motivations EError Correction Codes TTurbo Codes Technology TTurbo decoding.
Synchronization of Turbo Codes Based on Online Statistics
VIRGINIA POLYTECHNIC INSTITUTE & STATE UNIVERSITY MOBILE & PORTABLE RADIO RESEARCH GROUP MPRG Combined Multiuser Detection and Channel Decoding with Receiver.
VIRGINIA POLYTECHNIC INSTITUTE & STATE UNIVERSITY MOBILE & PORTABLE RADIO RESEARCH GROUP MPRG Combined Multiuser Reception and Channel Decoding for TDMA.
Iterative Channel Estimation for Turbo Codes over Fading Channels Matthew C. Valenti Assistant Professor Dept. of Comp. Sci. & Elect. Eng. West Virginia.
1 Channel Coding (III) Channel Decoding. ECED of 15 Topics today u Viterbi decoding –trellis diagram –surviving path –ending the decoding u Soft.
Last time, we talked about:
Low Density Parity Check codes
Timo O. Korhonen, HUT Communication Laboratory 1 Convolutional encoding u Convolutional codes are applied in applications that require good performance.
Error Correction Code (2)
A simple rate ½ convolutional code encoder is shown below. The rectangular box represents one element of a serial shift register. The contents of the shift.
Muhammad Shoaib Bin Altaf. Outline Motivation Actual Flow Optimizations Approach Results Conclusion.
Turbo Codes. 2 A Need for Better Codes Designing a channel code is always a tradeoff between energy efficiency and bandwidth efficiency. Lower rate Codes.
Wireless Communication Research Lab. CGU What is Convolution Code? 指導教授:黃文傑 博士 學生:吳濟廷
Log-Likelihood Algebra
Implementation of Turbo Code in TI TMS320C8x Hao Chen Instructor: Prof. Yu Hen Hu ECE734 Spring 2004.
A Bandwidth Efficient Pilot Symbol Technique for Coherent Detection of Turbo Codes over Fading Channels Matthew C. Valenti Dept. of Comp. Sci. & Elect.
1 Channel Coding: Part III (Turbo Codes) Presented by: Nguyen Van Han ( ) Wireless and Mobile Communication System Lab.
1 Code design: Computer search Low rate: Represent code by its generator matrix Find one representative for each equivalence class of codes Permutation.
Classical Coding for Forward Error Correction Prof JA Ritcey Univ of Washington.
FEC decoding algorithm overview VLSI 자동설계연구실 정재헌.
What is this “Viterbi Decoding”
An Efficient Software Radio Implementation of the UMTS Turbo Codec
MAP decoding: The BCJR algorithm
Coding and Interleaving
Trellis Codes With Low Ones Density For The OR Multiple Access Channel
Interleaver-Division Multiple Access on the OR Channel
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Error Correction Code (2)
Error Correction Code (2)
Mr. Ali Hussain Mugaibel
Chapter 10: Error-Control Coding
Error Correction Code (2)
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Homework #2 Due May 29 , Consider a (2,1,4) convolutional code with g(1) = 1+ D2, g(2) = 1+ D + D2 + D3 a. Draw the.
IV. Convolutional Codes
Presentation transcript:

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

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

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

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

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

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

State transition Diagram

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

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

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

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

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

Hard Decision Viterbi Basics

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

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

Soft Value (L(u)) Computation

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

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

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

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

Performance in AWGN channel

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

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)