*Trọng lượng của một mã tự là số lượng phần tử khác không của nó và khoảng cách giữa hai mã tự là khoảng giữa hai mã tự.. Khoảng cách d của một mã là trọng lượng nhỏ nhất trong các mã tự
Trang 1TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG
KHOA ĐIỆN -ĐIỆN TỬ
TRUYỀN SỐ LIỆU
ĐỀ TÀI: MÃ KHỐI TUYÊN TÍNH
Nhóm : 2
Đặng Qúy
Nguyễn Hoàng Vỹ
Đoàn Thanh Phong
Trang 2Bài 7 MÃ KHỐI TUYỀN TÍNH
1.Định nghĩa :
Ta có vector thông tin i gồm k bist :
i =(i 1 i 2 , ,i k ) với i i € { 0,1}
ta tạo ra từ mã có độ dài là n :
C=(i1,i2, ,ik, ck+1 , ck+2 , ,cn) với ci €{ 0,1}
Ck+1 , , cn Được gọi là bit kiểm tra
K bits tin (n -k ) bits kiểm tra
* gọi G là mã trận sinh (mã trận tạo mã ) dạng chính tắc :
G(k,n)=[ IK -P]
Khi đó từ mã được tạo ra bằng cách :
C=i.G
Gọi H là ma trận kiểm tra với H =[PT,In-k ]:
H.G=0
Từ mã được tạo ra bằng cách : C.H =0
Trang 3*không gian vectơMột mã tuyến tính với độ dài n và
hạng/số chiều k là một không gian con C với số chiều k của trong đó là trường hữu hạn với q phần tử Mã như vậy gọi là mã q-phân Nếu q = 2 hay q = 3, thì mã đó được gọi tương ứng là mã nhị phân, và mã tam phân Các vectơ trong C được gọi là các mã tự Kích thước của một mã là số
mã tự, và đúng bằng qk
*Trọng lượng của một mã tự là số lượng phần tử khác
không của nó và khoảng cách giữa hai mã tự là khoảng
giữa hai mã tự Khoảng cách d của một mã là trọng lượng nhỏ nhất trong các mã tự khác không, hoặc một cách tương đương, khoảng cách nhỏ nhất giữa hai mã tự khác nhau Mã tuyến tính độ dài n, số chiều k, và khoảng cách d được kí hiệu là mã [n,k,d]
*Ghi chú: Ta sử dụng cơ sở thông thường cho vì mỗi tọa
độ ứng với một kí hiệu được truyền trên "kênh nhiễu" Chỉ khi sử dụng cơ sở này thì khoảng cách Hamming mới
tương ứng với số lỗi sai trong quá trình truyền
Trang 42.Tính chất
A.hội chứng (syndrome) ;S
*Người ta dùng S để phát hiện dữ liệu thu được có sai hay không
*Gọi vector thu được là X=(X1,X2, ,Xn),X€{0,1}
S(x)=x.HT=(SK+1,SK+2, ,Sn)
*Nếu S(x)=0 thì vector thu được hoặc là đúng :x=C hoặc trùng với một trong các từ mã phat đi (đây là sai không phát hiện được )
*Nếu S(x)≠0 thì các vector thu sai thương được chọn là vector S(x) với trọng lượng bé nhỏ
Trang 5B.khoảng cách tối thiểu giữa những từ mã :
*Trong số Haming (W):số bít một trong một tù mã
Ví dụ :
C1=0110011 →w1(C)=4
*Khoảng cách Hamming giữa hai từ mã (d) là số vị trí khác nhau giữa từng cặp bits của hai từ mã
C1=0110011
+ →d(c1,c2)=3
C2=1010111
C3=1100100 →W(c1 + c2 )=3=d(c1,c2)
*Nếu c là từ mã ,trọng lượng tối thiểu là m thì do C.H=0 nên m dòng của H cũng sẻ có tổng bằng 0 (m=dmin)
*Để phát hiện t sai thì d≥t+1
*Để phát hiện và sửa được t sai thì d≥2t+1
*Vì là một không gian con của , toàn bộ mã C (có kích
thước lớn) có thể được biểu diễn chỉ bằng một hệ sinh gồm
ít nhất mã tự (gọi là cơ sở trong đại số tuyến tính) Nếu ghép các mã tự này làm các hàng của ma trận G thì ma trận
đó gọi là ma trận sinh của mã C Khi G có dạng khối
, trong đó là ma trận đơn vị và A là một
ma trận , thì ta nói G nằm ở dạng chuẩn.
*Ma trận H biểu diễn biến đổi tuyến tính có
được gọi là ma trận kiểm tra tính chẵn lẻ) Nếu C là mã với
ma trận sinh G ở dạng chuẩn, G = (I k | A), thì H = (−A t | I n −
k ) là ma trận kiểm tra của C Mã sinh bởi H được gọi là mã
đối ngẫu của C.
Trang 6*Tính chất tuyến tính đảm bảo khoảng cách Hamming nhỏ
nhất d giữa mã tự c0 và bất kì mã tự c ≠ c0 nào là độc lập
với c0 Điều này được suy ra từ tính chất hiệu c − c0 của hai
mã tự trong C cũng là một mã tự (nghĩa là một phần tử của
không gian C), và tính chất d(c, c0) = d(c − c0, 0) Theo các tính chất này,
*Nói cách khác, để xác định khoảng cách nhỏ nhất giữa các
mã tự của một mã tuyến tính, chỉ cần xét khoảng cách giữa các mã tự khác không và mã tự không Mã tự khác không
có trọng lượng nhỏ nhất chính là mã tự gần mã tự không nhất và trọng số đó chính là khoảng cách nhỏ nhất
*Khoảng cách d của một mã tuyến tính C cũng bằng số nhỏ nhất các cột phụ thuộc tuyến tính của ma trận kiểm tra H.
*Chứng minh: Xét c là mã tự có trọng số nhỏ nhất Theo
định nghĩa, nên các cột với phụ thuộc tuyến tính Vì vậy số cột nhỏ nhất phụ thuộc tuyến tính là
nhỏ hơn hoặc bằng d.
*Mặt khác xét một tập hợp nhỏ nhất các cột phụ thuộc
tuyến tính trong đó là tập hợp các chỉ số các
sao cho nếu Ta nhận thấy vì
Do đó ta có , chính là số nhỏ nhất các cột phụ thuộc tuyến tính của
*Như vậy, ta thu được kết quả cần chứng minh
Trang 7Ví dụ: Sau đây là ma trận sinh và ma trận sửa lỗi của mã
Hamming
:
3.Mã Hamming
Mô hình của một mã 7-bit, bao gồm 4 bit dữ liệu (3,5,6,7)
và 3 bit chẵn lẻ (1,2,4) Sự liên quan của các bit dữ liệu với bit chẵn lẻ được biểu hiện bằng các phần của hình tròn gối lên nhau Bit thứ 1 kiểm tra bit thứ (3, 5, 7), trong khi bit 2 kiểm tra bit (3, 6, 7) Lưu ý, các vị trị (1,2,4 v.v.) thực ra là
vị trí 20, 21, 22 v.v
Trang 8*Các bit dữ liệu và bit chẵn lẻ trong mối quan hệ chồng gối với nhau Các bit chẵn lẻ được tính dùng quy luật "số
chẵn" Giá trị của nhóm dữ liệu là 1100110 - các bit chẵn lẻ
được in đậm, và đọc từ phải sang trái
*Càng nhiều bit sửa lỗi thêm vào trong thông điệp, và các bit ấy được bố trí theo một cách là mỗi bỗ trí của nhóm các bit bị lỗi tạo nên một hình thái lỗi riêng biệt, thì chúng ta có thể xác định được những bit bị sai Trong một thông điệp dài 7-bit, chúng ta có 7 khả năng một bit có thể bị lỗi, như vậy, chỉ cần 3 bit kiểm tra (23 = 8) là chúng ta có thể, không những chỉ xác định được là lỗi trong truyền thông có xảy ra hay không, mà còn có thể xác định được bit nào là bit bị lỗi
*Hamming nghiên cứu các kế hoạch mã hóa hiện có, bao gồm cả mã hai-trong-năm, rồi tổng quát hóa khái niệm của chúng Khởi đầu, ông xây dựng một danh mục
(nomenclature) để diễn tả hệ thống máy, bao gồm cả số
lượng bit dùng cho dữ liệu và các bit sửa lỗi trong một
khối Chẳng hạn, bit chẵn lẻ phải thêm 1 bit vào trong mỗi
Trang 9từ dữ liệu (data word) Hamming diễn tả phương pháp này
là mã (8,7) Nó có nghĩa là một từ dữ liệu có tổng số bit là
8 bit, trong đó chỉ có 7 bit là các bit của dữ liệu mà thôi Theo phương pháp suy nghĩ này, mã tái diễn (nhắc lại) ở
trên phải được gọi là mã (3,1) Tỷ lệ thông tin là tỷ lệ được
tính bằng việc lấy con số thứ hai chia cho con số thứ nhất
Như vậy với mã tái diễn (3,1) ở trên, tỷ lệ thông tin của nó
là
*Hamming còn phát hiện ra nan đề với việc đảo giá trị của hai hoặc hơn hai bit nữa, và miêu tả nó là "khoảng cách"
(distance) (hiện nay nó được gọi là khoảng cách Hamming
(Hamming distance) - theo cái tên của ông) Mã chẵn lẻ có
khoảng cách bằng 2, vì nếu có 2 bit bị đảo ngược thì lỗi trong truyền thông trở nên vô hình, không phát hiện được
Mã tái diễn (3,1) có khoảng cách là 3, vì 3 bit, trong cùng một bộ ba, phải bị đổi ngược trước khi chúng ta được một
từ mã khác Mã tái diễn (4,1) (mỗi bit được nhắc lại 4 lần)
có khoảng cách bằng 4, nên nếu 2 bit trong cùng một nhóm
bị đảo ngược thì lỗi đảo ngược này sẽ đi thoát mà không bị phát hiện
*Cùng một lúc, Hamming quan tâm đến hai vấn đề; tăng khoảng cách và đồng thời tăng tỷ lệ thông tin lên, càng nhiều càng tốt Trong những năm thuộc niên kỷ 1940, ông
đã xây dựng môt số kế hoạch mã hóa Những kế hoạch này đều dựa trên những mã hiện tồn tại song được nâng cấp và tiến bộ một cách sâu sắc Bí quyết chìa khóa cho tất cả các
hệ thống của ông là việc cho các bit chẵn lẻ gối lên nhau
(overlap), sao cho chúng có khả năng tự kiểm tra lẫn nhau
trong khi cùng kiểm tra được dữ liệu nữa
Trang 10*Thuật toán cho việc sử dụng bit chẵn lẻ trong 'mã
Hamming' thông thường cũng tương đối đơn giản:
1 Tất cả các bit ở vị trí là các số mũ của 2 (powers of two) được dùng làm bit chẵn lẻ (các vị trí như 1, 2, 4, 8,
16, 32, 64 v.v hay nói cách khác 20, 21, 22, 23, 24, 25, 26
v.v.)
2 Tất cả các vị trí bit khác được dùng cho dữ liệu sẽ được mã hóa (các vị trí 3, 5, 6, 7, 9, 10, 11, 12, 13, 14,
15, 17, etc.)
3 Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong
từ mã (code word) Vị trí của bit chẵn lẻ quyết định
chuỗi các bit mà nó luân phiên kiểm tra và bỏ qua
(skips)
o Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm 1 bit(n), bỏ qua 1 bit(n), kiểm 1 bit(n), bỏ qua 1 bit(n), v.v
o Vị trí 2(n=2): bỏ qua 1 bit(n-1), kiểm 2 bit(n), bỏ qua 2 bit(n), kiểm 2 bit(n), bỏ qua 2 bit(n), v.v
o Vị trí 4(n=4): bỏ qua 3 bit(n-1), kiểm 4 bit(n), bỏ qua 4 bit(n), kiểm 4 bit(n), bỏ qua 4 bit(n), v.v
o Vị trí 8(n=8): bỏ qua 7 bit(n-1), kiểm 8 bit(n), bỏ qua 8 bit(n), kiểm 8 bit(n), bỏ qua 8 bit(n), v.v
o Vị trí 16(n=16): bỏ qua 15 bit(n-1), kiểm 16
bit(n), bỏ qua 16 bit(n), kiểm 16 bit(n), bỏ qua 16 bit(n), v.v
o Vị trí 32(n=32): bỏ qua 31 bit(n-1), kiểm 32
bit(n), bỏ qua 32 bit(n), kiểm 32 bit(n), bỏ qua 32 bit(n), v.v
o và tiếp tục như trên
Nói cách khác, bit chẵn lẻ tại vị trí 2k kiểm các bit ở các bit
Trang 11ở vị trí t có giá trị logic của phép toán AND giữa k và t là khác 0