Chương 4.3 trình bày các nội dung về chận trên và dưới cho khả năng sửa sai của bộ mã kiểm tra chẵn lẻ. Trong phần này, chúng ta sẽ tập trung giải quyết bài toán liên quan đến chủ đề trên. Mời các bạn cùng tham khảo.
Trang 1Chương 4: Mã sửa sai
4.3 Chận trên và dưới cho khả năng
sửa sai của bộ mã kiểm tra chẵn lẻ
Trang 2Khả năng sửa sai
• Như đã biết, số từ mã tăng sẽ làm giảm khả năng sửa sai của bộ mã Ta sẽ cố gắng định lượng mối
liên hệ này
liên hệ này
• Trong phần này, ta giải quyết bài toán sau: cần
chọn ma trận kiểm tra chẵn lẻ như thế nào để bộ
mã thu được sửa sai được e bit trở lại
• Xét trường hợp e = 1 Ta xây dựng bộ mã sửa sai
được 1 bit
• Nếu bit sai ở vị trí thứ j thì vector hiệu chỉnh
tương ứng là cột thứ j của ma trận chẵn lẻ
Trang 3Khả năng sửa sai
• Ta chọn ma trận chẵn lẻ sao cho n cột của nó
khác nhau đôi một (và khác 0)
• Khi đó mọi dãy sai một bit đều có các vector hiệu
9/30/2010
Huỳnh Văn Kha
• Khi đó mọi dãy sai một bit đều có các vector hiệu chỉnh khác nhau Do đó mọi lỗi sai 1 bit đều sửa
sai được
• Ví dụ, nếu n = 7, k = 4, ta có thể chọn ma trận
chẵn lẻ như sau:
Trang 4ðịnh lý 4.9
Bộ mã kiểm tra chẵn lẻ xác định bởi ma trận A sẽ
sửa sai được e bit trở lại nếu và chỉ nếu mọi tập 2e cột của A đều độc lập tuyến tính
Chứng minh:
Theo định lý 4.8, mọi lỗi sai không quá e bit sẽ được làm đúng nếu và chỉ nếu các mẫu sai ≤ e bit có các
vector hiệu chỉnh phân biệt nhau Nghĩa là nếu và
chỉ nếu không có tổ hợp tuyến tính của e (hoặc ít
hơn) cột nào trong A bằng với một tổ hợp tuyến tính khác (cũng của e cột (hoặc ít hơn) trong A)
Điều này tương đương với mỗi tập 2e cột của A đều
phải độc lập tuyến tính
Trang 5Ví dụ
9/30/2010
Huỳnh Văn Kha
• Có thể thấy mỗi tập gồm 4 cột của A là độc lập
tuyến tính Bộ mã ứng với A có thể sửa sai 2 bit
• Tuy nhiên: c(r1)+c(r8)+c(r9)=c(r3)+c(r4)+c(r6)
• Do đó các dãy sai ở ba cột 1, 8, 9 và các dãy sai ở
ba cột 3, 4, 6 có cùng vector hiệu chỉnh
• Như vậy sai 3 bit chưa chắc sửa được
Trang 6Chận trên và dưới cho khả năng sửa
sai của bộ mã kiểm tra chẵn lẻ
• Giả sử ta cần xây dựng bộ mã kiểm tra chẵn lẻ
sửa sai được e bit (chiều dài từ mã n cố định)
• Vấn đề đặt ra là cần bao nhiêu bit kiểm tra để xây
• Vấn đề đặt ra là cần bao nhiêu bit kiểm tra để xây dựng bộ mã như vậy
• Ta muốn càng ít bit kiểm tra càng tốt Do số bit
kiểm tra càng ít thì số bit thông tin càng lớn và ta
có càng nhiều từ mã
• Tổng quát thì không thể xác định chính xác số bit kiểm tra cực tiểu Nhưng ta có thể ước lượng chận dưới và chận trên như các định lý sau
Trang 7ðịnh lý 4.10
(Chận dưới Hamming cho số bit kiểm tra)
Số bit kiểm tra trong một bộ mã chẵn lẻ sửa sai
được e bit cần thỏa:
9/30/2010
Huỳnh Văn Kha
được e bit cần thỏa:
Trong đó: n = chiều dài từ mã
m = số bit kiểm tra = n - k
Trang 8Chứng minh ñịnh lý 4.10
• Để bộ mã kiểm tra chẵn lẻ sửa sai được e bit trở
lại thì các lỗi sai e bit hoặc ít hơn có các vector
hiệu chỉnh khác nhau đôi một
hiệu chỉnh khác nhau đôi một
• Nếu từ mã có chiều dài n thì số lỗi sai đúng i bit
là tổ hợp chập i của n
• Số các vector hiệu chỉnh là 2m
• Do đó để các vector hiệu chỉnh là duy nhất cho
mỗi lỗi sai e bit trở lại thì:
Trang 9Chú ý
• Chận dưới Hamming cho số bit kiểm tra chính là chận trên Hamming cho số từ mã (định lý 4.3)
• Chận dưới Hamming là điều kiện cần nhưng
không đủ cho việc xây dựng bộ mã kiểm tra chẵn
lẻ sửa sai được e bit
9/30/2010
Huỳnh Văn Kha
lẻ sửa sai được e bit
• Nói cách khác, nếu gọi m0 là số nguyên nhỏ nhất thỏa định lý 4.10 (với n và e cho trước) thì có thể
không có bộ mã nào sửa sai được e bit mà chỉ sử
dụng có m0 bit kiểm tra
• Ví dụ với n = 10, e = 2 ta có m0 = 6 Tuy nhiên
không có bộ mã chẵn lẻ nào sửa sai được 2 bit mà
sử dụng ít hơn 7 bit kiểm tra
Trang 10ðịnh lý 4.11
(Điều kiện Varsharmov-Gilbert-Sacks)
Một bộ mã kiểm tra chẵn lẻ sửa sai được e bit với
chiều dài từ mã là n có thể xây dựng được nếu số
bit kiểm tra m thỏa điều kiện:
Đây là chận trên cho số bit kiểm tra cần thiết cho
việc xậy dựng bộ mã chẵn lẻ sửa sai e bit
Trang 11Chú ý
• Điều kiện trong định lý 4.11 là điều kiện đủ nhưng không cần
• Nói cách khác, cố định n và e, gọi m1 là số nguyên dương nhỏ nhất thỏa định lý 4.11 Thì theo định lý 4.11 có thể xây dựng bộ mã sửa sai e bit sử dụng
9/30/2010
Huỳnh Văn Kha
4.11 có thể xây dựng bộ mã sửa sai e bit sử dụng
m1 bit kiểm tra Tuy nhiên, trong một số trường
hợp, ta cũng có thể xây dựng bộ mã sửa sai e bit
mà chỉ sử dụng ít hơn m1 bit kiểm tra
• Ví dụ với n = 10, e = 2, ta có m1 = 8 Tuy nhiên ta
có thể xây dựng bộ mã sửa sai 2 bit mà chỉ sử
dụng 7 bit kiểm tra như ví dụ sau định lý 4.9
Trang 12Chứng minh ñịnh lý 4.11
• Ta sẽ xây dựng bộ mã thỏa yêu cầu bằng cách chỉ
ra các cột c(r1), c(r2), …, c(rn) của ma trận chẵn lẻ tương ứng
tương ứng
• Các cột này cần phải thỏa điều kiện: mọi tập gồm 2e cột đều độc lập tuyến tính
• Đầu tiên, chọn c(r1) khác 0 tùy ý
• Chọn c(r2) sao cho c(r2) ≠ 0, c(r2) ≠ c(r1)
• Chọn c(r3) sao cho c(r3) ≠ 0, c(r3) ≠ c(r1), c(r3)
≠ c(r2), c(r3) ≠ c(r1)+c(r2)
Trang 13Chứng minh ñịnh lý 4.11
• Giả sử đã chọn được c(r1), c(r2), …, c(rn-1), ta
chọn c(rn) thỏa:
9/30/2010
Huỳnh Văn Kha
Trang 14Chứng minh ñịnh lý 4.11
• Số các tổ hợp nói trên, không vượt quá:
(Chú ý: không nhất thiết tất cả các tổ hợp nói trên phân biệt nhau, do đó số tổ hợp có thể nhỏ hơn)
• Như vậy, nếu tổng trên ≤ 2m thì hiển nhiên ta
chọn được c(rn) Và do đó định lý được chứng
minh