Định nghĩa : Một mã tuyến tính Cn,k được gọi là mã vòng nếu ta dịch một vòng từ mã thì kết quả cũng là một từ mã.. *Chú ý: Ta sử dụng đa thức mã để chứng minh các tính chất của mã vòng..
Trang 1Họ và tên: Nguyễn Quốc Thưởng
MSSV: 0820168
Lớp: 08ĐVT01
I – Giới thiệu:
1 Định nghĩa : Một mã tuyến tính C(n,k) được gọi là mã vòng nếu ta dịch một
vòng từ mã thì kết quả cũng là một từ mã Tức là w=a0a1… a n−2 a n−1 là một từ
mã thì v=a n−1 a0a1… a n−2 cũng là một từ mã
- Đa thức mã: Nếu w= a0a1… a n−2 a n−1 là một từ mã thì đa thức w=
a0 +a1x … a n−2 x n−2 a n−1 x n −1 là đa thức mã tương ứng với từ mã w
*Chú ý: Ta sử dụng đa thức mã để chứng minh các tính chất của mã vòng.
- Gọi w(i) là từ mã do dịch từ mã w i bit và w(i)
(x ) là đa thức mã tương ứng của
w(i). Các từ mã được xét trên trường GF(2) – trường nhị phân
- Trên trường GF(2) ta có:
x n+ j=x j∗(x n+ 1)+x j h ay x n+ j mod(x n+ 1)=x j .
- Xét ví dụ sau:
w(j)
(x)
=x (1+x3
)
+x5
=x2 (1+x 3
)
+x6
=x3 (1+ x 3
)
=x4 +x 7 mod 7
Từ ví dụ trên ta rút ra được mối quan hệ giữa w i với w (x):
w(i)
(x )=[x i∗w ( x)]mod (x n+1)
2 Các tính chất của mã vòng:
a Tính chất 1: Đa thức mã khác 0 có bậc nhỏ nhất là duy nhất.
Chứng minh: Giả sử tồn tại 2 đa thức mã khác 0 và có cùng bậc nhỏ nhất
là r(0 < r < n)
Trang 2g ( x )=g0+g1x+ …+g r−1 x r −1
+x r
f ( x )=f0+f1x +…+f r −1 x r−1
+x r
Ta xét đa thức mã: h ( x )=g ( x )+f (x ), lúc này h(x ) có bậc tối đa là r-1 Điều này mâu thuẫn với giả thiết r là bậc nhỏ nhất nên ta có điều phải chứng minh.
Từ đây, ta kí hiệu đa thức mã có bậc nhỏ nhất là g ( x ).
b Tính chất 2: Hệ số tự do g0 của g ( x ) phải bằng 1.
Chứng minh: Giả sử g0=0 Ta có:
g ( x )=x∗(g1 +…+g r −1 x r−2+x r−1)
Ta đặt f ( x )=g1+…+ g r−1 x r −2+x r −1 Rõ ràng f ( x ) cũng là một đa thức mã
có được nhờ dịch trái 1 bit hay dịch phải (n-1) bit từ đa thức mã g ( x ) Mặt khác, f ( x ) có bậc r-1, điều này mâu thuẫn với giả thiết bậc của g ( x ) là r Đến đây ta đã có điều phải chứng minh
c Tính chất 3: Một đa thức v ( x ) trên trường GF(2) có bậc
Tức là v ( x )=q (x )∗g(x)
Chứng minh:
Chứng minh nếu v ( x )=q (x )∗g(x) và bậc của v ( x ) nhỏ hơn hoặc bằng n-1 thì v ( x ) là đa thức mã:
Ta có: v ( x )=q (x )∗g (x )=( ∑
i=0
p
q i x i)∗g ( x )=∑
i=0
p
q i(x i∗g ( x ))
Trong đó p là bậc của q ( x ) và p+v ≤ n−1 Mà do x i∗g ( x ) với 0 ≤ i≤ p là đa thức mã (tương ứng với từ mã g¿) dịch i bit) Nên v ( x ) là đa thức mã vì bằng với 1 tổ hợp tuyến tính của các đa thức mã
Để chứng minh chiều ngược lại của mệnh đề ta chia v ( x ) c h o g( x)
chúng ta được:
v ( x )=q (x )∗g (x )+r (x)
Trong đó r (x ) là đa thức dư và có bậc nhỏ hơn bậc của g(x ) Mặt khác, đối với các đa thức trên trường GF(2) ta có thể suy ra:
r ( x )=q ( x )∗g ( x )+v (x)
Trang 3Nên r ( x ) là một đa thức mã Do định nghĩa g ( x ) là đa thức có bậc nhỏ nhất nên ta suy ra r ( x )=0 (Điều phải chứng minh)
Từ tính chất này, ta gọi g ( x ) là đa thức sinh vì từ g ( x ) có thể sinh ra tất
cả các đa thức mã khác
d Tính chất 4: Đa thức sinh của một mã vòng C(n,k) có bậc r=n-k.
Chứng minh: Theo định lí trên ta có mỗi đa thức mã v ( x ) là 1 bội sô của
chúng ta thấy do bậc của v ( x )≤ n−1 nên bậc của q ( x ) ≤( n−1)−r. Do đó có tổng cộng 2n−r đa thức q ( x ) Mặt khác, số lượng từ mã là 2k Từ đây suy ra
n−r=k h ay r=n−k
Từ đây ta biểu diễn g ( x ) như sau:
g ( x )=g0+g1x+…+g n−k x n−k (với g0=g n−k=1)
e Tính chất 5: Đa thức sinh của 1 mã vòng C(n,k) là 1 ước số của x n+1.
Chứng minh: Ta có:
g(i )(x )=[x i∗g ( x )]mod(x n+ 1)
x i∗g ( x )=q ( x )∗(x n+1)+g(i)
(x )
Chọn i=k, vì bậc g ( x )b ằ ng n−k nên ta suy ra q ( x )=1 tức là:
x k
∗g ( x )=(x n+1)+g(i)
(x)
x n+1=x k g ( x )+g(i)
(x)
Vì g(i)
(x) là 1 đa thức mã nên có thể viết: g(i)
(x )=g ( x )∗a(x ) Thế vào phương trình trên ta có
x n
+1=g ( x )∗(x k
f Tính chất 6: Nếu g ( x ) là 1 đa thức có bậc n-k và là ước số của x n+1 thì
g ( x ) sinh ra mã vòng C(n,k).
Chứng minh: Xét k đa thức g ( x ), x∗g ( x ) ,… , x k−1 g ( x ) Các đa thức này đều
có bậc nhỏ hơn hoặc bằng n-1 Gọi v(x) là 1 tổ hợp tuyến tính của k đa thức này với các hệ số a i ∈GF (2)
v ( x )=a0g ( x )+a1x∗g ( x )+…+a k−1 x k−1
∗g ( x )
Trang 4v(x) là 1 đa thức có bậc nhỏ hơn hoặc bằng n-1 và là bội số của g ( x ) Có tất cả 2k đa thức v (x) khác nhau và tạo nên 1 không gian tuyến tính của các
đa thức mã với g ( x ), x∗g ( x ) ,… , x k−1 g( x) là các đa thức hàm cơ sở Vì vậy 2k
tổ hợp (a0a1… a k−1) tương ứng với 2k đa thức này tạo nên 1 mã tuyến tính C(n,k) Bây giờ chúng ta chứng minh mã này có tính vòng, tức là chứng minh nếu v là 1 từ mã thì dịch v 1 bit chúng ta được v(1) cũng là 1 từ mã
Ta biểu diễn:
v ( x )=b0 +b1x+ …+b n−1 x n −1
v( 1 )
(x)=b n−1+b0x +…+b n−2 x n−1
Ta lại có
v( 1 ) (x)=[x∗v ( x )]mod (x n+1)
x∗v ( x )=b n−1(x n+1)+v( 1 )
(x )
Do v ( x ) v à(x n+ 1) đều là bội của g ( x ) nên v(i)
(x ) cũng là bội của g ( x )
Vì vậy v( 1 )
(x ) cũng là 1 đa thức mã
3 Ma trận sinh và ma trận kiểm tra của mã vòng:
a Ma trận sinh của mã vòng:
Ma trận sinh của mã vòng C(n,k) có dạng
Trong đó, g0=g n−k=1
Ví dụ: Tìm 1 mã vòng trong C(7,4) Dựa vào các tính chất của mã vòng ta biết được đa thức sinh của mã có bậc là 3 và là ước số của x7 +1 Ta phân tích: x7+1=(1+x )(1+x +x3)(1+x2+x3) Có 2 đa thức cùng có bậc là 3, chẳng hạn ta chọn g ( x )=1+ x+ x3 Từ đây ta có ma trận sinh
Trang 5
Bằng cách thực hiện các biến đổi đại số tuyến tính ta có thể biến đổi thành
ma trận sinh hệ thống dạng 2 như sau
Dịch chuyển 4 bit ta được ma trân sinh hệ thống dạng 1:
b Mã hóa thành từ mã hệ thống:
Gọi u(x) là đa thức tương ứng với thông báo u Bậc của u(x) nhỏ hơn hoặc bằng k-1 Chia x n−k
∗u (x) cho g(x) ta được
x n−k u ( x )=q ( x ) g ( x )+a(x )
Trong trường GF(2) ta suy ra được
x n−k u ( x )+a (x)=q ( x ) g ( x )
Vì x n−k∗u ( x )+a( x) là bội của g(x) nên nó là đa thức mã Đa thức mã này có
k bit sau là k bit thông báo, đó chính là từ mã hệ thống dạng 2 tương ứng với thông báo u
Ví dụ: Cho mã vòng C(7,4) có ma trận sinh g ( x )=(1+x +x3) Thông báo u=1011, ta mã hóa u thành từ mã hệ thống dạng 2 như sau:
Ta có: u ( x )=1+ x2 Nhân u ( x ) với x n−k
=x3 rồi chia cho g(x) ta được
x3 ∗(1+ x ¿¿2)=x3
+x5
=x2
∗(1+x +x3)+x2
¿
w ( x )=x2+x3+x5
w=0011010 là từ mã hệ thống dạng 2 tương ứng của u.
Trang 6c Ma trận kiểm tra mã vòng:
Ta có thể kiểm tra từ ma trận sinh hoặc ma trận sinh hệ thống Ngoài ra, đối với mã vòng chung ta có một cách xác định ma trận kiểm tra nhanh chóng hơn
Ta có thể đặt: x n+1=g ( x )∗h( x)
Ta gọi h(x ) là đa thức đối ngẫu của g ( x ) Do h ( x ) có bậc k nên ta có thể biểu diễn: h ( x )=h0+h1x +…+ h k x k(h0=h k=1)
Gọi v ( x )=a0+a1x+…+a n −1 x n−1 là đa thức mã tương ứng với từ mã
v=(a0a1… a n−1) Chúng ta có thể biểu diễn như sau trong q (x) có bậc nhỏ hơn hoặc bằng k-1
v ( x )=q (x )∗g(x)
=> v ( x )∗h( x )=q ( x )∗g ( x )∗h ( x )=q ( x )∗(x n+1)=q ( x )+x n
∗q (x)
của x k , x k +1 , … , x n−1 trong v ( x )∗h(x) bằng 0 Từ đó ta suy ra được các đẳng thức sau:
∑
i=0
k
h k−i a i=0
∑
i=0
k
h k−i a i+1= 0
…
∑
i=0
k
h k−i a i+n−k−1= 0
Từ các đẳng thức này ta suy ra tích các vecto sau bằng 0:
(a0a1… a n−1)∗(h k h k−1 … h00 … 0) T= 0
Trang 7(a0a1… a n−1)∗(0 hk h k−1 … h0… 0) T
= 0
…
(a0a1… a n−1)∗(0 … 0 hk h k−1 … h0)T= 0
Ta đặt
Thì v∗H T=0 => H là ma trận kiểm tra mã vòng.
Ví dụ: Cho mã vòng C(7,4) có ma trận sinh là g ( x )=(1+x +x3) Tìm ma trận kiểm tra H
Giải: Từ g(x) ta suy ra h ( x )=(1+ x+x2+x4) Ma trận kiểm tra
H 3 ×7=[1 0 1 1 1 0 00 1 0 1 1 1 0
0 0 1 0 1 1 1]
II – Các loại mã vòng:
Loại mã vòng được ứng dụng rất rộng rãi là mã BCH Mã BCH có tên
viết tắt của 3 người sáng lập ra nó là Bose, Chaduhuri và Hocquenghem,
nó là một loại mã sửa lỗi vòng ngẫu nhiên quan trọng, có khả năng sửa
được nhiều lỗi Trong BCH có 2 lớp con là mã BCH nhị phân và mã
BCH không nhị phân (Mã Reed - Solomon) Ta sẽ tìm hiểu về 2 loại mã
này
1 Mã BCH nhị phân :
- Xây dựng 1 mã BCH nhị phân gồm các thông số sau:
Trang 8 Độ dài từ mã: n=2 m−1
Số bit kiểm tra: n−k ≤ mt
Khoảng cách Hamming: d min ≥ 2 t+1
Tìm ma trận kiểm tra và đa thức sinh ta sử dụng định lí sau:
) có đa thức tối thiểu là 1 đa thức căn bản bậc m Thì mã có ma trận sau làm ma trận kiểm tra là 1 mã vòng có khoảng cách Hamming lớn hơn hoặc bằng 2t+1, trong đó mỗi phần tử trong ma trận bên dưới được thay thế bằng vecto m thành phần tương ứng của nó.
Đa thức sinh của bộ mã là đa thức bội số chung nhỏ nhất của các đa thức tối thiểu của các phần tử a,a3
, a5, … , a 2 t −1
Ví dụ: Với m=4, t=2 thì mã BCH có chiều dài từ mã là
n=2 m−1=15
và có khoảng cách Hamming d ≥5
Cho a là phần tử có đa thức tối thiểu là đa thức căn bản có bậc 4 sau
f1 (x )=1+x +x4
Chúng ta có ma trận kiểm tra của bộ mã như sau:
H=[1 a a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14
1 a3 a6 a9 a12 a15 a18 a21 a24 a27 a30 a33 a36 a39 a42]
Trang 9Thay mỗi phần tử a i bằng vecto (m=4 thành phần) tương ứng ta được
Đa thức sinh g(x) là bội số của 2 đa thức tối thiểu tương ứng với phần
tử a và a3, ta có đa thức tối thiểu của a3 là
f3( x )=1+ x + x2+x3+x4
Nên g ( x )=f1(x )∗f3(x )=(1+ x+x4)∗(1+x +x2+x3+x4)
= 1+x4
+x6 +x7 +x8
2 Mã Reed – Solomon :
- Mã Reed – Solomon thường được kí hiệu là RS(n,k)
- Tương tự mã BCH nhị phân, điểm khác biệt giữa 2 loại mã này là các thành phần g0, g1, g2… trong đa thức sinh g(x ) không phải chỉ là các bit nhị phân
mà có thể có dạng là 1 đa thức con Chẳng hạn:
g ( x )=g0(x )+ g3(x )∗x3
+g5(x)∗x5
với{g0 (x )=1+x
g3 (x )=x2
g5( x )=1+ x2
Một số ứng dụng:
Mã Reed – Solomon được sử dụng để sửa các lỗi trong nhiều hệ thống
và có thể kể ra một số như sau:
Các thiết bị lưu trữ (băng từ, đĩa CD, VCD…)
Trang 10 Thông tin di động hay không dây (Điện thoại di động, các đường truyền viba…)
…