Lỗi xuất hiện trên kênh truyền mạng cảm biến không dây chủ yếu là các khối lỗi: lỗi 1-bit, lỗi 2-bit. Áp dụng mã sửa lỗi để sửa mẫu lỗi 1-bit thì mã sửa lỗi phải có khoảng cách Hamming tối thiểu dmin=3 giữa 2 từ mã; sửa mẫu lỗi 2-bit thì mã sửa lỗi phải có khoảng cách Hamming tối thiểu là dmin=5 giữa 2 từ mã. Với m bit dữ liệu, khi đạt yêu cầu về khoảng cách tối thiểu dmin, thực hiện kỹ thuật sửa lỗi chuyển tiếp, chèn thêm r bit dư thừa vào m bit dữ liệu tạo thành từ mã với chiều dài n. Câu hỏi đặt ra là phải chèn r bit như thế nào vào khối m bit dữ liệu để có thể sửa được lỗi tại đầu thu? Điều kiện về r bit dư thừa như thế nào?
Giải quyết được câu hỏi trên chính là giải quyết ngữ cảnh truyền dữ liệu trong mạng cảm biến không dây.
“Khi truyền dữ liệu qua mạng cảm biến không dây, phải chèn bao nhiêu bít dư thừa để đảm bảo chắc chắn rằng các mẫu lỗi 1 – bit mẫu lỗi 2 – bit sẽ được khắc phục chính xác tại nút mạng nhận?”
Quá trình sửa lỗi theo kỹ thuật sửa lỗi chuyển tiếp, thì tại nút mạng nhận gói tin, sẽ thực hiện quá trình sửa lỗi dựa vào các bit dư thừa chèn vào bit dữ liệu. Như đã trình bày trong chương 2, nếu khoảng cách Hamming giữa 2 từ mã là d, thì luôn luôn có thể tạo được từ mã mới từ từ mã đã cho, chỉ bằng cách thay đổi giá trị của d bit trong từ mã đã biết.
Học viên: Trần Trọng Nghĩa Trang 59 Để phát hiện và sửa d lỗi trong từ mã thì giữa 2 từ mã trong mã phải có khoảng cách 2d+1. Vậy với khoảng cách 2d+1 có thể thay đổi giá trị của 2d+1 bit để chuyển đổi một từ mã sang một từ mã mới. Nếu chỉ thay đổi giá trị của d bit trong từ mã thì có thể thu được từ mã ban đầu.
Vậy với quá trình sửa 1 lỗi, cần chèn số bit dư thừa bao nhiêu?
Với m bit dữ liệu và r bit dư thừa thì mã sửa lỗi sẽ có chiều dài n=m+r. Bằng việc chuyển đổi giá trị một bit trong n bit, sẽ thu được 1 từ mã mới so với từ mã cũ, trong trường hợp này khoảng cách giữa từ mã mới và từ mã cũ là 1. Như vậy trong chiều dài n bit của mã sửa lỗi chỉ có m bit có giá trị, nếu thực hiện thay đổi giá trị “1” bit bất kỳ, có thể tạo thành n từ mã mới với khoảng cách 1 so với từ mã giá trị làm tiêu chuẩn. Vậy để xác định được 2m
từ mã giá trị trong 2n từ mã: (n1)2m 2n (3.1)
n + 1 bao gồm n từ mã (được tạo ra với 1 bit bị thay đổi giá trị ) có khoảng cách là 1 so với từ mã giá trị làm tiêu chuẩn. Mà n=m+r, suy ra phương trình (3.1) có thể viết lại như sau:
(m r 1)2m 2m r m r 1 2r (3.2)
Nhờ phương trình (3.2) có thể xác định được số bit dư thừa cần thiết khi biết được số bit dữ liệu m, để thực hiện sửa mẫu lỗi 1 bit.
Áp dụng mã Hamming để sửa lỗi 1 bit, thì các bit dư thừa được chèn vào các vị trí 2x
trong chiều dài n của khối mã
Hình 3.4: Cách chèn bit dư thừa trong mã Hamming
Trên hình vẽ 3.4, bit thứ 11 được các kiểm lỗi bởi các bit dư thừa ở vị trí 1, 2, 8. Bit dư thừa chèn vào vị trí thứ 1 có thể thực hiện kiểm lỗi với các bit dữ liệu ở vị trí 3, vị trí 5, vị trí 7, vị trí 9, vị trí 11... Bit dư thừa chèn vào vị trí thứ 2 thực hiện kiểm lỗi các bit dữ liệu ở vị trí 2, vị trí 3, vị trí 6, vị trí 7, vị trí 10, vị trí 11. Bit dư thừa chèn vào vị trí 4 thực hiện kiểm lỗi ở các bit dữ liệu ở vị trí 4, vị trí 5, vị trí 6, vị trí 7, vị trí 12.
Để bảo vệ 7 bit mã ASCII khi xảy ra lỗi 1 bit thì số bit dư thừa cần chèn
4
7 4 1 2
Như vậy có thể chèn 4 bit dư thừa ở các vị trí 1; vị trí 2; vị trí 4; vị trí 8 để đảm bảo các lỗi 1 bit trong quá trình truyền 7 bit mã ASCII được sửa chính xác. Các mẫu lỗi 1-bit trong mạng cảm biến không dây có thể tiến hành sửa bởi các bit dự phòng, trong trường hợp mẫu lỗi là lỗi 2-bit và lỗi 1-bit thì cần chèn bao nhiêu bit dư thừa để tiến hành sửa lỗi tại nút mạng nhận?
Học viên: Trần Trọng Nghĩa Trang 60 Giống như quá trình xác định điều kiện cho lỗi 1 bit, trong việc xác định điều kiện về bit dư thừa r cho mẫu lỗi 2-bit, cũng tiến hành với lập luận tương tự. Với m bit dữ liệu và r bit dư thừa, mã sửa lỗi sẽ có 2m+r từ mã trong đó 2m từ mã là từ mã giá trị, còn lại 2m+r
– 2m là từ mã thường.
Trong khối n bit từ mã, đối với 1 bit lỗi sẽ có n khả năng. Đối với bit lỗi thứ hai sẽ có n-1 khả năng. Khả năng 2 bit lỗi trong n bit sẽ là n(n-1).
Từ một từ mã giá trị chỉ cần thay đổi giá trị của 2 bit ngẫu nhiên, sẽ thiết lập được từ mã mới với khoảng cách là 2 so với từ mã giá trị.
Tuy nhiên khi xét đến vị trí các bit lỗi sẽ có các mẫu lỗi 2 bit có các vị trí lỗi giống nhau. Ví dụ mẫu lỗi 2-bit có vị trí lỗi 1, 2 cũng trùng với mẫu lỗi 2-bit có vị trí lỗi 2, 1; nên chỉ xem các mẫu lỗi 2-bit này là một. Vì vậy khả năng xảy ra 2 bit lỗi trong n bit chính xác phải là: n(n-1)/2.
Theo đó, muốn xác định 2m từ mã giá trị trong 2n từ mã: ( 1) ( 1)2 2 2 m m r n n n (3.3) ( )( 1) ( 1) 2 2 r m r m r m r hay 2 ( ) 1 2 2 r m r m r (3.4)
Bất phương trình (3.4) chính là điều kiện về số bit dư thừa r cần chèn để sửa được các mẫu lỗi 2-bit và các mẫu lỗi 1-bit.
Xét mã dữ liệu có là mã 16 bit, để bảo vệ mã này khi xảy ra lỗi 1-bit và lỗi 2-bit có thể sử dụng chèn tối đa 9 bit dư thừa, theo phương trình (3.4) kiểm tra
2 9 16 9 (16 9) 1 2 2
Hay 326 <=512 . Như vậy ít nhất phải chèn khoảng 9 bit dư thừa mới có thể đảm bảo các mẫu lỗi 1-bit và mẫu lỗi 2-bit trong quá trình truyền mã 16 bit có thể được sửa chính xác tại nút mạng nhận và được chuyển tiếp.
Có thể coi với công thức (3.2) và công thức (3.4) chính là cơ sở giải quyết vấn đề lỗi trong truyền dữ liệu mạng cảm biến không dây, là điều kiện cho việc thực hiện các quá trình mã hóa đảm bảo khả năng có thể sửa được các mẫu lỗi cơ bản, lỗi 1-bit, lỗi 2-bit, thường gặp trong mạng cảm biến không dây. Tuy nhiên từ đây lại nảy sinh vấn đề; liệu việc áp dụng những mã sửa lỗi này trên các kênh truyền có mang lại hiệu quả mong muốn? so sánh với hiệu quả của việc áp dụng các kỹ thuật sửa lỗi khác trên các kênh truyền cho chúng ta kết quả gì?
Trong thực tế, phát hiện các khối lỗi từ 2 bit trở lên, các bit lỗi phân bố theo từng cụm và rất khó để sửa. Trong trương hợp này phải sử dụng phương pháp ghép xen (interleaving) thực hiện sắp xếp lại các bit trong khối bit bản tin nhận được,
Học viên: Trần Trọng Nghĩa Trang 61 và biến các cụm lỗi nhiều bit trong khối bit thành các lỗi 1 bit. Do đó có thể thực hiện các phương pháp sửa lỗi 1-bit theo phương trình (3.2) đối với những lỗi 1- bit này.