CHƯƠNGII:LÝTHUYẾTMÃ I 2.1 Khái niệm phân loại II 2.1.1 Một số khái niệm - Mã hiệu: tập hữu hạn kí hiệu riêng (symbol) hay bảng chữ riêng có phân bố xác suất thỏa mãn số yêu cầu quy định - Q trình mã hóa sử dụng mã hiệu để biểu diễn tin nguồn tinMã hiệu Nguồn tin Từ mã - Khái niệm: Mã hóa phép biến đổi từ tập tin thành tập tin khác có đặc tính thống kê u cầu - Một số khái niệm bản: + Cơ số mã (q): Là số ký hiệu để tạo thành bảng mã + Từ mã: Là tập hợp ký hiệu mã + Chiều dài từ mã (li): Là số ký hiệu để tạo thành từ mã + Chiều dài từ mã trung bình xác định L l �p (x i ).li i 1 Trong đó: p (x i ) : xác suất xuất tin x i nguồn X mã hoá + Bộ mã đều: mãmà tất từ mã có chiều dài + Bộ mã không đều: mãmà tất từ mã có chiều dài khác + Trọng số từ mã (b) l b � i qi 1 i 1 Với i : Giá trị bit vị trí i l: Chiều dài từ mã q: Cơ số mã 2.1.2 Mục đích mã hóa thơngtin - Sự mã hố thơngtin cho phép ký hiệu hố thơngtin hay sử dụng ký hiệu quy ước để biểu diễn tin dạng phù hợp cho nơi sử dụng Chính nhờ mã hố nhìn thấy hay hiển thị thơngtin có chất khái niệm thơngtin hiểu biết người - Đối với hệ thống truyền tin, việc mã hoá cho phép tăng tính hữu hiệu độ tin cậy hệ thống truyền tin Từ làm tăng tốc độ truyền tin khả chống nhiễu - Khi tốc độ lập tin R nguồn cách xa thơng lượng C kênh, nhiệm vụ mã hoá biến đổi tính thống kê nguồn làm cho tốc độ lập tin tiếp cận với khả truyền kênh Trong trường hợp truyền tin kênh có nhiễu, điều cần quan tâm xác truyền tin Đây nhiệm vụ quan trọng mã hoá 2.1.3 Phân loại - Phân loại làm phương pháp chính: + Mã hóa nguồn (Mã hóa Entropy): Shannon, Fano, Huffman… + Mã hóa kênh: Mã khối tuyến tính, mã Hamming, mã vòng… II.2 Mã hóa nguồn II.2.1 Khái niệm - a Khái niệm: Mã hóa nguồn dùng để loại bỏ phần dư thừa khơng cần thiết tồn nguồn, từ biểu diễn thơngtin với tài nguyên tối thiểu b Một số phương pháp biểu diễn mã - Bảng đối chiếu mã: Là cách liệt kê tin nguồn từ mã tương ứng bảng Tin a1 a2 a3 a4 Từ mã 00 01 100 1101 w a0 a1 al 1 - Mặt toạ độ mã: Là cách biểu diễn từ mã điểm (l,b) mặt phẳng toạ độ chiều Trong l chiều dài từ mã b trọng số từ mã tính sau với m số mã l 1 b �ak w k k 0 - Cây mã: Là cách biểu diễn từ mã nút Mỗi nút biểu diễn cho từ mã trùng với nhãn đường từ nút gốc đến nút Mã có số m mã tương ứng m phân Phương pháp mã cho phép biểu diễn mã prefix, tức khơng có từ mã trùng với phần đầu từ mã khác b Điều kiện phân tách mã - Điều kiện cần đủ để mã phân tách khơng có từ mã trùng với phần đầu từ mã khác mã c Nguyên lýmã hoá nguồn - Mã hóa nguồn giảm dư thừa thơng tin, dẫn đến giảm số lượng số liệu biểu diễn thôngtin ( giảm số bit) - Hiệu suất mã hóa: H ( A) h �1 l + h cao tốt Như l nhỏ, giảm tốc độ lập tin nguồn=> giải mã tức thời II.2.2 Mã Shannon – fano a Phương pháp mã hóa shannon X {x1 , x2 , , xn } - Giả sử có nguồn có xác suất xuất tương ứng tin nguồn là: P( X ) {p(x1 ), p( x2 ), , p( xn )} - Quy tắc mã hóa: + Bước 1: Sắp xếp nguồn tin theo thứ tự xác suất giảm dần i 1 p( xi ) p + Bước 2: Thay xác suất xác suất i theo biểu thức: p( x j ) Với giá trị xác suất xếp chiều dài P1 =0 l + Bước 3: xác định chiều dài từ mã i theo biểu thức log p ( xi ) �li log p ( xi ) 1 pi �p( x j ) j 0 (p ) (p ) l + Bước 4: Chuyển i 10 thành i Lấy từ sau dấu phẩy chiều dài từ mã i ta thu mã cần tìm b c, Phương pháp mã hóa Fano X {x1 , x2 , , xn } - Giả sử có nguồn có xác suất xuất tương ứng tin nguồn là: P( X ) {p(x1 ), p( x2 ), , p( xn )} - Quy tắc mã hóa: + Bước 1: Sắp xếp theo xác suất tăng dần giảm dần Quy ước giảm dần + Bước 2: Chia nguồn tin thành nhóm có tổng xác suất xấp xỉ + Bước 3: Gán cho nhóm ký hiệu 0, nhóm ký hiệu Quy ước: nhóm phía bit 0, nhóm bit + Bước 4: Lặp lại bước với nhóm vừa nhận tin dừng lại + Bước 5: Đọc từ mã từ trái sang phải - Chú ý: Trong nhiều trường hợp có nhiều cách chia thành nhóm có tổng xác suất gần nhau, ứng với cách chia cho mã có chiều dài trung bình khác 2.2.3 Phương pháp mã hóa Huffman - Năm 1952 Huffman đưa thuật toán mã hoá dựa xác suất xuất ký hiệu Thuật toán tối ưu theo nghĩa số ký hiệu nhị phân trung bình để mã hố cho ký hiệu nguồn cực tiểu Phương pháp mã hố cho mã có tính prefix tất nhiên trình giải mã X {x1 , x2 , , xn } - Giả sử có nguồn có xác suất xuất tương ứng tin nguồn là: P( X ) {p(x1 ), p( x2 ), , p( xn )} - Quy tắc mã hóa: + Bước 1: Tính tần suất ký tự liệu gốc (Sắp xếp ký hiệu theo thứ tự giảm dần) + Bước 2: Hai nút tự với tần suất thấp xác định Hai nhánh gán cho hai ký hiệu (Quy ước: Nút có tần suất thấp bên trái mã hóa bit “0”, nút bên phải mã hóa bit “1”.) + Bước 3: Nút cha cho hai nút thiết lập Nó có tần suất tổng tần suất hai nút + Bước 4: Nút cha liệt kê vào danh sách nút tự hai nút xóa khỏi danh sách + Bước 5: Các bước lặp lại lại nút tự Nút đánh dấu gốc + Bước 6: Từ mã ứng với ký hiệu nguồn tổ hợp ký hiệu mã nhánh mã tính từ gốc Giải mã hóa Huffman - Đọc vào dòng bit cách chuyển sang mã nút tìm thấy - Khi nút xác định, đưa ký tự tương ứng mã hóa - Khi đọc vào bit kế tiếp, bắt đầu trở lại với gốc mã II.3.Mã hóa kênh 2.3.1.Khái niệm - Mã hóa kênh phương pháp mã hóa sử dụng mã truyền thơng nhanh chóng, chứa đựng nhiều mã ký hợp lệ sửa lỗi phát lỗi xảy - Mã kênh dùng kênh truyền Trên kênh truyền cần quan tâm đến tác động nhiễu Vì yêu cầu mã kênh có khả chống nhiễu: Phát sai sửa sai a, Phát sai - Nguyên lý phát sai: Kiểm tra xem tổ hợp nhận có phải từ mã hay khơng, không tổ hợp nhận sai - Giả sử: k + Từ mã chứa thơngtin có chiều dài k-> Tổng số từ mã chứa thôngtin N N 2n + Từ mã mang tin có chiều dài n-> N N + : Phần dự trữ, tổ hợp cấm Đây phần dùng để kiểm tra phát sai sửa sai + Điều kiện để phát sai: N �E �N N ۣ N 2k N0 E 1 2n E 1 2n 2k � s n! 1 � Es i 1 i !( n i )! khả phát s sai: b Sửa sai - Các từ mã kênh có chiều dài nên biểu diễn dạng vecto - Trọng số hamming từ mã số tọa độ # từ mã - Khoảng cách hamming từ mã d(v1, v2) số vị trí tọa độ khác từ mã v1, v2 - Điều kiện để mã phát t lỗi sai khoảng cách hamming từ mãmã lớn t+1 d �t � d t - Điều kiện để mã phát t sai: d �2t 2.3.1.Mã khối tuyến tính a, Định nghĩa - Các từ mã kênh truyền có chiều dài nhau, để tăng hiệu mã hóa người ta ghép từ mã thành khối Các từ mã lại biểu diễn dạng ma trận vecto nên chúng phụ thuộc tuyến tính lẫn Các từ mã biểu diễn dạng vecto với giá trị bit tọa độ vecto không gian Khi người ta gọi mã khối tuyến tính b, Tạo mã U [u1u2 uk ] -Bài tốn đặt là: cho từ mã chứa thơngtin U có chiều dài k bit: C [c1c2 cn ] Hãy tạo từ mã mang tin có chiều dài n bit: + Để tạo mã khối tuyến tính sử dụng ma trận sinh G gồm k hàng, n cột Nguyên tắc tạo mã khối tuyến tính phải xây dựng ma trận sinh G cho từ mã mang tin có chứa phần thơngtin cũ U có phần kiểm tra thêm vào + Từ mã mang tin tạo cách: C U �G - Một mã tuyến tính C(n,k) gọi mã tuyến tính hệ thống từ mã có hai dạng sau Dạng 1: Từ mã bao gồm phần thôngtin k bit trước phần lại (gồm n-k bit) sau (phần gọi phần dư thừa hay phần kiểm tra) k bit thôngtin n-k bit kiểm tra Gkxn � I k �k � � � � | Z k �(n k) � � � M � � M M 0 M z11 z12 z21 z22 M M zk z k z1( n k ) � z2( n k ) � � M M � � zk ( n k ) � I ma trận đơn vị Z ma trận kiểm tra C U �G [u1u2 uk ck 1ck cn ] Dạng 2: ngược dạng 1, từ mã bao gồm phần kiểm tra trước phần thôngtin sau n-k bit kiểm tra k bit thôngtin C U �G [c1c2 cn k u1u2 uk ] c, Giải mã - Để giải mã người ta sử dụng ma trận kiểm tra H Ma trận kiểm tra mã có ma trận G sinh kxn ma trận H có kích thước (n-k)xn cho GxH T H [ZT( n k )�k |I( n k )�( n k ) ] Với mã khối tuyến tính hệ thống - Quy tắc giải mã cho mã khối tuyến tính (Dạng 1) T + Bước 1: Giả sử thu từ mã mang tin C Tính S=CxH S=0-> Từ mã thu đúng, bỏ phần kiểm tra thu từ mã chứa thôngtin U k Ck [u1u2 uk ] S#0-> Từ mã thu sai, chuyển sang bước + Bước 2: Sửa sai Lập bảng lỗi sở số lỗi thu Số lỗi S �H T Sai số (n) 00……0 00…….0 T 10……0 Hàng H 01……0 T Hàng H ……… ………… 00……1 T Hàng n H … + Bước 3: Trên sở giá trị S thu Tra bảng lỗi xác định Từ xác định từ C C � mã đúng: đ Bỏ phần kiểm tra ta thu từ mã chứa thơngtin 2.3.3.Mã vòng a Định nghĩa Mã vòng (Xyclic) mã tuyến tính có tính chất sau: Nếu a(x) từ mã dịch vòng a(X) từ mã thuộc bộm mã - Mã vòng mãmà từ mã biểu diễn dạng đa thức P(x) P( x) an 1 x n 1 an x n a1 x a0 VD: 1010 x x 110001 x x Q( x) qk 1 x k 1 qk x k q1 x q0 - Đa thức mang tin n - Đa thức sinh G(x) bậc (n-k) G(x) thừa số khai triển x có dạng: G ( x) x n k g n k 1 x n k 1 g1 x n - Đa thức kiểm tra H(x): x G ( x ) H ( x) G(x) có bậc n-k H(x) có bậc k - Từ đa thức sinh tạo ma trận sinh cách xây dựng ma trận có hàng có giá trị là: x k 1G ( x) , x k 2G ( x) , …, xG ( x) , G ( x) - Chú ý: Từ mã chạy vòng tuân thủ quy tắc sau: k k + Quy tắc cộng: x x p q ( p q ) mod n + Quy tắc nhân: x �x x + Quy tắc dịch trái: P (1) ( x ) x.P ( x ) an x n 1 an 3 x n a0 x an1 + Quy tắc dịch phải: P ( 1) ( x) ao x n 1 an1 x n 2 a2 x a1 b Mã hóa - Bài tốn: Cho từ mã chứa thơngtin Q(x) Cho số sai có khả sửa s Tìm từ mã mang tin P(x) - Quy tắc: + Bước 1: Cho từ mã chứa thôngtin Q(x) xác định k (độ dài từ mã chứa thông tin) số sai sửa sai s Tính n dựa vào công thức: 2n 2k s n! 1 � i 1 i !( n i )! n + Bước 2: Phân tích x thành nhân tử Chọn G(x) đa thức sinh có bậc cao số đa thức phân tích (đa thức sinh thường có bậc n-k) + Bước 3: Nếu mã khơng hệ thống từ mã P(x)=Q(x).G(x) (Thực nhanh, giải mã chậm) Nếu mã hệ thống x r Q ( x) R ( x) F ( x) (r n k ) G ( x) G ( x) � P ( x) x r Q( x ) R ( x ) (Thực chậm, giải mã nhanh) c Giải mã - Bài tốn ngược mã hóa: (Ngun tắc giải mã dựa phép chia dịch vòng) Cho từ mã mang tin P(x); G(x); số sai sửa s Tìm Q(x)? + Bước 1: Lấy P(x) chia G(x) Tìm F(x) số dư R(x) P( x) R ( x) F ( x) G ( x) G ( x) R(x)=0 từ mã thu Chuyển sang bước R(x)#0 chuyển sang bước + Bước 2: TÍnh trọng số R(x) Trọng số R(x) số bit (W(R(x))) W R x �s Pđ ( x) P( x) R( x) W R x s W R x �s Tiến hành dịch trái dịch phải số lần dừng P ( x) P ( x) R (i ) ( x) (i ) đ (i ) P ( i ) ( x) R ( i ) ( x) (i ) F (x) (i ) G ( x) Với R ( x) cho G ( x) Dịch theo chiều ngược lại số lần số lần dịch để tìm từ mã + Bước 3: P ( x) Q ( x) đ G ( x) Nếu mã khơng hệ thống Nếu mã hệ thống bỏ r bit vị trí cuối P(x) ta thu Q(x) ... mã trùng với phần đầu từ mã khác b Điều kiện phân tách mã - Điều kiện cần đủ để mã phân tách từ mã trùng với phần đầu từ mã khác mã c Nguyên lý mã hố nguồn - Mã hóa nguồn giảm dư thừa thông tin, ... C � mã đúng: đ Bỏ phần kiểm tra ta thu từ mã chứa thơng tin 2.3.3 .Mã vòng a Định nghĩa Mã vòng (Xyclic) mã tuyến tính có tính chất sau: Nếu a(x) từ mã dịch vòng a(X) từ mã thuộc bộm mã - Mã vòng... a1 b Mã hóa - Bài tốn: Cho từ mã chứa thơng tin Q(x) Cho số sai có khả sửa s Tìm từ mã mang tin P(x) - Quy tắc: + Bước 1: Cho từ mã chứa thông tin Q(x) xác định k (độ dài từ mã chứa thơng tin)