You are on page 1of 19

CHƯƠNG 4: MÃ HÓA KÊNH

1. Mã vòng
2. Mã chập

Chương 4 1

MÃ HÓA KÊNH
Phân loại mã hóa kênh

Chương 4 2

1
Mã hoá kênh
Mã khối tuyến tính

 Trọng số Hamming: tổng số thành phần khác 0 của vector


t = {0,1,1,0,0,0,1}  w(t) = 3

 Khoảng cách Hamming: trọng số của vector t1  t2


t1 = {0,1,1,0,1}
t2 = {0,1,0,1,1}  t1  t2 = {0,0,1,1,0}  d(t1,t2) = 2

 Số bit sai tối đa mã tuyến tính có thể phát hiện:


t = dmin – 1; dmin: khoảng cách Hamming nhỏ nhất của bộ mã

 Số bit sai tối đa mã tuyến tính có thể sửa:


t = (dmin – 1)/2

1:11 PM Chương 3 3

Mã hoá kênh
Mã khối tuyến tính

 Là một tập hợp các vector có chiều dài cố định gọi là từ mã (codeword)

 Số phần tử của một vector gọi là kích thước từ mã , ký hiệu n.


 Mã thường sử dụng là mã nhị phân  có tất cả 2n từ mã khác nhau

 Mã hình thành bằng cách chọn M = 2k từ mã  tạo thành bộ mã (n,k)

1:11 PM Chương 3 4

2
Mã hoá kênh
Mã khối tuyến tính

 Các phép toán thực hiện trên trường GF(2)

 Phép cộng: tương tự EX-OR

 Phép nhân: tương tự AND

+ 0 1 X 0 1
0 0 1 0 0 0
1 1 0 1 0 1

1:11 PM Chương 3 5

Mã vòng
Đa thức mã

t = a0a1…an–2an–1 là một từ mã:

t(x) = a0 + a1x + … + an–2xn-2 + an–1xn-1 là đa thức mã

Đa thức sinh

- Đa thức sinh g(x) của mã vòng C(n, k) có bậc n – k.

- Đa thức sinh của mã vòng C(n,k) là ước số của xn + 1.

Đa thức mã biểu diễn theo dạng:

t(x) = u(x)g(x) Chương 4 6

3
Mã vòng
Đa thức sinh

Mã vòng C(7,4)
g(x) = x3+x+1
x7+1=(x+1)(x3+x+1)(x3+x2+1)
g(x) = x3+x2+1
Đa thức sinh có bậc n – k = 7 – 4 = 3

Mã hoá
B1: Nhân đa thức thông báo u(x) với xn-k

B2: Chia cho g(x) để tìm đa thức dư q(x): q(x) = xn-ku(x) mod g(x)

B3: t(x) = u(x) + xkq(x)


Chương 4 7

Mã vòng
Mã hoá
Mã vòng C(7,4) có đa thức sinh g(x) = x3+x+1

Thông báo u = 1010  u(x) = 1 + x2

B1: x3u(x) = x5 + x3

B2: x5 + x3 = x2(x3+x+1) + x2  q(x) = x2

B3: t(x) = u(x) + x4q(x) = 1 + x2 + x6  t = [1 0 1 0 0 0 1]

Chương 4 8

4
Mã vòng
Giải mã
Tính đa thức sửa sai (syndrome):

Đa thức thu r(x) S(x) = r(x) mod g(x)

S(x) = 0 Không sai  thu chính xác

S(x)  0 Có sai  kiểm tra bảng coset leader

Mã vòng C(7,4) có đa thức sinh g(x) = x3+x+1


r = [0 0 1 1 0 1 0]  r(x) = x2 + x3 + x5 = x2(x3+x+1)  S(x) = 0  không sai

r = [0 0 1 0 1 1 0]  r(x) = x2 + x4 + x5  S(x) = 1 + x2  có sai


Chương 4 9

Mã vòng
Giải mã

r = [0 0 1 0 1 1 0]  r(x) = x2 + x4 + x5  S(x) = 1 + x2  S = 101

Bảng coset leader:

Coset leader Syndrome


0000000 000 e = [0 0 0 0 0 0 1]
0000001 101
r = [0 0 1 0 1 1 1]
0000010 111
0000100 011
0001000 110
0010000 001
0100000 010
1000000 100
Chương 4 10

5
Mã vòng
Giải mã

Dùng phương pháp bẫy lỗi:

- Dịch r(x) sang phải 1 bit, chia cho g(x)  số dư q(x).

- Nếu w(q(x)) > 1: tiếp tục thực hiện như trên.

- Cộng r(x) với q(x), sau đó dịch trái số bit bằng đúng số lần dịch phải.

r = [0 0 1 0 1 1 0]  S(x) = 1 + x2  có sai.

- Dịch phải 1 bit  r = [0 0 0 1 0 1 1]  q = [1 0 0], w(q) = 1.


- r + q = [1 0 0 1 0 1 1]  dịch trái 1 bit: r = [0 0 1 0 1 1 1]  u = [0 0 1 0]

11

Mã vòng

Mã vòng C(7,4) có đa thức sinh g(x) = x3+x2+1.

a. Thông báo u = 0011  t = ?


Coset leader Syndrome
b. r = [0 1 1 1 1 0 1]  u = ?
0000000 000
- Dùng bảng coset leader. 0000001 011
- Dùng phương pháp bẫy lỗi. 0000010 110
0000100 111
c. r = [0 1 1 1 0 0 1]  u = ? 0001000 101
0010000 001
0100000 010
1000000 100
Chương 4 12

6
Mã chập
- Số bit ngõ vào: k.

- Số bit ngõ ra: n. Mã chập (n,k,L)

- Các bit ngõ ra phụ thuộc vào K – 1 bộ k bit vào trước đó.

- L = kK: độ dài ràng buộc

R = k/n: tỷ lệ mã

Thường xét: R = 1/2

Chương 4 13

Mã chập
Ví dụ bộ mã hóa của mã chập:

n( L  1)  2(2  1)  6

Mỗi một bít ngõ vào


ảnh hưởng đến 6 bít
liên tiếp ở ngõ ra

Số trạng thái của máy


trạng thái: 2k.L
Chương 4 14

7
Mã chập

Ví dụ bộ mã hóa của mã chập (3,2,1):

Mỗi 1 bit ngõ vào sẽ


ảnh hưởng 3(1+1) = 6
bit ngõ ra liên tiếp

Chương 4 15

Mã chập

Ví dụ bộ mã hóa của mã chập (3,2,2):

Chương 4 16

8
Mã chập
Xét bộ mã có R = ½, K = 3

u1 Bit mã hóa 1

Ngõ vào Ngõ ra


m u1 ,u2
u2 Bit mã hóa 2

Chương 4 17

Mã chập
Xét bộ mã có R = ½, K = 3
m = 101
Trạng thái đầu: 00
u1 u1
u1 u 2 u1 u 2
t1 1 0 0 1 1 t2 0 1 0 1 0
u2 u2

u1 u1
u1 u 2 u1 u 2
t3 1 0 1 0 0 t4 0 1 0 1 0
u2 u2

Chương 4 18

9
Mã chập

u1 u1
u1 u 2 u1 u 2
t5 0 0 1 1 1 t6 0 0 0 0 0
u2 u2

m  (101) Encoder U  (11 10 00 10 11)

Chương 4 19

Mã chập

Đa thức sinh
V(1)

u
mj mj – 1 mj - 2 mj - 3

g(1) = [1011] V(2)


g(2) = [1111]

(2,1,3) encoder

Chương 4 20

10
Mã chập
Phương trình mã hóa:

V(1)
V(1) = U * g(1)
V(2) = U * g(2)
u
mj mj – 1 mj - 2 mj - 3

V(2)

Bít ngõ ra thứ l, trên nhánh thứ j


m
(2,1,3) encoder
vlj  u
i0
li g i j  u l g 0j  u l 1 g 1j  ...  u l  m g mj

j  1, 2, ..., n
Chương 4 21
m  L 1

Mã chập
Biểu diễn mã – Dạng đa thức

- Có n đa thức sinh.

- Mỗi đa thức có bậc  K-1 diễn tả có kết nối các bit của thanh ghi dịch
đến các bộ cộng mdulo 2 hay không.

g1 ( X )  g 0(1)  g1(1) . X  g 2(1) . X 2  1  X  X 2


g 2 ( X )  g 0( 2 )  g1( 2 ) . X  g 2( 2) . X 2  1  X 2

Chương 4 22

11
Mã chập
Biểu diễn mã – Dạng đa thức

m( X )g1 ( X )  (1  X 2 )(1  X  X 2 )  1  X  X 3  X 4
m( X )g 2 ( X )  (1  X 2 )(1  X 2 )  1  X 4
m ( X ) g1 ( X )  1  X  0. X 2  X 3  X 4
m ( X ) g 2 ( X )  1  0. X  0. X 2  0. X 3  X 4
U( X )  (1,1)  (1,0) X  (0,0) X 2  (1,0) X 3  (1,1) X 4
U  11 10 00 10 11

Chương 4 23

Mã chập
Biểu diễn mã – Dạng cây mã

1 bits
ngõ vào
2 bits ngõ ra

Chương 4 24

12
Mã chập
Biểu diễn mã – Sơ đồ trạng thái

0/00 Output
Current input Next output
Input state state
S0
1/11 00 0/11 S0 0 S0 00
00 1 S2 11
1/00
S2 S1 0 S0 11
S1
10 01 01 1 S2 00
0/10
S2 0 S1 10
1/01 S3 0/01 10 1 S3 01
11 S3 0 S1 01
1/10 Chương 4 11 1 S3 10 25

Mã chập
Biểu diễn mã – Sơ đồ lưới (trellis)
State
S 0  00 0/00
1/11 1/11
S 2  10 0/11 0/11
1/00 1/00

S1  01 0/10 0/10
1/01 1/01
0/01 0/01
S 3  11 1/10
ti ti 1 Time

13
Mã chập
Input bits Tail bits
1 0 1 0 0
Output bits
11 10 00 10 11
0/00 0/00 0/00 0/00 0/00
1/11 1/11 1/11 1/11 1/11
0/11 0/11 0/11 0/11 0/11
1/00 1/00 1/00 1/00 1/00
0/10 0/10 0/10 0/10 0/10
1/01 1/01 1/01 1/01 1/01
0/01 0/01 0/01 0/01 0/01

t1 t 2
t 3 t 4
t 5 t 6

Chương 4 27

Mã chập
Input bits Tail bits
1 0 1 0 0
Output bits
11 10 00 10 11
0/00 0/00 0/00 0/00 0/00
1/11 1/11 1/11
0/11 0/11 0/11
0/10 1/00
0/10 0/10
1/01 1/01
0/01 0/01

Chương 4 28

14
Vẽ sơ đồ trạng thái và trellis của sơ đồ sau:

Vẽ sơ đồ trạng thái và trellis:

g1 = [110], g2 = [101]

Chương 4 29

Mã chập
Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp
lý nhất)

- Tìm các nhánh mã (code branch) gần với các tín hiệu phát nhất.

- Nguyên tắc: tính toán khoảng cách Hamming cho mỗi nhánh và chọn nhánh
có khoảng cách Hamming nhỏ nhất.

Chương 4 30

15
Mã chập
Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp
lý nhất)
S0 = 00; S1 = 01; S2 = 10; S3 = 11

10 01 10 11 00
00 00 00 00 00 S0
S0 S0 S0 S0 S0
11 11 11 11 11

S2 S2 S2 11 S 11
11 S2
00 00 2 00
10
10 10
10
S1 01 S1 01 S1 01 S1
01
01 01 01

S3 10 S3 10 S3 10 S3
31

10 01 10 11 00
00 00 00 00 00 S0
S0 S0 S0 S0 S0
11 11 11 11 11

S2 S2 S2 11 S 11
11 S2
00 00 2 00
10
10 10
10
S1 01 S1 01 S1 01 S1
01
01 01 01

S3 10 S3 10 S3 10 S3
Path Code Khoảng cách Path Code Khoảng cách
Hamming Hamming
0,0,0,0 00,00,00,00 5 1,0,0,0 11,10,11,00 6
0,0,0,1 00,00,00,11 3 1,0,0,1 11,10,11,11 4
0,0,1,0 00,00,11,10 4 1,0,1,0 11,10,00,10 5
0,0,1,1 00,00,11,01 4 1,0,1,1 11,10,00,01 5
0,1,0,0 00,11,10,11 2 1,1,0,0 11,01,01,11 3
0,1,0,1 00,11,10,00 4 1,1,0,1 11,01,01,00 5
0,1,1,0 00,11,01,01 5 1,1,1,0 11,01,10,01 2
Chương 4 32
0,1,1,1 00,11,01,10 5 1,1,1,1 11,01,10,10 2

16
Mã chập
Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp
lý nhất)

- Phương pháp maximum likelihood phải tìm kiếm trên tất cả các đường trên
giản đồ trellis và tìm đường có khoảng cách hamming nhỏ nhất.

 chuỗi message có chiều dài N (chuỗi nhận được Y có chiều dài N.n/K) thì
ta sẽ có 2N đường.

- Thuật toán viterbi giới hạn số đường cần so sánh 2kL (surviving path), 2L là
số lượng node, 2k là số lượng nhánh đến mỗi node

Chương 4 33

Mã chập
Giải mã – Thuật toán Viterbi (hard decision)

- Có 2 mức quyết định (mức 0 và 1).

- Tính khoảng cách Hamming cho mỗi nút (bằng khoảng cách Hamming của
nhánh hiện tại + khoảng cách Hamming trước đó).

- Nếu có nhiều nhánh đến 1 nút thì bỏ đi nhánh có khoảng cách Hamming
lớn hơn.

Chương 4 34

17
Mã chập
Giải mã – Thuật toán Viterbi (hard decision)
r = (11 10 01 10 11)

0 2 00 2 1 00 3 1 00 1 100 2 200 1
0 11 1 11 1 11 111 0 11
0 3 111 1 111 2 110 2
0 00 00 00
10 1 110 210
210 0 1
2 0 0 01 2 201 1 101 3
01
01 0 201 101
2 10 3 10 3 10 3
2 0 1
t = (11 10 00 10 11) ; m = (101)
Chương 4 35

Mã chập
Giải mã – Thuật toán Viterbi (soft decision)

- Có nhiều mức.

- Thay khoảng cách Hamming trong hard decision thành khoảng cách
Euclide hay tương quan.

Chương 4 36

18
Mã chập
Giải mã – Thuật toán Viterbi (soft decision) – Khoảng cách Euclide
r = (1 0,7; 0,6 0,2; 0,4 0,7; 0,7 0,2; 0,6 0,8) r = (11 10 01 10 11)
1: 1V; 0: 0V
1,49 1,49 0,4 1,89 0,56 1,09 1 1,09
0,65 00
00 00 00 0,53 00
0,8 0,45 0,73
11 0,73 0,2
11 0,09 112,29 11 0,45 11 0,2
0,09 0,76 1,29 1,29
11 11
11
0,2 00
0,85 0,65 00 00
r=1 0,7; path: 00 10 0,53 110
0,11 10 0,89
(1-0)2 + (0,7-0)2 = 1,49 101,34 0,13 0,8 2,09
1 01 01 0,4
01
01 0,25 1,13
r=1-0,7; path: 11
1,09010,25 1,941,13
01 01
1,890,4 1,69
(1-1)2 + (0,7-1)2 = 0,09
10 10 10
0,85Chương 4 0,13 0,8
t = (11 10 00 10 11) ; m = (101) 37

Mã chập
Giải mã – Thuật toán Viterbi (soft decision) – Tương quan
r = (-0,7 -0,5; -0,8 0,6; 0,7 -0,1; -0,6 0,8; -0,7-0,6) r = (11 10 01 10 11)
1: -1V; 0: 1V
-1,2 -1,2 -0,2 -1,4 0,6 2 2,2 -1,3 4,9
00 00 00 000,2 00
0,211 -0,6
11 -0,6
-0,2
11 -0,2 1,3
11 1,3
1,2 11 1,2 -1 1,8
2,2 3,6
11 11
11
1,4 -0,8 00 00 00
r=-0,7 -0,5; path: 00 10 0,6 0,2 -1,3
10 10
-0,7.1-0,5.1 = -1,2
2,6 100,6 1,4 3,6 -0,1 1,7
-1,4 01 01 0,1
01
01 0,8 -1,4
r=-0,7 -0,5; path: 11 0,8 01 01
-0,2 01 -0,2 -1,4 1,2 0,1 1,9
-0,7.(-1)-0,5.(-1) = 1,2
10 10 10
-0,8 Chương 4 1,4 -0,1
t = (11 10 00 10 11) ; m = (101)

19

You might also like