1 S.72-227 Digital Communication Systems Cyclic Codes.

Slides:



Advertisements
Similar presentations
Mahdi Barhoush Mohammad Hanaysheh
Advertisements

Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.
1 S Digital Communication Systems Advanced Modulation and Random Access Techniques.
1 S Digital Communication Systems Cyclic Codes.
Data Communication, Lecture 111 Channel Coding. Data Communication, Lecture 112 audio video (analogue) data (digital) Source anti-alias filter A/D Nyquist.
Cyclic Code.
Error Control Code.
Computer Networking Error Control Coding
Information and Coding Theory
CHANNEL CODING REED SOLOMON CODES.
Data and Computer Communications Tenth Edition by William Stallings Data and Computer Communications, Tenth Edition by William Stallings, (c) Pearson Education.
Digital Codes Coding Gain For a given Bit error Rate, Coding Gain is defined as the increase required in C/N such that un-coded data yields the same BER.
Information Theory Introduction to Channel Coding Jalal Al Roumy.
1 Channel Coding in IEEE802.16e Student: Po-Sheng Wu Advisor: David W. Lin.
Cellular Communications
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Coding and Error Control
Lecture 9-10: Error Detection and Correction Anders Västberg Slides are a selection from the slides from chapter 8 from:
DIGITAL COMMUNICATION Coding
Error detection/correction FOUR WEEK PROJECT 1 ITEMS TO BE DISCUSSED 1.0 OVERVIEW OF CODING STRENGTH (3MINS) Weight/distance of binary vectors Error detection.
Forward Error Correction Steven Marx CSC45712/04/2001.
DIGITAL COMMUNICATION Coding
S Advanced Digital Communication (4 cr)
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
1 S Advanced Digital Communication (4 cr) Cyclic Codes.
Channel Coding Part 1: Block Coding
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
1 Channel Coding (II) Cyclic Codes and Convolutional Codes.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
S Transmission Methods in Telecommunication System (5cr) Error Control Coding.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
March 29, 2005Week 11 1 EE521 Analog and Digital Communications James K. Beard, Ph. D. Tuesday, March 29, 2005
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes.
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
1 Chapter 8. Coding and Error Control Wen-Shyang Hwang KUAS EE.
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 12.
S Digital Communication Systems Course Overview, Basic Characteristics of Block Codes.
Basic Characteristics of Block Codes
Coding Theory. 2 Communication System Channel encoder Source encoder Modulator Demodulator Channel Voice Image Data CRC encoder Interleaver Deinterleaver.
§6 Linear Codes § 6.1 Classification of error control system § 6.2 Channel coding conception § 6.3 The generator and parity-check matrices § 6.5 Hamming.
DIGITAL COMMUNICATIONS Linear Block Codes
6876: Communication Networks ERROR CONTROL STRATEGIES Error Control Strategies Forward Error Correction (FEC) Automatic Repeat Request (ARQ)
EE 430 \ Dr. Muqaibel Cyclic Codes1 CYCLIC CODES.
1 Channel Coding (III) Channel Decoding. ECED of 15 Topics today u Viterbi decoding –trellis diagram –surviving path –ending the decoding u Soft.
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
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)
Some Computation Problems in Coding Theory
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
Channel Capacity. Techniques to reduce errors in digital communication systems Automatic repeat request (ARC) Forward error correction (FEC) Channel.
SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Convolutional Codes.
COMM 604:Channel Coding Course Instructor: Tallal Elshabrawy Instructor Office: C3.321 Lecture Time & Loc.: Tues. 2 nd Slot H19 Instructor
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
1 Product Codes An extension of the concept of parity to a large number of words of data 0110… … … … … … …101.
II. Linear Block Codes. © Tallal Elshabrawy 2 Digital Communication Systems Source of Information User of Information Source Encoder Channel Encoder Modulator.
ECE 442 COMMUNICATION SYSTEM DESIGN LECTURE 10. LINEAR BLOCK CODES Husheng Li Dept. of EECS The University of Tennessee.
Classical Coding for Forward Error Correction Prof JA Ritcey Univ of Washington.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
Channel Coding and Error Control 1. Outline Introduction Linear Block Codes Cyclic Codes Cyclic Redundancy Check (CRC) Convolutional Codes Turbo Codes.
V. Non-Binary Codes: Introduction to Reed Solomon Codes
S Digital Communication Systems
DIGITAL COMMUNICATION Coding
Cyclic Code.
Coding and Error Control
Electrical Communications Systems ECE Spring 2019
S Advanced Digital Communication (4 cr). Timo O. Korhonen, HUT Communication Laboratory 2 S Advanced Digital Communication (4 cr) u Lectures:
Chapter 10 Error Detection and Correction
Electrical Communications Systems ECE
Presentation transcript:

1 S Digital Communication Systems Cyclic Codes

Timo O. Korhonen, HUT Communication Laboratory 2 S Digital Communication Systems u Lectures: Timo O. Korhonen, tel , Michael Hall, tel u Course assistants: Seppo Saastamoinen tel , Naser Tarhuni ), tel u Study modules: Examination /Tutorials /Project work u NOTE: Half of exam questions directly from tutorials u Project work guidelines published later in course homepage

Timo O. Korhonen, HUT Communication Laboratory 3 Practicalities u References: –A. B. Carlson: Communication Systems (4th ed.) –J. G. Proakis, Digital Communications (4th ed.) –L. Ahlin, J. Zander: Principles of Wireless Communications u Prerequisites: S Transmission Methods in Telecommunication Systems u Homepage: u Timetables: –Lectures: Tuesdays S3, Wednesdays I346 –Tutorials: Mondays S2, starting

Timo O. Korhonen, HUT Communication Laboratory 4 Targets today u Taxonomy of coding u How cyclic codes are defined? u Systematic and nonsystematic codes u Why cyclic codes are used? u How their performance is defined? u How practical encoding and decoding circuits are realized? u How to construct cyclic codes?

Timo O. Korhonen, HUT Communication Laboratory 5

6 Background u Coding is used for –error detection and/or error correction (channel coding) –ciphering (security) and compression (source coding) u In coding extra bits are added or removed in data transmission u Channel coding can be realized by two approaches –FEC (forward error coding) t block coding, often realized by cyclic coding t convolutional coding –ARQ (automatic repeat request) t stop-and-wait t go-back-N t selective repeat … etc. u Note: ARQ applies FEC for error detection

Timo O. Korhonen, HUT Communication Laboratory 7 Block and convolutional coding u Block coding: mapping of source bits of length k into (binary) channel input sequences n (>k) - realized by cyclic codes! u Binary coding produces 2 k code words of length n. Extra bits in the code words are used for error detection/correction u (1) block, and (2) convolutional codes: –(n,k) block codes: Encoder output of n bits depends only on the k input bits –(n,k,L) convolutional codes: t each source bit influences n(L+1) encoder output bits –n(L+1) is the constraint length –L is the memory depth u Essential difference of block and conv. coding is in simplicity of design of encoding and decoding circuits (n,k) encoder k bitsn bits k input bits n output bits n(L+1) output bits input bit

Timo O. Korhonen, HUT Communication Laboratory 8 Why cyclic codes? u For practical applications rather large n and k must be used. This is because in order to correct up to t errors it must be that u Hence for, large n and k must be used u Cyclic codes are –linear: sum of any two code words is a code word –cyclic: any cyclic shift of a code word produces another code word u Advantages: Encoding, decoding and syndrome computation easy by shift registers number of syndromes (or check-bit error patterns) number of error patters in encoded word (n,k) block coder k-bitsn-bits

Timo O. Korhonen, HUT Communication Laboratory 9 Example u Consider a relatively high SNR channel such that only 1 or 2 bit errors are likely to happen. Consider the ration  Take a constant code rate of R c =k/n=0.8 and consider  with some values of larger n and k : u This demonstrates that long codes are more advantages when a high code rate and high error correction capability is required (n,k) block coder k-bitsn-bits Number of error patterns Number of check-bits

Timo O. Korhonen, HUT Communication Laboratory 10 Some block codes that can be realized by cyclic codes u (n,1) Repetition codes. High coding gain, but low rate u (n,k) Hamming codes. Minimum distance always 3. Thus can detect 2 errors and correct one error. n=2 m -1, k = n - m, u Maximum-length codes. For every integer there exists a maximum length code (n,k) with n = 2 k - 1,d min = 2 k-1. Hamming codes are dual 1 of of maximal codes. u BCH-codes. For every integer there exist a code with n = 2 m -1, and where t is the error correction capability u (n,k) Reed-Solomon (RS) codes. Works with k symbols that consists of m bits that are encoded to yield code words of n symbols. For these codes and u Nowadays BCH and RS are very popular due to large d min, large number of codes, and easy generation u For further code references have a look on self-study material! 1: Task: find out from literature what is meant by dual codes!

Timo O. Korhonen, HUT Communication Laboratory 11 Defining cyclic codes: code polynomial and generator polynomial u An (n,k) linear code X is called a cyclic code when every cyclic shift of a code X, as for instance X’, is also a code, e.g. u Each (n,k) cyclic code has the associated code vector with the n-bit code polynomial u Note that the (n,k) code vector has the polynomial of degree of n-1 or less. Mapping between code vector and code polynomial is one-to-one, e.g. they specify each other uniquely u Manipulation of the associated polynomial is done in a Galois field (for instance GF(2)) having elements {0,1}, where operations are performed mod-2. Thus results are always {0,1} -> binary logic circuits applicable u For each cyclic code, there exists only one generator polynomial whose degree equals the number of check bits q=n-k in the encoded word

Timo O. Korhonen, HUT Communication Laboratory 12 Example: Generating of (7,4) cyclic code, by generator polynomial G(p)=p 3 +p+1 <- message <- encoded word <- generator

Timo O. Korhonen, HUT Communication Laboratory 13 The common factor of cyclic codes u GF(2) operations (XOR and AND): u Cyclic codes have a common factor p n +1. In order to see this we consider summing two cyclic code vectors: u Question is how to make the n-1 degree cyclic code from the multiplied code? Adding them should yield a cyclic code: u Result can be forced to be a cyclic code of at most of n-1 degree by dividing by the underlined common factor! Left rotated Left shifted by multiplication Unshifted

Timo O. Korhonen, HUT Communication Laboratory 14 Obtaining a cyclic code from another cyclic code u Unity cyclic shift is obtained by multiplication by p where after division by the common factor yields a cyclic code at the remainder and by induction, any cyclic shift is obtained by u Example: shift 101 u Important point of implementation is is that the division by p n +1 can be realized by a tapped shift register not a three-bit code (1010), divide by the common factor

Timo O. Korhonen, HUT Communication Laboratory 15 Factoring cyclic code generator polynomial u Any factor of p n +1 with the degree of q=n-k generates an (n,k) cyclic code* u Example: Consider the polynomial p This can be factored as u For instance the factors p 3 +p+1 or p 3, +p 2 +1 can be used to generate an unique cyclic code. For a message polynomial p 2 +1 the following encoded word is generated: and the respective code vector (of degree n-1 or smaller) is u Hence, in this example (n,k) block coder k-bitsn-bits

Timo O. Korhonen, HUT Communication Laboratory 16 Using shift registers for multiplication u Figure shows a shift register to realize multiplication by p 3 +p+1 u In practice, multiplication can be realized by two equivalent topologies: unit delay element alternate notation of XOR-circuit

Timo O. Korhonen, HUT Communication Laboratory 17 Multiplication by a shift register generator polynomial determines connection of taps word to be encoded Encoded word

Timo O. Korhonen, HUT Communication Laboratory 18 Determines tap connections Word to be rotated (divided by the common factor) Adding the dashed-line (feedback) enables division by p n +1 Remainder Calculating the remainder Remainder is left to the shift register

Timo O. Korhonen, HUT Communication Laboratory 19 Examples of cyclic code generator polynomials u The generator polynomial for an (n,k) cyclic code is defined by and G(p) is a factor of p n +1. Any factor of p n +1 that has the degree q (the number of check bits) may serve as the generator polynomial. We noticed earlier that a cyclic code is generated by the multiplication where M(p) is the k-bit message to be encoded u Only few of the possible generating polynomials yield high quality codes (in terms of their minimum Hamming distance) Some cyclic codes:

Timo O. Korhonen, HUT Communication Laboratory 20 Systematic cyclic codes u Define the length q=n-k check vector C and the length-k message vector M by u Thus the systematic n:th degree codeword polynomial is How to determine the check-bits?? Question: Why these denote the message bits still the message bits are M(p) ??? check bits message bits

Timo O. Korhonen, HUT Communication Laboratory 21 Determining check-bits u Note that the check-vector polynomial is the remainder left over after dividing Example: (7,4) Cyclic code: > Definition of systematic cyclic code

Timo O. Korhonen, HUT Communication Laboratory 22 Division of the generated code by the generator polynomial leaves no reminder This can be used for error detection/correction as we inspect later

Timo O. Korhonen, HUT Communication Laboratory 23 Example: Encoding of systematic cyclic codes

Timo O. Korhonen, HUT Communication Laboratory 24 Circuit for encoding systematic cyclic codes u We noticed earlier that cyclic codes can be generated by using shift registers whose feedback coefficients are determined directly by the generating polynomial u For cyclic codes the generator polynomial is of the form u In the circuit, first the message flows to the transmitter, and feedback switch is set to ‘1’, where after check-bit-switch is turned on, and the feedback switch to ‘0’, enabling the check bits to be outputted 1 0

Timo O. Korhonen, HUT Communication Laboratory 25 Decoding cyclic codes u Every valid, received code word R(p) must be a multiple of G(p), otherwise an error has occurred. (Assume that the probability for noise to convert code words to other code words is very small.) u Therefore dividing the R(p)/G(p) and considering the remainder as a syndrome can reveal if an error has happed and sometimes also to reveal in which bit (depending on code strength) u Division is accomplished by a shift registers whose tap order is reversed u The error syndrome of q=n-k bits is therefore u This can be expressed also in terms of the error E(p) and the code word X(p) while noting that the received word is in terms of error hence

Timo O. Korhonen, HUT Communication Laboratory 26 Decoding cyclic codes: example Using denotation of this example:

Timo O. Korhonen, HUT Communication Laboratory 27 Table 16.6 Decoding cyclic codes (cont.)

Timo O. Korhonen, HUT Communication Laboratory 28 Decoding circuit for (7,4) code syndrome computation u To start with, the switch is at “0” position u Then shift register is stepped until all the received code bits have entered the register u This results is a 3-bit syndrome (n - k = 3 ) that is then left to the register u Then the switch is turned to the direction “1” that drives the syndrome out of the register u Note that the tap order is reversed, why? 1 0 received codesyndrome

Timo O. Korhonen, HUT Communication Laboratory 29 Lessons learned u You can construct cyclic codes starting from a given factored p n +1 polynomial by doing simple calculations in GF(2) u You can estimate strength of designed codes u You understand how to apply shift registers with cyclic codes u You understand how syndrome decoding works with cyclic codes u You can design encoder and decoder circuits for your cyclic codes