Mã vòng
Định nghĩa: Một mã khối tuyến tính (n,k) đ ợc gọi là
mã vòng nếu dịch vòng của nó là một từ mã.
ví dụ: cho từ mã u = ( u
0
,u
1
u
n-1
) là tập con của S thì
dịch vòng một vị trí của u là u
1
= (u
n-1
,u
0
,u
1
u
n-2
) cũng
là một từ mã thuộc S.
Các thành phần của từ mã u = (u
0
,u
1
u
n-1
) là các hệ số
của đa thức u(x): u(x) = u
0
+u
1
x++u
n-1
.x
n-1
.
u(x) đ ợc gọi là đa thức mã.
Cấu trúc đại số của mã vòng:
Nếu u(x) là đa thức mã có bậc n-1 thì u
i
(x) với (i=n-1)
là phần d của x
i
.u(x) /x
n
+1 cũng là một từ mã.
( )
( )
( )
11
.
+
+=
+
n
i
n
i
x
xu
xq
x
xux
Hay có dạng x
i
u(x)=q(x).(x
n
+1)+u
i
(x), u
i
(x) là phần d
ví dụ: chu kì dịch vòng của từ mã u = 1101 với n = 4,
có i = n-1 = 3 biểu diễn từ mã dạng đâ thức thực hiện
dịch vòng 3 lần:
Ta có u(x) = 1+x+x
3
nên x
i
.u(x) = x
3
.u(x) = x
3
+ x
4
+x
6
,
xác định phần d u
i
(x): chia x
6
+x
4
+x
3
cho x
n
+1
(X
6
+x
4
+x
3
)/x
4
+1 = x
2
+1 d x
3
+x
2
+1 = u
3
(x)
Biểu diễn u
3
(x) ra từ mã: 1011là dịch vòng 3 lần của
u= 1101
Tính chất của mã vòng: t ơng tự nh mã tuyến tính thì
mã vòng đ ợc tạo ra từ một đa thức sinh, đa thức sinh
g(x) của mã vòng (n,k) là duy nhất và có dạng:
G(x) = g
0
+g
1
x+g
r
x
r
, g
0
=g
r
= 1.
+ Với đa thức từ mã u(x) có dạng u(x) = g(x).m(x),
u(x) là da thức bậc n-1 nên đa thức bản tin m(x) có
dạng:
M(x) = m
0
+ m
1
x+m
2
x
2
++m
n-r-1
x
n-r-1
Vậy g(x) có bậc là n-k và u(x) đ ợc biểu diễn dạng:
U(x) = (m
0
+m
1
x+m
2
x
2
+m
k-1
x
k-1
).g(x)
đặt n-r = k, r=n-k
KL:
+ đa thức g(x) là đa thức sinh của mã vòng khi và chỉ
khi g(x) chia hết cho đa thức từ mã u(x)
+ Đa thức sinh g(x) có bậc n-k là một thừa số của x
n
+1
= g(x).h(x) thì g(x) tạo ra duy nhất một mã vòng (n,k)
ví dụ: x
7
+1 = (1+x+x
3
)(1+x+x
2
+x
4
), có hai đa thức bậc
3, bậc 4
+ Nếu đa thức sinh g(x) có bậc là 3 thì g(x) = 1+x+x
3
chỉ có thể tạo ra một mã vòng duy nhất (7,4).
+ Nếu g(x) =1+x+x
2
+x
4
thì có thể tạo ra mã vòng (7,3)
Ma tr©n sinh cña m· vßng:
•
G(x) ®a thøc sinh cã bËc n-k cña m· C(n,k), víi k bit
th«ng tin u(u
0
u
k-1
) cã ®a thøc th«ng tin u(x). M· hãa
m· vßng u(x) = m(x).g(x) th× c
m
=(c
0
,c
1
c
n-1
)
u(x) = m(x).g(x) = u
0
+u
1
x+…u
n-1
x
n-1
Hay c
m
(x) = (m
0
+m
1
x+ m
k-1
x
k-1
)g(x)
=m
0
g(x) + m
k-1
x
k-1
g(x)
( )
[ ]
( )
( )
( )
=
−
−
xgx
xgx
xg
mmmxu
k
k
1
110
.
., ,
C
m
(x) cã d¹ng:
VËy matran G cã sè hµng b»ng sè bit th«ng tin
VËy d¹ng tæng qu¸t cña ma trËn sinh cña m· vßng
U(n,k) nh sau:
=
−
−
−
kn
kn
kn
gg
gg
ggg
G
00
0
00 0
000
0
0
10
Víi g
0
= g
n-k
=1
Ma tr©n kiÓm tra:
Ta cã g(x) lµ thõa sè cña x
n
+1 nªn cã thÓ viÕt :
X
n
+1= g(x) .h(x), h(x) cã bËc k cã d¹ng:
h(x) = h
0
+h
1
x+h
2
x
2
+ h
k
x
k
Víi h
0
=h
k
= 1. nªn h(x) = (x
n
+1)/g(x)
Ma tr©n kiÓm tra H cã d¹ng:
( )
( )
( )
=
−−
xhx
xhx
xh
H
kn *1
*
*
.
.
Trong ®ã: h
*
(x) lµ ®a thøc ng îc cña h(x),
h
*
(x) = x
k
.h
(x
-1
) = h
k
+h
k-1
x+…+h
0
x
k
Ma trËn H cã hµng b»ng víi sè bit kiÓm tra (n-k)
Ta cã x
k
h(x
-1
) còng lµ thõa sè cña x
n
+1. vËy ®a thøc
x
k
h(x
-1
) sinh ra m· vßng (n,n-k)víi ma trËn H
n-k,n
VÝ dô:
Cho C(7,4) víi ®a thøc sinh g(x) = 1+x+x
3
X¸c ®Þnh ma trËn G,H
Cã ma trËn sinh cã d¹ng:
( )
( )
( )
=
++
++
++
++
=
=
=
−
0001101
0011010
0110100
1101000
1
)(
)(
)(
)(
.
643
532
42
3
3
2
1
xxx
xxx
xxx
xx
xgx
xgx
xxg
xg
xgx
xgx
xg
G
k
Ma trËn H cã d¹ng:
( )
( )
( )
=
−−
xhx
xhx
xh
H
kn *1
*
*
.
.
h(x) = (x
n
+1)/g(x)
X
n
+1= x
7
+1, h(x) = (x
7
+1)/(1+x+x
3
)= x
4
+x
2
+x+1
h
*
(x) = x
k
h
(x
-1
) = x
4
[1/x
4
+1/x
2
+1/x+1]= 1 + x
2
+x
3
+x
4
( )
( )
( )
=
+++
+++
+++
=
=
=
−−
0010111
0101110
10111001
)(*
)(*.
)(*
.
.
6542
543
432
2
*1
*
*
xxxx
xxxx
xxx
xhx
xhx
xh
xhx
xhx
xh
H
kn
Mã hoá mã vòng dạng hệ thống
Mã vòng đ ợc biểu diễn ở dạng tổng quát:
u = u
0
,u
1
,u
n-1
+ n-k bit đầu tiên biểu diễn các bit kiểm tra
+ k bit còn lài là các bit bản tin
Mã vòng biểu diễn dạng hệ thống:
u = r
0
,r
1
r
n-k-1
,m
0
,m
1
, m
k-1
trong đó: n-k bit đầu tiên là bit kiểm tra
K bit tiếp sau là các bit bản tin.
Mô tả bằng toán học
Nh vậy k bit đ ợc dịch vào k tầng cuối cùng bên phải
của thanh ghi từ mã, sau đó thêm các bit kiểm tra vào
n-k tầng đầu tiến bên trái, nh vậy đa thức bản tin bị
dịch phải n-k ví trí bằng cách nhân x
n-k
m(x):
X
n-k
m(x) = m
0
x
n-k
+ m
1
x
n-k-1
+.+ m
k-1
x
n-1
Nh vậy mã vòng dạng hệ thống có biểu thức:
u(x) = x
n-k
m(x) + r(x)
Trong đó : r(x) là phần d của phép chia:
( )
( )
( ) ( ) ( )
xrxgxq
xg
xmx
kn
+=
ví dụ: một mã vòng ở dạng hệ thống với đa thức sinh
g(x) = 1+x+x
3
hãy tạo ra mã hệ thống với bit bản tin
m=1011.
Giải: u = 1011 nên đa thức bản tin u(x) = 1+x
2
+x
3
có k
= 4, nên n-k = 3, n = 4+3 = 7 mã vòng (7,4)
Với u(x) = x
n-k
m(x) = x
3
.(1+x
2
+x
3
) = x
3
+x
5
+x
6
Thực hiện chia x
n-k
m(x) cho g(x) bằng x
3
+x
2
+x+1 d 1
Vậy r(x) = 1.
U(x) = x
n-k
m(x) +r(x) = x
3
+x
5
+x
6
+1
Vậy mã vòng dạng hệ thống u = (1001011)
mã hoá mã vòng hệ thống với thanh ghi dịch n-k
tầng có hồi tiếp.
Mã hoá mã vòng dạng hệ thống với đa thức sinh g(x):
G(x) = 1+g
1
x+g
2
x
2
++ g
n-k-1
x
n-k
Với các hệ số của g(x): g
0
== g
n-k-1
= 1 có sơ đồ sau:
b
0
b
2
b
n-k-1
g
0
g
1
g
n-k-1
chuyển
mạch k1
Ra
K 2
vào
m(x)
G
i
= 0 không có liên kết
B
i
là các thanh ghi dịch
Các b ớc thức hiệu mã hoá bằng thanh ghi:
B1: K1 đóng để dịch k nhịp đầu tiên, cho phép chuyển
các bit tin vào n-k tầng của thanh ghi dịch.
B2: K2 ở vị trí d ới để chuyển các bit tin ra ngoài với k
nhịp đầu tiên.
B3: sau khi chuyển hết k bit tin thì k1 mở ra và k2
chuyển lên vị trí trên
B4: Sau n-k lần dịch còn lại xoá sạch thanh ghi khi
chuyển hết các bit kiểm tra ra ngoài
B5: sau n lần dịch nội dung của thanh ghi ngoài là đa
thức từ mã u(x) = r(x) + x
n-k
m(x)
ví dụ: hãy mã hoá mã vòng với các bit tin m = (1001)
thành một mã (7,4) sử dụng đa thức sinh g(x)= 1+x+x
3
Dùng toán học để mã hoá:
+ ta có m = (1001) nên u(x) = 1+x
3
, đa thức từ mã
u(x) = x
n-k
m(x) + r(x), r(x) là phần d của phép chia
x
n-k
m(x)/g(x):
+ x
n-k
m(x) = x
3
(1+x
3
) = x
3
+x
6
. thực hiện chia cho g(x)
ta có:
xx
xx
xx
+=
++
+
3
3
63
1
d r(x) = x
2
+x
Vậy u(x) = x
n-k
m(x) + r(x) = x
3
+x
6
+x
2
+x chuyển về
dạng từ mã hệ thống: u = (0111001)
vÝ dô: M· (7,4) víi ®a thøc sinh
g(x) = 1+x+x
3
vµ ®a thøc th«ng tin u(x) = x +1,
nh©n x
n-k
.u(x) = x
4
+x
3
= 0001100 g
2
= 0 nªn
kh«ng cã nèi tiÕp g
2
. Cã s¬ ®å sau
b
0
b
1
b
2
C
x
n-k
.u(x) = 0001100
Bit parity
Bit tin
g
1
k
2
k
1
1
2
nhịp Vào Trạng thái ô nhớ Ra
b
0
b
1
b
2
0 0 0 0
1 0 0 0 0 0
2 0 0 0 0 0
3 1 1 1 0 1
4 1 1 0 1 1
5 0 0 1 0 1
6 0 0 0 1 0
7 0 0 0 0 1
Trạng thái ban đầu các ô nhớ toàn 0
b
1
= b
0cũ
(+)g
1mới
,
b
2
= b
1cũ
Từ mã thu đ ợc ng
ợc từ d ới lên C =
1011100
KiÓm tra b»ng to¸n häc
( ) ( ) ( )
( )
( ) ( ) ( )
( )
1011100
1.
1
00011001.
234
2
34
343
=
+++=+=
+=
+
+=+=
−
−
xxxxrxuxxu
x
xg
xx
chia
xxxxxux
kn
kn
Giải mã sử dụng syndrome
+ Dùng ma trận kiểm tra H: với mã vòng thì giải mã
giống với mã khối tuyến tính
Các b ớc giải mã bằng Syndrome
B
1
: tính syndrome S = r.H
T
B2: Lập bảng lỗi với syndrome
B
3
: dò tìm mẫu lỗi với syndrome t ơng ứng
B
4
: giải mã bằng cách cộng modul 2: u = e
i
+r, u chính
là từ mã đ ợc truyền đi.
ví dụ: cho mã vòng (7,4) với đa thức sinh
g(x) = 1+x+x
3
. có bit bản tin m = (1100) hãy xác định
từ mã để truyền trên đ ờng truyền có nhiễu thu đ ợc từ
mã r bị lỗi tại vị trí 2
-
Xác định ma trận H:
Có x
n
+1 = x
7
+1=(1+x+x
3
).(x
4
+x
2
+x+1)=g(x).h(x)
h(x) = x
4
+x
2
+x+1, h*(x) = x
k
.h(x
-1
)
h*(x)= x
4
(1/x
4
+1/x
2
+1/x+1)=1+x
2
+x
3
+x
4
1110100
0111010
0011101
=H
100
110
111
011
101
010
001
=
T
H
Ma trận H
T
+ Tính syndrome s = r .H
T
( )
)111(
100
110
111
011
101
010
001
.1011000 ==S
Bảng mẫu lỗi với syndrome
H
T
mẫu lỗi
100 1000000
010 0100000
101 0010000
110 0001000
111 0000100
011 0000010
001 0000001
Từ ví dụ trên ta tính đ ợc u = (1011100), từ mã nhận đ
ợc bị lỗi tại vị trí thứ 2 là r = 1011000
+ Giải mã: u = r (+) e
i
u = 1011000 (+) 0000100
= 1011100