Mã vòng Giải mã Dùng phương pháp bẫy lỗi: - Dịch rx sang phải 1 bit, chia cho gx số dư qx.. - Cộng rx với qx, sau đó dịch trái số bit bằng đúng số lần dịch phải.. - Dùng phương pháp bẫ
Trang 1Chương 4 1
1 Mã vòng
2 Mã chập
CHƯƠNG 4: MÃ HÓA KÊNH
MÃ HÓA KÊNH
Phân loại mã hóa kênh
Trang 21:11 PM Chương 3 3
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
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ệun
Mã thường sử dụng là mã nhị phân có tất cả 2ntừ mã khác nhau
Mã hình thành bằng cách chọn M = 2ktừ mã tạo thành bộ mã (n,k)
Trang 31:11 PM Chương 3 5
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
Mã vòng
Đa thức mã
t = a0a1…an–2an–1là một từ mã:
t(x) = a0+ a1x + … + an–2xn-2+ an–1xn-1là đ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)
Trang 4Chương 4 7
Mã vòng
Đa thức sinh
Mã vòng C(7,4)
x7+1=(x+1)(x3+x+1)(x3+x2+1)
Đa thức sinh có bậc n – k = 7 – 4 = 3
g(x) = x3+x+1 g(x) = x3+x2+1
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)
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]
Trang 5Chương 4 9
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 0 1 1 0] r(x) = x2+ x4+ x5 S(x) = 1 + x2 có sai
r = [0 0 1 1 0 1 0] r(x) = x2+ x3+ x5= x2(x3+x+1) S(x) = 0 không sai
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
0000001 101
0000010 111
0000100 011
0001000 110
0010000 001
0100000 010
1000000 100
e = [0 0 0 0 0 0 1]
r = [0 0 1 0 1 1 1]
Trang 6Mã 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]
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 = ?
b r = [0 1 1 1 1 0 1] u = ?
- Dùng bảng coset leader
- Dùng phương pháp bẫy lỗi
c r = [0 1 1 1 0 0 1] u = ?
Coset leader Syndrome
0000000 000
0000001 011
0000010 110
0000100 111
0001000 101
0010000 001
0100000 010
1000000 100
Trang 7Chương 4 13
Mã chập
- Số bit ngõ vào: k
- Số bit ngõ ra: n
- 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
Mã chập (n,k,L)
R = k/n: tỷ lệ mã Thường xét: R = 1/2
Ví dụ bộ mã hóa của mã chập:
( 1) 2(2 1) 6
n L
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
Mã chập
Trang 8Chương 4 15
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
Mã chập
Ví dụ bộ mã hóa của mã chập (3,2,2):
Mã chập
Trang 9Chương 4 17
m
1
u
2
u
Bit mã hóa 1
Bit mã hóa 2
2
1,u
u
Mã chập
Xét bộ mã có R = ½, K = 3
Mã chập
1 0 0
1
t
1
u
2
u
1 1
2
1 u u
1 0 1
3
t
1
u
2
u
0 0
2
1 u u
0 1 0
4
t
1
u
2
u
0 1
2
1 u u
0 1 0
2
t
1
u
2
u
0 1
2
1 u u
Xét bộ mã có R = ½, K = 3
m = 101 Trạng thái đầu: 00
Trang 10Chương 4 19
Mã chập
0 0 1
5
t
1
u
2
u
1 1
2
1 u u
0 0 0
6
t
1
u
2
u
0 0
2
1 u u
Encoder )
101
(
Đa thức sinh
mj mj – 1 mj - 2 mj - 3
V(1)
V(2)
u
(2,1,3) encoder
g(1)= [1011]
g(2)= [1111]
Mã chập
Trang 11Chương 4 21
Phương trình mã hóa:
mj mj – 1 mj - 2 mj - 3
V(1)
V(2)
u
(2,1,3) encoder
V(1)= U * g(1)
V(2)= U * g(2)
Bít ngõ ra thứ l, trên nhánh thứ j
0 1 1 0
1, 2, ,
1
m
i
m L
Mã chập
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
2 2
) 2 ( 2 )
2 ( 1 ) 2 ( 0 2
2 2
) 1 ( 2 )
1 ( 1 ) 1 ( 0 1
1
) (
1
) (
X X
g X g g X
X X X
g X g g X
g
g
Trang 12Chương 4 23
Mã chập
Biểu diễn mã – Dạng đa thức
11 10
00 10
11
) 1 , 1 ( ) 0 , 1 ( ) 0 , 0 ( ) 0 , 1 ( ) 1 , 1 ( ) (
0 0 0 1 ) (
)
(
0 1
) (
)
(
1 ) 1 )(
1 ( ) (
)
(
1 ) 1
)(
1 ( ) (
)
(
4 3
2
4 3 2
2
4 3 2 1
4 2
2 2
4 3 2
2 1
U U
g
m
g
m
g
m
g
m
X X
X X
X
X X X
X X
X
X X X X X
X
X X
X X
X
X X X X
X X
X
X
1 bits ngõ vào
2 bits ngõ ra
Mã chập
Biểu diễn mã – Dạng cây mã
Trang 13Chương 4 25
Mã chập
Biểu diễn mã – Sơ đồ trạng thái
Current state input Next state output
S0 00
S1 01
S2 10
S3 11
00
11
0
S
1
S
2
S
3
S
1/11
1/00
1/01
1/10
0/11 0/00
0/01 0/10
Input
Output
Mã chập
Time
i
t ti1
State
00
0
S
01
1
S
10
2
S
11
3
S
0/00
1/10
0/11 0/10 0/01
1/11
1/01
0/10 0/01
1/11
1/01 1/00
Biểu diễn mã – Sơ đồ lưới (trellis)
Trang 14Chương 4 27
Mã chập
0/11
0/10
0/01
1/11
1/01
1/00
0/00
0/11 0/10 0/01
1/11
1/01 1/00
0/00
0/11 0/10 0/01
1/11
1/01 1/00
0/00
0/11 0/10 0/01
1/11
1/01 1/00
0/00
0/11 0/10 0/01
1/11
1/01 1/00 0/00
6
t
1
Input bits Output bits
Tail bits
1/11
0/00
0/10 1/11
1/01
0/00
0/11 0/10 0/01
1/11
1/01 1/00
0/00
0/11 0/10 0/01
0/00
0/11 0/00
Input bits Output bits
Tail bits
Mã chập
Trang 15Chương 4 29
Vẽ sơ đồ trạng thái và trellis của sơ đồ sau:
Vẽ sơ đồ trạng thái và trellis:
g1= [110], g2= [101]
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
Mã chập
Trang 16S0= 00; S1= 01; S2= 10; S3= 11
Mã chập
Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp
lý nhất)
S0 00
11
11
00
10
01
10
01
01
10
11
00
10 01
11
00 11
10 01 10 11 00
11
1
11
S3
S2
S1
S3
00
10 01
11
10
01 00
01
10
Path Code Khoảng cách
Hamming Path Code Khoảng cách 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
S0 00
11
1100 10
01
10
01
01
10
11
00
10 01
11
00 11
10 01 10 11 00
11
1
11
S3
S2
S1
S3
00
10 01
11
10
01 00
01
10
Trang 17Chương 4 33
- 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), 2Llà
số lượng node, 2k là số lượng nhánh đến mỗi node
Mã chập
Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp
lý nhất)
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
Trang 18Chương 4 35
Mã chập
Giải mã – Thuật toán Viterbi (hard decision)
r = (11 10 01 10 11)
0 00
11
11
00
10
01
10
01
01
10
11
00
10 01
11
00 11
00
10 01
11
10
01 00
01
10
0
0
0 1
2
0
2
2 0
1
0 1 1
2
1
2 1
3
1 0 2
1
2 1 1
0
2
1 2
3
0 1 1
0
1 2 2
1
1
3 2
3
t = (11 10 00 10 11) ; m = (101)
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
Trang 19Chương 4 37
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)
1: 1V; 0: 0V
00
11
11
00
10
01
10
01
01
10
11
00
10 01
11
00 11
00
10 01
11
10
01 00
01
10
0,09
1,49
0,2 0,8
1
0,4
0,45 0,85 0,25
0,45
0,25 0,65
0,65
0,73
0,13 1,13
0,73
1,13 0,53 0,53
0,13
0,2
0,8 0,4
0,2
0,4 1 1
0,8
1,49 0,09
1,89 2,29 0,11 1,09
0,56 0,76 1,34
0,85
r = (11 10 01 10 11)
1,94
1,09 1,29 0,89 1,89
1,09
1,29 2,09 1,69
r=1 0,7; path: 00
(1-0)2+ (0,7-0)2= 1,49
r=1-0,7; path: 11
(1-1)2+ (0,7-1)2= 0,09
t = (11 10 00 10 11) ; m = (101)
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)
1: -1V; 0: 1V r = (11 10 01 10 11)
Chương 4
00
11
11
00
10
01
10
01
01
10
11
00
10 01
11
00 11
00
10 01
11
10
01 00
01
10
1,2
-1,2
1,4 0,2
-1,4
-0,2
-0,6 -0,8 0,8
-0,6
0,8 0,6
0,6
-0,2
1,4 -1,4
-0,2
-1,4 0,2 0,2
1,4
1,3
-0,1 0,1
1,3
0,1 -1,3 -1,3
-0,1
-1,2 1,2
-1,4 -1 2,6 -0,2
2 2,2 0,6
-0,8
-0,2
2,2 1,8 3,6 1,2
4,9
3,6 1,7 1,9
r=-0,7 -0,5; path: 00
-0,7.1-0,5.1 = -1,2
r=-0,7 -0,5; path: 11
-0,7.(-1)-0,5.(-1) = 1,2
t = (11 10 00 10 11) ; m = (101)