25
Error Correction using Redundant Residue Number System NIMI T 1ST YEAR M.TECH REG NO: 16304017 DEPARTMENT OF ELECTRONICS ENGINEERING PONDICHERRY UNIVERSITY

Error correction using redundant residue number system

  • Upload
    nimi-t

  • View
    554

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Error correction using redundant residue number system

Error Correction using Redundant Residue Number System

NIMI T1ST YEAR M.TECHREG NO: 16304017DEPARTMENT OF ELECTRONICS ENGINEERING PONDICHERRY UNIVERSITY

Page 2: Error correction using redundant residue number system

Error correction using RRNS 2

Introduction• The main objective of communication system is to transmit

data with minimum error rate for decoding correctly.

• To improve reliability and the performance of communication channel , error detection and correction techniques are used.

• Errors are of two types: Random bit errors – Appears at any location of data sequence

Burst errors – Appears in consecutive bits in data sequence

Page 3: Error correction using redundant residue number system

Error correction using RRNS 3

Introduction (cntd..)• Error correction requires some additional bits called as

redundant bits and are added to transmitted data.

• The receiver uses these redundant bits to check for errors occurring during transmission.

• Residue Number System(RNS) can be used for error detection and correction by adding some extra residues to it.

• These residues constitute parity and this forms Redundant Residue Number System (RRNS).

Page 4: Error correction using redundant residue number system

Error correction using RRNS 4

What is RRNS?• Non weighed , non positional number system in which

any given integer is represented by set of residues.• Obtained by modulo dividing the integer with moduli

set.• Generally operates on integer data.• Helps to increase arithmetic operations by

decomposing large calculations to series of smaller parallel calculations.

Page 5: Error correction using redundant residue number system

Error correction using RRNS 5

Characteristics

• Arithmetic operations are carry free in RNS. Errors due to operation/ noise does not propagate

from one residue digit to another.• Offers fault tolerance• Lack of ordered significance among residue digits in

RNS arithmetic operation.• Do not require look up for correction and detection.

Helps to save memory requirements

Page 6: Error correction using redundant residue number system

Error correction using RRNS 6

Characteristics (cntd..)

• Fast architectural design• Computationally feasible for error correction• An integer is represented by a set of remainders that

are obtained after the modulo division by a set of relatively prime moduli.

• RRNS decoding can be performed by Chinese Remainder Theorem(CRT) or Mixed Radix Conversion (MRC)

Page 7: Error correction using redundant residue number system

Error correction using RRNS 7

RNS AND RRNS- Basic Mathematical Model

A. Residue Number System(RNS)Consider an arbitrary integer X and a set of v relatively prime integers (m1, m2, ..., mv) called moduli with M as the product of all moduli.

Then integer X<M can be represented as a unique set of v remainders s (r1, r2, ..., rv) where ri = X (mod mi)

Page 8: Error correction using redundant residue number system

Error correction using RRNS 8

Mathematical model (Cntd…)

• The dynamic range R for negative numbers is

• In RNS the arithmetic operations performed are mutually independent between residue digitsLet X1 and X2 be two integers.

X1 • X2 (r1i • r2i) mod mi,⇐⇒ i = 1, 2, ..., v• denotes arithmetic addition, subtraction or multiplication r1i and r2i are residues of X1 and X2 w.r.t moduli mi.

Page 9: Error correction using redundant residue number system

Error correction using RRNS 9

Mathematical model (Cntd…)B. Redundant Residue Number System(RRNS)

• By adding (u − v) redundant moduli (mv+1, mv+2, ..., mu) to the v information moduli (m1, m2, ..., mv), a RRNS(u, v) code can be generated. This process is called RRNS encoding.

• Thus an integer X is represented in the RRNS form as X → [r1, r2, ..., rv, rv+1, ..., ru]

where (m1, m2, ..., mv) are called information moduli and (mv+1, mv+2, ..., mu) are called redundant moduli. (r1, r2, ..., rv) are called information residues and (rv+1, rv+2, ..., ru) are called redundant residues.

Page 10: Error correction using redundant residue number system

Error correction using RRNS 10

Mathematical model (Cntd…)

• For RRNS, even if we discard some of the redundant residues, an integer can be recovered if the retained residue digits are correct.

• When w number of redundant residues are discarded from a RRNS(u, v) code, it becomes a RRNS(u − w, v) code.

Theorem 1: A RRNS(u − w, v) code has a detection capability of (u − v − w) errors and an error correction capability of (u − v − w)/2

Page 11: Error correction using redundant residue number system

Error correction using RRNS 11

Mathematical model (Cntd…)

TABLE: RRNS codeword for integers X with moduli set (7,9,11,13,15,16)

• The code rate of a redundant residue number system can be defined as

where Kb= [log2Mr]; Kbj= [log2mj]mj= moduli ; j=1,2,… u

Page 12: Error correction using redundant residue number system

Error correction using RRNS 12

Mathematical model (Cntd…)Theorem 2:

The maximum possible minimum hamming distance d of an RRNS(u, v)-code is defined as d = u−v + 1, provided (m1 < m2 < mv < mv+1 <...< mu).

Theorem 3: For a redundant residue number system, the error detecting capability, c = d − 1 and the error correcting capability, t = [(d−1)/2]where [a]is the largest integer smaller than a.

Page 13: Error correction using redundant residue number system

Error correction using RRNS 13

Decoding of RRNS• The implementation of CRT is not possible because it involves a

modular operation with large integer M. Hence alternate technique called Mixed Radix Conversion (MRC) is used.

Consider a set of moduli (m1, m2, ..., mk) and let the residue sequence for X be (u1, u2, ..., uk). Then the integer X can be recovered using mixed radix conversion as:

• Compute constants cij where 1 ≤ i, j ≤ k as cij mi =1(mod mj ) • Compute v1 = u1 (mod m1)

v2 = (u2 − v1) c12 (mod m2) v3 = ((u3 − v1) c13 − v2) c23 (mod m3)

… vk=(..((uk−v1)c1k−v2)c2k−...−vk−1)ck−1,k(mod mk)

is the mixed radix representation of X. Then X can be recovered as X = v1 + v2m1 + v3m1m2 + .... + vnm1m2...mn−1

Page 14: Error correction using redundant residue number system

Error correction using RRNS 14

Single Error Detection and Correction

• PRINCIPLE OF SINGLE ERROR CORRECTION AND DETECTION

Theorem 4: The redundant residue number system can correct any single residue error if it satisfies the following two conditions: 1) R > mvmv−1

2) min 1≤j≤r (R/mv+i) ≥ mv

where R = mv+1mv+2...mv+r and r ≥ 2.

Error detection and correction are carried out using Base Extension (BEX) method and consistency checking.

This procedure is called as consistency checking which forms the basis of error correction algorithm described.

Page 15: Error correction using redundant residue number system

Error correction using RRNS 15

Single Error Detection and Correction (cntd..)

Theorem 5If any one of the residue is in error, then one of the following cases can occur

Case 1: If all the elements in the set (|Δ|mv+r ,...,|Δ|mv+1 ) are zero, then all the residues are correct.

Case 2: If only one of the element in this set (|Δ|mv+r , ..., |Δ|mv+1 ) is non-zero, then |X|’ mz is wrong and this can be corrected by replacing with |X|’’ mz .

Case 3: If more than one element in this set (|Δ|mv+r , ..., |Δ|mv+1 ) is non-zero, then any one of the information residue is in error and all the redundant residues are correct.

This theorem helps in the detection of a single residue error and helps to identify whether the detected error is in information residue or in redundant residue.

Page 16: Error correction using redundant residue number system

Error correction using RRNS 16

Single Error Detection and Correction (cntd..)

Theorem 6If one of the residues in the set (|X| m1 , |X| m2 , ..., |X| mv−2j ) is in error, then one of the following cases can occur.

Case 1: If the residue |X| mz , 1 ≤ z ≤ v − 2j − 2, is in error, then | Δ |mv−2j and

| Δ |mv−2j−1 are non-zero. Case 2: If |X| mv−2j−1 is in error, then |Δ|mv−2j−1 is nonzero and | Δ|mv−2j is zero.

Error can be corrected by replacing it with |X| mv−2j−1 . Case 3: If |X| mv−2j is in error, then |Δ|mv−2j is non-zero and |Δ|mv−2j−1 is zero.

Error can be corrected by replacing it with |X| mv−2j .

This theorem helps in finding the location of a single residue error.

Page 17: Error correction using redundant residue number system

Error correction using RRNS 17

Algorithm for single error correction

AlgorithmStep 1: Compute the sets (|Δ|mv+r , ..., |Δ|mv+1 ),(|Δ|mv , |Δ|mv−1 ) ,..., (|Δ|

mv−2j , |Δ|mv−2j−1 ) ,..., (|Δ|m2 , |Δ|m1 ). Step 2: If all the elements in the set (| Δ |mv+r , ..., | Δ |mv+1 ) are zero, then

all the residues are correct. If only one of the element in this set is non-zero, then go to step 4. If more than one element in this set is non-zero then go to step 3 by setting j=0.

Step 3: Check (|Δ|mv−2j , |Δ|mv−2j−1 ). If only one element in this set is non-zero,go to step 4. If both of the elements are non-zero and if this is not last set, increment j by 1 and repeat this step. If both the elements are non-zero and this is the last set then there are multiple errors.

Step 4: if |Δ|mz is non-zero, then |X| ‘mz is wrong and this can be corrected by replacing with |X|’’ mz

Page 18: Error correction using redundant residue number system

Error correction using RRNS 18

System model

Figure: Block diagram of RRNS coding

Page 19: Error correction using redundant residue number system

Error correction using RRNS 19

System model (cntd..)• Binary input is given to RRNS Encoder where k bits are

grouped together and converted to an integer, where k = [log2Mr].

• Then integer is mapped to residue sequence (r1,r2,…rv,rv+1,… ru) by modulo dividing integer with set of moduli (m1,m2,..mv,mv+1, …mu)

• The generated residue digits are modulated by M-ary modulation scheme where M≥ [max(m1,m2…mu)-1]

• Demodulation done by M-ary demodulator.• Decoder applies single error correction.• Corrected sequence is converted back to integer by MRC or CRT.• Then BER is calculated from output sequence.

Page 20: Error correction using redundant residue number system

Error correction using RRNS 20

Performance analysis of uncoded and coded RRNS systems

Figure: Performance analysis of RRNS code and uncoded message

Page 21: Error correction using redundant residue number system

Error correction using RRNS 21

Performance analysis of RRNS codes and Error correction algorithm

figure: Performance analysis of RRNS code and error correction algorithm

Page 22: Error correction using redundant residue number system

Error correction using RRNS 22

Performance analysis of RRNS and codes with different modulation techniques

•RRNS (5,3) Code uses 3,5 and 11 as information moduli and 13 and 16 as redundant moduli

•Error correction algorithm with 16- QAM modulation has highest performance

Figure: Performance analysis of algorithm with different modulation schemes

Page 23: Error correction using redundant residue number system

Error correction using RRNS 23

Comparison of RRNS and Hamming codes

•ERRORFREE PROPAGATION OF RRNS: errors do not propagate from one residue to other, remains confined to original residues.

•Modulation scheme : BPSK

•The moduli set used for both is (3,5,11,13,16) where 3,5,11 are information moduli and 13,16 are redundant moduli.

•RRNS Codes outperforms conventional hamming code especially at low SNR.

Figure : Comparison of algorithm with hamming code

Page 24: Error correction using redundant residue number system

Error correction using RRNS 24

Conclusion Error detection and correction techniques are used to transmit

data with minimum error rate.

In RNS, arithmetic operations can be speeded up by using its parallel processing properties.

RRNS codes have low BER than uncoded system.

RRNS codes with single error correction algorithm outperforms hamming code.

Normally, error correction algorithm is suitable for burst error corrections. So there is tremendous scope in extension of this algorithm.

Page 25: Error correction using redundant residue number system

Error correction using RRNS 25

Reference M. Roshanzadeh, S. Saqaeeyan, Error Detection and Correction in Wireless

Sensor Networks By Using Residue Number Systems, I. J. Computer Network and Information Security, 2012, 2, 29-35.

S.-S. Yau, Y.-C. Liu, Error correction in redundant residue number systems , IEEE Trans. Comput. C-22 (1) (1973) 511. http://dx.doi.org/10.1109/T-C.1973.223594.

Pallab Maji, G. S. Rath, Bit Efficient Finite Impulse Response Filter based on Residue Arithmetic, ICSSA-11, Gujarat, India, 2011.

L.L. Yang, L. Hanzo, Redundant residue number system based error correction codes , IEEE VTS 54th Vehicular Technology Conference, 2001, VTC 2001 Fall, Vol. 3, 2001, pp. 14721476. http://dx.doi.org/10.1109/VTC.2001.956442.

L.L. Yang, L. Hanzo, Coding theory and performance of redundant residue number system codes , http://wwwmobile.ecs.soton.ac.uk.