Bài giảng Lý thuyết thông tin - Chương 6: Mã vòng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lý thuyết thông tin - Chương 6: Mã vòng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_ly_thuyet_thong_tin_chuong_6_ma_vong.pptx
Nội dung text: Bài giảng Lý thuyết thông tin - Chương 6: Mã vòng
- BÀI GIẢNG MÔN HỌC LÝ THUYẾT THÔNG TIN
- Mã vòng 13.1 Giới thiệu 13.2 Các tính chất của mã vòng 13.3 Ma trận sinh và ma trận kiểm tra của mã 13.4 Mã BCH Trang 2
- Giới thiệu ◼ Định nghĩa ◼ Một mã tuyến tính C(n, k) được gọi là mã vòng nếu w = a0a1 an–2an–1 là một từ mã thì v = an–1a0a1 an–2 cũng là một từ mã. ◼ Nghĩa là dịch vòng (sang trái hay phải) một từ mã thì kết quả cũng là một từ mã. Ở đây qui ước dịch phải. ◼ Đa thức mã ◼ Nếu w = a0a1 an–2an–1 là một từ mã thì w(x) = a0 + a1x + + n - 2 n - 1 an–2x + an–1x là đa thức mã tương ứng với từ mã w. ◼ Ví dụ ◼ Bảng sau đây trình bày một mã vòng C(7, 4). Trang 3
- Ví dụ m w w(x) m w w(x) 0000 0000000 0 0001 0001101 x3 + x4 + x6 1000 1101000 1 + x + x3 1001 1100101 1 + x + x4 + x6 0100 0110100 x + x2 + x4 0101 0111001 x + x2 + x3 + x6 1100 1011100 1 + x2 + x3 + x4 1101 1010001 1 + x2 + x6 0010 0011010 x2 + x3 + x5 0011 0010111 x2 + x4 + x5 + x6 1010 1110010 1 + x + x2 + x5 1011 1111111 1 + x + x2 + x3 + x4 + x5 + x6 0110 0101110 x + x3 + x4 + x5 0111 0100011 x + x5 + x6 1110 1000110 1 + x4 + x5 1111 1001011 1 + x3 + x5 + x6 Trang 4
- Giới thiệu (tt) (i) (i) ◼ w , w (x) (i) (i) ◼ w là từ mã do dịch từ mã w i bit, và w (x) là đa thức mã tương ứng của w(i). w(0) chính là w. i w(i) w(i)(x) 0 1101000 1 + x + x3 1 0110100 x + x2 + x4 = x * (1 + x + x3) = x * w(x) 2 0011010 x2 + x3 + x5 = x2 (1 + x + x3) = x2 * w(x) 3 0001101 x3 + x4 + x6 = x3 (1 + x + x3) = x3 * w(x) 4 1000110 1 + x4 + x5 = x4 + x5 + x7 mod 7 5 0100011 x + x5 + x6 = x5 + x6 + x8 mod 7 6 1010001 1 + x2 + x6 = x6 + x7 mod 7 + x9 mod 7 Trang 5
- Giới thiệu (tt) (i) i (i) p p ◼ w (x) = x * w(x) tuy nhiên nếu w (x) có x với p ≥ n thì x được thay bằng xp mod n. ◼ Mặc khác trên trường GF(2) chúng ta có xn + j = xj * (xn + 1) + xj hay xn + j mod (xn + 1) = xj ◼ Bổ đề 13.1 w(i)(x) = [xi * w(x)] mod (xn + 1) Trang 6
- Các tính chất của mã vòng ◼ Định lý 13.1 ◼ Đa thức mã khác 0 có bậc nhỏ nhất là duy nhất. Hay nói cách khác không tồn tại hai đa thức mã khác 0, khác nhau và cùng có bậc nhỏ nhất. ◼ Chứng minh ◼ Giả sử hai đa thức mã khác nhau, cùng có bậc nhỏ nhất là r, 0 < r < n. r - 1 r g(x) = g0 + g1x + + gr–1x + x r - 1 r f(x) = f0 + f1x + + fr–1x + x ◼ Từ đây suy ra đa thức mã g(x) + f(x) có bậc nhỏ hơn r, mâu thuẫn. Chứng minh hoàn tất. Trang 7
- Các tính chất của mã vòng (tt) ◼ Kí hiệu đa thức mã có bậc nhỏ nhất là g(x) r - 1 r g(x) = g0 + g1x + + gr–1x + x ◼ Định lý 13.2 ◼ Hệ số tự do g0 của g(x) phải bằng 1. ◼ Chứng minh ◼ Giả sử g0 = 0. Suy ra r - 2 r - 1 g(x) = x * (g1 + + gr–1x + x ) r - 2 r - 1 ◼ Đặt f(x) = (g1 + + gr–1x + x ), suy ra f(x) cũng là một đa thức mã. Vì f(x) tương ứng với từ mã được dịch trái 1 bit hay dịch phải (n – 1) bit từ từ mã ứng với g(x). ◼ Mà bậc của f(x) bằng r – 1 < r mâu thuẫn với định nghĩa của g(x). Trang 8
- Các tính chất của mã vòng (tt) ◼ Định lý 13.3 ◼ Một đa thức v(x) trên trường GF(2) có bậc ≤ n – 1 là đa thức mã nếu và chỉ nếu nó là một bội số của g(x). Tức là nó có thể viết v(x) = q(x) * g(x). ◼ Chứng minh ◼ Chiều thuận ◼ Nếu v(x) = q(x) * g(x) và có bậc ≤ n – 1 thì v(x) là đa thức mã. p p v(x) = q(x)* g(x) = q xi * g(x) = q xi * g(x) i i ( ) i=0 i=0 với p là bậc của q(x) và p + r ≤ n – 1. Do xi * g(x) với 0 ≤ i ≤ p là đa thức mã, nên v(x) là đa thức mã vì nó là một tổ hợp tuyến tính của các đa thức mã. Trang 9
- Các tính chất của mã vòng (tt) ◼ Chiều ngược ◼ Nếu v(x) là đa thức mã thì chia v(x) cho g(x) 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). Đối với các đa thức trên trường GF(2) chúng ta có thể suy ra r(x) = q(x) * g(x) + v(x) Nên r(x) là một đa thức mã. Theo định nghĩa của g(x) suy ra r(x) = 0. Chứng minh hoàn tất. ◼ Từ định lý này chúng 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. Trang 10
- Các tính chất của mã vòng (tt) ◼ Định lý 13.4 ◼ Đa thức sinh của một mã vòng C(n, k) có bậc r = n – k. ◼ Chứng minh ◼ Mỗi đa thức mã w(x) là một bội số của g(x) w(x) = q(x) * g(x) k k ◼ Có 2 từ mã nên có 2 đa thức q(x). Suy ra bậc của q(x) là k – 1. Suy ra bậc của g(x) là n – k. ◼ Từ định lý này đa thức sinh g(x) có thể được biểu diễn như sau n – k g(x) = g0 + g1x + + gn – kx trong đó g0 = gn – k = 1. Trang 11
- Các tính chất của mã vòng (tt) ◼ Định lý 13.5 n ◼ Đa thức sinh của mã vòng C(n, k) là một ước số của x + 1. ◼ Chứng minh ◼ Bổ đề 13.1 suy ra g(i)(x) = [xi * g(x)] mod (xn + 1) xi * g(x) = q(x) * (xn + 1) + g(i)(x) Chọn i = k q(x) = 1 tức xk * g(x) = (xn + 1) + g(i)(x) xn + 1 = xk * g(x) + g(i)(x) Do g(i)(x) là một đa thức mã nên g(i)(x) là một bội của g(x), xn + 1 là một bội của g(x). Chứng minh hoàn tất. Trang 12
- Các tính chất của mã vòng (tt) ◼ Định lý 13.6 n ◼ Nếu g(x) là một đa thức có bậc (n – k) và là ước số của (x + 1) thì g(x) sinh ra mã vòng C(n, k), hay nói cách khác g(x) là đa thức sinh của một mã vòng C(n, k) nào đó. ◼ Chứng minh k – 1 ◼ Xét k đa thức g(x), x * g(x), , x * g(x). Các đa thức này đều có bậc ≤ n – 1. Gọi v(x) là một tổ hợp tuyến tính của k đa thức này với các hệ số ai GF(2). k – 1 v(x) = a0g(x) + a1x * g(x) + + ak – 1x * g(x) v(x) là một đa thức có bậc ≤ n – 1 và là bội số của g(x). Trang 13
- Các tính chất của mã vòng (tt) k ◼ Có tất cả 2 tổ hợp tuyến tính v(x) khác nhau và tạo nên một không gian tuyến tính của các đa thức mã với g(x), x * g(x), , xk – 1 * g(x) là các đa thức làm cơ sở. Chúng ta chứng minh rằng bộ mã tương ứng với không gian này là mã vòng. Gọi n – 1 w(x) = b0 + b1x + + bn – 1x là một đa thức của không gian. Chúng ta chứng minh (1) 2 n – 1 w (x) = bn – 1 + b0x + b1x + + bn – 2x cũng là một đa thức của không gian. Trang 14
- Các tính chất của mã vòng (tt) ◼ Theo Bổ đề 13.1 chúng ta có w(1)(x) = [x * w(x)] mod (xn + 1) Dựa vào biểu diễn của v(x) và w(1)(x) chúng ta suy ra n (1) x * w(x) = bn – 1(x + 1) + w (x) Do v(x) và (xn + 1) đều là bội của g(x) nên w(1)(x) cũng là bội của g(x). Suy ra w(1)(x) cũng là đa thức mã. Hoàn tất chứng minh. Trang 15
- Ma trận sinh n−k +1 k−1 g g g g 0 0 0 0 1 2 n−k 0 g 0 g1 g n−k −1 g n−k 0 0 G = 0 0 g g g g 0 k n 0 n−k −2 n−k −1 n−k 0 0 0 g 0 g1 g 2 g n−k ◼ Ví dụ ◼ Tìm một mã vòng C(7, 4). ◼ Theo các tính chất của mã vòng suy ra đa thức sinh của mã có bậc bằng 3 và là một ước số của x7 + 1. Phân tích đa thức này ra thừa số chúng ta được Trang 16
- Ví dụ x7 + 1 = (1 + x)(1 + x + x3)(1 + x2 + x3) ◼ Chọn chẳng hạn g(x) = (1 + x + x3) 1 1 0 1 0 0 0 0 1 1 0 1 0 0 G = 4 7 0 0 1 1 0 1 0 0 0 0 1 1 0 1 Trang 17
- Mã vòng dạng hệ thống ◼ Từ dạng hệ thống loại 1 chúng ta có thể dịch vòng k bit để biến đổi sang dạng hệ thống loại 2 và ngược lại. 1 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 G = G = 4 7 0 0 1 1 0 1 0 ht(4 7) 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 ◼ Mã hóa thành từ mã hệ thống ◼ u(x) là thông báo, w(x) là từ mã hệ thống loại 2 tương ứng. xn–k * u(x) = q(x) * g(x) + a(x) w(x) = xn–k * u(x) + a(x) = q(x) * g(x) Trang 18
- Ví dụ 3 ◼ Cho mã vòng C(7, 4) có ma trận sinh là g(x) = (1 + x + x ). Hãy mã hoá thông báo u = 1010 thành từ mã hệ thống dạng 2. u(x) = 1 + x2. Nhân u(x) với xn–k = x3 rồi chia cho g(x) chúng ta được. x3 * (1 + x2) = x3 + x5 = x2 * (1 + x + x3) + x2 ◼ Từ đây suy ra w(x) = x2 + x3 + x5 w = 0011010 là từ mã hệ thống dạng 2 tương ứng với u. Trang 19
- Ma trận kiểm tra của mã vòng ◼ Có một cách khác để tìm ma trận kiểm tra của mã vòng xn + 1 = g(x) * h(x) ◼ h(x) được gọi là đa thức đối ngẫu của g(x). h(x) có bậc k k h(x) = h0 + h1x + + hkx ◼ Ma trận sau là một ma trận kiểm tra của mã vòng k+1 n−k −1 h h h h 0 0 0 k k −1 k −2 0 0 hk hk −1 h1 h0 0 0 H = 0 0 h h h h 0 (n−k ) n k 2 1 0 0 0 0 hk hk −1 hk −2 h0 Trang 20
- Ví dụ 3 ◼ Cho mã vòng C(7, 4) có ma trận sinh là g(x) = (1 + x + x ). Từ đây suy ra h(x) = (1 + x + x2 + x4) ◼ Ma trận kiểm tra của bộ mã là 1 0 1 1 1 0 0 H = 0 1 0 1 1 1 0 3 7 0 0 1 0 1 1 1 Trang 21
- Ứng dụng trường GF(2m) để xây dựng mã vòng ◼ Định lý 13.7 m ◼ Cho a là một phần tử khác 0 của trường GF(2 ) có chu kỳ là n, đa thức tối thiểu f(x) của a có bậc là m. Thì mã có ma trận sau làm ma trận kiểm tra là một mã vòng C(n, n – m), trong đó mỗi phần tử trong ma trận bên dưới được thay thế bằng vectơ m thành phần tương ứng của nó. 2 n – 2 n–1 Hm n = [1 a a a a ] Hơn nữa mã vòng này có đa thức sinh chính là f(x). ◼ Ví dụ 4 ◼ Xét trường GF(2 ) và a có đa thức tối thiểu là f(x) = 1 + x + x4 Trang 22
- Ứng dụng trường GF(2m) để xây dựng mã vòng (tt) ◼ Từ đây suy ra ma trận kiểm tra của mã vòng (15, 11). 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 H = 4 15 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 2 3 4 ◼ Nếu đa thức tối thiểu của a là f(x) = 1 + x + x + x + x thì a có chu kỳ là 5 và các phần tử 1, a, , a4 được biểu diễn như sau. 1 = (1000) a3 = (0001) a = (0100) a4 = (1111) a2 = (0010) Trang 23
- Ứng dụng trường GF(2m) để xây dựng mã vòng (tt) ◼ Từ đây suy ra ma trận kiểm tra của mã vòng (5, 1) 1 0 0 0 1 0 1 0 0 1 H = 4 5 0 0 1 0 1 0 0 0 1 1 Trang 24
- Mã BCH nhị phân ◼ Do Bose, Chaudhuri và Hocquenghem sáng lập ra. ◼ Là mã vòng có khả năng sửa được nhiều lỗi. ◼ Đối với các số nguyên dương m và t bất kỳ chúng ta sẽ xây dựng một mã BCH nhị phân có các thông số sau: Độ dài từ mã: n = 2m – 1 Số bit kiểm tra: n – k ≤ mt Khoảng cách Hamming: dmin ≥ 2t + 1 Trang 25
- Định lý ◼ Định lý 13.8 m ◼ Cho a là một phần tử của trường GF(2 ) có đa thức tối thiểu là một đ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à một mã vòng có khoảng cách Hamming ≥ 2t + 1, trong đó mỗi phần tử trong ma trận bên dưới được thay thế bằng vectơ m thành phần tương ứng của nó. 1 a a 2 a n−2 a n−1 3 6 3(n−2) 3(n−1) 1 a a a a H = 1 a 5 a10 a 5(n−2) a 5(n−1) 2t−1 2(2t−1) (2t−1)((n−2) (2t−1)((n−1) 1 a a a a Trang 26
- Định lý (tt) ◼ Hơn nữa đa thức sinh g(x) 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, , a2t–1. ◼ Bổ đề 13.2 (y − y ) ◼ Ma trận A sau có định thức bằng i j i j với i, j {1, 2, , r}. Định thức này được gọi là định thức Vandermonde. 1 1 1 y y y 1 2 r 2 2 2 A = y1 y2 yr r−1 r−1 r−1 y1 y2 yr Trang 27
- Ví dụ ◼ Cho m = 4, t = 2 chúng ta sẽ xây dựng một mã vòng có chiều dài từ mã là 24 – 1 = 15 và có khoảng cách Hamming d ≥ 5. Việc xây dựng sẽ dựa vào trường GF(24). ◼ Gọi a là phần tử có đa thức tối thiểu là đa thức căn bản bậc 4 4 sau f1(x) = 1 + x + x 4 ◼ Đây chính là trường GF(2 ) trong ví dụ ở slide 250. m ◼ a có chu kỳ n = 2 – 1 = 15. Chúng ta có ma trận kiểm tra của bộ mã như sau. 1 a a 2 a3 a 4 a5 a6 a7 a8 a9 a10 a11 a12 a12 a14 H = 3 6 9 12 15 18 21 24 27 30 33 36 39 42 1 a a a a a a a a a a a a a a i ◼ Thay mỗi phần tử a bằng vectơ 4 thành phần tương ứng Trang 28
- Ví dụ (tt) 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 H = 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 Trang 29
- Ví dụ (tt) ◼ Đa thức sinh g(x) là bội số của hai đa thức tối thiểu tương ứng với phần tử a và a3. 3 ◼ Theo ví dụ ở slide 250, đa thức tối thiểu của a là 2 3 4 f3(x) = 1 + x + x + x + x . ◼ Từ đây suy ra g(x) = f1(x) * f3(x) = (1 + x + x4) * (1 + x + x2 + x3 + x4) = 1 + x4 + x6 + x7 + x8 ◼ Chú ý ◼ Trong trường hợp đa thức tối thiểu của a không phải là đa thức căn bản, chúng ta sẽ tìm được mã vòng có chiều dài n 2m + 1, với n là chu kỳ của a. Trang 30