MÃ sửa SAI HAMMING

14 3.4K 3
MÃ sửa SAI HAMMING

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG KHOA ĐIỆN-ĐIỆN TỬ …… ĐỀ TÀI TRUYỀN SỐ LIỆU MÃ SỬA SAI HAMMING 12CĐ- ĐT3 Nhóm LÊ HOÀNG TUẤN TÚ NGUYỄN TRỌNG HẢI MONG HOÀNG PHONG MÃ SỬA SAI HAMMING I Khái niệm: _ 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 1và ngược lại), vừa giúp để sửa lỗi mà phát thấy _ Mã Hamming bước phát triển kiểm tra chẵn lẻ có khả sửa sai xác định vị trí lỗi Số lượng bit mã Hamming tùy thuộc số lượng bit chuỗi liệu _ Ta lý luận sau để xác định số lượng bit mã Hamming Gọi m số bit chuỗi liệu n số bit mã Hamming, tổng số bit phát m+n _ Với n = ta xác định kết : chuỗi liệu sai vị trí lỗi _ Với n = 2, trường hợp xảy ra: phép kiểm tra cho kết đúng, phép kiểm tra cho kết sai, phép kiểm tra thứ sai, phép kiểm tra thứ hai ngược lại trường hợp cho phép kết luận bit sai vị trí - Với n=3, có khả xảy ta kết luận bit sai vị trí _ Với số n bất kỳ, có 2n khả xảy ta kết luận bit sai 2n -1 vị trí _ Vậy để phát lỗi vị trí cụ thể số n nhỏ chọn phải thỏa: 2n - ≥ Ù m + n hay 2n ≥ Ù m + n + _ Các bit mã Hamming chèn vào vị trí 2n dùng cho kiểm tra chẵn lẻ Các bit khác bit thông tin (dữ liệu) _ Dưới ví dụ để thấy cách xác định mã Hamming: • Giả sử chuỗi liệu cần truyền gồm bit sau : 1010 • Với m = , ta chọn n = 3, bất đẳng thức thỏa • Gọi bit mã Hamming H1 H2 H4 (1, 2, vị trí mà ta đặt bit mã Hamming vào dòng liệu) Gọi bit dòng liệu X3, X5, X6, X7 Tổ hợp bit liệu bit mã, ta đươc H1 H2 X3 H4 X5 X6 X7 Giả sử ta chọn Parity chẵn, bit mã xác định sau: H1⊕ X3⊕ X5⊕X7 = H1 = X3⊕ X5⊕X7 =1 ⊕ ( ⊕ ) = ⊕ = Tương tự: H2 = X3⊕ X6⊕X7 =1 ⊕ (1 ⊕ ) = ⊕ = H4 = X5⊕ X6⊕X7 =0 ⊕ (1 ⊕ ) = ⊕ = Bản tin bao gồm bit mã trở thành: 1 1 Ở máy thu để kiểm tra người ta thực phép toán: C1 = H1⊕ X3⊕ X5⊕X7 C2 = H2⊕ X3⊕ X6⊕X7 C4 = H4⊕ X5⊕ X6⊕X7 Nếu C1= C2 = C4 = 0, lỗi xảy Nếu C1 = 1, C2 = C4 = 0, bit vị trí 1, 3, 5, bị lỗi Nhưng C2 = C4 = có nghĩa bit vị trí 2, 3, 6, 4, 5, 6, Vậy bit sai phải vị trí Lý luận tương tự ta có trường hợp khác Thí dụ C1= C2 = C4 = bit lỗi bit vị trí Thí dụ: tin nhận 1 1 Mạch dò sai tính C1 , C2 , C4 sau: C1 = H1⊕ X3⊕5⊕X7 = ⊕ ⊕ ⊕ = C2 = H2⊕ X3⊕X6⊕X7 = ⊕ ⊕ ⊕ = C4 = H4⊕ X5⊕ X6⊕ X7 = ⊕ ⊕ ⊕ = Vì bit X5 thuộc C1 C4 nên bit sai bit thứ Quan sát tổ hợp C4 C2 C1 ta thấy C4 C2 C1 = 101 = (5)10 Như giá trị có tổ hợp cho ta biết vị trí bit sai cần sửa chữa Nếu tổ hợp chứng tỏ tin nhận Mã Hamming phát triển để dò hai bit sai sửa bit lỗi II Ví dụ dùng (11,7) mã Hamming _ Ví dụ có từ liệu dài bit với giá trị "0110101" Để chứng minh phương pháp mã Hamming tính toán sử dụng để kiểm tra lỗi, xin xem bảng liệt kê Chữ d (data) dùng để biểu thị bit liệu chữ p (parity) để biểu thị bit chẵn lẻ (parity bits) _ Đầu tiên, bit liệu đặt vào vị trí tương thích chúng, sau bit chẵn lẻ cho trường hợp tính toán dùng quy luật bit chẵn lẻ số chẵn Thứ tự bit 10 11 Vị trí bit chẵn lẻ bit liệu p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Nhóm liệu (không có bit chẵn lẻ): p1 p2 p3 p4 Nhóm liệu (với bit chẵn lẻ): 1 1 1 0 1 1 0 1 0 1 0 1 Cách tính bit chẵn lẻ mã Hamming (từ trái sang phải) _ Nhóm liệu (new data word) - bao gồm bit chẵn lẻ - "10001100101" Nếu thử cho bit cuối bị thoái hóa (gets corrupted) bị lộn ngược từ sang Nhóm liệu "10001100100"; Dưới đây, phân tích quy luật kiến tạo mã Hamming cách cho bit chẵn lẻ giá trị kết kiểm tra dùng quy luật số chẵn bị sai Thứ tự bit 10 11 Vị trí bit chẵn lẻ bit liệu p1 p2 d1 p3 d2 d3 d4 p4 d5 d6 d7 Nhóm liệu nhận được: 0 1 0 0 p1 p2 p3 p4 0 1 Kiểm chẵn lẻ Bit chẵn lẻ Sai 0 Sai 1 Đúng 0 Sai Kiểm tra bit chẵn lẻ (bit bị đảo lộn có thẫm) _ Bước cuối định giá trị bit chẵn lẻ (nên nhớ bit nằm viết bên phải - viết ngược lại từ lên trên) Giá trị số nguyên bit chẵn lẻ 11 (10), có nghĩa bit thứ 11 nhóm liệu (data word) - bao gồm bit chẵn lẻ - bit có giá trị không đúng, bit cần phải đổi ngược lại p4 p3 p2 p1 Nhị phân 1 Thập phân Σ = 11 Khi hai bit liệu (3,7) có bit chẵn lẻ kiểm tra vi trí 2k - ví dụ (1,2) - biến đổi giá trị (lỗi truyền thông) giá trị bit chẵn lẻ giá trị gốc (0,1) • Việc đổi ngược giá trị bit thứ 11 làm cho nhóm 10001100100 trở lại thành 10001100101 • Bằng việc bỏ phần mã Hamming, lấy phần liệu gốc với giá trị 0110101 • Lưu ý, bit chẵn lẻ không kiểm tra lẫn nhau, bit chẵn lẻ bị sai thôi, tất bit khác đúng, có bit chẵn lẻ nói đến sai mà bit kiểm tra (not any bit it checks) • Cuối cùng, giả sử có hai bit biến đổi, vị trí x y Nếu x y có bit vị trí 2k đại diện nhị phân chúng, bit chẵn lẻ tương ứng với vị trí kiểm tra hai bit, giữ nguyên giá trị, không thay đổi Song số bit chẵn lẻ định phải bị thay đổi, x ≠ y, hai bit tương ứng có giá trị x y khác Do vậy, mã Hamming phát tất lỗi hai bit bị thay đổi — song không phân biệt chúng với lỗi bit bị thay đổi III Mã Hamming (7,4) _ Trong lý thuyết mã hóa , Hamming (7,4) mã sửa lỗi tuyến tính mã hóa 4bit liệu vào bit cách thêm bit chẵn lẻ Nó thành viên gia đình lớn mã Hamming , mã Hamming thuật ngữ thường dùng để mã cụ thể mà Richard W Hamming giới thiệu vào năm 1950 Vào thời điểm đó, Hamming làm việc phòng thí nghiệm Bell Telephone thất vọng với lỗi dễ bị thẻ đấm người đọc, lý ông bắt đầu làm việc mã sửa lỗi _ Mã Hamming cho biết thêm ba bit kiểm tra bổ sung cho bốn bit liệu tin nhắn (7,4) Hamming thuật toán sửa lỗi nhất-bit, phát tất lỗi bit đơn hai-bit Nói cách khác, tối thiểu khoảng cách Hamming hai từ mã 3, từ nhận giải mã cách xác họ khoảng cách từ từ mã truyền người gửi Điều có nghĩa cho tình môi trường truyền dẫn mà lỗi burst không xảy ra, Hamming (7,4) có hiệu (như phương tiện phải ồn cho bit để lộn) _ Mục tiêu mã Hamming tạo tập hợp bit chẵn lẻ mà chồng chéo mà lỗi nhất-bit (bit hợp lý lộn giá trị) bit liệu bit chẵn lẻ phát sửa chữa Trong nhiều chồng chéo tạo ra, phương pháp chung trình bày mã Hamming Bit # Bit truyền Vâng Không Vâng Không Vâng Không Vâng Không Vâng Vâng Không Không Vâng Vâng Không Không Không Vâng Vâng Vâng Vâng _ Bảng mô tả bit chẵn lẻ bìa mà truyền bit từ mã hóa Ví dụ, trang cung cấp chẵn lẻ bit 2, 3, 6, Nó chi tiết mà truyền mà bit chẵn lẻ cách đọc cột Ví dụ, d bao phủ p p không p bảng có tương đồng bật với ma trận chẵn lẻ kiểm tra (H) phần _ Hơn nữa, cột chẵn lẻ bảng gỡ bỏ Vâng Vâng Không Vâng Vâng Không Vâng Vâng Không Vâng Vâng Vâng sau có trùng với hàng 1, 2, ma trận tạo mã (G) hiển nhiên _ IV Vì vậy, cách chọn phạm vi bảo hiểm bit chẵn lẻ cách xác, tất lỗi với khoảng cách Hamming phát sửa chữa, điểm việc sử dụng mã Hamming Hamming ma trận _ Nguyên lý mã Hamming bắt nguồn từ việc khai triển mở rộng quan điểm chẵn lẻ Việc khai triển bắt đầu việc nhân ma trận, gọi Ma trận Hamming (Hamming matrices), với Đối với mã Hamming (7,4), sử dụng hai mã trận có liên quan gần gũi, đặt tên cho chúng là: _ Các cột vectơ nên tảng hạch phần (4 hàng đầu) ma trận đơn vị (identity matrix) Ma trận đơn vị cho phép vectơ liệu qua làm tính nhân, vậy, bit liệu nằm vị trí (sau nhân) Sau phép nhân hoàn thành, khác với cách giải thích phần trước (các bit chẵn lẻ nằm vị trí 2k), trật tự bit từ mã (codewords) khác với cách bố trí nói (các bit liệu nằm trên, bit kiểm chẵn lẻ nằm dưới) _ Chúng ta dùng nhóm bit liệu (số tên mã vậy) chủ chốt, cộng thêm vào bit liệu thừa (vì 4+3=7 nên có số tên mã) Để truyền gửi liệu, nhóm bit liệu mà muốn gửi thành vectơ Lấy ví dụ, liệu "1011" vectơ là: _ Giả sử, muốn truyền gửi liệu Chúng ta tìm tích p, với giá trị môđulô [3]: Máy thu nhân với r, để kiểm tra xem có lỗi xảy hay không Thi hành tính nhân này, máy thu (một lần nữa, giá trị đồng dư môđulô 2): Vì vectơ toàn số không máy thu kết luận lỗi xảy Sở dĩ vectơ toàn số nghĩa lỗi, nhân với vectơ liệu, thay đổi tảng xảy không gian bên vectơ (vector subspace), tức hạch Nếu vấn đề xảy truyền thông, r nằm nguyên hạch phép nhân cho kết vectơ toàn số không Trong trường hợp khác, giả sử lỗi bit xảy Trong toán học, viết: môđulô 2, ei vectơ đơn vị đứng thứ i (ith unit vector), có nghĩa là, vectơ số có giá trị vị trí i (tính từ tính đi) Biểu thức nói cho biết có bit bị lỗi vị trí i Nếu nhân với hai vectơ này: Vì r liệu thu nhận lỗi, tích r Do Vậy, tích với vectơ chuẩn cột thứ i (the ith standard basis vector) làm lộ cột , mà biết lỗi xảy vị trí cột Vì kiến tạo hình thức định, hiểu giá trị cột số nhị phân - ví dụ, (1,0,1) cột , tương đồng giá trị với cột thứ 5, biết lỗi xảy đâu sửa Lấy ví dụ, giả sử có: Nếu thi hành phép nhân: Tích phép nhân cho kết tương đương với cột thứ ("010" tương đương với giá trị số thập phân), đó, biết lỗi xảy vị trí thứ hàng liệu, sửa lỗi Chúng ta dễ dàng thấy rằng, việc sửa lỗi bit bị đảo lộn gây ra, dùng phương pháp việc thực Bên cạnh đó, mã Hamming phát lỗi bit bit bị đảo lộn gây ra, dùng tích tích không cho vectơ số không Tuy thế, song mã Hamming hoàn thành hai việc V Cách sửa l ỗi mã hamming: _ Mã hamming trương hợp mã vòng _ Mã hamming co d = 3, có khả sửa lỗi _ Một từ mã hamming biểu diễn dạng tổng quát c1c2ic4iiic8i… i bit tin c bit kiểm tra _ Các bit c kết phép đo XOR giá trị vị trí bit vớ i Quá trình kiểm tra lỗi bên thu diễn tương tự bên phát Nếu kết phép XOR giá trị khác vị trí bit lỗi _ Ví dụ xét khả sửa lỗi đơn mã hamming (7,11) trường hợp từ mã mang tin 1011101 • Từ mã hamming có dạng c Các bit vị trí 3,6,9 11 đổi số sang nhị phân 3↔ 0011, 6↔0110, 9↔ 0111, 11↔1011 • Tính XOR 0011 0110 0111 1011= 1001 • Vậy từ mã hamming phát 10100110101 Giả sử bên thu thu từ mã 10000110101 Đổi giá trị vị trí bit sang nhị phân tính XOR tương tự bên phát ↔0001, 6↔0110, 7↔ 0111 ,9↔ 1001, 11↔ 1011 0001 0110 0110 1001 1011 = • Từ phát bit lỗi vị trí thứ Vậy từ mã thu sửa l ại 10100110101 giống bên phát MÃ HAMMING VÀ IT CH ẴN L Ẻ B Ổ SUNG VI _ Nếu bổ sung thêm bit vào mã Hamming, mã dùng để phát lỗi gây bit bị lỗi, đồng thời không cản trở việc sửa lỗi bit gây Nếu không bổ sung bit vào thêm, mã phát lỗi bit, hai bit, ba bit gây ra, song cản trở việc sửa lỗi bit bị đảo lộn Bit bổ sung bit áp dụng cho tất bit sau tất bit kiểm mã Hamming thêm vào _ Khi sử dụng tính sửa lỗi mã, lỗi bit chẵn lẻ bị phát mã Hamming báo hiệu có lỗi xảy sửa lỗi này, song không phát lỗi bit chẵn lẻ, mã Hamming báo hiệu có lỗi xảy ra, cho lỗi bit bị đổi lúc Tuy phát nó, sửa lỗi [...]... là một việc thực hiện được Bên cạnh đó, mã Hamming còn có thể phát hiện lỗi do 1 bit hoặc 2 bit bị đảo lộn gây ra, dùng tích của khi tích này không cho một vectơ số không Tuy thế, song mã Hamming không thể hoàn thành cả hai việc V Cách sửa l ỗi mã hamming: _ Mã hamming là một trương hợp của mã vòng _ Mã hamming co d = 3, có khả năng sửa được một lỗi _ Một từ mã hamming được biểu diễn dưới dạng tổng quát... nó sẽ cản trở việc sửa các lỗi do một bit bị đảo lộn Bit bổ sung là bit được áp dụng cho tất cả các bit sau khi tất cả các bit kiểm của mã Hamming đã được thêm vào _ Khi sử dụng tính sửa lỗi của mã, nếu lỗi ở một bit chẵn lẻ bị phát hiện và mã Hamming báo hiệu là có lỗi xảy ra thì chúng ta có thể sửa lỗi này, song nếu chúng ta không phát hiện được lỗi trong bit chẵn lẻ, nhưng mã Hamming báo hiệu là... hiện được bit lỗi là ở vị trí thứ 3 Vậy từ mã thu được sửa l ại là 10100110101 giống bên phát MÃ HAMMING VÀ IT CH ẴN L Ẻ B Ổ SUNG VI _ Nếu chúng ta bổ sung thêm một bit vào mã Hamming, thì mã này có thể dùng để phát hiện những lỗi gây ra do 2 bit bị lỗi, và đồng thời nó không cản trở việc sửa các lỗi do một bit gây ra Nếu không bổ sung một bit vào thêm, thì mã này có thể phát hiện các lỗi do một bit,... chính là vị trí của bit lỗi _ Ví dụ xét khả năng sửa lỗi đơn của mã hamming (7,11) trong trường hợp từ mã mang tin là 1011101 • Từ mã hamming có dạng c Các bit 1 ở các vị trí 3,6,9 và 11 đổi các số này sang nhị phân 3↔ 0011, 6↔0110, 9↔ 0111, 11↔1011 • Tính XOR 0011 0110 0111 1011= 1001 • Vậy từ mã hamming phát đi là 10100110101 Giả sử ở bên thu thu được từ mã 10000110101 Đổi giá trị chỉ vị trí của các... biết lỗi xảy ra ở đâu và có thể sửa được nó Lấy ví dụ, giả sử chúng ta có: Nếu thi hành phép nhân: Tích của phép nhân cho chúng ta một kết quả tương đương với cột thứ 2 ("010" tương đương với giá trị 2 trong số thập phân), và do đó, chúng ta biết rằng lỗi đã xảy ra ở vị trí thứ 2 trong hàng dữ liệu, và vì vậy có thể sửa được lỗi Chúng ta có thể dễ dàng thấy rằng, việc sửa lỗi do 1 bit bị đảo lộn gây... không phát hiện được lỗi trong bit chẵn lẻ, nhưng mã Hamming báo hiệu là có lỗi xảy ra, thì chúng ta có thể cho rằng lỗi này là do 2 bit bị đổi cùng một lúc Tuy chúng ta phát hiện được nó, nhưng không thể sửa lỗi được

Ngày đăng: 13/06/2016, 16:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan