Khảo sát mã hóa nguồn tin và mã hamming
KHẢO SÁT MÃ HÓA NGUỒN TIN VÀ MÃ HAMMING HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Cơ Sở Phía Nam ĐỀ TÀI : KHẢO SÁT MÃ HÓA NGUỒN TIN VÀ MÃ HAMMING SINH VIÊN THỰC HIỆN : MẠCH Y VINH TRẦN ĐĂNG KHOA TRẦN MINH KHUÊ TRẦN ĐĂNG HƯNG NGUYỄN HỒNG HẢO LỚP : Đ09VTA2 GVHD : TÔN THẤT NGHIÊM Page | MÃ HAMMING PHẦN : MÃ HÓA NGUỒN TIN I.KHÁI QUÁT VỀ MÃ Các Thông Số Mã Cơ số mã : + số ký hiệu mã chữ mã + Ký hiệu : m + Ví dụ : mã thập phân ( m=10 ) ; mã nhị phân ( m=2 ) Độ dài từ mã : + Là số ký tự mã + Ký hiệu : n + Ví dụ : mã có từ mã 001 n=3 Tổng số từ mã mã ký hiệu N Các Loại Mã a Mã mã không Mã : mã có từ mã với chiều dài Mã không : mã có từ mã với chiều dài không b Bộ mã đầy mã không đầy Bộ mã đầy : N = Bộ mã không đầy : N < c Xét Ví Dụ Tin Từ mã A 000 B 001 C 010 D 011 E 100 F 101 G 110 H 111 Page | MÃ HAMMING Ta có : N = ; n=3 ; m=2 Do mã có từ mã với chiều dài nên mã Và N = ( = ) mã đầy Kết luận : Đây mã đầy d Tính prefix prefix tối thiểu Tính prefix : Mã có tính prefix mã thỏa điều kiện “ từ mã prefix từ mã khác mã Tính prefix tối thiểu : Là mã có tính prefix cho X prefix từ mã αX phải từ mã prefix từ mã mã Các Phương Pháp Biểu Diễn Mã a Cây mã Cho U = {00,01,100,1010,1011} b Đồ hình kết cấu Page | MÃ HAMMING c Hàm cấu trúc mã hệ thống Gọi n1,n2, … ,ni độ dài tổ hợp sơ đẳng mã gốc Gọi λ1, λ2,… , λk độ dài tổ hợp cuối mã gốc g(nj) số có dãy ghép tổ hợp sơ đẳng với độ dài tổng cộng nj với qui ước : nj = g(nj) = g(0) = nj < g(nj) = Gọi G(nj) số có từ mã có độ dài nj G(nj) = g(nj – λ1) + g(nj – λ2) + … + g(nj – λk) Với g(nj) = g(nj – n1) + g(nj – n2) + …… + g(nj – ni) Qui Ước : nj = λ G(nj) = G(λ) = nj < λ G(nj) = G(λ) = II CÁC PHƯƠNG PHÁP MÃ HÓA Mã Shannon Phương Pháp : Định nghĩa giới hạn n0 : m-ni ≤ P(Ui) ≤ m1-ni (1) Bước 1: Liệt kê Ui P(Ui) theo thứ tự giảm dần vào cột Page | MÃ HAMMING Bước 2: Pi = Bước 3: Tính ni theo bất đẳng thức (1) Bước 4: Đổi Pi dạng nhị phân Xét Ví Dụ : Cho mã U với xác suất sau : Ui P(Ui) U1 0.34 U2 0.2 U3 0.19 U4 0.1 U5 0.07 U6 0.04 U7 0.03 U8 0.02 U9 0.01 Giải : Ui U1 U2 U3 U4 U5 U6 U7 U8 U9 P(ui) 0.34 0.2 0.19 0.1 0.07 0.04 0.03 0.02 0.01 Pi 0.34 0.54 0.73 0.83 0.9 0.94 0.97 0.99 ni 3 4 6 Dạng nhị phân Pi 0.01010111 0.10001010 0.10111010 0.111010100 0.11100110 0.11110000 0.11110000 0.11111101 Từ mã 00 010 100 1011 1101 11100 111100 111110 1111110 Độ dài trung bình từ mã : Entropy tập tin : Chỉ số kinh tế mã : Mã Từ Điển LZ77 Giải Thuật : Đưa chuỗi văn vào đệm Dùng cửa sổ trượt để đọc ký tự cần mã hóa vào Page | MÃ HAMMING Ngõ : + Khi bắt đầu mã hóa: (k kí tự đầu tiên) + Lần mã hóa tiếp theo: So sánh kí tự mã hóa với kí tự mã hóa, giống đưa từ mã : i vị trí bắt đầu đoạn/kí tự giống nằm từ điển với đoạn/kí tự nén ; j độ dài đoạn kí tự giống ; k ký tự Xét Ví Dụ : mã hóa đoạn ký tự sau AABCBBABC Bướ c Vị trí Ký tự giống A B AB Chuỗi A AB C BB ABC Ngõ < 2,1,B> Mã Từ Điểm LZSS Nếu có kí tự giống trở lên chép từ điển Chỉ có kí tự giống kí tự giống VD: mã hóa AABBCBBAABC Bước Vị trí 11 Kí tự giống A B BB ABB C Ngõ PHẦN : MÃ HAMMING Page | MÃ HAMMING I GIỚI THIỆU CHUNG Trong năm thập niên kỷ 1940, Hamming làm việc Bell Labs máy tính Bell Model V máy điện (electromechanical) dùng rơ-le với tốc độ chậm, giây đồng hồ chu kỳ máy Nhập liệu cho vào máy thẻ đục lỗ (punch cards), máy luôn gây lỗi đọc Trong ngày làm việc tuần, mã đặc biệt dùng để tìm lỗi tìm được, nhấp nháy đèn báo hiệu, báo cho người điều khiển biết để họ sửa, điều chỉnh máy lại Trong thời gian làm việc ngày cuối tuần, người điều khiển máy mặt, có lỗi xảy ra, máy tính tự động bỏ qua chương trình đương chạy chuyển sang công việc khác Hamming thường làm việc ngày cuối tuần ông ngày trở nên bực tức ông phải khởi động lại chương trình ứng dụng từ đầu, chất lượng kém, không đáng tin cậy máy đọc thẻ đục lỗ Mấy năm tiếp theo, ông dồn tâm lực vào việc xây dựng loạt thuật toán có hiệu cao để giải vấn đề sửa lỗi Năm 1950, ông công bố phương pháp mà biết Mã Hamming Trong viễn thông (telecommunication), mã Hamming mã sửa lỗi tuyến tính (linear error-correcting code), đặt tên theo tên người phát minh nó, Richard Hamming Mã Hamming phát bit hai bit bị lỗi (single and double-bit errors) Mã Hamming sửa lỗi bit bị sai gây Ngược lại với mã ông, mã chẵn lẻ (parity code) đơn giản vừa khả phát lỗi bit lúc bị hoán vị (0 thành ngược lại), vừa giúp để sửa lỗi mà phát thấy II CƠ CHẾ PHÁT HIỆN SAI VÀ SỬA SAI III Page | MÃ HAMMING Tổng Quang Về Kiểm Soát Sai Trên Kênh Truyền Kiểm Soát Sai = Phát Hiện Sai + Sửa Sai Điều Kiện Phát Hiện Sai Sửa Sai Trọng số hamming từ mã : số ký hiệu khác không từ mã VD : W(1011) = ; W(11) = Khoảng cách hamming hai từ mã : số ký hiệu mà từ mã phải thay đổi để trở thành từ mã VD : d(u,v) = d(000,111) = ; d(u,v) = d(1011,0111) = Bất đẳng thức tam giác : d(u,v) ≤ d(u,f) + d(f,v) Khoảng cách hamming mã : khoảng cách nhỏ hai từ mã mã sử dụng kỹ thuật viễn thông để tính số lượng bit từ nhị phân (binary word) bị đổi ngược, hình thức để ước tính số lỗi xảy trình truyền thông, thế, gọi khoảng cách tín hiệu (signal distance) D = mind(u,v) với u,v thuộc U Điều kiện để mã có khả phát t ký hiệu sai : D ≥ t +1 Điều kiện để mã sửa t ký hiệu sai : D ≥ 2t + Ví Dụ Xét mã U = {00000,11111} Bộ mã phát sai ? Ta có : D = d(u,v) = D≥t+1t≤4 Vậy mã phát mẫu sai , , , ký hiệu Bộ mã sửa sai ? Ta có : D ≥ 2t + t ≤ Vậy : sửa mẫu sai , ký hiệu Page | MÃ HAMMING IV MÃ HAMMING U : mã hóa chiều dài k V : mã hóa chiều dài n Định Nghĩa Nếu u , v thuộc không gian tuyến tính V ku + lv € V với k , l hệ số Định Lý Khoáng cách hamming mã tuyến tính trọng số hamming nhỏ từ mã khác D = W(v) với v ≠ , v € V Đặc điểm mã Hamming Mã Hamming mã sửa lỗi tuyến , mã phát bit hai bit bị lỗi Mã Hamming sửa lỗi bit bị sai gây Có thể tóm tắt bước cho việc sử dụng mã Hamming sau: 1) Các vị trí khối bắt đầu đánh số từ 1: Bit 1, 2, 3… 2) Tất bít vị trí số mũ dùng làm bít chẵn lẻ Vd: 20, 21, 22, 23, 24… 3) Tất vị trí khác vị trí lại dùng cho bit liệu VD: vị trí thứ 2, 3, 5, 6, 7… 4) Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho số bit từ mã theo quy tắc sau: • Bít chẵn lẻ vị trí số (2 0) kiểm tra tính chẵn lẻ vị trí mà số thứ tự vị trí hệ nhị phân có bít Vd: (1), (11), (101), (111), (1001) Page | MÃ HAMMING • Bít chẵn lẻ vị trí số (10) kiểm tra tính chẵn lẻ vị trí mà số thứ tự vị trí hệ nhị phân có bít thứ Vd: (10), (111), (110), (111), 10 (1010)… • Bít chẵn lẻ vị trí số (100) kiểm tra tính chẵn lẻ vị trí mà số thứ tự vị trí hệ nhị phân có bít thứ Vd: 4, 5, 6, 7, 12, 13, 14, 15… • Tương tự với bít chẵn lẻ vị trí cao hơn: 8, 16, 32… • Tóm lại, bít chẵn lẻ mã Hamming tính giá trị chẵn lẻ mà đó, bit nhị phân vị trí AND với bit vị trí số khác không 2.2.3: Ví dụ mã ASCII bit: Mã ASCII bit cần bit dư thừa để thêm vào liệu gốc Sở dĩ ta chọn bít 24 = 16 xác định 16 trường hợp bị lỗi đơn bít (trong dãy ta xét có 11 bit: bit liệu bit mã) Các bít dư thừa đặt vào vị trí 1, 2, d7 11 d6 d5 p4 d4 d3 10 d2 p3 d1 p2 p1 Trong đó, bit R dùng để tính chẵn lẻ tổ hợp bít sau: • Bit p1 tính bit thứ 3, 5, 7, 9, 11 • Bit p2 tính bit thứ 3, 6, 7, 10, 11 • Bit p3 tính bit thứ 5, 6, • Bit p4 tính bit thứ 9, 10, 11 Page | 10 MÃ HAMMING Hình 1: Vòng tròn mã Hamminh Ví dụ, ta có chuỗi bit "1010110" mã Hamming sử dụng bít chẵn lẻ chẵn p1 = 1, p2 = 0, p3 = 0, p4 = Khi đó, chuỗi liệu truyền 10100100110 Page | 11 MÃ HAMMING Hình 2: Vòng tròn Hamming Do mã hamming sử dụng bit chẵn-lẻ-chẵn nên tổng số bít vòng tròn số chẵn Giả sử trình truyền xảy lỗi bit 11, phía thu, thuật toán phát tổng số bit vòng tròn (vòng bên trái hai vòng dưới) số lẻ, trái với quy tắc nên thay đổi giá trị bít nằm vùng giao vòng tròn Hình 3: Bit thứ 11 bị lỗi khiến tổng số bít vòng tròn bên phải số lẻ Cơ Hệ Bộ Mã Page | 12 MÃ HAMMING Nếu vecto mã g1,g2,.,gk hệ mã tuyến tính V Các vecto độc lập tuyến tính Mọi vecto mã mã V biểu diễn tuyến tính qua tổ hợp tuyến tính vecto hệ Thông Số Mã Hamming Với số nguyên dương r ≥ , tồn mã hamming với thông số sau : r Chiều dài từ mã : n = – r Chiều dài phần tin : k = – – r Chiều dài phần kiểm tra : r = n – k Khả sửa sai : t = ( dmin = ) Ma trận kiểm tra H với cột vecto r chiều khác không Ma Trận Sinh a Khái quát ma trận sinh Ký Hiệu : G (k,n) k: số vecto hệ (số hàng) n: độ dài từ mã (số cột) Cho [a] =[u1 u2 …ui] ma trận mang tin ma trận sinh G ta có [V]=[u] [G] viết gọn : V=u.G Ma Trận Sinh Chuẩn Bộ mã V thay đổi mã V’ có xác suất sai nhằm Các mã tương đương tạo cách biến đổi tương đương ma trận sinh : hoán bị cột , tổ hợp tuyến tính hàng củ thành hàng G Gch = [Ik,k , p k,(n-k)] b Ma Trận Thử Dưới dạng cấu trúc hệ thống H = [Ir.Q] Trong : Ir ma trận đơn vị Ma trận Q gồm 2r – – r cột Mỗi cột vector r chiều có trọng số lớn Định nghĩa : với v € V , u € U ma trận sinh [H] = [h1 h2 …hn-k] với v.HT =0 Định lý : V có Gch = [Ik,k , p k,(n-k)] Hch = [- , Ik,(n-k)] Page | 13 MÃ HAMMING Trong thực tế để việc tạo giải mã hamming cách đơn giản, người ta đổi vị trí cột ma trận H Khi bit cần kiểm tra xen kẽ với bit mang tin không tính chất khối Xây Dựng Mã Hamming Mã hamming có đặc điểm : Ma trận thử H có r hàng , 2r – cột Xét Ví Dụ : mã hamming ( 7,4 ) có ma trận thử H Để việc tạo mã đơn giản ta chọn bit kiểm tra c1 , c2 , c3 vị trí tương ứng 2i với i = 0,1,2, -, nghĩa vị trí thứ , thứ hai thứ tư ký hiệu từ mã V có dạng : v= c1 c2 u1 c3 u2 u3 u4 , với u = u1 u2 u3 u4 Xác định c1,c2 ,c3 ? Để tạo mã : v HT = Ví dụ u = 1010 , v = c1 c2 c3 có v.HT =0 Page | 14 MÃ HAMMING c3 +1 = => c3= c2 + + = => c2 = c1 + = => c1 = v = 1011010 Sơ đồ tạo mã : u = u1 u2 u3 u4 v = c1 c2 u1 c3 u2 u3 u4 v HT = [c1 c2 u1 c3 u2 u3 u4 ] HT = c3 = u2 + u3 + u4 c2 = u1 + u3 + u4 c1 = u1 + u2 + u4 Mạch mã hóa : Ưu điểm : Từ ma trận H ta dễ dàng suy từ mã v , nghĩa không cần biết ma trận sinh G ta dễ dàng tìm v Page | 15 MÃ HAMMING 9.Sơ Đồ Sửa Lỗi Mã Hamming Để nhận biết sai sửa lỗi kênh truyền ta dùng Syndrome S = r.HT Nếu : S = r = v ( Không có lỗi ) S ≠ r ≠ v ( có lỗi ) Ta có : S = r.HT mà r = v + e S = ( v + e ) HT = v HT + e HT = e HT Xác định e ta suy v = r + e VD : xét mã Hamming ( ,4 ) Với r = r1r2r3r4r5r6r7 Syndrome : S = r HT = [ r1r2r3r4r5r6r7 ] HT Page | 16 MÃ HAMMING S = [ r4 + r5 + r6 + r7, r2 + r3 + r6 + r7, r1 + r3 + r5 + r7 ] Cho : e= 1000000 => s1= eHT = [ 1000000 ] HT= 001 e= 0100000 => s2= 010 e= 0010000 => s3= 011 e= 0001000 => s4= 100 e= 0000100 => s5= 101 e= 0000010 => s6= 110 e= 0000001 => s7= 111 Bảng Sự Thật : Page | 17 MÃ HAMMING Mạch Sửa Lỗi : Ví Dụ : tín hiệu thu r = ( r1 r2 r3 r4 r5 r6 r7 ) = ( 0 1 1 ) Khi : S1= r4 + r5 + r6 + r7 = + + + = S2 = r2 + r3 + r6 + r7 = + + + = S3 = r1 + r3 + r5 + r7 = + + + = Vậy : S = ( 1 0) , đổi nhị phân , ta nhận thấy S trùng với cột số ma trận H , có nghĩa ký hiệu sai ký hiệu số 6(r) đầu thứ sơ đồ giải mã có i=1 Ta cần đảo bit thứ theo thuật toán : Page | 18 MÃ HAMMING Kết luận : Mã hamming chỉ sửa lỗi / đường truyền đó dùng nhiều truyền dữ liệu mạng máy tính Hàm Cấu Trúc Trọng Số Giả sử V mã tuyền tính (n,k) Gọi Ai số từ mã có trọng số hamming i mã V Hàm cấu trúc trọng số mã V có dạng : 10 Gọi hàm cấu trúc trọng số trực giao mã V U , ta có hàm cấu trúc trọng số U : V KẾT LUẬN Có thể nói, lịch sử phát triển mã sửa lỗi bắt đầu đời mã Hamming định lý Shannon Việc đời mã Hamming sở cho việc phát triển thêm nhiều loại mã hóa mới, có độ tin cậy cao sau Mã Hamming có tầm quan trọng lý thuyết mã hóa sử dụng thực tế thiết kế máy tính Ưu điểm mã đơn giản, số bit kiểm tra ít, ra, mã hoạt động tốt việc phát lỗi đơn bit số trường hợp lỗi hai bit Tuy nhiên, mã Hamming sửa tin bị lỗi đa bit Page | 19 [...]... bộ mã V là U , ta có hàm cấu trúc trọng số của U là : V KẾT LUẬN Có thể nói, lịch sử phát triển của mã sửa lỗi được bắt đầu bằng sự ra đời của mã Hamming và định lý Shannon Việc ra đời mã Hamming là cơ sở cho việc phát triển thêm nhiều loại mã hóa mới, có độ tin cậy cao hơn sau này Mã Hamming có tầm quan trọng cơ bản trong lý thuyết mã hóa và được sử dụng thực tế trong thiết kế máy tính Ưu điểm của mã. .. = [- , Ik,(n-k)] Page | 13 MÃ HAMMING Trong thực tế để việc tạo và giải mã hamming một cách đơn giản, người ta đổi vị trí các cột trong ma trận H Khi đó các bit cần kiểm tra xen kẽ với các bit mang tin chứ không còn tính chất khối 8 Xây Dựng Mã Hamming Mã hamming có đặc điểm : Ma trận thử H có r hàng , 2r – 1 cột Xét Ví Dụ : mã hamming ( 7,4 ) có ma trận thử H Để việc tạo mã đơn giản ta chọn các bit...MÃ HAMMING Hình 1: Vòng tròn trong mã Hamminh Ví dụ, ta có chuỗi bit "1010110" và mã Hamming sử dụng bít chẵn lẻ chẵn thì p1 = 1, p2 = 0, p3 = 0, p4 = 0 Khi đó, chuỗi dữ liệu truyền đi sẽ là 10100100110 Page | 11 MÃ HAMMING Hình 2: Vòng tròn Hamming Do mã hamming sử dụng bit chẵn-lẻ-chẵn nên tổng số bít 1 trong 1 vòng tròn là số... ra thứ 6 của sơ đồ giải mã sẽ có i=1 Ta chỉ cần đảo bit thứ 6 theo thuật toán : Page | 18 MÃ HAMMING Kết luận : Mã hamming chỉ sửa được 1 lỗi / 1 đường truyền do đó được dùng rất nhiều trong truyền dữ liệu trong mạng máy tính Hàm Cấu Trúc Trọng Số Giả sử V là bộ mã tuyền tính (n,k) Gọi Ai là số các từ mã có trọng số hamming bằng i trong bộ mã V Hàm cấu trúc trọng số bộ mã V có dạng : 10 Gọi hàm... (vòng bên trái và hai vòng trên dưới) là một số lẻ, trái với quy tắc nên nó sẽ thay đổi giá trị của bít nằm ở vùng giao của 3 vòng tròn này Hình 3: Bit thứ 11 bị lỗi khiến tổng số bít 1 của 3 vòng tròn bên phải là một số lẻ 4 Cơ Hệ của Bộ Mã Page | 12 MÃ HAMMING Nếu các vecto mã g1,g2,.,gk là cơ hệ của bộ mã tuyến tính V nếu và chỉ nếu Các vecto trên độc lập tuyến tính Mọi vecto mã của bộ mã V đều được... u3 u4 v HT = [c1 c2 u1 c3 u2 u3 u4 ] HT = 0 c3 = u2 + u3 + u4 c2 = u1 + u3 + u4 c1 = u1 + u2 + u4 Mạch mã hóa : Ưu điểm : Từ ma trận H ta dễ dàng suy ra từ mã v , nghĩa là không cần biết ma trận sinh G ta cũng dễ dàng tìm được v Page | 15 MÃ HAMMING 9.Sơ Đồ Sửa Lỗi Mã Hamming Để nhận biết sai và sửa lỗi kênh truyền ta dùng Syndrome S = r.HT Nếu : S = 0 thì r = v ( Không có lỗi ) S ≠ 0 thì r ≠ v (... Mã Hamming Với mọi số nguyên dương r ≥ 3 , tồn tại mã hamming với các thông số sau : r Chiều dài từ mã : n = 2 – 1 r Chiều dài phần tin : k = 2 – 1 – r Chiều dài phần kiểm tra : r = n – k Khả năng sửa sai : t = 1 ( dmin = 3 ) Ma trận kiểm tra H với các cột là một vecto r chiều khác không 5 6 Ma Trận Sinh a Khái quát ma trận sinh Ký Hiệu : G (k,n) k: số vecto cơ hệ (số hàng) n: độ dài từ mã. .. i = 0,1,2, -, nghĩa là các vị trí thứ nhất , thứ hai và thứ tư của các ký hiệu từ mã V có dạng : v= c1 c2 u1 c3 u2 u3 u4 , với u = u1 u2 u3 u4 Xác định c1,c2 ,c3 ? Để tạo mã : v HT = 0 Ví dụ u = 1010 , v = c1 c2 1 c3 0 1 0 có v.HT =0 Page | 14 MÃ HAMMING c3 +1 = 0 => c3= 1 c2 + 1 + 1 = 0 => c2 = 0 c1 + 1 = 0 => c1 = 1 v = 1011010 Sơ đồ tạo mã : u = u1 u2 u3 u4 v = c1 c2 u1 c3 u2 u3 u4 v HT = [c1... VD : xét mã Hamming ( 7 ,4 ) Với r = r1r2r3r4r5r6r7 Syndrome : S = r HT = [ r1r2r3r4r5r6r7 ] HT Page | 16 MÃ HAMMING S = [ r4 + r5 + r6 + r7, r2 + r3 + r6 + r7, r1 + r3 + r5 + r7 ] Cho : e= 1000000 => s1= eHT = [ 1000000 ] HT= 001 e= 0100000 => s2= 010 e= 0010000 => s3= 011 e= 0001000 => s4= 100 e= 0000100 => s5= 101 e= 0000010 => s6= 110 e= 0000001 => s7= 111 Bảng Sự Thật : Page | 17 MÃ HAMMING Mạch... quát ma trận sinh Ký Hiệu : G (k,n) k: số vecto cơ hệ (số hàng) n: độ dài từ mã (số cột) Cho [a] =[u1 u2 …ui] là ma trận mang tin và ma trận sinh G thì ta có [V]=[u] [G] viết gọn : V=u.G Ma Trận Sinh Chuẩn Bộ mã V có thể thay đổi bằng bộ mã V’ có cùng xác suất sai nhằm Các bộ mã tương đương được tạo ra bằng cách biến đổi tương đương trên ma trận sinh : hoán bị cột , tổ hợp tuyến tính các hàng củ thành ... tự mã + Ký hiệu : n + Ví dụ : mã có từ mã 001 n=3 Tổng số từ mã mã ký hiệu N Các Loại Mã a Mã mã không Mã : mã có từ mã với chiều dài Mã không : mã có từ mã với chiều dài không b Bộ mã đầy mã. ..MÃ HAMMING PHẦN : MÃ HÓA NGUỒN TIN I.KHÁI QUÁT VỀ MÃ Các Thông Số Mã Cơ số mã : + số ký hiệu mã chữ mã + Ký hiệu : m + Ví dụ : mã thập phân ( m=10 ) ; mã nhị phân ( m=2 ) Độ dài từ mã :... ký tự cần mã hóa vào Page | MÃ HAMMING Ngõ : + Khi bắt đầu mã hóa: (k kí tự đầu tiên) + Lần mã hóa tiếp theo: So sánh kí tự mã hóa với kí tự mã hóa, giống đưa từ mã