6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011

Slides:



Advertisements
Similar presentations
Convolutional Codes Mohammad Hanaysheh Mahdi Barhoush.
Advertisements

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!
Information Theory Introduction to Channel Coding Jalal Al Roumy.
Submission May, 2000 Doc: IEEE / 086 Steven Gray, Nokia Slide Brief Overview of Information Theory and Channel Coding Steven D. Gray 1.
Cellular Communications
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
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.
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.
Data Compression Basics & Huffman Coding
Viterbi Decoder Project Alon weinberg, Dan Elran Supervisors: Emilia Burlak, Elisha Ulmer.
ECED 4504 Digital Transmission Theory
S Advanced Digital Communication (4 cr)
RICE UNIVERSITY Implementing the Viterbi algorithm on programmable processors Sridhar Rajagopal Elec 696
Channel Coding Part 1: Block Coding
CY2G2 Information Theory 5
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
Information Coding in noisy channel error protection:-- improve tolerance of errors error detection: --- indicate occurrence of errors. Source.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes.
The Data Link Layer Goal –As reliable as possible, efficient communication Point-to-Point –single connection –bits arrive in order sent Not necessarily.
Introduction to Coding Theory. p2. Outline [1] Introduction [2] Basic assumptions [3] Correcting and detecting error patterns [4] Information rate [5]
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.
DIGITAL COMMUNICATIONS Linear Block Codes
Recitation: Rehearsing Wireless Packet Reception in Software
Channel Coding Binit Mohanty Ketan Rajawat. Recap…  Information is transmitted through channels (eg. Wires, optical fibres and even air)  Channels are.
Real-Time Turbo Decoder Nasir Ahmed Mani Vaya Elec 434 Rice University.
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:
1 © Unitec New Zealand CRC calculation and Hammings code.
10.1 Chapter 10 Error Detection and Correction Data can be corrupted during transmission. Some applications require that errors be detected and.
Timo O. Korhonen, HUT Communication Laboratory 1 Convolutional encoding u Convolutional codes are applied in applications that require good performance.
Error Detection. Data can be corrupted during transmission. Some applications require that errors be detected and corrected. An error-detecting code can.
Error Correction Code (2)
Error Detection and Correction
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.
Wireless Communication Research Lab. CGU What is Convolution Code? 指導教授:黃文傑 博士 學生:吳濟廷
Dr. Muqaibel \ EE430 Convolutional Codes 1 Convolutional Codes.
SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Convolutional Codes.
Convolutional Coding In telecommunication, a convolutional code is a type of error- correcting code in which m-bit information symbol to be encoded is.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
Interleaving Compounding Packets & Convolution Codes
Coding No. 1  Seattle Pacific University Digital Coding Kevin Bolding Electrical Engineering Seattle Pacific University.
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 자동설계연구실 정재헌.
DIGITAL SYTEM DESIGN MINI PROJECT CONVOLUTION CODES
The Viterbi Decoding Algorithm
Pipelined Architectures for High-Speed and Area-Efficient Viterbi Decoders Chen, Chao-Nan Chu, Hsi-Cheng.
Coding and Interleaving
S Digital Communication Systems
COS 463: Wireless Networks Lecture 9 Kyle Jamieson
Chapter 6.
Error Correction Code (2)
Error Correction Code (2)
Channel coding architectures for OCDMA
Error Detection and Correction
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.
Theory of Information Lecture 13
IV. Convolutional Codes
Presentation transcript:

6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011 Viterbi Decoder 6.375 Project Arthur Chang Omid Salehi-Abari Sung Sik Woo May 11, 2011

Background: Error Control Techniques Improving the reliability of digital communication Inserting redundancy into the transmitted data Detecting and correcting transmission errors Example: Binary symmetric channel (BSC) No error control Pε = p Triple- repetition code Send each message bit three times, 0 → 000 , 1 → 111 More zeros are received than ones, assume the message bit was a zero Pε = Pr{2 or 3 code bits are in error} = 3p2(1 − p) + p3 = 3p2 − 2p3

Background: Convolutional Codes: Linear codes Operate on continuous streams of symbols Can be generated by the convolution of the message sequence with a set of generator sequences A (3,1,2) convolutional encoder, g1=110, g2=111 and g3 =101 1 00 10 01 11 0/000 0/011 1/111 1/001 0/101 0/110 1/100 1/010

Background: Some Definition: Branch Metric: Hamming distance between the received codeword and all possible symbols (i.e. the number of bits in which received message differs from code sequence) Path Metric: Sum of the Branch Metrics Survivor Path: Path with the smallest Path Metric

Background: Viterbi Decoder: Final decision on the maximum likelihood path is not made until the entire received sequence (i.e. long delay) Practical solution: Sliding window with length of 5K

Specification IEEE 802.16 WiMax Standards K = 7 Rate = 29.1Mbps Hardware is needed for the real-time decoding FPGA is a good solution

System Block Diagram

Depuncture Unit

Branch Metric Unit (BMU)

Path Metric Unit (PMU)

Traceback Unit (TBU) Traceback Length = 5K = 35

Functional Testbench Messages decoded by MATLAB and Bluespec are compared and shown to be identical across all rates and channel SNR.

Performance Benchmark Decoder can maintain 1 bit/cycle output throughput with 88 cycles of latency. Coded bits are generated on FPGA since Sce-Mi cannot supply bits as fast as the decoder can process them. At 150MHz, we are 400x faster than the MATLAB implementation.

Synthesis Report Decoder with 7-stage TBU Decoder with 35-stage TBU Number of Slice Registers 28% 38% Number of Slice LUTs 21% 23% Critical Path Module TBU MSU Clock Frequency 72.02MHz 150.40MHz

Question?