Ma trận sinh là một ma trận mà từ ma trận đó có thể tạo ra tất cả các từ mã của bộ mã bằng cách tổ hợp tuyến tính các hàng trong ma trận sinh là một bộ các số trong các hàng hoặc các cột
Trang 1mã hamming và ứng dụng để sửa lỗi cho đoạn dữ liệu
Nếu ký hiệu ai là một tin của nguồn cần mã hoá còn i là một từ mã của bộ mã
ta có thể biểu diễn quá trình mã hoá nh sau:
ai mã hoá i
(giải mã là quá trình ngợc với quá trình mã hoá ) Quá trình giải mã đợc biểu diễn
nh sau :
ai giải mã i Để giải mã đợc thì yêu cầu mã hoá phải có quy luật Nh vậy có thể coi mã hoá nguồn tin theo bộ mã là phép ánh xạ 1:1 biến đổi một tin của nguồn thành một tổ hợp các ký hiệu của bộ mã , trong đó giải mã là phép ánh xạ ngợc
Giả sử có nguồn tin X cần mã hoá có s tin với xác suất xuất hiện các tin là p(xi) :
1)(1
s i i
x p
từ mã ký hiệu là n , là số lợng ký hiệu trong từ
Trang 2X H H
(5) Trong đó : H()max ; là Entropi cực đại của bộ mã , H()max là lợng thông tintrung bình cực đại chứa trong từ mã (hay do từ mã mang lại)
H()max = n log2 m (6)
Trong đó : m là cơ số của bộ mã
n là độ dài từ mã
H(x)max : Entropi cực đại của nguồn tin cần mã hoá
H(x)max : là lợng thông tin trung bình cực đại chứa trong mỗi tin của nguồn (do mỗi tin của nguồn mang lại )
H(x)max = H(x)các tin của nguồn = log2S (7)
S : Số tin của nguồn cần mã hoá
Dạng khác của (5) :
max
max
) ( H
) X ( H 1
S log 1 D
2 log 1 n
S log 1 D
n 2 2
S log 1
Trang 3trong trờng hợp này N1 = N = S) Nếu N1 < N , ta có bộ mã vơi (Số lợng từ mã dùng
để mã hoá các tin ít hơn số từ mã của bộ mã trong trờng hợp này N1 = S <N)
Với từ mã vơi , số từ mã còn lại (số từ mã không đợc dùng ) là N1 -N đợc gọi là các
từ mã cấm ( Hay bộ mã cấm)
2.7 - Điều kiện để mã phân tách đợc
Điều kiện quan trọng của việc tạo mã là cho phép khi nhận đợc một chuỗi các ký
hiệu chúng ta phải phân tách đợc thành các thành phần cơ bản là các từ mã , các từ mã này phải là duy nhất và đúng đắn Để đạt đợc điều này thì bộ mã phải thoả mãn
điều kiện cần và đủ sau : Bất kỳ dãy các từ mã nào của bộ mã cũng không đợc trùng với một dãy từ mã khác của cùng bộ mã
Độ chậm giải mã : độ chậm giải mã là số ký hiệu nhận đợc cần thiết có thể phân tách đợc thành các từ mã Đối với bộ mã phân tách đợc độ chậm giải mã là hữu hạn
có khi là vô hạn , trong trờng hợp là vô hạn thì ta có thể xem là không phân tách đợc
Để xác minh tính phân tách của bộ mã và nếu phân tách đợc xác định độ chậm giảimã và xây dựng bảng thử mã phân tách
Bảng giải mã phân tách đợc xây dựng theo bảng sau :
Bảng thử mã phân tách cho phép đánh giá độ chậm giải mã nếu j là giá trị của cột rỗng thì độ chậm giải mã Tch đợc tính theo công thức :
min max
2 2
1
n J T n
nmin , nmax là độ dài ngắn nhất và dài nhất của bộ mã
Kết luận : Để mã có tính phân tách đợc thì điều kiện cần và đủ là bất kỳ tổ hợp mãnào cũng không đợc trùng với phần đầu của bất kỳ tổ hợp mà khác cùng bộ mã
Đ 1.2 - Phân loại Mã
1.2- 1 : Phân loại theo trọng lợng từ mã
- Mã có trọng lợng không đổi
- Mã có trọng lợng thay đổi
1.2- 2 : Phân loại mã theo chiều dài từ mã
- Mã có chiều dài thay đổi
Trang 4- Mã có chiều dài thay đổi
1.2- 3 : Phân loại mã theo hiệu xuất thông tin.
- Mã tối u
- Mã cha tối u
1.2- 4 : Phân loại theo độ tin cậy
- Mã không có khả năng phát hiện và sửa sai
- Mã có khả năng phát hiện và sửa sai
1.2- 5 : Phân loại theo cơ số của bộ mã
Có thể xây dựng bộ mã có cơ số bất kỳ , tuy nhiên mã có cơ số 2 (nhị phân)
là thông dụng nhất
1.2- 6 : Phân loại mã theo thứ tự các cột số trong từ mã
- Mã không có có trọng số : Thứ tự các cột số không ảnh hởng đến nội dung của từ mã
- Mã có trọng số : Thứ tự các cột số ảnh hởng đến nội dung của từ mã
1.2- 7 : Phân loại theo mục đích sử dụng mã
- Mã số
- Mã ký tự
1.2- 8 : Phân loại mã theo khoảng cách d giữa hai từ mã kế cận
- d const : mã vòng
- d = const : mã Gray ; mã JohnSon
1.2- 9 : Phân loại theo cách tạo mã
Trong việc truyền tin có hai loại mã đợc sử dụng phổ biến là Mã khối (Block code) và Mã xoắn (Con volutional code)
n gọi là tỷ số mã , R là số bit thông tin đa vào bộ giải mã trên số bit đợc truyền Do
n bit ra chỉ phụ thuộc vào k bit thông tin vào bộ giải mã không cần nhớ và có thểthực hiện đợc bằng mạch logic tổ hợp
b- Mã xoắn :
Bộ mã hoá của mã xoắn giống nh bộ mã hoá mã khối , cũng nhận k bit thông tin u
và tạo thành từ mã v là những khối n bit Nhng n bit của từ mã v không phụ thuộcvào k bit , thông tin nmã còn phụ thuộc vào m bit thông tin trớc đó Do đó bộ mãhoá có một bộ nhớ m Tập hợp dòng mã hoá n bit sinh bởi k bit thông tin và bộ nhớ
m đợc gọi là mã xoắn (n,m,k) Tỷ số R=k/n cũng đợc gọi là tỷ số mã Do tính chấtcủa mã xoắn nên nó phải đợc thực hiện bằng mạch dãy
1.3 -2 : Phơng pháp mặt phẳng toạ độ của mã
Phơng pháp này chỉ thích hợp loại mã có trọng số Dựa trên 2 thông số của từ mã,
là độ dài n và trọng số b để lập một bề mặt có hai toạ độ Trên đó mỗi từ mã đợc
Trang 5biểu diễn bằng một điểm trọng số b của của từ mã là tổng trọng số các ký hiệu trong từ
Nh vậy , mỗi từ mã đợc biểu diễn bằng cặp n, b duy nhất
Định lý : Không có hai từ mã khác nhau của một bộ mã thoả mãn đồng thời
ni = nj , bi = bj (i j )
Thật vậy giả thiét ni = nj để hai từ mã khác nhau thì ít nhất với một vị trí L nào đó trị của ký hiệu của hai từ mã khác nhau , nghĩa là bi bj
Hoặc giả thiết bi = bj để hai từ mã khác nhau độ dài từ mã phải khác nhau ni nj
Bộ mã đợc trình bày ở phơng pháp liệt kê nay đợc biểu diễn trong mặt toạ độ 15
và kết thúc ở nút mức i + 1 Nút cuối (nút kết rthúc không có nhánh nào xuât phát )
đại biểu cho một mã mà thứ tự các trị ký hiệu đi từ nút gốc đến nút cuối qua các núttrung gian lấy theo thứ tự các trị ký hiệu trên các nhánh đi qua
Ví dụ : Ta biểu diễn ví dụ trên bằng phơng pháp cây mã
Phơng pháp này cho phép trình bày bộ mã một cách gọn hơn hai phơng pháp
tr-ớc , đồng thời cho thấy rõ tính chất quan trọng của mã nh tính phân cách đợc haytính Prefix
Nhìn cây mã ta có thể biết loại mã đã cho đều hay không đều , đầy hay vơi Mã
đều là các nút nhánh có cùng bậc , ngợc lại là không đều Mã đầy khi tất ca các nút
Trang 6trung gian bậc trớc các nút nhánh là đều có m nhánh Cây mã thuộc ví dụ trên thuộc loại mã không đều
1.3- 4: Phơng pháp đồ hình kết cấu
Gồm những nút và những nhánh có hớng Đây là một cách biểu diễn cây mã rút gọn Mỗi từ đợc biểu diễn bằng một vòng kín , xuất phát từ nút gốc theo nhánh có hớng (chiều mũi tên) Qua các nút trung gian và trở về kết thúc tại nút gốc Thứ tự giá trị các ký hiệu là theo thứ tự giá trị các nhánh trên đờng đi
OV 1
0 1
0 0
1
OV
1
Đồ hình kết cấu của bộ mã : 00 ;01;100;1010;1011 Các nhánh đợc ghi ở đầu xuất phát của nhánh đầu biểu diễn toán tử hoặc các nút đợc đánh số theo thứ tự xa dần nút gốc Đồ hình nút gốc không chỉ dùng mô tả mã mà còn đợc dùng để xét cách vận hành thiết bị mã hoá và giải mã 1.3- 5 : Phơng pháp hàm cấu trúc mã Phơng pháp này mô tả rõ ràng một đặc tính quan trọng của mã là sự phân bố các từ mã có độ dài khác nhau Ký hiệu là G(ni) Ví dụ : Bộ mã 00,01,100,1010,1011; có G(n) dới dạng sau : G(ni) = 4 ; 2 3 ; 1 1 ; 2 i i n n Từ hàm cấu trúc có thể phân biệt đợc mã đều hay không đều , trờng hợp hàm cấu trúc bằng không với tất cả các ni , trừ tai một điểm chúng ta có loại mã đều Nếu hàm cấu trúc có hai hoặc nhiều điểm khác 0 chúng ta có loại mã không đều, cũng từ hàm cấu trúc có thể xác minh thoả mãn điều kiện có thể xác minh điều kiện phân tách đợc hay không 1.3 -6 : Phơng pháp ma trận sinh. Phơng pháp này là mô hình toán để biểu diễn mã tuyến tính đây là công cụ toán học đợc dùng để tạo mã tuyến tính Ma trận sinh là một ma trận mà từ ma trận đó có thể tạo ra tất cả các từ mã của bộ mã bằng cách tổ hợp tuyến tính các hàng trong ma trận sinh là một bộ các số trong các hàng hoặc các cột , số lợng cột bằng độ dài từ mã Số hàng là số từ mã cơ sở độc lập tuýen tính với nhau trong từ mã Mã tuyến tính C(n,k) là một không gian con K chiều của một không gian vectơ n thàhh phần Do vậy có thể tìm đợc k từ mã độc lập tuyến tính (g0 ,g1 gk-1) trong C Mỗi từ mã trong C là một tổ hợp tuyến tính của k từ mã độc lập tuyến tính này V= u0g0 + u1g1 + + uk-1gk-1 (15)
Với ui = 0 hoặc 1 và 0 i k Đạt k từ mã độc lập tuyến tính này thành những hàng của ma trận cấp k x n , nh sau : G = 1 , 0 1 , 1 1 , 1 1 , 1 11 10 1 , 0 01 00 1 1
.
.
. n k k k n k g g g g g g g g g g g (16)
Với gi = (gi0 gi1 gi,n-1) , với 0 i <k Nếu U = (u0 u1 uk-1) là thông tin cần đợc mã hoá các từ mã tạo ra là v đợc tính theo công thức : V = u x G = (u0 , u1 uk-1) 1 1 k g g (17)
V = u0 g0 + u1g1 + + uk-1 gk-1 Các hàng của G tạo ra từ mã V , vậy G là ma trận sinh của C Ví dụ : Ta có mã hiệu 00000 : 10011: 0101010: 11001: 00101: 10110 : 01111 : 11100 Đợc biểu diễn bằng ma trận sau : G = 00101 01010 10011
0 1
2 3
4
Trang 73 2 1
g g g
Nếu (1101) là thông tin cần mã hoá từ mã tơng đơng của nó là :
V = u0 g0 u1g1 u2g2 u3g3 = (1101000) (0110100) (1010001) =(0001101)
1.3-7 Phơng pháp dùng đa thức sinh
Dùng làm mô hình toán để biểu diễn mã đa thức, mã vòng
Một từ mã có thể biểu diễn thuận tiện dới một đa thức
f(x) = an-1 xn-1 + an-2 xn-2 + + a2 x2 + a1x1 + a0 (18)
+ Số hạng của đa thức trên là độ dài từ mã ( a0 an-1)
+ Bậc của đa thức không vợt quá n-1
Một đặc điểm quan trọng dùng để giải mã là những từ mã đều chia chẵn cho một
đa thức p(x) gọi là đa thức sinh ( đa thức tạo mã ) Sở dĩ gọi nh vậy là vì từ đa thứcnày có thể tạo ra các từ mã của mã vòng , xuất phát từ những mã đơn giản , Nếu bậccủa mã đơn giản A(x) là k , bậc của mã vòng p(x) là n thì bậc của đa thức sinh bằng
n -k = r
Đ 1.4 - Một số giới hạn mã Trong các loại mã , tiêu chuẩn quan trọng hàng đầu là khả năng phát hiện sai và
sửa sai của mã Khả năng này đợc biểu thị bằng số ký hiệu sai tối đa có thẻ sửa đợctrong tổ hợp nvà có liên quan đến trọng lợng tối thiểu của mã ( quãng cách mã ) Cũng nh số ký hiệu thử tối thiểu (nói cách khác là đọ dài n = r + k , tối thiểu khi giữkhông đổi số ký hiệu mang tin k ) Cho nên khi xây dựng các loại mã sửa sai tối ucần phải xác định trớc một số giới hạn của mã tuyến tính , nh : giới hạn trên về trọnglợng tối thiểu (quãng cách mã ) Giới hạn dới về số ký hiệu thử đối với mã tuyếntính (n,k)
1.4- 1: Giới hạn trên của quãng cách mã tối thiểu
Giả sử bộ mã dùng cơ số m và có mk từ mã với độ dài từ mã là n
Do đó tổng một số loại ký hiệu nào đó trong mk từ mã sẽ là
n mk
m
1 = n mk-1 (19) Trong m ký hiệu khác nhau , nhng chỉ có m-1 ký hiệu khác 0 , do đó tổng trọng
số các từ mã sẽ là :
W( ) = n.mk
m
1(m-1) = n mk-1 (m-1) (20) Với bộ mã đều nhị phân dài n , tổng trọng số các từ mã là :
W() = n 2k-1 (2-1) = n.2k-1 (21)
Trọng số trung bình của mỗi từ mã sẽ là :
W
Ư =
1
) ( 0
) (
ma tu cac so tong
(21) ƯW = 1
) 1 ( 1
(22) Với mã nhị phân trọng số trung bình của mỗi từ mã sẽ là :
Trang 8d0
1 2
1.4-2 - Giới hạn Plotkin E
Chỉ có thể lập đợc bộ mã sửa hệ thống nhị phân (n,k) có khoảng cách tối thiểu d0, nếu số dấu kiểm tra r = n-k thoả mãn giới hạn dới :
r 2 (d0 -1) - log2 d0 (25)
Độ dài từ mã phải thoả mãn bất đẳng thức sau:
0
2
k j
d
(26) Trong đó : k - số dấu mang tin
d0 - khoảmg cách mã tối thiểu
02
1
i
d
1.4- 4 - Giới hạn Hamming R.W
Chỉ có thể lập đợc một bộ mã sửa hệ thống nhị phân (n,k) có độ dài n với
khoảng cách mã tối thiểu d0 = 2e + 1, nếu số dấu kiểm tra thoả mãn giới hạn dới sau:
i n
C (28)Trong đó : e - là số dấu sai có thể sửa đợc
d 0 i
i 1 n
C (29)
1.4- 6 - Giới hạn GILBERT.E
Khoảng cách mã tối thiểu thờng đợc xác định theo khả năng phát hiện sai
(d0 t+1) hoặc khả năng sửa sai (d0 2e + 1) hoặc theo khả năng phát hiện đợc tsai và sửa đợc e sai (d0 e+ t + 1)
Bớc 1 : Viết tất cả 2n từ mã có thể có
Bớc 2 : Chọn một từ mã tuỳ ý trong 2n từ mã
Bớc 3 : Bỏ đi (loại bỏ ) tất cả các từ mã có khoảng cách mã với từ mã đã chọn nhỏ hơn hoặc bằng (d0 -1) Nếu sau khi loại bỏ các từ mã này ra khỏi 2n từ mã mà không còn một từ mã nào thì kết thúc qúa trình lựa chọn số từ mã còn lại lập thành
bộ mã có khoảng cách mã tối thiểu lớn hơn hoặc bằng d0 Ngợc lại ta lặp lại bớc 2 rồi bớc 3
Để xác định số lợng từ mã tối thiểu có thể chọn đợc , ta tiến hành nh sau:
- Tổng số các từ mã có khoảng cách mã với từ mã đã chọn không vợt quá (d0 -1)
Trang 9
1 0
d 0 i
i n
i n
C < 2n, thì ta có thể chọn đợc lần nữa Sau khi kết thúc quá trình chọn ta phải có :
C 2n Vậy số các đã chọn theo phơng pháp trên phải thoả mãn bất đẳng thức :
i n
n
0
C
2 (30) Định lý GILBERT E
2.1 Mã sửa hệ thống nhị phân
2.1-1 - Khái niệm về mã phát hiện sai và sửa sai
Mã phát hiện sai và sửa sai gồm các loại mã phát hiện sai , mã sửa sai và mãphát hiện và sửa sai Thông thờng chúng thuộc loại mã đều nhị phân
Trong quá trình truyền tin trên kênh ( từ nơi gửi đến nơi nhận ) do tác động củanhiều từ mã nhận đợc có thể bị sai Có hai loại sai , một loại gọi là sai độc lập ,nghĩa là trong quá trình truyền tin do nhiều tác động một hoặc nhiều ký hiệu trongcác tổ hợp mã có thể bị sai , nhầm Nhng những sai , nhầm đó không có liên quan
đến nhau Loại thứ hai , là những sai phụ thuộc lẫn nhau gọi là sai tơng quan gây ra
do bởi nhiều tơng quan Trong trờng hợp sai thứ hai này hay sảy ra trờng hợp saitừng chùm kí hiệu kế cận nhau, gọi là sai cụm
Sự chọn cấu trúc của mã chống nhiễu phải dựa trên tính chất thống kê của kênh,nói cách khác trên sự phân bố xác suất sai nhầm trong một kênh nhị phân đối xứng.Kênh nhị phân đối xứng thuộc kênh chứa sai lầm không tơng quan và xác suấtchuyển đổi sai một ký hiệu 1 thành 0 hoặc ngợc lại 0 thành 1 nh nhau, nếu ký hiệucác xác suất chuyển đổi đó bằng:
P(1/0) và P(0/1) thì có: P(1/0) = P(0/1) = P
Vậy xác suất nhận đúng một ký hiệu là 1 - P Xác suất nhận đúng một từ mã gồm
n ký hiệu sẽ là (1 - P)n Xác suất thu sai một từ mã đó bằng:
Psai = Ps = 1 - (1 - P)n vì P <<
n
1 nên (1 - P)n = 1 - nPVì vậy xác suất thu sai một từ mã nào đó đợc tính gần đúng theo công thức Ps = nPXác suất thu sai một từ mã tỷ lệ với độ dài từ mã n và xác suất thu sai một dấu nào
đó là P Trong thực tế kỹ thuật truyền tin, xác suất thu sai một từ mã không đợc vợt quá giới hạn cho phép Ps cho phép ta có nP Ps hay P
n
pschophep
2.1.2 Xác suất thu sai i dấu bị sai trong từ mã gồm n ký hiệu.
Xác suất xảy ra i sai đồng thời bằng i
s
P Xác suất xảy ra trong một từ mã có n
ký hiệu n - i ký hiệu xuất hiện đúng bằng
(1 - P)n-i Vậy xác suất xảy ra trong một từ mã n ký hiệu có i ký hiệu sai sẽ là:
n i i
i n
! n
C i n
Xác suất xuất hiện một từ mã n ký hiệu có i sai bất kỳ sẽ là
1 i
Trang 10các tổ hợp không đợc dùng làm từ mã đợc gọi là những tổ hợp cấm Khi do sai nhầmmột từ mã chuyển đổi thành một tổ hợp mã cấm lúc đó sẽ phát hiện đợc đã thu sai.
Khi truyền một từ mã nào đó khi có nhiễu sẽ trở thành N 0 từ mã có thể có
Nh vậy khi truyền N từ mã đã dùng để mã các tin thì số các trờng hợp có thể có sẽ là
N0N = 2n2k Trong số những trờng hợp này có N = 2k trờng hợp không bị sai, có N(N - 1) = 2k(2k - 1) trờng hợp từ mã dùng chuyển thành từ mã khác ở trong trờng hợpnày không thể phát hiện đợc Có N(N0 - N) = 2k (2n - 2k) trờng hợp từ mã dùngchuyển thành từ mã cấm ở trờng hợp này phát hiện đợc sai Lập tỷ số ta có:
0 n
k k
n
k n k 0
0
N
N 1 2
2 1 2
2
2 2 2 N
N
N N N
N N
NN
NN
1NNN
NN
k 0
Quá trình sửa sai trong mã chống nhiễu đợc thực hiện nh sau
+ Để có thể sửa đợc sai thì bộ mã đều nhị phân phải có khoảng cách tối thiểu
d0 đạt đợc một giá trị xác định nào đó d0 d0 cho phép
+ Khi nhận đợc một từ mã nào đó, ta so sánh với tất cả các từ mã dùng (N từmã) để tìm khoảng cách mã Nếu khoảng cách mã tối thiểu d0 < d0 cho phép thì kết luận
từ mã thu đợc đã bị sai Sau đó chuyển từ mã sai về từ mã dùng có khoảng cách nhỏnhất với nó
2.1.5 Điều kiện bộ mã đều nhị phân có khả năng phát hiện sai và sửa sai.
Bộ mã đều nhị phân và đầy (D day 0 ; d0 1
2 ) không có khả năng phát hiện sai,không có khả năng chống nhiễu Chỉ có bộ mã vơi mới có khả năng chống nhiễu(phát hiện sai và sửa sai)
Nh vậy điều kiện để bộ mã đều nhị phân có khả năng chống nhiễu liên quan
đến khoảng cách tối thiểu d0
+ Để bộ mã có thể phát hiện đợc tsai thì khoảng cách mã tối thiểu d0 phải thỏamãn
d0 t + 1+ Để bộ mã có khả năng sửa đợc e sai thì khoảng cách tối thiểu d0 phải thỏamã
d0 2e + 1
Trang 11+ Để bộ mã có khả năng phát hiện đợc tsai và sửa đợc esai thì d0 phải thỏa mãn
d0 e + t + 1
2.1- 6 -Bộ mã sửa hệ thống nhị phân
Bộ mã sửa hệ thống nhị phân ký hiệu (n,k) là bộ mã đều có độ dài n và trong đó
có k dấu thông tin, số dấu còn lại r=n-k đợc gọi là các dấu kiểm tra, cơ số của bộ mã
Ví dụ các dấu thông tin và các dấu kiểm tra trong mỗi từ mã của bộ mã sửa hệthống nhị phânđợc tách thành hai khối riêng biệt thì bộ mã sửa hệ thống nhị phân đ-
ợc xếp vào lớp mã khối tuyến tính Nếu kí hiệu xi là dấu thứ i trong bộ mã ,ta có thểbiểu diễn các dấu thông tin của bộ mã sửa hệ thống nhị phân nh sau:
x0 x1 x2…xxk-1 xk…x.xn-1
k dấu thông tin r dấu kiểm tra
Kí hiệu i là từ mã thứ i của bộ mã sửa hệ thông nhị phân (n,k) đa thức
fi(x) biểu diễn i códạng tổng quát nh sau:
fi(x) = a0x0 + a1x1+…x+ak-1xk-1+ akxk+…x+an-1xn-1
đa thức mang tin đa thức kiểm tra
fi(x)=fk(x) + fr(x)
Trong đó :
fk(x) : đa thức mang tin
fr(x) : đa thức kiểm tra
1
.
0 , 1
1 , ,
0 ,
, 1 ,
1 0
, 1
k n i
n n
k j i
j J
k k i
k K
C C
C
C C
C
C C
C
Phát hiện sai và sửa sai của bộ mã sửa hệ thống nhị phân thực hiện theo các bớc
nh sau:
+Mang từ mã thu đợc , tách thành các dấu mang tin và các dấu kiểm tra
+Từ các dấu mang tin và ma trận kiểm tra H(k,r) lập lại các dấu kiểm tra
Trang 12So sánh các dấu kiểm tra lập đợc và các dấu kiểm tra trong từ mã thu đợc (so sánh từng cặp cùng vị trí) Nếu có ít nhất một cặp khác nhau thì chứng tỏ từ mã thu đợc
đã bị sai
Nếu có một cặp nào đó sai khác thì sai ở vị trí dấu kiểm tra và vị trí dấu sai chính
là vị trí của cặp sai khác đó Lấy đảo của dấu sai sẽ đợc dấu đúng
+ Nếu có hai hay nhiều cặp sai khác nhau thì vị dấu sai các dấu thông tin Dấu sai là dấu thông tin có mặt đồng thời trong các cặp sai khácđo
Để minh hoạ cho quá trình phát hiện sai và sửa sai trong bộ mã sửa hệ thống nhị phân ta xét ví dụ
Bộ mã sửa hệ thống nhị phân (7,4) có ma trận kiểm tra H(4,3) nh dới đây:
Hỏi từ mã nhận đợc i= 1011111 đúng hay sai Nếu sai thì sai ở vị trí nào,hãy sửa dấu sai đó
Bộ mã sửa hệ thông nhị phân (7,4) có độ dài n = 7 ,số dấu thông tin k=4 và số dấu kiểm tra r = n-k = 3
Vị trí dấu thông tin và kiểm tra trong từ mã nhận đợc i
i đúng =1111111 dấu sai đã đợc sửa
Bộ mã sửa hệ thông nhị phân (7,4) có khoảng cách mã tối thiểu d0=3(là bộ mã vơi )nên có khả năng phát hiện đợc 2 sai và sửa đợc 1 sai vì thỏa mãn giới hạn Hamming
10
d
2.1.7 Bộ mã xyclic (mã vòng)
Mã vòng C(n,k) là bộ mã đều nhị phân có độ dài n, có k dấu thông tin và r= n-kdấu kiểm tra Mã Vòng C(n,k) cũng thuộc lớp mã khối tuyến tính
Trang 13Định nghĩa 1: Mã C(n,k) là bộ mã đều nhị có độ dài n, có k dấu thông tin và
r = n - k dấu kiểm tra, trong đó mỗi từ mã của bộ mã đều là dịch vòng của một từ mã
Trong đó : a i nhận một trong các giá trị 0 hoặc 1
x là ẩn số hình thức , nó chỉ thứ tự (vị trí ) của dấu trong từ mã
Thực hiện phép nhân hai vế của biểu thức trên với x ta đợc
x fi(x) = n
n x a x
a x
1
1
0 (2) Để biểu thức trên biểu diễn một từ mã có độ dài n thì xn phải với 1(để bậc của
(2) không vợt quá n-1 , khi này ta có :
i n fi(x) = 1
2
1 0
dấu kiểm tra , trong đó mỗi từ mã là dịch vòng của một từ mã khác cùng bộ mã lấy
theo mod (xn +1 ) (coi xn = 1)
Mã C(n,k) có đặc trng là đa thức sinh thờng đợc ký hiệu là g(x) Dạng tổng quát
của g(x) nh sau :
g(x) = 1+ g1x1 + g2x2 + …x + grxr (4)
Trong đó : r là số dấu kiểm tra
Bậc cao nhất của g(x) bằng số dấu kiểm tra của mã C(n,k) , gi nhận một trong các
giá trị 0 hoặc 1 , g(x) biểu diễn một từ mã khác 0 (từ mã có ít nhất một dấu khác 0)
và là đa thức biểu diễn từ mã có bậc thấp nhất
Đa thức sinh g(x) là một nhân tử của đa thức : xn +1 :
xn +1= h(x) * g(x)
Đa thức sinh có thể cho trớc hoặc đợc chọn là một nhân tử của đa thức xn +1 và
có các tính chất của đa thức sinh
Một trong số các phơng pháp xây dựng mã C(n,k) là xuất phát từ đa thức sinh g(x)
từ mã đầu tiên đợc xây dựng từ đa thức sinh (Vì đa thức sinh biểu diễn một từ mã
có bậc thấp nhất ) Sau đó lần lợt thực hiện dịch vòng (k-1) nhịp để có đợc k từ mã
Các từ mã này độc lập tuyến tính nhau và đợc gọi là các từ mã cơ sở (có k từ mã cơ
sở) Sau đó thực hiện lấy tổ hợp tuyến tính trong k từ mã cơ msở sẽ có đợc các từ mã
của bộ mã C(n,k) Để mô tả nguyên tắc trên ta xét ví dụ sau:
Xây dựng bộ mã C(7.,4) , với g(x) = 1+x + x3 Từ mã đầu tiên viết từ g(x) :
.
(
0 0 0 11 0 1
.)
.
(
0 0 11 0 1 0
)
.
.
(
0 1 1 01 0 0
)
.
tan
.
(
1 1 01 0 0 0
3 4
2 3
1 2
n h ip
mo t tu
vo ng dich
Trang 14x g x
x g x x g
.
)
(
) ( ) ( ) (
3 4
2 3
Tổng quát ta viết : i g(x).
Từ đó ngời ta đa ra định nghĩa thứ 3 mã C(n,k)
Định nghĩa 3 : Mã C(n,k) là bộ mã đều nhị phân có độ dài n , k dấu thông tin , r = n –k dấu kiểm tra Mỗi từ mã của bộ mã đều chia hêt cho đa thức sinh g(x) của nó
Định nghĩa 3 mã C(n,k) có nghĩa thực tế kỹ thuật , vị trí định nghĩa này
ng-ời ta dựng nguyên tắc mã hoá (tạo mã) và giải mã cùng các sơ đồ kèm theo các nguyên tắc đó Để xây dựng nguyên tắc chung tạo các từ mã i của mã C(n,k) ta biểu diễn từ mã đó dới dạng đa thức sau :
n k
n k n
k n k
n k n k n k
a x
a x
0 0
).
( ) (
) ( )
x r x
Trang 15+ Mang phần mang tin dịch đi (n-k) nhịp (r nhịp rồi) rồi chia cho đa thức sinh
để tìm phần d r (x) Lấy lấy phần mang tin đã dịch vòng (n-k) nhịp cộng với phần d r(x) sẽ cho mã của bộ mã C (n,k) ứng với phần mang tin đó
+ Mỗi phần mang tin đợc thực hiện theo quy tắc tạo mã C (n-k) nh trên sẽ đợc
bộ mã C (n-k) Mặt khác ta đã biết phép chia cho g (x) gồm các phép dịch vòng sangphải và cộng modul 2 đợc thực hiện lần lợt cho đến khi phần d là đa thức r (x) cóbậc nhỏ hơn g (x)
Từ sơ đồ tạo mã tổng quát ta có thể vẽ sơ đồ tạo mã C (n,k) với g (x) cụ thể :
Ví dụ: Sơ đồ tạo mã C (7,4) với g (x) = 1 + x2 + x3 nh trên hình 2
Trang 16Xung nhịp 17
V2
V2 Ra
( Hình : 2)
Dựa vào định nghĩa 3 mã C (n,k) ta có quy tắc giải mã cho mã C (n,k)
Lấy từ mã nhận đợc chia cho g (x), nếu phép chia không còn d chứng tỏ từ đãthu đợc là đúng ngợc lại từ mã thu đợc là sai
Để thực hiện sửa sai, trớc hết phải xác định có sai và vị trí dấu sai, sau đó đadấu "l" cộng modul 2 với dấu sai sẽ cho dấu đúng Từ quy tắc trên ta có sơ đồ giảimã tổng quát cho mã C (n,k) nh hình 3
i (x) + a
i.x3Xung nhịp 1 4
Trang 17VI Bộ ghi dịch
1 n al a2 an
Ra Vào từ mã nhận (Từ mã
đúng)
đợc ít bao vào trớc Xung nhịp 1 2n
go g1 gr-l gr C xung nhịp M0 M1 M2 Mr-l
.
Ra c C (Mạch cấm) o
Từ mã thu đợc Bộ chia cho g (x)
2.1.8 Mã truy toán (Mã xoắn, mã chập):
Mã truy toán còn đợc gọi là mã chập hay mã xoắn Mã truy toán thuộc vào lớpcác mã liên tục nhị phân So với mã sửa hệ thống nhị phân thì các dấu thông tin vàcác dấu kiểm tra không tách thành từng khối riêng biệt Do đó quán trình mã hoá vàgiải mã các mã này đợc thực hiện liên tục trên dãy các dấu mã
Nếu ký hiệu K là số dấu mang tin trong từ mã, n là độ dài từ mã thì số dấu kiểmtra r = n – k
Cũng nh các mã chống nhiễu tuyến tính số dấu kiểm ta càng nhiều thì đppj d(độ thừa) của bộ mã càng lớn và do đó khả năng sửa đợc số sai càng lớn Các dấukiểm tra trong mã truy toán cũng đợc tạo từ các dấu thông tin Mỗi dấu kiểm tra là
tổ hợp tuyến tính của các dấu thông tin ở cách nhau một khoảng gọi là bớc coọng.Các mã truy toán có khả năng sửa đợc sai chùm (sai chùm xảy ra dới tác độngcủa nhiễu xung có độ rộng lớn hơn độ rộng một dấu – một ký hiệu trong từ mã)
Sơ đồ khối tổng quát tạo mã chập biểu diễn trên hình 5
Bộ ghi dịch
Bộ phân tích phần d để xác định vị trí dấu sai
và đ a ra bít "l"
Hình 4
Trang 18Xung nhÞp C¸c bÝt
Trang 19Đại lợng này đợc gọi là tỷ lệ mã:
Tỷ lệ mã = l
M
Độ dài bắt buộc (hay khối lợng nhớ của bộ mã chập).
Nếu đầu vào của sơ đồ hình 5 có m dấu thông tin thì trong một chu trìnhchuyển mạch bộ ghi dịch chỉ ghi đợc R dấu ( hay là một trong số m/R nhóm dấuthông tin đầu vào)
Dãy bít ra ứng với m dấu thông tin đầu vào sẽ bằng:
Ta có: Độ dài bắt buộc của bộ mã chập
R
Khoảng cách bảo vệ của bộ mã chập
Nh trên đã phân tích, bộ mã chập có khả năng sửa đợc chùm sai Nếu ký hiệu
độ dài chùm sai là b thì mã chập có khả năng sửa đợc chùm sai có độ dài là bội sốcủa n (b = 2,4,6,8, )
Để sửa đợc chùm sai có độ dài càng lớn thì thiết bị mã hoá và giải mã càng phức tạp.Các sai mà mã truy toán có thể sửa đợc cũng là những chùm sai đơn
Do đó khoảng cách giữa hai chùn sai xảy ra phải cách nhau một khoảng cáchxác định tối thiểu đợc gọi là khoảng cách bảo vệ và ký hiệu là d Để mã truy toán cóthể sửa đợc chùm sai thì trong khoảng cách bảo vệ không có bất cứ một sai nào xảyra
Độ lớn khoảng bảo vệ d phụ thuộc từng sơ đồ tạo mã chập và phụ thuộc vào
độ dài chùm sai: d 3b + 1
Trang 20Ví dụ về sơ đồ tạo mã chập (1/2) nh trên hình 6.
m bít thông tin vào M1
1 K
Trang 21Khi này trạng thái các khâu ghi dịch trong sơ đồ hình 6 biểu diễn trên bảng sau:
Xung nhịp M3
c u
a 1 2 3 4 5 6 Ra
Trang 22Về nguyên tắc chung, mối sửa đợc sai trớc hết phải xác định đợc vị trí dấu sai,rồi đa ra dấu "1" tơng ứng để cộng modul 2 với dấu sai (ở bộ cộng M3) sẽ cho dấu
đúng
Để xác định vị trí dấu sai phải tách ra các dấu thông tin và các dấu kiểm tratrong dãy các dấu nhận đợc Từ các dấu thông tin lập lại các dấu kiểm tra và so sánhvới các dấu kiểm tra nhận đợc Nếu không có sự sai khác nào, dãy các dấu nhận đợc
là đúng, ngợc lại đã có sai (khi này g = "1") Khi này sơ đồ sửa sai đa ra dấu "l" ởmạch và V đến cộng với dấu sai ở U Đầu ra M3 cho dãy dấu đúng
Trong thực tế bộ mã chập đợc sử dụng khá rộng rãi do khả năng sửa sai mã
nó Ngời ta còn phân bộ mã chập thành bộ mã chập không hệ thống Với các bộ mãchập loại này, ngoài các đặc trng chung nh trên đã nêu ngời ta còn sử dụng các đặctrng khác nh:
+ Véc tơ kết nối+ Đa thức kết nối+ Sơ đồ lới+ Sơ đồ trạng thái+ Cây mã
Cũng có nhiều phơng pháp sử lý mã, đặc biết là phơng pháp giải mã cho các
bộ mã chập không hệ thống
Thuật toán Viterbi (thuật toán chọn đờng đi ngắn nhât giữa 2 điểm theo trọng
số của các đoạn đờng đi) là thuật toán sử lý mã châp cho lời giải đúng với xác xuấtcao nhất (hay cho lời giải đúng với xác xuất nhỏ nhất)
Trang 23Ch ơng II
mã hamming và mã hamming mở rộng
2.1 Một số khái niệm:
Mã Hamming là một loại mã tuyến tính, mã này đợc R.w Hamming đa ra và
đợc dùng trong một sổ hệ thống thông tin sử dụng kỹ thuật Forward Error coreetion(FEC) Mã này có khả năng sửa sai một lõi Mã hamming có đặc điểm sơ đồ tạo mã
và giải mã đơn giản số bít kiểm tra và số bít mang tin K phải thỏa mãn hệ thức K
2r-1-1 Khi số bít mang tin tăng thì số bít kiểm tra tăng Tuy nhiên tốc độ tăng của sốbít mang tin tăng nhanh hơn nhiều so với số bít kiểm tra nên khi số bít mang tin lớnthì tính kinh tế càng cao
2.1.1 Khái niệm mã Hamming.
Mã Hamming có hai dạng, đó là mã hamming nhị phân và mã hamming khôngnhị phân Trong phần này ta chỉ nói về mã hamming nhị phân và những đặc tính củanó
Mã hamming có đặc tính đợc biểu diễn nh sau:
C (n , k) = (2r-1 ; 2r-1-r)r: là số nguyên dơng VD: r = 3, ta có mã hamming (7,4)
Mã nhị phân hamming có thể đợc thiết lập bằng ma trận thứ H gồm r hàng và2r-1 cột, nhng dãy nhị phân dài r khác không trong trờng nhị phân gồm 2 phần tử(0,1) ta biết 2 véc tơ bất kì có tổng bằng không đều trùng nhau có nên tổng của 2 cộtbất kì của H đều 0, nghĩa là số cột phụ thuộc tuyến tính của ma trận tối thiểu = 3.Theo định lý khoảng cách hamming tối thiểu nếu ma trận thuộc cột có tổng = 0 thì
Trang 240 1 1(x, y, a1, Z, a2, a3, a4) = 1 0 0 = 0
2.1.2 Sửa lỗi bằng mã Hamming.
Đối với phơng thức truyền có sửa lỗi trớc (FEC) Để phía thu có thể sửa lỗi đợcphía phát ngời ta thực hiện bằng 2 cách, đó là tăng công suất phát tín hiệu trong môitrờng có nhiễu Hoặc nh mã Himming là phía phát thêm vào các bít kiểm tra (bít sửalỗi) vào thông tin Việc làm này phải phù hợp với vấn đề kinh tế, có nghĩa là nó phảikinh tế hơn so với việc phát lại (đôi khi kèm theo phơng pháp trên lại không hiệuquả kinh tế bằng việc phát lại
Mã Hamming cung cấp cho phơng thức (FEC) sử dụng block parity với cơ cấuthực hiện hiệu quả và kinh tế Chúng cho phép sửa các bít đơn và phát hiện các lỗikép của từ mã, vấn đề cần quan tâm ở đây là mã hm có khả năng sửa một lỗi và pháthiện đợc hai lỗi trong từ mã Nhng nó không có khả năng thực hiện đồng thời cả hai,
ta sử dụng mã hamming nh một cơ chế phát hiện lỗi để bắt lỗi đơn và lỗi kép, hoặc
để sửa lỗi bít đơn, việc này đợc thực hiện bằng cách sử dụng một parity lớn hơn,
nh-ng sự tính toán sẽ trở lên khó khăn hơn với parity lớn tronh-ng dữ liệu
Số các bít parity hay các bít kiểm tra lỗi yêu cầu đợc đa ra bởi qui tắcHamming và theo các bít qui tắc Hamming đợc biểu diễn theo bất đẳng thức sau:
Từ mã hamming đợc tạo ra bằng cách nhân các bít thông tin với ma trận sinh G
sử dụng phép tính modul 2 số học kết quả của phép nhân này đợc gọi là vector mã(c1, c2 cn) bao gồm những bít dữ liệu gốc và bít tính parity ma trận G để tạo mãhamming gồm I (ma trận đơn vị) và ma trận cơ sở A
Phép nhân của 4 bít thông tin (d1, d2, d3, d4) với ma trận G kết quả là 7 bít của
từ mã có dạng (d1, d2, d3, d4, p1, p2, p3) A là bộ phận thuộc ma trận G cho phép tạo racác bít parity có thật mỗi hàng trong A đại diện cho phép tính 1 parity trong tập d
Trang 25Qui tắc hamming yêu cầu rằng p= 3 cho mã (7,4) nên A phải chứa 3 cột để tạo ra 3bít parity.
2.2 Mã hamming (mã Ham):
Mã ham do R.W hamming đa ra, mã hamming thuộc loại mã sửa hệ thống nhịphân C(n,k) và thuộc lớp mã tuyến tính
Mã ham có độ dài n = 7, số dấu thông tin k = 4 và số dấu kiểm tra
r = n - k = 3 có khả năng sửa đợc một lỗi và phát hiện hai lỗi
Mã hamming đạt đợc giới hạn dới (giới hạn hamming R.W) về số dấu kiểmtra
r log2 (
e i
i n
C
0
)Trong đó: e là số sai có thể sửa đợc Trong từ mã hamming các dấu kiểm tra(ký hiệu là x, y, z) nằm ở các vị trí thứ 1, thứ 2, thứ 4 Các vị trí còn lại là các vị trícủa các dấu thông tin (ký hiệu là a1, a2, a3, a4)
Dạng tổng quát của từ mã hamming
an = (x y a1 Z a2 a3 a4)Một cách tổng quát, các vị trí các dấu kiểm tra xác định theo quy luật 2i với (i= 0.1.2 ) và 2 n So với mã sửa hệ thống nhị phân (7,4), các dấu kiểm tratrong hamming không tạo thành một khối riêng, nên mã hamming còn đợc xếp vàomã liên tục
Nếu ký hiệu ai là dấu mã thứ i trong từ mã Ham dài n và hi là phần tử cột thứ icủa ma trận HT (ma trận HT gồm r hàng và n cột), ta luôn có quan hệ:
i
i h a
1
0
Quan hệ (1-1) còn đợc gọi là các tổng kiểm tra để xác định các dấu kiểm tracho từ mã Hamming từ các dấu thông tin
y = a2 a3 a4
z = a2 a3 a4
Ví dụ: Tạo từ mã Hamming (7,4) cho số Hexe A = 1 0 1 0
a4 a3 a2 a1Các dấu kiểm tra lần lợt là:
x = a1 a2 a3= 0 1 1 = 0
y = a2 a3 a4 = 0 0 1 = 0
z = a2 a3 a4 = 1 0 1 = 0Vậy từ mã Ham là:
1 0 1 0 0 1 0
Trang 27đúng Ngợc lại nếu có ít nhất một tổng nào đó khác không thì từ mã nhận đợc đã cósai, số nhị phân P1, P2, P3 đợc đổi sang hệ thập phân sẽ cho vị trí dấu sai trong từ mã.
sử dụng để tạo mã sửa lỗi trong máy vi tính
Bộ tạo các dấu thông tin