Download as pdf or txt
Download as pdf or txt
You are on page 1of 106

Digital Electronics

Chapter 2: Number systems and codes


Number systems

Why do people
think of
quadratic
codes?

Why do people think of decimal codes?

Why do people think binary code?


Number systems(1)
◼ Positional Notation
N = (an-1an-2 ... a1a0 . a-1a-2 ... a-m)r (1.1)
where . = Radix point
r = Radix or base
n = number of integer digits to the left of the radix point
m = number of fractional digits to the right of the radix point
an-1 = most significant digit (MSD)
a-m = least significant digit (LSD)

◼ Polynomial Notation (Series Representation)


N = an-1 x rn-1 + an-2 x rn-2 + ... + a0 x r0 + a-1 x r-1 ... + a-m x r-m
n −1
=  ai r i (1.2)
i = −m

◼ N = (251.41)10 = 2 x 102 + 5 x 101 + 1 x 100 + 4 x 10-1 + 1 x 10-2


Number Systems (2)
◼ Binary numbers
 Digits = {0, 1}
 (11010.11)2 = 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20
+ 1 x 2-1 + 1 x 2-2
= (26.75)10

1 K (kilo) = 210 = 1,024,


 1M (mega) = 220 = 1,048,576,
 1G (giga) = 230 = 1,073,741,824
Number Systems (3)
◼ Octal numbers
 Digits = {0, 1, 2, 3, 4, 5, 6, 7}
 (127.4)8 = 1 x 82 + 2 x 81 + 7 x 80 + 4 x 8-1 = (87.5)10

◼ Hexadecimal numbers
 Digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
 (B65F)16 = 11 x 163 + 6 x 162 + 5 x 161 + 15 x 160 =
(46,687)10

5 Chapter 1
Number Systems (3)
Base Conversion (1)
◼ Series Substitution Method
 Expanded form of polynomial representation:
N = an-1rn-1 + … + a0r0 + a-1r-1 + … + a-mr-m (1.3)
 Conversation Procedure (base A to base B)
◼ Represent the number in base A in the format of Eq. 1.3.

◼ Evaluate the series using base B arithmetic.

 Examples:
◼ (11010)2 →( ? )10

N = 1´24 + 1´23 + 0´22 + 1´21 + 0´20


= (16)10 + (8)10 + 0 + (2)10 + 0
= (26)10
◼ (627)8 → ( ? )10

N = 6´82 + 2´81 + 7´80


= (384)10 + (16)10 + (7)10
= (407)10
Base Conversion (2)
◼ Radix Divide Method
 Used to convert the integer in base A to the equivalent base B
integer.
 Underlying theory:
◼ (NI)A = bn-1Bn-1 + … + b0B0 (1.4)
Here, bi’s represents the digits of (NI)B in base A.
◼ NI / B = (bn-1Bn-1 + … + b1B1 + b0B0 ) / B

= (Quotient Q1: bn-1Bn-2 + … + b1B0 ) + (Remainder R0:


b0)
◼ In general, (bi)A is the remainder Ri when Qi is divided by (B)A.

 Conversion Procedure
1. Divide (NI)B by (B)A, producing Q1 and R0. R0 is the least
significant digit, d0, of the result.
2. Compute di, for i = 1 … n - 1, by dividing Qi by (B)A, producing
Qi+1 and Ri, which represents di.
3. Stop when Qi+1 = 0.
Number Systems (4)
◼ Base Conversion

Convert decimal to binary Convert binary to decimal


Base Conversion (4)
 Examples
◼ (315)10 = (473)8
8 315 3 LSD
8 39 7
8 4 4 MSD
0

◼ (315)10 = (13B)16
16 315 B LSD
16 19 3
16 1 1 MSD
0
Base Conversion (5)
◼ Radix Multiply Method
 Used to convert fractions.
 Underlying theory:
◼ (NF)A = b-1B-1 + b-2B-2 + … + b-mB-m (1.5)
Here, (NF)A is a fraction in base A and bi’s are the digits of (NF)B in
base A.
◼ B ´ NF = B ´ (b-1B-1 + b-2B-2 + … + b-mB-m )

= (Integer I-1: b-1) + (Fraction F-2: b-2B-1 + … + b-mB-(m-1))


◼ In general, (bi)A is the integer part I-i, of the product of F-(i+1) ´ (BA).

 Conversion Procedure
1. Let F-1 = (NF)A.
2. Compute digits (b-i)A, for i = 1 … m, by multiplying Fi by (B)A,
producing integer I-i, which represents (b-i)A, and fraction F-(i+1).
3. Convert each digits (b-i)A to base B.
Base Conversion (5)
 Examples
◼ (0.479)10 = (0.3651…)8

MSD 3.832  0.479 ´ 8


6.656  0.832 ´ 8
5.248  0.656 ´ 8
LSD 1.984  0.248 ´ 8

◼ (0.479)10 = (0.0111…)2
MSD 0.9580  0.479 ´ 2
1.9160  0.9580 ´ 2
1.8320  0.9160 ´ 2
LSD 1.6640  0.8320 ´ 2

Base Conversion (6)
◼ When B = Ak
◼ Algorithm 1.3
(a) To convert a number N from base A to base B when B = Ak and k is a
positive integer, group the digits of N in groups of k digits in both directions
from the radix point and then replace each group with the equivalent digit in
base B
(b) To convert a number N from base B to base A when B = Ak and k is a
positive integer, replace each base B digit in N with the equivalent k digits in
base A.

◼ Examples
 (001 010 111. 100)2 = (127.4)8 (group bits by 3)
 (1011 0110 0101 1111)2 = (B65F)16 (group bits by 4)

13 Chapter 1
Base Conversion (6)
◼ Question: How to convert octal
and hexadecimal to binary and
vice versa?
Problems
Problems
Arithmetic (1)
◼ Binary Arithmetic
 Addition

111011 Carries
101011 Augend
+ 11001 Addend
1000100

 Subtraction

0 1 10 0 10 Borrows
1 0 0 1 0 1 Minuend
- 1 1 0 1 1 Subtrahend
1 0 1 0
Arithmetic (2)
◼ Performs the following binary
operations::

11 0 1 1
+ 1 0 1 0
Result?

1 0 0 0 1 0 0
- 1 0 1 0 1 1
Result?

1 0 0 1 0 0
- 1 1 0 1 1
Result?
Arithmetic (3)
 Multiplication

1 1 0 1 0 Multiplicand
x 1 0 1 0 Multiplier
0 0 0 0 0 Partial products
1 1 0 1 0
0 0 0 0 0
1 1 0 1 0
1 0 0 0 0 0 1 0 0 Product

19
Arithmetic (4)
 Division

Dividend Divider

Quotient

Remainder
Arithmetic (5)

Application of shift register in


multiplication and division by 2
Problems
Signed Number Representation
◼ Signed Magnitude Method
 N = ± (an-1 ... a0.a-1 ... a-m)r is represented as
N = (san-1 ... a0.a-1 ... a-m)rsm,
where s = 0 if N is positive and s = r -1 otherwise.
 N = -(15)10
 In binary: N = -(15)10 = -(1111)2 = (1, 1111)2sm
 In decimal: N = -(15)10 = (9, 15)10sm
Complementary Number Systems (1)
◼ Complementary Number Systems
 Radix complements (r's complements)
[N]r = rn - (N)r
where n is the number of digits in (N)r.

 Diminished radix complements (r-1’s complements)


[N]r-1 = rn - (N)r - 1
Radix Complement Number Systems (2)
◼ Two's complement of (N)2 = (101001)2
[N]2 = 26 - (101001)2 = (1000000)2 - (101001)2 = (010111)2

◼ (N)2 + [N]2 = (101001)2 + (010111)2 = (1000000)2


If we discard the carry, (N)2 + [N]2 = 0.
Hence, [N]2 can be used to represent -(N)2.

◼ [ [N]2 ]2 = [(010111)2]2 = (1000000)2 - (010111)2 = (101001)2 = (N)2.

◼ Two's complement of (N)2 = (1010)2 for n = 6


[N]2 = (1000000)2 - (1010)2 = (110110)2.

◼ Ten's complement of (N)10 = (72092)10


[N]10 = (100000)10 - (72092)10 = (27908)10.
Radix Complement Number Systems (3)
◼ Algorithm Find [N]r given (N)r .
 First replace each digit, ak , of (N)r by (r - 1) - ak and then add 1 to the
resultant.
◼ For binary numbers (r = 2), complement each digit and add 1 to the result.

◼ Example: Find 2’s complement of N = (01100101)2 .


N = 01100101
10011010 Complement the bits
+1 Add 1
[N]2 = (10011011)10
◼ Example: Find 10’s complement of N = (40960)10
N = 40960
59039 Complement the bits
+1 Add 1
[N]2 = (59040)10
Radix Complement Number Systems (4)
◼ Two's complement number system:
 Positive number :
◼ N = +(an-2, ..., a0)2 = (0, an-2, ..., a0)2cns,
n −1
where 0  N  2 − 1.
 Negative number:
◼ N = (an-1, an-2, ..., a0)2

◼ -N = [an-1, an-2, ..., a0]2 (two's complement of N),

where − 1  N  −2 n −1 .

 Example: Two's complement number system representation of ± (N)2


when (N)2 = (1011001)2 for n = 8:
◼ +(N)2 = (0, 1011001)2cns

◼ -(N)2 = [+(N)2]2 = [0, 1011001]2 = (1, 0100111)2cns

27
Radix Complement Number Systems (5)
◼ Example: Two's complement number system representation
of -(18)10 , n = 8:
 +(18)10 = (0, 0010010)2cns
 -(18)10 = [0, 0010010]2 = (1, 1101110)2cns

◼ Example: Decimal representation of N = (1, 1101000)2cns


 N = (1, 1101000)2cns = -[1, 1101000]2 = -(0, 0011000)2cns
= -(24)2
Problems
Problems
Fixed point number

± 0 1 1 0 0 1 0 0 1

Sign Radix Fractional bits


Integer bits
point

Fixed point number: There is a fixed position separating the integer


and fractional parts.
Problem: can't decide how many bits for integer and fraction are
appropriated
Floating point number

± 0 1 1 1 0 0 1 1 1

Sign E m
bit (Mantissa)
(Exponent)
Floating Point Numbers (1)
◼ N = M ´ rE, where
 M (mantissa or significand) is a significant digits of N
 E (exponent or characteristic) is an integer exponent.

◼ In general, N = ± (an-1 ... a0 .a-1 ... a-m)r is represented by


 N = ± (.an-1 ... a-m)r ´ rn

◼ M is usually represented in sign magnitude:


 M = (SM.an-1 ... a-m)rsm , where ( −1) M  (. a n −1 ... a − m ) r
S

 (.an-1 ... a-m)r represents the magnitude


 SM = (0: positive, 1: negative)
Floating Point Numbers (1)
Some common floating point number format
Floating Point Numbers (1)
Some common floating point number format
Floating Point Numbers (1)
Floating point number
IEEE 32bit

Số dấu chấm động có dạng:


SEM
B1: Chuyển đổi số trên ra hệ hai
-2345,125 = -1001 0010 1001.001

B2: Chuẩn hoá theo IEEE 32bit


-1001 0010 1001.001
=> -1.001 0010 1001 001 x 2^11

B3: Xác định các thông số biểu diễn S,E,M


S: phần định trị là số âm, nên S là 1
E : phần mũ được xác định là 8 bit E = 11+127=138=10001010
M: phần định trị được xác định là 001 0010 1001 0010 0000 0000 (23 bit)

Dãy số là:
SE M
1 10001010 00100101001001000000000
Floating Point Numbers (1)
Biểu diễn số 23 trong hệ 10 theo chuẩn Chuẩn IEEE-754 32 bit

(23)10 = (10111)2 = 1.0111e + 0100.


• Sau dấu phẩy= 0111000 00000000 00000000.
• Số mũ = 00000100.
• Tính phần bù số mũ = 00000100 + 01111111 = 10000011.
• Bit dấu là dương vì vậy nó sẽ là = 0.
• (+23)10 = 01000001 10111000 00000000 00000000.
• (–23)10= 11000001 10111000 00000000 00000000
Biểu diễn số -124 trong hệ 10 theo chuẩn Chuẩn IEEE-754 64 bit

• Chuyển số (124)10 sang hệ nhị phân (124)10 = (10001110)2.


• (10001110)2 = 1.000 1110 × 27 = 1.0001110e + 0111.
• Số mũ = 00000000111.
• Phần bù của số mũ = 00000000111 + 01111111111 = 00010000110.
• Sau dấu phẩy = 0001110 00000000 00000000.
• Dấu của số số = 1.
• Vì vậy, (-124)10 = 11000011 00001110 00000000 00000000.
Xác định số thập phân tương đương cho các số dấu phẩy động sau:
00111111 01000000 00000000 00000000 (chuẩn IEEE-754 32 bit);

00111111 01000000 00000000 00000000 (chuẩn IEEE-754 32 bit);


Bit đầu tiên của số là 0 => số dương
Phần bù của số mũ là: 0111111 0
Tách phần số mũ = 0111111 0 – 01111111 = 11111111 (số âm)
Vì 0111111 0 < 01111111
Chuyển phần số mũ sang số dương: 00000001 => phần mũ của số là – 00000001
Phần sau dấu phẩy: 1000000 00000000 00000000 => 1.1000000 00000000 00000000
Vì số mũ của số là -00000001=-1 => Phần sau dấu phẩy là:
1.1000000 00000000 00000000 => 0.11000000 00000000 00000000
Số cần tìm là: (0.11)2=(0.75)10
Xác định số thập phân tương đương cho các số dấu phẩy động sau:
11000000 00101001 01100 … 45 số 0 (theo chuẩn IEEE-754 64 bit).

11000000 00101001 01100 … 45 số 0 (theo chuẩn IEEE-754 64 bit).


Bit đầu tiên của số là 1 => số âm
Phần bù của số mũ là: 1000000 0010
Tách phần số mũ = 1000000 0010 – 01111111111 = 00000000011 = (3)10
Phần sau dấu phẩy: 1001 01100 … 45 số 0 => 1.100101 01100 … 45 số 0
Vì số mũ của số là 3 => Phần sau dấu phẩy là:
1.100101 01100 … => 1100.101 01100
Số cần tìm là: (- 1100.101 011)2=(-12.625)10
Problems:
Represent the following in the IEEE-754 floating-point
standard using the single-precision format:
1. (−118.625)10
2. (118.015)10
3. (−412.623)10
4. (512.128)10

Convert following floating-point standard single-precision


binary to decimal number
1. 11110000 11001100 10101010 00001111
2. 01110011 11101100 10101010 00000000
3. 10110000 11001100 11111110 00001100
4. 01111110 11001100 10101011 00000000
Coding
Assume that you want to communicate with
your friend with a flashlight in a night, what
will you do?

Drawing the word?


What is the problem?
Coding
Solution #1
•A: 1 blink
•B: 2 blinks
•C: 3 blinks
:
•Z: 26 blinks

What’s the problem?


•How are you? = 131 blinks
Coding
Solution #2 - Morse code

Hello
Lookup

•It is easy to translate into Morse


code than reverse. Why?
Tra mã hóa (Lookup)

Tại sao lại phải dùng . và -?

Số của mã = 2số chấm và số gạch


Tra mã hóa (Lookup)

Useful for
checking the
correctness/
redundency
Mã hóa (Lookup) – Braille

Louis Braille Braille code


Tra mã hóa (Lookup)

Braille
Tra mã hóa (Lookup)

Morse Braille

Both of these
encodings are binary
Binary representations
•Electronic Implementation
–Easy to store with bistable elements
–Reliably transmitted on noisy and inaccurate wires

0 1 0
3.3V
2.8V

0.5V
0.0V
Why encryption?

Today's digital computers only understand the


numbers 0 and 1, so any information in the
form of digits, letters, characters ... must be
converted to binary form
Coding areas

Coding areas include:


- Decimal encoding
- Character encoding
- Script encoding
- Voice coding
- Image encoding
- …
BCD – Binary coded

Bitcoin Code Diamond

4 bits are
required to
encode decimal
numbers
BCD – Binary coded decimal
Category:
• Weighted BCD code
• Non-weighted BCD code
(excess-3, gray, ASCII)
BCD – Binary coded decimal
• A weighted BCD code is one that allows analysis into
polynomials according to its weight.
• Weighted BCD codes are divided into two types of codes:
- Natural BCD Code: A code in which the weights are
usually arranged in ascending order
Example: BCD 8421, BCD 5421

- Arithmetic BCD code; A code that is symmetric through a


middle path
Example : BCD 2421, BCD 5121, BCD8 4-2-1
BCD – Binary coded decimal
◼ BCD is used to represent information such as strings of letters or
numbers
◼ Each position has a weight
◼ BCD Codes:
0: 0000 1: 0001 2: 0010 3: 0011 4: 0100
5: 0101 6: 0110 7: 0111 8: 1000 9: 1001
 Example: (9750)10 = (1001 0111 0101 0000)BCD
BCD – Binary coded decimal
BCD – Binary coded decimal
Arithmetic BCD code
Đối xứng nhau
BCD – Binary coded decimal
BCD – Binary coded decimal
BCD – Binary coded decimal
BCD 8421 code recognition circuit:

y = 1 Not BCD
y = 0 BCD

There will be no number


where a3 and a1 or a3 and
a2 are equal to 1
BCD – Binary coded decimal

Mạch nhận dang mã BCD 8421:


y = Not BCD
y = 0 BCD

There will be no number where a3 and a1


or a3 and a2 are equal to 1
Gray code

Gray-coded disk
Các phép tính trên số BCD
Do số BDC chỉ có giá trị từ 0->9 nên đối với những số thập phân lớn hơn sẽ
chia số thập phân thành các phần, mỗi phần được biểu diễn bởi 1 số BCD
tương ứng:
Các phép tính trên số BCD
Phép trừ tính trên số BCD theo quy tắc sau:

A – B = A + B’ trong đó B’ là phần bù của B


BCD advantages and disadvantages
ASCII
◼ ASCII (American Standard Code for Information Interchange)
 Character sets
Standard ASCII(0 – 127)
Extended ASCII (0 – 255)
◼ – ANSI (0 – 255)
◼ – Unicode (0 – 65,535)

Character BCD Decimal


D 1000100 44
i 1101001 69
g 1100111 67
i 1101001 69
t 1110100 74
a 1100001 61
l 1101100 6C
ASCII
Assignment
Bài tập 1:
Chuyển đổi các số thập phân sau sang hệ nhị phân, bat phân và thập lục phân:
9210, 14410, 40910, 25410, 25610, 6452210

Bài tập 2:
Chuyển đổi các số sau sang số bù nhị phân 8 bit: -110, -510, -1710, -6410, -12810,
2510.

Bài tập 3:
Thực hiện phép tính số học sau bằng phương pháp trừ nhị phân và sử dụng
số bù 2: 6110 - 1710 = ?

Bài tập 4:
Biểu diễn các số thập phân sau bằng mã nhị phân vầ mã BCD(2421): 1610 và
199910
Error Detection and
Correction code
Error detection/correction code: Information is encoded in such a
way that a particular class of errors can be detected and/or corrected.

7
2
Contents
• Concept
• Hamming code
• CRC check
Concepts
◼ An error: An incorrect value in one or more bits.
◼ Single error: An incorrect value in only one bit.
◼ Multiple error: One or more bits are incorrect.
◼ Errors are introduced by hardware failures, external interference (noise), or
other unwanted events.
Concepts
• Error detection rule: If only transmitting the correct
data to be transmitted, the error cannot be detected
Need to send more information with the data
 Information attached to help detect errors

• Method: Mã khối – Block coding


Split the data into k-bit blocks and convert to n-bit
blocks, where n = k +r

=> Error detection and correction is done at the Data link


layer
Concepts
• Example: Vertical Redundancy Check (VRC) technique
Add a bit to the end of the data block, according to the rule: "Total
number of 1's is even“
The extra bit is called Parity Check.

Example: check even


0110011 → 01100110 // bit thêm vào là 0 để tổng số bit 1 là chẵn

0110001 → 01100011 // bit thêm vào là 1 để tổng số bit 1 là chẵn

Comment: Only odd number of errors detected


76
Concepts
• Model

77
Model
Example:

Data word

0110011 Lỗi

Thêm bit check


Add kiểm tra
bit Check number of 1s

01100110 00100110
Code word

78
Method – Error detection
• To detect errors:
- The receiver has a list of correct code
words
- If the received code word is not in the
list -> there is an error
=> Comment: only detect errors according to the
preset design

79
Example:
Word code table for error detection
• Code word (code word) has an even number of 1’s
• Codewords do not overlap, differ by 2 bits

80
Hamming distance

• Khoảng cách Hamming giữa 2 từ cùng độ dài : là số bit


(ở cùng vị trí ) khác nhau
• Khoảng cách Hamming tối thiểu : là khoảng cách nhỏ
nhất giữa 2 cặp bất kỳ có trong một tập từ.
Ví du: d(000, 011) là 2 Vì

81
Khoảng cách Hamming
dmin trong bảng sau là 2

82
Khoảng cách Hamming

• Định lý 1 : Để đảm bảo phát hiện lỗi của s bit


thì khoảng cách Hamming cực tiểu trong các
cặp từ mã phải là dmin = s+1

• Định lý 2: để sửa t lỗi , khoảng cách Hamming


cực tiểu trong các từ mã phải là
dmin = 2t +1

83
Mã Hamming

• Dùng để sửa lỗi


• Mã Hamming xem xét trong bài này có
dmin = 3
=> Theo định lý 2: dùng để sửa 1 lỗi

84
Cấu trúc của bộ mã hóa và bộ giải mã Hamming C(7,4)

85
Mã Hamming
Cho bảng mã Hamming C(7,4)

86
Mã Hamming
Ký hiệu :
Data word : a3 a2 a1 a0 1010
Code word : a3 a2 a1 a0 r2 r1 r0 1010001

Xác định code word <=> tính r2 r1 r0


r0=a2+a1+a0 module 2
r1=a3+a2+a1 module 2
r2=a0+a1+a3 module 2

87
Giải Mã Hamming
Chuỗi bit nhận được cần kiểm tra : b3b2b1b0q2q1q0
(1)Tính syndrome: s2s1s0
(2)nếu s2s1s0 = 000 thì không có lỗi
ngược lại: =>có lỗi

s0=b2+b1+b0+q0 module 2 = 1 % 2 =1
s1=b3+b2+b1+q1 module 2 = 1 %2 =1
s2=b0+b1+b3+q2 module 2 =(0+0+1+0)%2 =1

88
Sửa Lỗi Mã Hamming
Cách sửa lỗi :
(1)tìm bit bị lỗi dựa vào bảng dò lỗi sau
(2)đảo ngược bit lỗi

Logical decision made by the correction logic analyzer

89
Mã Hamming
•VD1 : Bên nhận nhận được code word 0100011 Xác định dataword?
Giải :
0100011: b0 = 0/ b1 = 0/ b2 =1/ b3 =0/ q0=1/ q1=1/q2=0

s0=b2+b1+b0+q0
s0=1+0+0+1 = 10 module 2 = 0

s1=b3+b2+b1+q1
s1= 0+1+0+1 = 10 module 2 = 0

s2=b0+b1+b3+q2
s2=0+0+0+0 = 0 module 2 = (0+0+0+0)%2=0

Tính syndrome s2s1s0= 000


Kết luận : Code word nhận được không lỗi
Data word là 4 bit cực trái: 0100
90
Mã Hamming
•VD2 : Bên nhận nhận được code word
0101011 Xác định data word ?

Giải :
Tính syndrome s2s1s0 = 101
(ghi chi tiết cách tính s2, s1, s0 … )

Kết luận : code word nhận được bị lỗi


Dựa theo bảng : bit lỗi là b0 Sửa bit b0
=> Data word là 4 bit cực trái : 0100
Mã Hamming
Bài tập:
Xác định lỗi nếu có và sửa lỗi dựa trên tín hiệu
nhận được sử dụng mã Hamming

Codeword: 0101010, 1111011, 0111011


Mã phát hiện lỗi
Cyclic Redundancy Check (CRC)

• CRC là một phương pháp để phát hiện lỗi


bằng cách gắn thêm một khối bit phía sau
khối dữ liệu
• Các bit bổ sung thêm vào gọi là các bit CRC

• Có một số phương pháp cài đặt : modulo 2,


đa thức, …

93
Mô hình mã và giải mã CRC

94
Mô hình mã và giải mã CRC
• Bên gửi :
– Đầu vào : Dataword 4 bit
– Dùng bộ mã để tính r2r1r0
=> thu được Codeword 7 bit
• Bên nhận :
– Nhận Codeword 7 bit

– Dùng bộ giải mã để tính Syndrome


• Nếu Syndrome ≠ 0 => một hoặc nhiều bit bị lỗi
• Nếu Syndrome = 0 : 2 trường hợp
– Không có lỗi => Thu được Dataword
– Một số bit bị lỗi , nhưng bộ giải mã không phát hiện được

95
Mô hình mã và giải mã CRC
• Bên gửi : thực hiện mã Dataword k bits (k= 4) => kết
quả thu được Codeword n bits (n= 7) => truyền Codeword
đi.

Quy trình mã hóa với Dataword k =4bit, Codeword n =7:


(1)Thêm vào bên phải Dataword số bit 0 là n-k (3 bit)
(2)Một số chia xác định trước d3d2d1d0, có số bit n-k+1
Ví dụ : 1011
(3) Thực hiện phép chia modulo 2 giữa Dataword n bit với số
chia d3d2d1d0
(4) Phần dư của phép chia modulo 2 là số bit CRC
(5) Gắn số bit CRC vào bên phải Dataword: thu được Codewod

96
Bên gửi

97
Mô hình mã và giải mã CRC
• Bên nhận : Đưa Codeword vào bộ giải mã để tính
syndrome => Dựa trên giá trị của syndrome để phát
hiện có lỗi hay không

(1)Thực hiện phép chia modulo 2 giữa Codeword


nhận được với số chia d3d2d1d0 (vd : 1011)
=> thu được : Phần dư của phép chia modulo 2 là số
syndrome
(2)Xem xét giá trị của syndrome để phát hiện có lỗi
không : 2 trường hợp

98
Trường hợp 1 : Codeword nhận được là
codeword đúng
Bên nhận

99
Trường hợp 2 : Codeword nhận được là
codeword sai
Bên nhận

100
Tính mã CRC
◼ 1001
• 1011 ) 1 0 1 0 0 0 0
◼ 1011
◼ 0010
◼ 0000
◼ 0100
◼ 0000
◼ 1000
◼ 1011
◼ 0 1 1 (số dư )=> mã CRC cần tính
10
1
Test 1
• 1011 ) 1 0 1 0 0 1 1
1011
0010
0000
0101
0000
1011
1011
0 0 0 => codeword không lỗi

10
2
Test 2
• 1011 ) 1 0 1 1 0 1 1
1011
0000
0000
0001
0000
0011
0000
0 1 1 => codeword lỗi

10
3
CRC
• Bài tập : Tìm mã CRC với C(7,4) của dữ liệu
gửi là 1010, 1001, 1110
(Số chia dung trong bộ mã và giải mã là 1011)

10
4
CRC
• Bài tập : Kiểm tra mã codeword nhận được
sau là đúng hay sai.
• 1011010
• 1010011
• 1001001
• 0011010
Nếu đúng hãy tách lấy dataword
Mã sử dụng là mã CRC với C(7,4)
(Số chia dung trong bộ mã và giải mã là 1001)
10
5
Tổng kết
1. Hệ số đếm và các phép toán
2. Mã hóa tín hiệu số
3. Mã hóa và sửa lỗi

You might also like