Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 29

Bài 12 Mã khối tuyến tính

1. Giới thiệu
2. Các khái niệm và nguyên lý hoạt động
3. Vấn đề phát hiện sai và sửa sai
4. Một số giới hạn

Trang 257
Giới thiệu
 Mã khối tuyến tính được xây dựng dựa trên các kết quả của đại
số tuyến tính là một lớp mã được dùng rất phổ biến trong việc
chống nhiễu.
 Định nghĩa
 Một mã khối có chiều dài n gồm 2k từ mã được gọi là mã tuyến
tính C(n, k) nếu và chỉ nếu 2k từ mã hình thành một không gian
vectơ con k chiều của không gian vectơ n chiều gồm tất cả các
vectơ n thành phần trên trường GF(2).
 Mã tuyến tính C(n, k) có mục đích mã hoá những khối tin (hay
thông báo) k bit thành những từ mã n bit. Hay nói cách khác
trong n bit của từ mã có chứa k bit thông tin.
 Qui ước viết dấu + thay cho dấu  và dấu + sẽ được hiểu theo
ngữ cảnh.

Trang 258
Cách biểu diễn mã – Ma trận sinh
 Mã tuyến tính C(n, k) là một không gian con k chiều của không
gian vectơ n thành phần,   k từ mã độc lập tuyến tính,
chẳng hạn (g0, g1, ..., gk–1) sao cho mỗi từ mã trong C là một tổ
hợp tuyến tính của k từ mã này (với ai  {0, 1}  i = 0, 1, ...,
k–1)
w = a0g0 + a1g1 + ... + ak–1gk–1
 k từ mã ⎡nàyg 0tạo⎤ thành một ma trận cấp kL n như sau ⎤
⎡ ⎢ g 00 g 01 g 0(n 1) ⎥
⎢ g ⎥ ⎥
1 ⎥ ⎢
Gk n  ⎢
⎢ M  ⎢ g10 g11 L g1(n 1) ⎥
⎥ ⎢ M M M ⎥
⎢ g g L g (k 1)(n 1)

 Với g = (g , g , …,
i ⎣ i0k 1 i1 ⎢⎣g(ki(n–1)
1)0), vớigi(k=1)1
0, 1, …, k–1.
⎥⎦
⎦ Trang 259
Cách mã hóa
 Nếu u = (a0, a1, …, ak–1) là thông tin cần được mã hoá thì từ mã
w tương ứng với u được ta bằng cách lấy u nhân với G
w = u  G = (a0, a1, …, ak–1)
hay
w = a0g0 + a1g1 + … + ak–1gk–1
 Vì các từ mã tương ứng với các thông báo được sinh ra bởi G
theo cách trên nên G được gọi là ma trận sinh của bộ mã.

Trang 260
Ví dụ
 Cho ma trận sinh của một mã tuyến tính C(7, 4) sau
⎡ g0 ⎡1 1 0 1 0 0 0⎤
⎢⎤ g ⎥ 0 ⎥⎥
1⎥ ⎢ 0 1 1 1 0
G 47  ⎢  ⎢0 1
⎢⎢1g 2 ⎢1 1 0 0 0 1 ⎥
g ⎥
⎥⎥⎣ 3 ⎦ ⎣ 0 1 0 0 0 1
 Nếu u = (1101) là thông tin cần mã hoá thì từ mã tương ứng là

w = 1.g0 + 1.g1 + 0.g2 + 1.g3 =
(1100101)
 Bất kỳ k từ mã độc lập tuyến tính nào cũng có thể được dùng để
làm ma trận sinh cho bộ mã.
 Một bộ mã tuyến tính (hay còn gọi là không gian mã) có thể có
nhiều ma trận sinh khác nhau cùng biểu diễn.
 Trang 261
Cách giải mã
 Lấy ma trận sinh như ở trong ví dụ trên.
 u = (a , a , a , a ) là thông báo, w = (b , b , b , b , b , b , b ) là
0 1 2 3 0 1 2 3 4 5 6
từ mã tương ứng.
 Chúng ta có hệ phương trình sau liên hệ giữa u và w.

w=uG  b0 = a0 + a1 + a3
(1)
1
⎡ g0 ⎤ ⎡ 1 0 1 0 0 0 b1 = a0 + a2
⎢1 0 1 1 1
⎤⎥
0 ⎥ (2)
G47  ⎢ ⎥ ⎢0
1
b
b 2 =
= aa11 + a3
⎢ gg 2 ⎥ ⎢0 0 1 01 00 00 10 ⎥⎥ 4
1⎦ (3)
b5 = a2
bb3 == aa0++ aa1 (4)

6 2 3


Trang 262
Cách giải mã (tt)
 Chọn bốn phương trình đơn giản nhất để giải các ai theo các bj.
Chẳng hạn các phương trình (4), (5), (6), (7) chúng ta giải được
⎡1 1 0 1 0 0 0⎤
a0 = b3 + b4
⎡ g0 ⎤
⎢g ⎥ ⎥0 a1 = b4
1
⎥  ⎢⎢0 0 1 1 1
G 47  ⎢ 1
⎢ g
⎢1 2 ⎢ 0 ⎥ a2 = b5
g
1 ⎥⎥
⎥ a3 = b5 + b6
⎣ 3⎦ ⎣ 1 0 0 0 1 1

 Hệ phương trình trên được gọi là hệ phương trình giải mã.
⎦ 0 1 0 0 0
 Có thể có nhiều hệ phương trình giải mã khác nhau nhưng sẽ
cho kết quả như nhau.
w = 1001011  u=?
w = 0101110  u=?

Trang 263
Mã tuyến tính hệ thống
 Một mã tuyến tính C(n, k) được gọi là mã tuyến tính hệ thống
nếu mỗi từ mã có một trong hai dạng sau
 Dạng 1: Từ mã bao gồm phần thông tin k bit đi trước và phần
còn lại (gồm n – k bit) đi sau (phần này còn được gọi là phần dư
thừa hay phần kiểm tra).

k bit thông tin n – k bit kiểm tra


 Dạng 2: Ngược của dạng 1, từ mã bao gồm phần kiểm tra đi
trước và phần thông tin đi sau.

n – k bit kiểm tra k bit thông tin

Trang 264
Ma trận sinh hệ thống
⎡ ⎤

⎢⎢1 1 L L ⎥
P0 P0 P0(nk


Gkn  kk 
I | Pk(nk)  0 0 1
L
1)
M

⎢0 ⎢ 2 L P1(nk ⎥
0 L P1 P1 L
⎢0 1P(k 1)0 P(k 1)1 1)1)(nk 1)
P(k

⎢ 20 4 43 10 4 4 4 414k(nk)
1 44kk 44 2 4 4 4 4 4 4 4⎥
⎢ ⎥ M M
 Ví dụ M M
3
⎣ ⎥ ⎦
M Mã hóa
⎡1 0 0 0
1 ⎥⎥ u = 1101  w = u  Ght =
1 1 0⎤ 1101000
Ght (47)  ⎢⎢0 1
⎢0 Giải mã
⎢0 1 0 0⎥⎥
⎣ 1 ⎦ w = 0110100  u = 0110
0 1 Trang 265
Ví dụ
 Dùng các phép biến đổi sơ cấp biến đổi các ma trận sinh sau
thành ma trận sinh hệ thống.

⎡1 1 0 1 0 0 1 ⎤ ⎡1 1 0 1 0 0 1 ⎤
1 ⎥⎥ 1
⎢ ⎢
G47  ⎢⎢00 1 1 0 1 0 1 G47  ⎢⎢1 0 1 0 1 0 ⎥
⎢1 1 ⎥
0 1 1 0 0 ⎥⎥
⎣ 0 ⎥⎢
⎦ 0 0 1 0 1
 0 0 đổi
Không phải mọi ma trận sinh đều có thể biến 1 1thành
0 0ma
⎥ trận
sinh hệ thống.
⎣1 0 0 1 0 1 1 ⎦

Trang 266
Ví dụ (tt)
 Hãy thực hiện phép mã hóa và giải mã trên ma trận sinh sau.
⎡1 1 0 0 1 0 0 ⎤
⎢1 1⎥
0 1 0 1 0 ⎥
G 47  ⎢
⎢0 0 0 1 1 0 1⎥
⎢⎣1 0 0 0 0 1 1 ⎥⎦

u = a1 a2 a3 a4 thì w = b1 b2 b3 b4 b5 b6 b7

 Mã hóa u = (1101)  w = (1110010)


 Giải mã w = (1011000)  u = (0110)
Trang 267
Phát hiện sai và sửa sai
 Nguyên lý phát hiện sai: Kiểm tra xem tổ hợp nhận có phải là
từ mã hay không, nếu không thì tổ hợp nhận là sai.
 Nguyên lý sửa sai: Kiểm tra xem tổ hợp nhận có khoảng cách
Hamming gần với từ mã nào nhất, thì đó chính là từ mã đúng
đã được phát đi.
 Nguyên lý này được gọi là nguyên lý khoảng cách Hamming
tối thiểu.
 Không gian bù trực giao
 Cho S là một không gian con k chiều của không gian V n chiều.
Gọi Sd là tập tất cả các vectơ v trong V sao cho  u  S, u  v =
0 (phép nhân vô hướng của hai vectơ). Sd được chứng minh là
một không gian con của V và có số chiều là n – k. Sd được gọi là
không gian bù trực giao của S và ngược lại.

Trang 268
Cách phát hiện sai
 Hệ quả
 Mỗi ma trận G bất kỳ kích thước k  n với k hàng độc lập tuyến
tính luôn tồn tại ma trận H kích thước (n – k)  n với (n – k)
hàng độc lập tuyến tính sao cho G  HT = 0, trong đó HT là ma
trận chuyển vị của ma trận H.
 Nói cách khác các vectơ hàng của H đều trực giao với các vectơ
hàng của G.
 Cách phát hiện sai
 Nếu v là một từ mã được sinh ra từ ma trận sinh G có ma trận
trực giao tương ứng là H thì
v  HT = 0
 Ngược lại nếu
v  HT = 0
thì v là một từ mã.
Trang 269
Ma trận kiểm tra
 Ma trận kiểm tra
 Ma trận kiểm tra của một bộ mã có ma trận sinh Gkn là ma trận
H có kích thước (n – k)  n sao cho
G  HT = 0
 Syndrome – vectơ sửa sai (corrector)
 v  HT được gọi là syndrome hay vectơ sửa sai của v và được kí
hiệu là s(v). v là từ mã khi và chỉ khi s(v) = 0.
 Ví dụ
 Tìm ma trận kiểm tra ứng với ma trận sinh sau.
⎡1 1 0 1 0 0
0⎤
⎢1 0 1 1 1 ⎥
⎢0 0
G 4 7  ⎢ 1
⎢⎥1
0 1 0 0 0 1 ⎥⎥
⎣ 1⎦
0 Trang
1 2700 0
Ma trận kiểm tra (tt)
 H có kích thước 3  7.
 Gọi h = (a0, a1, a2, a3, a4, a5, a6) là một hàng bất kỳ của H. h
trực giao với mọi hàng của G nên chúng ta có hệ bốn phương
trình sau
⎡1 1 0 1 0 0 a0 + a1 + a3 =
0⎤ 0⎥⎥ 0 a0 + a2 + a3 + a4 =
⎢⎢
G 47  ⎢01 1
⎢1 0 1 1 1 0 0 a1 + a5 + a6 =
⎥⎥
⎣ 1 0 0 0 1 1 a00 + a2 + a6
 Vấn đề là tìm
⎦ 0được 1 03 vectơ
0 0 h độc lập tuyến tính là nghiệm
= 0 của
hệ phương trình trên.
 Chú ý, hệ phương trình trên có thể cho phép chúng ta giải bốn
biến theo ba biến còn lại. Chẳng hạn chúng ta giải a3, a4, a5, a6
theo a0, a1, a2 như sau.

Trang 271
Ma trận kiểm tra (tt)
a3 = a0 + a1
a4 = a1 + a2
a5 = a0 + a1 + a2
a6 = a0 + a2
 Cho (a0, a1, a2) lần lượt các giá trị (1, 0, 0), (0, 1, 0), (0, 0, 1)
(độc lập tuyến tính với nhau), ta xác định được (a3, a4, a5, a6)
lần lượt như sau (1, 0, 1, 1), (1, 1, 1, 0), (0, 1, 1, 1).
 Vậy H là
⎡1 0 0 1
37 ⎢ 10 11
⎢⎣ 0⎥
 Chú ý 1
0⎤
 Có thể tồn tại nhiều ma trận kiểm tra khác nhau của cùng một
bộ mã và H  ⎢có
chúng đều 0 khả
1 0năng1 kiểm tra như nhau.
Trang 272
Ma trận kiểm tra (tt)
 Bổ đề 12.1
 Nếu ma trận sinh hệ thống của một mã tuyến tính hệ thống có
dạng
Gkn = [Ikk | Pk(n–k)]

thì
H(n–k)n = [Pk(n–k)T | I(n–k)(n–k)]
là một ma trận kiểm tra của mã.
 Tương tự nếu ma trận sinh có dạng
Gkn = [Pk(n–k) | Ikk]
thì ma trận kiểm tra có dạng
H
(n–k)n = [I(n–k)(n–k) | Pk(n–
Pk(n–k) là ma trận chuyển
T vị của ma trận Pk(n–k)
k) ]
T
. trong đó I là (n–k)(n–k)
ma trận đơn vị kích thước (n–k)(n–k),
còn Trang 273
Chứng minh
⎡ ⎤
L ⎥

⎢1 1 L P0(n  k ⎥
P0 P0
1)

G k   ⎢0 0 0 1 ⎥
⎢ 2 L L M ⎥
n P1(n  k
P1 P11 L
⎢0 0 L 1)1)(n  k 1)
1P(k 1)0 P(k 1)1 P(k
⎢⎢1 44k 20 4 43 10 4 4 4 4M4k (n
44 2
k
4 4 4 4 4 4 4⎥
⎢ k ⎥ M
3M M )
⎣ ⎥ ⎦
M L
⎡ P
0 P1 P(k
1 0 L 0⎥⎤

⎢ 0 1 L 0
H (nk)n  ⎢⎢ 0 0 1)0 ⎥M⎥
⎢ M M L M M ⎥
P0 P1 L P(k 0 L
⎢P0(nk 1) P1(nk P(k 1)(nk 1) 1⎥

⎢1 41 4 4 4(nk)k
4 4144 2 4 4 4 4 4 1)14 4 43 (nk)(nk)
1 44 2 4 43
1)
Trang 274 0 M
Chứng minh (tt)
 Ta chứng minh
G  HT = 0
 Chứng minh điều này  việc chứng minh
gi  hj = 0  i = 0, …, k–1, j = 0, …, n–k–1
trong đó
gi = (gi0, …, gi(n–1)) là hàng i của G còn
hj = (hj0, …, hj(n–1)) là hàng j của ma trận H.
Thật vậy
n 1 k 1 nk

g i  h j  1 g is h js  g is h js  
g is h js s  0 s  0s  k

 h ji  g i(k  j)  Pij  Pij  0

Trang 275
Ví dụ
 Tìm ma trận H cho các ma trận sinh sau
1 0 0 1 0
⎡1 0 0 0 1 1 0 ⎤
⎢0 ⎥  0 1 0 0⎤ 0 1 ⎥⎥
Ght (47)  ⎢⎡1 G47
⎢0 ⎢ 0 0 1 0 1⎥
⎢0 ⎢ 0 1
1 0 0 0 1 ⎥
1
⎥ 1 ⎥ ⎢ ⎥
⎣ 0 0 1 1 0 1⎦ 0 0 0 1 1
1⎦
⎢1 ⎣1
⎡1 0 0 0 1 1 0 ⎤ 0
⎢1
⎢ 10 0 0 11 00 11 ⎥1
G47  ⎥
⎢0 0 0 1 1 0 1⎥
⎢ ⎥
⎣1 0 1 0 0 0
1⎦

Trang 276
Khả năng chống nhiễu tương đương
 Hai mã tuyến tính C(n, k) được gọi là có khả năng chống nhiễu
tương đương nếu chúng có cùng khoảng cách Hamming.
 Bổ đề 12.2
 Nếu hoán vị hai cột của một ma trận sinh sẽ tạo ra một bộ mã
mới có khả năng chống nhiễu tương đương với bộ mã cũ. Nói
cách khác việc hoán vị hai cột của ma trận sinh không làm thay
đổi khả năng chống nhiễu.
 Bổ đề 12.3
 Khoảng cách Hamming của một mã tuyến tính bằng trọng số
nhỏ nhất khác 0 của bộ mã.

Trang 277
Bổ đề
 Bổ đề 12.4
 Gọi H là ma trận kiểm tra của một mã tuyến tính, nếu một từ
mã có trọng số d thì tồn tại d cột của H có tổng bằng 0.
 Hệ quả
 Nếu trong ma trận kiểm tra H của một mã tuyến tính số cột phụ
thuộc tuyến tính nhỏ nhất là d thì khoảng cách Hamming của bộ
mã đó bằng d.
 Ví dụ 12.5
⎡1 0 0 1 d = 3 (3, 4, 6)
37 ⎢ 10 11
⎢⎣ 0⎥
10 ⎤
Trang 278
Cách sửa sai
 Vectơ lỗi
 Là vectơ biểu diễn các vị trí lỗi giữa từ mã truyền và tổ hợp
nhận, mỗi vị trí lỗi được biểu diễn bằng bit 1, còn lại là 0.
 Nếu từ mã truyền là w, vectơ lỗi là e và vectơ nhận là v thì
v=w+e
e = v +
w w=e
+v
 Ví dụ
 w = 1011011, e = 0010100  v = w
+ e = 1001111.
 w = 0110010, v = 0010011  e = w
Trang 279
Tập giải mã - coset
 Cho S là một không gian con các từ mã của không gian V, coset
của một phần tử z  V đối với S được kí hiệu là z + S và được
định nghĩa như sau
z + S = {z + w: w  S}
 Bổ đề 12.5
 Tập coset z + S có các tính chất sau.
(1) z  z + S.
(2) Nếu z  S thì z + S = S.
(3) Nếu v  z + S thì v + S = z + S.
(4) Nếu v  z + S thì v + S và z + S rời nhau.

Trang 280
Sơ đồ giải mã
 Với mỗi vectơ nhận v chúng ta sẽ có một tập coset tương ứng là
v + S.
 Trong tập này chọn phần tử có trọng số nhỏ nhất, chẳng hạn là
z. Phần tử này thường được gọi là coset leader.
 Thông báo từ mã được truyền chính là w = v + z.
 Bổ đề 12.6
 Các phần tử của một tập coset có cùng một syndrome như nhau.
Các tập coset khác nhau có các syndrome khác nhau.
 e = (a1, a2, ..., an), các cột của H lần lượt bằng h1, h2, ..., hn thì
n

s(e)  e  H T  
i1 ai i
h  a0
i
ai i

h
Trang 281
Sơ đồ giải mã (tt)
 Nghĩa là s(e) bằng tổng những cột ở những vị trí tương ứng với
những vị trí bằng 1 của e.
 Nếu vị trí lỗi sai là 3 thì syndrome của vectơ nhận sẽ là cột số 3
của H.
⎡1 1 0 1 0 0 0⎥⎤
⎢1 ⎡1 0 0 1 0 1 1 ⎤
0 1 1 1 0 0⎥ ⎢0 0⎥
⎢ 1 0 1 1 1 ⎥
G 47  ⎢⎢0 1 0 0 0 1 1 ⎥ H 37 
⎢1
0⎥ 1 0 0 0 ⎢0 0 1 0 1 1
⎣ ⎦
⎣ 1 ⎦ 1⎥
 Tìm vị trí lỗi sai của các vectơ nhận sau đây
v = 0010011  s(v) = ? e=? w=?
v = 0101101  s(v) = ? e=? w=?

Trang 282
Mã tuyến tính Hamming
 Mã tuyến tính Hamming là mã có ma trận H có tính chất giá trị
của cột hi bằng i (i = 1, 2, ...)
⎡0 0 0 1
37 ⎢ 1 1 1⎤
⎢⎢⎣
H⎥  0 1 1 0 0 1
1 1
 Bổ đề 12.7 ⎥
 0
Các mã tuyến tính Hamming đều có khoảng cách Hamming d =
1
3. Vì vậy có thể phát hiện
0 sai 2 bit và sửa sai 1 bit.
1
0
1⎥⎦

Trang 283
Ma trận sinh của mã tuyến tính Hamming
 Xét mã tuyến tính Hamming C(7, 4) có các bit thông tin nằm ở
các vị trí 3, 5, 6, 7. Hãy xác định ma trận sinh G của bộ mã.
 Gọi w = (a1, a2, a3, a4, a5, a6, a7) là một từ mã. Chúng ta có hệ
phương trình sau được dẫn ra từ công thức w  HT = 0.
a4 + a5 + a6 + a7 = 0
a2 + a3 + a6 + a7 = 0
a1 + a3 + a5 + a7 = 0
 Từ đây suy ra công thức tính các bit kiểm tra a1, a2, a4 theo các
bit thông báo a3, a5, a6, a7 như sau
a1 = a3 + a5 + a7
a2 = a3 + a6 + a7
a4 = a5 + a6 + a7
Trang 284
Ma trận sinh của mã tuyến tính Hamming

b1 b2 b3 b4 a1 a2 a3 a4 a5 a6 a7
u= 1 0 1 0 thì w = 1 0 1 1 0 1 0

⎡1 1 1 0 0 0 0
⎢1
0 0 1 1 0 ⎤0 ⎥

G 47  ⎢⎢0 1 0 1 0 1 0
⎢1
⎣ 1 0 1 0 0 1⎥⎥
 Ví dụ ⎦
 Xét mã tuyến tính Hamming C(7, 4) có các bit thông tin nằm ở
các vị trí 1, 2, 3, 4. Hãy xác định ma trận sinh G của bộ mã.
Trang 285

You might also like