ecen 5682 theory and practice of error control codes
play

ECEN 5682 Theory and Practice of Error Control Codes Convolutional - PowerPoint PPT Presentation

Convolutional Codes ECEN 5682 Theory and Practice of Error Control Codes Convolutional Codes Peter Mathys University of Colorado Spring 2007 Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes Basic Definitions, Convolutional


  1. Convolutional Codes ECEN 5682 Theory and Practice of Error Control Codes Convolutional Codes Peter Mathys University of Colorado Spring 2007 Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  2. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Basic Definitions, Convolutional Encoders Linear ( n , k ) block codes take k data symbols at a time and encode them into n code symbols. Long data sequences are broken up into blocks of k symbols and each block is encoded independently of all others. Convolutional encoders, on the other hand, convert an entire data sequence , regardless of its length, into a single code sequence by using convolution and multiplexing operations. In general, it is convenient to assume that both the data sequences ( u 0 , u 1 , . . . ) and the code sequences ( c 0 , c 1 , . . . ) are semi-infinite sequences and to express them in the form of a power series. Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  3. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Definition: The power series associated with the data sequence u = ( u 0 , u 1 , u 2 , . . . ) is defined as ∞ u ( D ) = u 0 + u 1 D + u 2 D 2 + . . . = u i D i , � i =0 where u ( D ) is called the data power series . Similarly, the code power series c ( D ) associated with the code sequence c = ( c 0 , c 1 , c 2 , . . . ) is defined as ∞ c ( D ) = c 0 + c 1 D + c 2 D 2 + . . . = c i D i . � i =0 The indeterminate D has the meaning of delay, similar to z − 1 in the z transform, and D is sometimes called the delay operator . Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  4. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm A general rate R = k / n convolutional encoder converts k data sequences into n code sequences using a k × n transfer function matrix G ( D ) as shown in the following figure. u (1) ( D ) c (1) ( D ) D . Convolutional . e M . . u ( D ) c ( D ) . . Encoder m u u ( k ) ( D ) c ( n ) ( D ) G ( D ) u x x Fig.1 Block Diagram of a k -Input, n -Output Convolutional Encoder Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  5. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm The data power series u ( D ) is split up into k subsequences, denoted u (1) ( D ) , u (2) ( D ) , . . . , u ( k ) ( D ) in power series notation, using a demultiplexer whose details are shown in the figure below. u ( D ) − ( u 0 , u 1 , . . . , u k − 1 , u k , u k +1 , . . . , u 2 k − 1 , u 2 k , u 2 k +1 , . . . , u 3 k − 1 , . . . ) → u (1) u (1) u (1) . . . . . . . . . → u (1) ( D ) . . . − 0 1 2 u (2) u (2) u (2) . . . . . . . . . → u (2) ( D ) . . . − 0 1 2 . . . u ( k ) u ( k ) u ( k ) . . . . . . → u ( k ) ( D ) . . . − 0 1 2 Fig.2 Demultiplexing from u ( D ) into u (1) ( D ) , . . ., u ( k ) ( D ) Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  6. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm The code subsequences, denoted by c (1) ( D ) , c (2) ( D ) , . . . , c ( n ) ( D ) in power series notation, at the output of the convolutional encoder are multiplexed into a single power series c ( D ) for transmission over a channel, as shown below. c (1) ( D ) → c (1) c (1) c (1) . . . . . . . . . . . . 0 1 2 c (2) ( D ) → c (2) c (2) c (2) . . . . . . . . . . . . 0 1 2 . . . c ( n ) ( D ) → c ( n ) c ( n ) c ( n ) . . . . . . . . . 0 1 2 ( c 0 , c 1 , . . . , c n − 1 , c n , c n +1 , . . . , c 2 n − 1 , c 2 n , c 2 n +1 , . . . , c 3 n − 1 , . . . ) → c ( D ) Fig.3 Multiplexing of c (1) ( D ) , . . ., c ( n ) ( D ) into Single Output c ( D ) Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  7. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Definition: A q-ary generator polynomial of degree m is a polynomial in D of the form m g ( D ) = g 0 + g 1 D + g 2 D 2 + . . . + g m D m = g i D i , � i =0 with m + 1 q -ary coefficients g i . The degree m is also called the memory order of g ( x ). Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  8. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Consider computing the product (using modulo q arithmetic) c ( D ) = u ( D ) g ( D ) . Written out, this looks as follows c 0 + c 1 D + c 2 D 2 + . . . = = ( g 0 + g 1 D + g 2 D 2 + . . . + g m D m ) ( u 0 + u 1 D + u 2 D 2 + . . . ) = = g 0 u 0 + g 0 u 1 D + g 0 u 2 D 2 + . . . + g 0 u m D m + g 0 u m +1 D m +1 + g 0 u m +2 D m +2 + . . . + g 1 u 0 D + g 1 u 1 D 2 + . . . + g 1 u m − 1 D m + g 1 u m D m +1 + g 1 u m +1 D m +2 + . . . + g 2 u 0 D 2 + . . . + g 2 u m − 2 D m + g 2 u m − 1 D m +1 + g 2 u m D m +2 + . . . . . . . . . . . . + g m u 0 D m + g m u 1 D m +1 + g m u 2 D m +2 + . . . Thus, the coefficients of c ( D ) are m X c j = g i u j − i , j = 0 , 1 , 2 , . . . , where u ℓ = 0 for ℓ < 0 , i =0 i.e., the code sequence ( c 0 , c 1 , c 2 , . . . ) is the convolution of the data sequence ( u 0 , u 1 , u 2 , . . . ) with the generator sequence ( g 0 , g 1 , . . . , g m ). Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  9. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm A convenient way to implement the convolution m � c j = g i u j − i , j = 0 , 1 , 2 , . . . , where u ℓ = 0 for ℓ < 0 , i =0 is to use a shift register with m memory cells (cleared to zero at time t = 0), as shown in following figure. m memory cells . . . , u 2 , u 1 , u 0 • · · · g 0 g 1 g 2 g m . . . , c 2 , c 1 , c 0 + + + · · · Fig.4 Block Diagram for Convolution of u ( D ) with g ( D ) Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  10. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm A general k -input, n -output convolutional encoder consists of k such shift registers, each of which is connected to the outputs via n generator polynomials. Definition: A q -ary linear and time-invariant convolutional encoder with k inputs and n outputs is specified by a k × n matrix G ( D ), called transfer function matrix , which consists of generator polynomials g ( ℓ ) h ( D ), h = 1 , 2 , . . . , k , ℓ = 1 , 2 , . . . , n , as follows g (1) g (2) g ( n )   1 ( D ) 1 ( D ) . . . 1 ( D ) g (1) g (2) g ( n )  2 ( D ) 2 ( D ) . . . 2 ( D )    G ( D ) = . . . .   . . . . . .     g (1) g (2) g ( n ) k ( D ) k ( D ) . . . k ( D ) The generator polynomials have q -ary coefficients, degree m h ℓ , and are of the form 2 h D 2 + . . . + g ( ℓ ) g ( ℓ ) h ( D ) = g ( ℓ ) 0 h + g ( ℓ ) 1 h D + g ( ℓ ) m h ℓ h D m h ℓ . Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  11. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Define the power series vectors u ( D ) = [ u (1) ( D ) , u (2) ( D ) , . . . , u ( k ) ( D )] , c ( D ) = [ c (1) ( D ) , c (2) ( D ) , . . . , c ( n ) ( D )] . The operation of a k -input n -output convolutional encoder can then be concisely expressed as c ( D ) = u ( D ) G ( D ). Each individual output sequence is obtained as k u ( h ) ( D ) g ( ℓ ) � c ( ℓ ) ( D ) = h ( D ) . h =1 Note: By setting u ( h ) ( D ) = 1 in the above equation, it is easily seen that the generator sequence ( g ( ℓ ) 0 h , g ( ℓ ) 1 h , g ( ℓ ) 2 h , . . . , g ( ℓ ) m h ℓ h ) , is the unit impulse response from input h to output ℓ of the convolutional encoder. Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  12. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Definition: The total memory M of a convolutional encoder is the total number of memory elements in the encoder, i.e., k � M = 1 ≤ ℓ ≤ n m h ℓ . max h =1 Note that max 1 ≤ ℓ ≤ n m h ℓ is the number of memory cells or the memory order of the shift register for the input with index h . Definition: The maximal memory order m of a convolutional encoder is the length of the longest input shift register, i.e., m = max 1 ≤ h ≤ k max 1 ≤ ℓ ≤ n m h ℓ . Equivalently, m is equal to the highest degree of any of the generator polynomials in G ( D ). Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

  13. Basic Definitions, Convolutional Encoders Convolutional Codes Encoder State Diagrams Viterbi Decoding Algorithm Definition: The constraint length K of a convolutional encoder is the maximum number of symbols in a single output stream that can be affected by any input symbol, i.e., K = 1 + m = 1 + max 1 ≤ h ≤ k max 1 ≤ ℓ ≤ n m h ℓ . Note: This definition for constraint length is not in universal use. Some authors define constraint length to be the maximum number of symbols in all output streams that can be affected by any input symbol, which is nK in the notation used here. Peter Mathys ECEN 5682 Theory and Practice of Error Control Codes

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend