THE VITERBI ALGORITHM IN MATHCAD

Size: px
Start display at page:

Download "THE VITERBI ALGORITHM IN MATHCAD"

Transcription

1 THE VITERBI ALGORITHM IN MATHCAD. Introduction This worksheet contains procedures comprising the Viterbi Algorithm (VA). Although it is written a specific trellis code, it is easily adaptable to many other situations, such as space-time (ST) coding, convolutional encoding and Viterbi equalization. Two types of Viterbi decoder are provided. One keeps an ever-growing record of encoder and decoder states. It is primarily instructional and debug purposes, so you can wrap your mind around the data structures and algorithms. The other keeps only the last d symbols, so that you can run simulations over very large numbers of symbols. It is harder to understand, although it's not bad if you have already sorted out the first m of Viterbi decoder. You may want to make some modifications to the programs (other than the obvious ones a different code or channel estimation procedure, etc): The procedures have been written clarity more than efficiency, and you may find some superfluous or inefficient computations here and there. Some parameters (notably N state, N succ, N pred and d) are globally defined, rather than being passed in the parameter lists of procedures. It's convenient if you plan simply to modify this worksheet. However, if you want to make this a reference file (an "include" file) in another worksheet, you might find it easier to redefine the parameter lists of the procedures.. Variables and Data Structures N state number of states N succ number of trellis successors of each state N pred number of predecessors of each state, equals N succ trell invtrell an N succ x N state matrix in which trellis i,k is the i th successor state of state k an N pred x N state matrix in which invtrell i,k is the i th predecessor state of state k

2 sig invsig constell an N succ x N state matrix in which sig i,k gives the index of the transmitted constellation point in the transition from state k to its i th successor state an N pred x N state matrix in which invsig i,k gives the index of the transmitted constellation point in the transition to state k from its i th predecessor state a length-n const array of complex constellation points. M an N state x vector of accumulated metric values indexed by state pred a growing N state x time matrix, column t is the optimum predecessor state vector at time t (pred s,t is the opt predecessor index of state s at time t) the number of symbols in the simulation run sent a x matrix: top row is sequence of states, bottom row the transmitted constellation points. The Example TCM Code This is an 8 state 8PSK code from E. Biglieri et al, Introduction to Trellis Coded Modulation With Applications, Macmillan 99, Fig. {,,,} data Grey Code {,,,} next state index The trellis states are labelled.. (not shown on the diagram). From the trellis connections, we can view the state label as a -bit shift register into which new bits are shifted from the right (least significant bits) every symbol time. Thus the LSBs of any state specify the inmation bits conveyed in the transition to that state. The labels to the left of each state identify the 8PSK constellation point associated with each of the transitions out of that state.

3 To define the code, you fill in the elements of the highlighted arrays below. Change their dimensions other codes. matrix defining trellis connections matrix defining transmitted constellation points trell := sig := constell := π j e π j j e j e π j j e π T the constellation points themselves Some global values used in many of the procedures below N state := cols( trell) N pred := rows( trell) N succ := N pred N const := rows( constell). Some Utility Procedures These procedures are used frequently in the simulations further below. an all-zeros vector an all-ones vector zeros( K) := i.. K ones( K) z z i := i.. K u u i vector of integers from..k- unit variance complex Gaussian variate index( K) := i.. K cgauss( x) := ln( rnd ) exp j rnd π u u i i random M-ary variate data( M) := floor( M rnd ) ( )

4 decibels (clipped at -) inverse db db( x) := if x >, log( x), nat( x) :=. x. Inversion of Trellis Description The trellis and signal structure are defined by the matrices trell and sig used by the transmitter. For the VA in the receiver, it is more convenient to use the inverse descriptions. These procedures perm the conversion. The first produces the data structure invtrell defined in Section. invert_trellis( trell) := N state cols( trell) N succ rows( trell) invst.. N state predind invst st.. N state next.. N succ invtrell invst trell next, st pred predind invst invtrell pred, invst st predind invst predind invst + initialize the predecessor index sweep through trellis in lexicographical order Now use the procedure on the trellis defined in Section : invtrell := invert_trellis( trell) and this is the result: invtrell = Compare this with the trellis diagram and the definition of the trellis matrix in Section.

5 To accompany the trellis inversion, we need a signal inversion to obtain the data structure invsig defined in Section (it gives the signals on branches leading into a state, not out of it). invert_signal( sig, trell) := N state cols( sig) N succ rows( sig) invst.. N state predind invst st.. N state next.. N succ invsig invst trell next, st pred predind invst invsig pred, invst sig next, st predind invst predind invst + invsig := invert_signal( sig, trell) invsig = Compare this with the trellis diagram and the definition of the sig matrix above.. Error Counting Inevitably, channel noise causes the receiver to make occasional incorrect decisions on the state sequence or constellation point. We are really interested in the number of inmation bit errors in these events, so we need a procedure determining how many bit errors there were at each symbol time. The error counting function compares the true and candidate constellation indices at a single time step and returns the number of bit errors.

6 biterrs( true, cand) := true floor true cand cand floor err if true = cand err if true cand = err err otherwise This one works a trellis code using QPSK subsets of 8PSK: LSB is trimmed off to create variables in range.., then compared. Note this assumes a prior Grey coding, even through constellation points are labelled in natural order. An alternative is off-page to the right.. Procedures That Use Ever-Growing Data Structures The first implementation uses data structures that keep a record of all bits decoded, so their size is generally proportional to the number of bits in the simulation. The Encoder Generate the transmitted signal. Columns indexed by time. Top row is states, bottom row is constellation point index gen_sig sent :=, start in state sent t.. sndx data N succ oldst sent, t sent, t trell sndx, oldst sent, t sig sndx, oldst successor index sndx Select the length of the simulation run, in symbols, and generate the random transmitted data. := sent := gen_sig

7 The Channel Model as AWGN (additive white Gaussian noise). Select the SNR: γ db := γ := nat γ db noise variance is /γ Generate the received signals. Note this is 8PSK. i :=.. r i := constell sent i +, γ cgauss() i v i := This is the channel gain estimate v. Make it perfect channel estimation here. The Metric Here is the metric PSK - try to maximize it. The procedure calculates the metric the received signal r with channel gain estimate v and a specific state transition (predecessor index pndx, current state st). Note this is PSK-type metric( r, v, pndx, st) Re r := v constell invsigpndx, st constellations, since it's a correlation. The Traceback Algorithm Once the simulation has run to its full time steps, we process the pred array in the VA (see below) to create an array of decisions in the same mat as the sent matrix of the transmitter. Pick the state at the last time step with the largest metric, then trace back, converting the predecessor indexes to predecessor states and constellation points.

8 := statelist index( N state ) traceback pred, M, temp csort( augment( M, statelist), ) decn Nsim, temp rows( temp), find terminal state with largest accumulated metric t,.. decn st pndx decn, t pred st, t decn, t invtrell pndx, st decn, t invsig pndx, st then work back to the start, recording the states and the constellation indexes The Viterbi Algorithm Finally, the VA itself. In the Viterbi algorithm below: first initialize the metric vector M to ce operation beginning with state ; then at each time step, run through the states; each state, run through the predecessors to see which gives the largest sum of branch metric and predecessor's own accumulated metric. Save the best predecessor index in pred. init_metric N state := M st.. N state M M st 8

9 := M init_metric( N state ) predlist index( N pred ) viterbi r, v, t.. st.. N state pndx.. N pred pst invtrell pndx, st temp_metric pndx M pst, t + metric r t, v t, pndx, st temp csort( augment( temp_metric, predlist), ) new_m st temp rows( temp), pred st, t temp rows( temp), M t new_m traceback pred, M t, decode := viterbi r, v, Now compare the sent and decoded signals. Remember our SNR and simulation length were γ db = = sent = 8 9 decode = 8 9 How many errors did we get? 9

10 t = biterrs sent, t, decode, t = t = biterrs sent, t, decode, t = 9 This graph shows the number of errors at each time step. t :=.. errors 8 9 symbol time. Viterbi Algorithm with Bounded Data Structures For long simulations, or live code, we need a Viterbi implementation that: puts signal generation, channel and detection all in the same time loop; releases decisions after a finite delay d, usually a few multiples of the constraint length. Use circular arrays of size d, so that the data structures do not grow without bound. Select the delay d - it is another global variable: d := This procedure generates the signal (state and constellation point) a new time step. The record sent is limited to d columns.

11 gen_sig d ( t, sent) := sndx data N succ oldst sent, mod( t, d) next_sent trell sndx, oldst next_sent sig sndx, oldst next_sent generate transmitted signal. top row is states, bottom is constell pt index This is the traceback routine bounded data structures. Convert the pred matrix to an array of states and signals in same mat as sent. i wrap( i, n) := i n floor like mod function, but allows neg arguments n traceback d ( pred, M, t) := statelist index N state temp csort( augment( M, statelist), ) decn, mod( t, d) temp rows( temp), t' t, t.. t d+ decn t'' st pndx mod( t', d) decn, t'' pred st, t'' decn, wrap( t'', d) invtrell pndx, st decn, t'' invsig pndx, st find terminal state with largest accumulated metric then work back to the start, recording the state and the constellation index And, finally, the Viterbi Algorithm itself. It is set up here generate the transmitted and received signals and count the errors, not return the decisions. The VA detector alone is the set of statements following v in the "t loop."

12 := M init_metric( N state ) predlist index( N pred ) viterbi d γ, sent zeros errs t.. sent mod( t, d) r constell sent mod t, d v st.. N state gen_sig d ( t, sent) +, γ cgauss() t pndx.. N pred errs pst invtrell pndx, st temp_metric pndx M pst + metric( r, v, pndx, st) temp csort( augment( temp_metric, predlist), ) new_m st temp rows( temp), pred st, mod( t, d) temp rows( temp), M new_m if t > d decn traceback d ( pred, M, t) errs errs + biterrs decn, mod( t, d), sent, mod( t, d) Let's do a run. Pick the SNR and the run length: γ db := db γ := nat γ db convert from db := in symbols How many errors will we get? viterbi d ( γ, ) =

13 .

RECURSIVE GF(2 N ) ENCODERS USING LEFT-CIRCULATE FUNCTION FOR OPTIMUM TCM SCHEMES

RECURSIVE GF(2 N ) ENCODERS USING LEFT-CIRCULATE FUNCTION FOR OPTIMUM TCM SCHEMES RECURSIVE GF( N ) ENCODERS USING LEFT-CIRCULATE FUNCTION FOR OPTIMUM TCM SCHEMES CĂLIN VLĂDEANU 1, SAFWAN EL ASSAD, ION MARGHESCU 1, ADRIAN FLORIN PĂUN 1 JEAN-CLAUDE CARLACH 3, RAYMOND QUÉRÉ 4 Key words:

More information

A Visualization Tool to Improve the Performance of a Classifier Based on Hidden Markov Models

A Visualization Tool to Improve the Performance of a Classifier Based on Hidden Markov Models A Visualization Tool to Improve the Performance of a Classifier Based on Hidden Markov Models Gleidson Pegoretti da Silva, Masaki Nakagawa Department of Computer and Information Sciences Tokyo University

More information

Due dates are as mentioned above. Checkoff interviews for PS2 and PS3 will be held together and will happen between October 4 and 8.

Due dates are as mentioned above. Checkoff interviews for PS2 and PS3 will be held together and will happen between October 4 and 8. Problem Set 3 Your answers will be graded by actual human beings (at least that ' s what we believe!), so don' t limit your answers to machine-gradable responses. Some of the questions specifically ask

More information

The BICM Capacity of Coherent Continuous-Phase Frequency Shift Keying

The BICM Capacity of Coherent Continuous-Phase Frequency Shift Keying The BICM Capacity of Coherent Continuous-Phase Frequency Shift Keying Rohit Iyer Seshadri 1 Shi Cheng 1 Matthew C. Valenti 1 1 Lane Department of Computer Science and Electrical Engineering West Virginia

More information

Polar Codes for Noncoherent MIMO Signalling

Polar Codes for Noncoherent MIMO Signalling ICC Polar Codes for Noncoherent MIMO Signalling Philip R. Balogun, Ian Marsland, Ramy Gohary, and Halim Yanikomeroglu Department of Systems and Computer Engineering, Carleton University, Canada WCS IS6

More information

Viterbi Algorithm - Implementation

Viterbi Algorithm - Implementation Viterbi Algorithm - Implementation Lecture 14 Vladimir Stojanović 6.973 Communication System Design Spring 2006 Massachusetts Institute of Technology Convolutional Codes Adding redundancy 1+D 2 + 0111

More information

Viterbi Algorithm for error detection and correction

Viterbi Algorithm for error detection and correction IOSR Journal of Electronicsl and Communication Engineering (IOSR-JECE) ISSN: 2278-2834-, ISBN: 2278-8735, PP: 60-65 www.iosrjournals.org Viterbi Algorithm for error detection and correction Varsha P. Patil

More information

Low-Power Adaptive Viterbi Decoder for TCM Using T-Algorithm

Low-Power Adaptive Viterbi Decoder for TCM Using T-Algorithm International Journal of Scientific and Research Publications, Volume 3, Issue 8, August 2013 1 Low-Power Adaptive Viterbi Decoder for TCM Using T-Algorithm MUCHHUMARRI SANTHI LATHA*, Smt. D.LALITHA KUMARI**

More information

Convolutional Codes. COS 463: Wireless Networks Lecture 9 Kyle Jamieson. [Parts adapted from H. Balakrishnan]

Convolutional Codes. COS 463: Wireless Networks Lecture 9 Kyle Jamieson. [Parts adapted from H. Balakrishnan] Convolutional Codes COS 463: Wireless Networks Lecture 9 Kyle Jamieson [Parts adapted from H. Balakrishnan] Today 1. Encoding data using convolutional codes Encoder state Changing code rate: Puncturing

More information

TeleBench 1.1. software benchmark data book.

TeleBench 1.1. software benchmark data book. TeleBench 1.1 software benchmark data book Table of Contents Autocorrelation...2 Bit Allocation...4 Convolutional Encoder...6 Fast Fourier Transform (FFT)...8 Viterbi Decoder... 11 1 TeleBench Version

More information

High Speed ACSU Architecture for Viterbi Decoder Using T-Algorithm

High Speed ACSU Architecture for Viterbi Decoder Using T-Algorithm High Speed ACSU Architecture for Viterbi Decoder Using T-Algorithm Atish A. Peshattiwar & Tejaswini G. Panse Department of Electronics Engineering, Yeshwantrao Chavan College of Engineering, E-mail : atishp32@gmail.com,

More information

Kevin Buckley

Kevin Buckley Kevin Buckley - 69 ECE877 Information Theory & Coding for Digital Communications Villanova University ECE Department Prof. Kevin M. Buckley Lecture Set 3 Convolutional Codes x c (a) (b) (,) (,) (,) (,)

More information

Mini-Project System Simulation over AWGN Using BPSK Modulation

Mini-Project System Simulation over AWGN Using BPSK Modulation Mini-Project System Simulation over AWGN Using BPSK Modulation Part I: MATLAB Environment Due Date: June 5, 2006. This exercise will guide you to realize the basic operating environment. Some useful instructions

More information

An FPGA Based Adaptive Viterbi Decoder

An FPGA Based Adaptive Viterbi Decoder An FPGA Based Adaptive Viterbi Decoder Sriram Swaminathan Russell Tessier Department of ECE University of Massachusetts Amherst Overview Introduction Objectives Background Adaptive Viterbi Algorithm Architecture

More information

A New MIMO Detector Architecture Based on A Forward-Backward Trellis Algorithm

A New MIMO Detector Architecture Based on A Forward-Backward Trellis Algorithm A New MIMO etector Architecture Based on A Forward-Backward Trellis Algorithm Yang Sun and Joseph R Cavallaro epartment of Electrical and Computer Engineering Rice University, Houston, TX 775 Email: {ysun,

More information

Integer Algorithms and Data Structures

Integer Algorithms and Data Structures Integer Algorithms and Data Structures and why we should care about them Vladimír Čunát Department of Theoretical Computer Science and Mathematical Logic Doctoral Seminar 2010/11 Outline Introduction Motivation

More information

Payload Length and Rate Adaptation for Throughput Optimization in Wireless LANs

Payload Length and Rate Adaptation for Throughput Optimization in Wireless LANs Payload Length and Rate Adaptation for Throughput Optimization in Wireless LANs Sayantan Choudhury and Jerry D. Gibson Department of Electrical and Computer Engineering University of Califonia, Santa Barbara

More information

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,

More information

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Author: Michael Francis

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Author: Michael Francis Application Note: All Virtex and Spartan FPGA Families XAPP551 (v2.) July 3, 21 Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Author: Michael Francis Summary Many digital communication

More information

CSE 417 Network Flows (pt 4) Min Cost Flows

CSE 417 Network Flows (pt 4) Min Cost Flows CSE 417 Network Flows (pt 4) Min Cost Flows Reminders > HW6 is due Monday Review of last three lectures > Defined the maximum flow problem find the feasible flow of maximum value flow is feasible if it

More information

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Authors: Bill Wilkie and Beth Cowie

Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Authors: Bill Wilkie and Beth Cowie Application Note: All Virtex and Spartan FPGA Families XAPP551 (1.0) February 14, 2005 R Viterbi Decoder Block Decoding - Trellis Termination and Tail Biting Authors: Bill Wilkie and Beth Cowie Summary

More information

Grade 6 Integers. Answer the questions. Choose correct answer(s) from the given choices. For more such worksheets visit

Grade 6 Integers. Answer the questions. Choose correct answer(s) from the given choices. For more such worksheets visit ID : cn6integers [1] Grade 6 Integers For more such worksheets visit www.edugain.com Answer the questions (1) If a and b are two integers such that a is the predecessor of b, then what is the value of

More information

Filtering Images. Contents

Filtering Images. Contents Image Processing and Data Visualization with MATLAB Filtering Images Hansrudi Noser June 8-9, 010 UZH, Multimedia and Robotics Summer School Noise Smoothing Filters Sigmoid Filters Gradient Filters Contents

More information

SIGNAL MAPPING DESIGNS FOR BIT-INTERLEAVED CODED MODULATION WITH ITERATIVE DECODING (BICM-ID)

SIGNAL MAPPING DESIGNS FOR BIT-INTERLEAVED CODED MODULATION WITH ITERATIVE DECODING (BICM-ID) SIGNAL MAPPING DESIGNS FOR BIT-INTERLEAVED CODED MODULATION WITH ITERATIVE DECODING (BICM-ID) A Thesis Submitted to the College of Graduate Studies and Research in Partial Fulfillment of the Requirements

More information

Channel Decoding in Wireless Communication Systems using Deep Learning

Channel Decoding in Wireless Communication Systems using Deep Learning Channel Decoding in Wireless Communication Systems using Deep Learning Gaurang Naik 12/11/2017 Deep Learning Course Project Acknowledgements: Navneet Agrawal, TU Berlin Error Control Coding Wireless Communication

More information

AUDIOVISUAL COMMUNICATION

AUDIOVISUAL COMMUNICATION AUDIOVISUAL COMMUNICATION Laboratory Session: Discrete Cosine Transform Fernando Pereira The objective of this lab session about the Discrete Cosine Transform (DCT) is to get the students familiar with

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #16 Loops: Matrix Using Nested for Loop In this section, we will use the, for loop to code of the matrix problem.

More information

3.1. Solution for white Gaussian noise

3.1. Solution for white Gaussian noise Low complexity M-hypotheses detection: M vectors case Mohammed Nae and Ahmed H. Tewk Dept. of Electrical Engineering University of Minnesota, Minneapolis, MN 55455 mnae,tewk@ece.umn.edu Abstract Low complexity

More information

Implementing Viterbi Decoders Using the VSL Instruction on DSP Families DSP56300 and DSP56600

Implementing Viterbi Decoders Using the VSL Instruction on DSP Families DSP56300 and DSP56600 Freescale Semiconductor Implementing Viterbi Decoders Using the VSL Instruction on DSP Families DSP56300 and DSP56600 by Dana Taipale This application report describes how to generate, from a set of convolutional

More information

Crit-bit Trees. Adam Langley (Version )

Crit-bit Trees. Adam Langley (Version ) Crit-bit Trees Adam Langley (agl@imperialviolet.org) (Version 20080926) 1. Introduction This code is taken from Dan Bernstein s qhasm and implements a binary crit-bit (alsa known as PATRICA) tree for NUL

More information

T325 Summary T305 T325 B BLOCK 4 T325. Session 3. Dr. Saatchi, Seyed Mohsen. Prepared by:

T325 Summary T305 T325 B BLOCK 4 T325. Session 3. Dr. Saatchi, Seyed Mohsen. Prepared by: T305 T325 B BLOCK 4 T325 Summary Prepared by: Session 3 [Type Dr. Saatchi, your address] Seyed Mohsen [Type your phone number] [Type your e-mail address] Dr. Saatchi, Seyed Mohsen T325 Error Control Coding

More information

Analyze the obvious algorithm, 5 points Here is the most obvious algorithm for this problem: (LastLargerElement[A[1..n]:

Analyze the obvious algorithm, 5 points Here is the most obvious algorithm for this problem: (LastLargerElement[A[1..n]: CSE 101 Homework 1 Background (Order and Recurrence Relations), correctness proofs, time analysis, and speeding up algorithms with restructuring, preprocessing and data structures. Due Thursday, April

More information

4. Error correction and link control. Contents

4. Error correction and link control. Contents //2 4. Error correction and link control Contents a. Types of errors b. Error detection and correction c. Flow control d. Error control //2 a. Types of errors Data can be corrupted during transmission.

More information

IMPLEMENTATION OF A BIT ERROR RATE TESTER OF A WIRELESS COMMUNICATION SYSTEM ON AN FPGA

IMPLEMENTATION OF A BIT ERROR RATE TESTER OF A WIRELESS COMMUNICATION SYSTEM ON AN FPGA IMPLEMENTATION OF A BIT ERROR RATE TESTER OF A WIRELESS COMMUNICATION SYSTEM ON AN FPGA Lakshmy Sukumaran 1, Dharani K G 2 1 Student, Electronics and communication, MVJ College of Engineering, Bangalore-560067

More information

434 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 25, NO. 2, FEBRUARY Collaborative Decoding in Bandwidth-Constrained Environments

434 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 25, NO. 2, FEBRUARY Collaborative Decoding in Bandwidth-Constrained Environments 434 IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 25, NO. 2, FEBRUARY 2007 Collaborative Decoding in Bandwidth-Constrained Environments Arun Nayagam, John M. Shea, and Tan F. Wong Abstract We

More information

MATLAB is working with vectors and matrices, using different operators and functions.

MATLAB is working with vectors and matrices, using different operators and functions. INTRODUCTION TO COMMUNICATIONS BASICS OF MATLAB MATLAB is working with vectors and matrices, using different operators and functions. The vectors are indexed starting with 1 not 0. A line-vector is introduced

More information

Design of Convolution Encoder and Reconfigurable Viterbi Decoder

Design of Convolution Encoder and Reconfigurable Viterbi Decoder RESEARCH INVENTY: International Journal of Engineering and Science ISSN: 2278-4721, Vol. 1, Issue 3 (Sept 2012), PP 15-21 www.researchinventy.com Design of Convolution Encoder and Reconfigurable Viterbi

More information

THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH. Haotian Zhang and José M. F. Moura

THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH. Haotian Zhang and José M. F. Moura THE DESIGN OF STRUCTURED REGULAR LDPC CODES WITH LARGE GIRTH Haotian Zhang and José M. F. Moura Department of Electrical and Computer Engineering Carnegie Mellon University, Pittsburgh, PA 523 {haotian,

More information

MATHCAD'S PROGRAMMING LANGUAGE The for Loop

MATHCAD'S PROGRAMMING LANGUAGE The for Loop MATHCAD'S PROGRAMMING LANGUAGE The Loop Introduction In this section we look at the loop construct in Mathcad programming. A loop is a means of perming a sequence of similar operations repeatedly over

More information

An Implementation of a Soft-Input Stack Decoder For Tailbiting Convolutional Codes

An Implementation of a Soft-Input Stack Decoder For Tailbiting Convolutional Codes An Implementation of a Soft-Input Stack Decoder For Tailbiting Convolutional Codes Mukundan Madhavan School Of ECE SRM Institute Of Science And Technology Kancheepuram 603203 mukundanm@gmail.com Andrew

More information

Crit-bit Trees. Adam Langley (Version )

Crit-bit Trees. Adam Langley (Version ) CRITBIT CWEB OUTPUT 1 Crit-bit Trees Adam Langley (agl@imperialviolet.org) (Version 20080926) 1. Introduction This code is taken from Dan Bernstein s qhasm and implements a binary crit-bit (alsa known

More information

Linear Block Codes. Allen B. MacKenzie Notes for February 4, 9, & 11, Some Definitions

Linear Block Codes. Allen B. MacKenzie Notes for February 4, 9, & 11, Some Definitions Linear Block Codes Allen B. MacKenzie Notes for February 4, 9, & 11, 2015 This handout covers our in-class study of Chapter 3 of your textbook. We ll introduce some notation and then discuss the generator

More information

Complexity Assessment of Sphere Decoding Methods for MIMO Detection

Complexity Assessment of Sphere Decoding Methods for MIMO Detection Complexity Assessment of Sphere Decoding Methods for MIMO Detection Johannes Fink, Sandra Roger, Alberto Gonzalez, Vicenc Almenar, Victor M. Garcia finjo@teleco.upv.es, sanrova@iteam.upv.es, agonzal@dcom.upv.es,

More information

Machine Learning. B. Unsupervised Learning B.1 Cluster Analysis. Lars Schmidt-Thieme, Nicolas Schilling

Machine Learning. B. Unsupervised Learning B.1 Cluster Analysis. Lars Schmidt-Thieme, Nicolas Schilling Machine Learning B. Unsupervised Learning B.1 Cluster Analysis Lars Schmidt-Thieme, Nicolas Schilling Information Systems and Machine Learning Lab (ISMLL) Institute for Computer Science University of Hildesheim,

More information

Construction C : an inter-level coded version of Construction C

Construction C : an inter-level coded version of Construction C Construction C : an inter-level coded version of Construction C arxiv:1709.06640v2 [cs.it] 27 Dec 2017 Abstract Besides all the attention given to lattice constructions, it is common to find some very

More information

Parallelizing The Matrix Multiplication. 6/10/2013 LONI Parallel Programming Workshop

Parallelizing The Matrix Multiplication. 6/10/2013 LONI Parallel Programming Workshop Parallelizing The Matrix Multiplication 6/10/2013 LONI Parallel Programming Workshop 2013 1 Serial version 6/10/2013 LONI Parallel Programming Workshop 2013 2 X = A md x B dn = C mn d c i,j = a i,k b k,j

More information

Viterbi Detector: Review of Fast Algorithm and Implementation

Viterbi Detector: Review of Fast Algorithm and Implementation Viterbi Detector: Review of Fast Algorithm and Implementation By sheng, Xiaohong I. Introduction Viterbi Algorithm is the optimum-decoding algorithm for convolutional codes and has often been served as

More information

ELEC 691X/498X Broadcast Signal Transmission Winter 2018

ELEC 691X/498X Broadcast Signal Transmission Winter 2018 ELEC 691X/498X Broadcast Signal Transmission Winter 2018 Instructor: DR. Reza Soleymani, Office: EV 5.125, Telephone: 848 2424 ext.: 4103. Office Hours: Wednesday, Thursday, 14:00 15:00 Slide 1 In this

More information

4D ENCODING IN LEVEL-ONE'S PROPOSAL FOR 1000BASE-T. Jaime E. Kardontchik. Advanced Micro Devices. Sunnyvale, CA August 21, Rev B

4D ENCODING IN LEVEL-ONE'S PROPOSAL FOR 1000BASE-T. Jaime E. Kardontchik. Advanced Micro Devices. Sunnyvale, CA August 21, Rev B 4D ENCODING IN LEVEL-ONE'S PROPOSAL FOR 1000BASE-T by Jaime E. Kardontchik Advanced Micro Devices Sunnyvale, CA 94088 August 21, 1997 - Rev B The purpose of this tutorial is to fill-in the missing steps

More information

LOW-DENSITY PARITY-CHECK (LDPC) codes [1] can

LOW-DENSITY PARITY-CHECK (LDPC) codes [1] can 208 IEEE TRANSACTIONS ON MAGNETICS, VOL 42, NO 2, FEBRUARY 2006 Structured LDPC Codes for High-Density Recording: Large Girth and Low Error Floor J Lu and J M F Moura Department of Electrical and Computer

More information

Solving Systems of Equations Using Matrices With the TI-83 or TI-84

Solving Systems of Equations Using Matrices With the TI-83 or TI-84 Solving Systems of Equations Using Matrices With the TI-83 or TI-84 Dimensions of a matrix: The dimensions of a matrix are the number of rows by the number of columns in the matrix. rows x columns *rows

More information

252C: Camera Stabilization for the Masses

252C: Camera Stabilization for the Masses 252C: Camera Stabilization for the Masses Sunny Chow. Department of Computer Science University of California, San Diego skchow@cs.ucsd.edu 1 Introduction As the usage of handheld digital camcorders increase

More information

Style-based Inverse Kinematics

Style-based Inverse Kinematics Style-based Inverse Kinematics Keith Grochow, Steven L. Martin, Aaron Hertzmann, Zoran Popovic SIGGRAPH 04 Presentation by Peter Hess 1 Inverse Kinematics (1) Goal: Compute a human body pose from a set

More information

Physics 736. Experimental Methods in Nuclear-, Particle-, and Astrophysics. - Statistical Methods -

Physics 736. Experimental Methods in Nuclear-, Particle-, and Astrophysics. - Statistical Methods - Physics 736 Experimental Methods in Nuclear-, Particle-, and Astrophysics - Statistical Methods - Karsten Heeger heeger@wisc.edu Course Schedule and Reading course website http://neutrino.physics.wisc.edu/teaching/phys736/

More information

CSE 417 Dynamic Programming (pt 4) Sub-problems on Trees

CSE 417 Dynamic Programming (pt 4) Sub-problems on Trees CSE 417 Dynamic Programming (pt 4) Sub-problems on Trees Reminders > HW4 is due today > HW5 will be posted shortly Dynamic Programming Review > Apply the steps... 1. Describe solution in terms of solution

More information

International Journal of Science Engineering and Advance Technology, IJSEAT, Vol 2, Issue 11, November ISSN

International Journal of Science Engineering and Advance Technology, IJSEAT, Vol 2, Issue 11, November ISSN Rtl Desing And Vlsi Implementation Of An Efficient Convolution Encoder And Adaptive Viterbi Decoder Thalakayala Eleesha #1 V.G.Pavan Kumar #2 #1 Student, M.Tech (VLSI), #2 Assistant Professor, Sri Vasavi

More information

2.3 Algorithms Using Map-Reduce

2.3 Algorithms Using Map-Reduce 28 CHAPTER 2. MAP-REDUCE AND THE NEW SOFTWARE STACK one becomes available. The Master must also inform each Reduce task that the location of its input from that Map task has changed. Dealing with a failure

More information

1 Linear programming relaxation

1 Linear programming relaxation Cornell University, Fall 2010 CS 6820: Algorithms Lecture notes: Primal-dual min-cost bipartite matching August 27 30 1 Linear programming relaxation Recall that in the bipartite minimum-cost perfect matching

More information

COLUMN GENERATION IN LINEAR PROGRAMMING

COLUMN GENERATION IN LINEAR PROGRAMMING COLUMN GENERATION IN LINEAR PROGRAMMING EXAMPLE: THE CUTTING STOCK PROBLEM A certain material (e.g. lumber) is stocked in lengths of 9, 4, and 6 feet, with respective costs of $5, $9, and $. An order for

More information

Modeling web-crawlers on the Internet with random walksdecember on graphs11, / 15

Modeling web-crawlers on the Internet with random walksdecember on graphs11, / 15 Modeling web-crawlers on the Internet with random walks on graphs December 11, 2014 Modeling web-crawlers on the Internet with random walksdecember on graphs11, 2014 1 / 15 Motivation The state of the

More information

Move-to-front algorithm

Move-to-front algorithm Up to now, we have looked at codes for a set of symbols in an alphabet. We have also looked at the specific case that the alphabet is a set of integers. We will now study a few compression techniques in

More information

1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order).

1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order). Exercises Exercises 1. Represent each of these relations on {1, 2, 3} with a matrix (with the elements of this set listed in increasing order). a) {(1, 1), (1, 2), (1, 3)} b) {(1, 2), (2, 1), (2, 2), (3,

More information

Data Analysis and Solver Plugins for KSpread USER S MANUAL. Tomasz Maliszewski

Data Analysis and Solver Plugins for KSpread USER S MANUAL. Tomasz Maliszewski Data Analysis and Solver Plugins for KSpread USER S MANUAL Tomasz Maliszewski tmaliszewski@wp.pl Table of Content CHAPTER 1: INTRODUCTION... 3 1.1. ABOUT DATA ANALYSIS PLUGIN... 3 1.3. ABOUT SOLVER PLUGIN...

More information

CS Data Structures and Algorithm Analysis

CS Data Structures and Algorithm Analysis CS 483 - Data Structures and Algorithm Analysis Lecture VI: Chapter 5, part 2; Chapter 6, part 1 R. Paul Wiegand George Mason University, Department of Computer Science March 8, 2006 Outline 1 Topological

More information

Implementation of reduced memory Viterbi Decoder using Verilog HDL

Implementation of reduced memory Viterbi Decoder using Verilog HDL IOSR Journal of Electronics and Communication Engineering (IOSR-JECE) e-issn: 2278-2834,p- ISSN: 2278-8735.Volume 8, Issue 4 (Nov. - Dec. 2013), PP 73-79 Implementation of reduced memory Viterbi Decoder

More information

The inverse of a matrix

The inverse of a matrix The inverse of a matrix A matrix that has an inverse is called invertible. A matrix that does not have an inverse is called singular. Most matrices don't have an inverse. The only kind of matrix that has

More information

Contents of Lecture 3

Contents of Lecture 3 Contents of Lecture 3 Repetition of matrices double a[3][4]; double* b; double** c; Terminology Linkage Types Conversions Jonas Skeppstedt (js@cs.lth.se) Lecture 3 2014 1 / 33 A global matrix: double a[3][4]

More information

Lecture 28 Intro to Tracking

Lecture 28 Intro to Tracking Lecture 28 Intro to Tracking Some overlap with T&V Section 8.4.2 and Appendix A.8 Recall: Blob Merge/Split merge occlusion occlusion split When two objects pass close to each other, they are detected as

More information

Recall: Blob Merge/Split Lecture 28

Recall: Blob Merge/Split Lecture 28 Recall: Blob Merge/Split Lecture 28 merge occlusion Intro to Tracking Some overlap with T&V Section 8.4.2 and Appendix A.8 occlusion split When two objects pass close to each other, they are detected as

More information

Debugging Program Slicing

Debugging Program Slicing Debugging Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at 1 What is a Slice? A Slice is a reduced

More information

P1 Engineering Computation

P1 Engineering Computation 1EC 2001 1 / 1 P1 Engineering Computation David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/1ec Hilary 2001 1EC 2001 2 / 1 Algorithms: Design, Constructs and Correctness 1EC 2001

More information

Shannon capacity and related problems in Information Theory and Ramsey Theory

Shannon capacity and related problems in Information Theory and Ramsey Theory Shannon capacity and related problems in Information Theory and Ramsey Theory Eyal Lubetzky Based on Joint work with Noga Alon and Uri Stav May 2007 1 Outline of talk Shannon Capacity of of a graph: graph:

More information

Face detection and recognition. Detection Recognition Sally

Face detection and recognition. Detection Recognition Sally Face detection and recognition Detection Recognition Sally Face detection & recognition Viola & Jones detector Available in open CV Face recognition Eigenfaces for face recognition Metric learning identification

More information

Estimation of Item Response Models

Estimation of Item Response Models Estimation of Item Response Models Lecture #5 ICPSR Item Response Theory Workshop Lecture #5: 1of 39 The Big Picture of Estimation ESTIMATOR = Maximum Likelihood; Mplus Any questions? answers Lecture #5:

More information

Drexel University Electrical and Computer Engineering Department. ECEC 672 EDA for VLSI II. Statistical Static Timing Analysis Project

Drexel University Electrical and Computer Engineering Department. ECEC 672 EDA for VLSI II. Statistical Static Timing Analysis Project Drexel University Electrical and Computer Engineering Department ECEC 672 EDA for VLSI II Statistical Static Timing Analysis Project Andrew Sauber, Julian Kemmerer Implementation Outline Our implementation

More information

A Connection between Network Coding and. Convolutional Codes

A Connection between Network Coding and. Convolutional Codes A Connection between Network Coding and 1 Convolutional Codes Christina Fragouli, Emina Soljanin christina.fragouli@epfl.ch, emina@lucent.com Abstract The min-cut, max-flow theorem states that a source

More information

MS Office for Engineers

MS Office for Engineers MS Office for Engineers Lesson 4 Excel 2 Pre-reqs/Technical Skills Basic knowledge of Excel Completion of Excel 1 tutorial Basic computer use Expectations Read lesson material Implement steps in software

More information

Program Optimization

Program Optimization Program Optimization Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class Improving program performance o When and what to optimize o Better algorithms & data structures

More information

Project 1: Analyzing and classifying ECGs

Project 1: Analyzing and classifying ECGs Project 1: Analyzing and classifying ECGs 1 Introduction This programming project is concerned with automatically determining if an ECG is shockable or not. For simplicity we are going to only look at

More information

Arrays. Defining arrays, declaration and initialization of arrays. Designed by Parul Khurana, LIECA.

Arrays. Defining arrays, declaration and initialization of arrays. Designed by Parul Khurana, LIECA. Arrays Defining arrays, declaration and initialization of arrays Introduction Many applications require the processing of multiple data items that have common characteristics (e.g., a set of numerical

More information

World Inside a Computer is Binary

World Inside a Computer is Binary C Programming 1 Representation of int data World Inside a Computer is Binary C Programming 2 Decimal Number System Basic symbols: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Radix-10 positional number system. The radix

More information

Implementation of Turbo Product Codes in the FEC-API. Kiran Karra Virginia Tech

Implementation of Turbo Product Codes in the FEC-API. Kiran Karra Virginia Tech Implementation of Turbo Product Codes in the FEC-API Kiran Karra Virginia Tech Agenda Introduction Turbo Product Code Encoding Overview Turbo Product Code Decoding Overview Implementation in C++ BER Performance

More information

Discrete Mathematics. Kruskal, order, sorting, induction

Discrete Mathematics.   Kruskal, order, sorting, induction Discrete Mathematics wwwmifvult/~algis Kruskal, order, sorting, induction Kruskal algorithm Kruskal s Algorithm for Minimal Spanning Trees The algorithm constructs a minimal spanning tree as follows: Starting

More information

Convolutional Code Optimization for Various Constraint Lengths using PSO

Convolutional Code Optimization for Various Constraint Lengths using PSO International Journal of Electronics and Communication Engineering. ISSN 0974-2166 Volume 5, Number 2 (2012), pp. 151-157 International Research Publication House http://www.irphouse.com Convolutional

More information

Comparative Performance Analysis of Block and Convolution Codes

Comparative Performance Analysis of Block and Convolution Codes Comparative Performance Analysis of Block and Convolution Codes Manika Pandey M.Tech scholar, ECE DIT University Dehradun Vimal Kant Pandey Assistant Professor/ECE DIT University Dehradun ABSTRACT Error

More information

Performance Evaluation of Transcoding and FEC Schemes for 100 Gb/s Backplane and Copper Cable

Performance Evaluation of Transcoding and FEC Schemes for 100 Gb/s Backplane and Copper Cable Performance Evaluation of Transcoding and FEC Schemes for 100 Gb/s Backplane and Copper Cable IEEE 802.3bj Task Force Atlanta, November 8-10, 2011 Roy Cideciyan - Outline Error models at RS decoder input

More information

Adaptive Transmission Protocols for Wireless Communication Systems with Fountain Coding

Adaptive Transmission Protocols for Wireless Communication Systems with Fountain Coding Clemson University TigerPrints All Dissertations Dissertations 12-2013 Adaptive Transmission Protocols for Wireless Communication Systems with Fountain Coding Jason Ellis Clemson University, jellisy15@yahoo.com

More information

Types of recursion. Structural vs. general recursion. Pure structural recursion. Readings: none. In this module: learn to use accumulative recursion

Types of recursion. Structural vs. general recursion. Pure structural recursion. Readings: none. In this module: learn to use accumulative recursion Types of recursion Readings: none. In this module: learn to use accumulative recursion learn to recognize generative recursion CS 135 Fall 2018 07: Types of recursion 1 Structural vs. general recursion

More information

Computation of posterior marginals on aggregated state models for soft source decoding

Computation of posterior marginals on aggregated state models for soft source decoding Computation of posterior marginals on aggregated state models for soft source decoding Simon Malinowski IRISA/University of Rennes Hervé Jégou INRIA Christine Guillemot IRISA/INRIA Abstract Optimum soft

More information

Using SystemView by ELANIX to Generate Bit Error Rate (BER) Curves Maurice L. Schiff, Ph.D., Chief Scientist, ELANIX, Inc.

Using SystemView by ELANIX to Generate Bit Error Rate (BER) Curves Maurice L. Schiff, Ph.D., Chief Scientist, ELANIX, Inc. Application Note AN107A May 12, 1997 SystemView B Y E L A N I X Using SystemView by ELANIX to Generate Bit Error Rate (BER) Curves Maurice L. Schiff, Ph.D., Chief Scientist, ELANIX, Inc. The most important

More information

Algorithm Design (8) Graph Algorithms 1/2

Algorithm Design (8) Graph Algorithms 1/2 Graph Algorithm Design (8) Graph Algorithms / Graph:, : A finite set of vertices (or nodes) : A finite set of edges (or arcs or branches) each of which connect two vertices Takashi Chikayama School of

More information

Chapter 5: Recursion

Chapter 5: Recursion Chapter 5: Recursion Objectives Looking ahead in this chapter, we ll consider Recursive Definitions Function Calls and Recursive Implementation Anatomy of a Recursive Call Tail Recursion Nontail Recursion

More information

Using Excel for Graphical Analysis of Data

Using Excel for Graphical Analysis of Data Using Excel for Graphical Analysis of Data Introduction In several upcoming labs, a primary goal will be to determine the mathematical relationship between two variable physical parameters. Graphs are

More information

Data Flow Analysis. CSCE Lecture 9-02/15/2018

Data Flow Analysis. CSCE Lecture 9-02/15/2018 Data Flow Analysis CSCE 747 - Lecture 9-02/15/2018 Data Flow Another view - program statements compute and transform data So, look at how that data is passed through the program. Reason about data dependence

More information

ACM for OTN Advantages and Enabling Technologies ECOC, Chandra Raj ViaSat Inc

ACM for OTN Advantages and Enabling Technologies ECOC, Chandra Raj ViaSat Inc ACM for OTN Advantages and Enabling Technologies ECOC, 2013 Chandra Raj ViaSat Inc Agenda Introduction to ACM ACM Advantages Enabling Technologies Copyright 2013 ViaSat, Inc. 2 Introduction Modes of Setting

More information

RTL implementation of Viterbi decoder

RTL implementation of Viterbi decoder RTL implementation of Viterbi decoder Master s thesis performed in Computer Engineering by WEI CHEN Reg nr: LiTH-ISY-EX--06/3886--SE Linköping June 02, 2006 RTL implementation of Viterbi decoder Master

More information

Linear Programming. Linear programming provides methods for allocating limited resources among competing activities in an optimal way.

Linear Programming. Linear programming provides methods for allocating limited resources among competing activities in an optimal way. University of Southern California Viterbi School of Engineering Daniel J. Epstein Department of Industrial and Systems Engineering ISE 330: Introduction to Operations Research - Deterministic Models Fall

More information

BOOLEAN MATRIX FACTORISATIONS & DATA MINING. Pauli Miettinen 6 February 2013

BOOLEAN MATRIX FACTORISATIONS & DATA MINING. Pauli Miettinen 6 February 2013 BOOLEAN MATRIX FACTORISATIONS & DATA MINING Pauli Miettinen 6 February 2013 In the sleepy days when the provinces of France were still quietly provincial, matrices with Boolean entries were a favored occupation

More information

Ahigh school curriculum in Algebra 2 contains both solving systems of linear equations,

Ahigh school curriculum in Algebra 2 contains both solving systems of linear equations, The Simplex Method for Systems of Linear Inequalities Todd O. Moyer, Towson University Abstract: This article details the application of the Simplex Method for an Algebra 2 class. Students typically learn

More information

Machine Learning. B. Unsupervised Learning B.1 Cluster Analysis. Lars Schmidt-Thieme

Machine Learning. B. Unsupervised Learning B.1 Cluster Analysis. Lars Schmidt-Thieme Machine Learning B. Unsupervised Learning B.1 Cluster Analysis Lars Schmidt-Thieme Information Systems and Machine Learning Lab (ISMLL) Institute for Computer Science University of Hildesheim, Germany

More information