Tải bản đầy đủ (.ppt) (36 trang)

BÁO CÁO MẠNG MT VÀ LẬP TRÌNH MẠNG ĐỀ TÀI SỦA LỖI HAMMING

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (542.54 KB, 36 trang )


BÁO CÁO: MẠNG MT VÀ LẬP
TRÌNH MẠNG
ĐỀ TÀI:
SỦA LỖI HAMMING

SV thực hiện
1.Nguyễn Thị Hồng Trang
2. Nguyễn Thị Thanh Hải
3.Nguyễn Thị Xuân Mai
4.Trịnh Thị Thúy Ngân

Muc luc :
I. Các mã trước thời kỳ của Hamming
1- Mã chẵn lẻ
2- Mã hai-trong-năm
3- Tái diễn dữ liệu
II- Ma Hamming
1-Thuật toán cho việc sử dụng bit chẵn lẻ trong mã
Hamming
2 -Cách tính bit chẵn lẻ trong nhóm các bit dữ liệu
2.1 Bit chẵn lẻ dùng quy luật số lẻ
2.2 Cac Vi Du
3 -Các vi dụ dùng (11,7)
4 – Ma Hamming (7,4)
III – Một Số Ví Dụ

1-Các mã trước thời kỳ của
Hamming

1.1 Mã chẵn lẻ



Mã chẵn lẻ thêm một bit vào trong dữ
liệu, cho biết số lượng bit có giá trị 1
của đoạn dữ liệu nằm trước là một số
chẵn hay lẻ

Nếu một bit bị thay đổi trong quá trình
truyền dữ liệu, giá trị chẵn lẻ sẽ thay
đổi,do đó có thể phát hiện được lỗi ( bit
bị thay đổi có thể là bit kiểm tra).

Kiểm tra dùng mã chẵn lẻ là một việc
không được chắc chắn


Nếu số bit bị thay đổi là một số chẵn (2, 4, 6 -
cả hai, bốn hoặc sáu bit đều bị hoán vị) thì mã
này không phát hiện được

Mã chẵn lẻ không biết được bit nào là bit bị lỗi,
cả khi nó phát hiện là có lỗi xảy ra. Toàn bộ dữ
liệu đã nhận được phải bỏ đi, và phải truyền lại
từ đầu

Trên một kênh truyền bị nhiễu, việc truyền
nhận thành công có thể mất rất nhiều thời
gian, nhiều khi không truyền được

1.2 Mã hai-trong-năm


Mỗi một khối 5 bit có chính xác hai bit có
giá trị bằng 1. Nếu không đúng máy tính
có thể nhận ra là dữ liệu nhập vào có lỗi

Nếu trong cùng một khối, một bit bị lộn
ngược thành giá trị 1, và một bit khác bị
lộn ngược thành giá trị 0, quy luật hai-
trong-năm vẫn cho một giá trị
đúng=>không phát hiện lỗi

1.3 Mã Tái diễn dữ liệu

Hoạt động bằng cách nhắc đi nhắc lại bit dữ
liệu vài lần để đảm bảo bit dữ liệu được truyền,
truyền đến nơi nhận trọn vẹn

Nếu bit dữ liệu cần được truyền có giá trị bằng
1, một mã tái diễn n=3 sẽ cho truyền gửi giá
trị "111". Nếu ba bit nhận được không giống
nhau=>báo lỗi

Không thể sửa tất cả các lỗi đúng đắn hoàn
toàn


Nếu tăng số lần các bit được nhắc lại lên 4
lần, có thể phát hiện tất cả các trường hợp
khi 2 bit bị lỗi, song không thể sửa chúng
được với số lần nhắc lại là 5 lần, có thể sửa
tất cả các trường hợp 2 bit bị lỗi, song

không thể phát hiện ra các trường hợp 3 bit
bị lỗi.
=>công suất làm việc giảm xuống một cách
nhanh chóng nếu tăng số lần các bit được
nhắc lại để sửa nhiều lỗi hơn.

II-Mã Hamming
1 . Mã Hamming
Là một mã sửa lỗi tuyến tính
+ Có thể phát hiện một bit hoặc hai bit bị
lỗi (vd:lỗi khi 2 bit hoán vị)
+ Có thể sửa các lỗi do một bit bị sai gây
ra

Nếu càng nhiều bit sửa lỗi thêm vào trong
thông điệp, và bố chí các bit này một cách
hợp lý sao cho vị trí bit lỗi khác nhau tạo
ra ket qua khác nhau , thì chúng ta có thể
xác định được những bit bị lỗi nằm ở đâu.


Trong một thông điệp dài 7-
bit, chúng ta có thể có 7 vị trí
có lỗi,

Như vậy, chỉ cần 3 bit kiểm tra
(2^3 = 8) , để xác định thông
điệp có lỗi hay không , và sẽ
xác định được vị trí của lỗi





Các bit dữ liệu và bit
chẵn lẻ trong mối
quan hệ chồng gối
với nhau. Các bit
chẵn lẻ được tính
dùng quy luật "số
chẵn". Giá trị của
nhóm dữ liệu là 110
0 1 10 - các bit chẵn
lẻ được in đậm, và
đọc từ phải sang trái.

1 .Thuật toán cho việc sử dụng bit chẵn lẻ trong
'mã Hamming

1.1 Tất cả các bit ở vị trí là các số mũ của
2 được dùng làm bit chẵn lẻ. (các vị
trí như 1, 2, 4, 8, 16, 32, 64 v.v. hay nói
cách khác 2^0, 2^1, 2^2, 2^3, 2^4,
2^5, 2^6 v.v.)

1.2 Tất cả các vị trí bit khác được dùng
cho dữ liệu sẽ được mã hóa. (các vị trí 3,
5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.)

1.3 Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho
một số bit trong từ mã . Vị trí của bit chẵn

lẻ quyết định chuỗi các bit mà nó luân
phiên kiểm tra và bỏ qua.

- Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm tra 1 bit(n), bỏ
qua 1 bit(n), kiểm tra 1 bit(n), bỏ qua 1 bit(n), v.v.
- Vị trí 2(n=2): bỏ qua 1 bit(n-1), kiểm tra 2 bit(n), bỏ qua
2 bit(n), kiểm tra 2 bit(n), bỏ qua 2 bit(n), v.v.
- Vị trí 4(n=4): bỏ qua 3 bit(n-1), kiểm tra 4 bit(n), bỏ qua
4 bit(n), kiểm tra 4 bit(n), bỏ qua 4 bit(n), v.v.
- Vị trí 8(n=8): bỏ qua 7 bit(n-1), kiểm tra 8 bit(n), bỏ qua
8 bit(n), kiểm tra 8 bit(n), bỏ qua 8 bit(n), v.v.
- Vị trí 16(n=16): bỏ qua 15 bit(n-1), kiểm tra 16 bit(n), bỏ
qua 16 bit(n), kiểm tra 16 bit(n), bỏ qua 16 bit(n), v.v.

- Vị trí 32(n=32): bỏ qua 31 bit(n-1), kiểm tra
32 bit(n), bỏ qua 32 bit(n), kiểm tra 32
bit(n), bỏ qua 32 bit(n), v.v.
Bit chẵn lẻ tại vị trí 2^k kiểm tra các bit ở các
bit ở vị trí t có giá trị logic của phép toán AND
giữa k và t là khác 0

2 .Cách tính bit chẵn lẻ trong nhóm các bit dữ
liệu

2.1 Quy luật số chẵn

-Nếu số lượng bit có
giá trị bằng 1 là một
số lẻ, thì bit chẵn lẻ
bằng 1 và do việc

cộng thêm một bit có
giá trị 1 này vào dữ
liệu, tổng số bit có
giá trị 1 sẽ là một số
chẵn - bao gồm cả
bit chẵn lẻ, còn
không thì bit chẵn lẻ
sẽ có giá trị 0.

2.1 Bit chẵn lẻ dùng quy luật số lẻ

Có giá trị 1 nếu số lượng các bit có giá trị bằng 1
là một số chẵn - do việc thêm bit chẵn lẻ có giá
trị bằng 1 vào nhóm dữ liểu, tổng số bit có giá
trị 1 là một số lẻ - và bằng 0 nếu ngược lại.
2.2 Các Ví Dụ

Dùng (11,7) mã Hamming

Lấy ví dụ chúng ta có một từ dữ liệu dài 7 bit với
giá trị là "0110101".

Chữ d (data) được dùng để biểu thị các
bit dữ liệu và chữ p (parity) để biểu thị
các bit chẵn lẻ(parity bits).

-Đầu tiên, các bit của dữ liệu được đặt
vào vị trí tương thích của chúng, sau đó
các bit chẵn lẻ cho mỗi trường hợp được
tính toán dùng quy luật bit chẵn lẻ số

chẵn



Nhóm dữ liệu mới - bao gồm các bit chẵn lẻ -
bây giờ là "1000110010 1 ". Nếu chúng ta thử
cho rằng bit cuối cùng bị thoái hóa và bị lộn
ngược từ 1 sang 0. Nhóm dữ liệu mới sẽ là
"1000110010 0 ";
- Phân tích quy luật kiến tạo mã Hamming bằng
cách cho bit chẵn lẻ giá trị 1 khi kết quả kiểm
tra dùng quy luật số chẵn bị sai.



-Bước cuối cùng là định giá trị của các bit chẵn
lẻ (bit nằm dưới cùng được viết về bên phải -
viết ngược lại từ dưới lên trên). Giá trị số
nguyên của các bit chẵn lẻ là 11, nghĩa là bit
thứ 11 trong nhóm dữ liệu - bao gồm cả các bit
chẵn lẻ - là bit có giá trị không đúng, và bit này
cần phải đổi ngược lại.


Việc đổi ngược giá trị của bit thứ 11 làm cho
nhóm 1000110010 0 trở lại thành 1000110010
1 . Bỏ đi phần mã Hamming lấy được phần dữ
liệu gốc với giá trị là 0110101.

Lưu ý, các bit chẵn lẻ không kiểm tra được lẫn

nhau, nếu chỉ một bit chẵn lẻ bị sai thôi, trong
khi tất cả các bit khác là đúng, thì chỉ có bit
chẵn lẻ nói đến là sai và không phải là các bit
nó kiểm tra

Quan hệ giữ bit kiểm tra và bit
dữ liệu

Sự thay đổi một trong
7 bi sẽ làm thay đổi 3
bit kiểm tra:

VD: nếu bit 7 thay đổi
thì cả 3 bit kiểm
tra(1,2,4) đều thay
đổi

Nếu bit 6 thay đổi thì
chỉ bit 2 ,4 mới thay
đổi

3.2 Mã Hamming (7,4)

Với mỗi nhóm 4 bit dữ liệu, mã Hamming
thêm 3 bit kiểm tra. Thuật toán (7,4) có
thể sửa chữa bất cứ một bit lỗi nào, và
phát hiện tất cả lỗi của 1 bit, và các lỗi của
2 bit gây ra. Đối với tất cả các phương tiện
truyền thông không có chùm lỗi đột phát
xảy ra, mã (7,4) của Hamming rất có hiệu

quả (trừ phi phương tiện truyền thông có
độ nhiễu rất cao thì nó mới có thể gây cho
2 bit trong số 7 bit truyền bị đảo lộn).

Ví dụ về cách dùng các ma trận thông qua
GF(Galors Field –trường hữu hạn)

Nguyên lý của mã Hamming bắt nguồn từ việc
khai triển và mở rộng quan điểm chẵn lẻ. Bằng
việc nhân các ma trận, được gọi là Ma trận
Hamming ,với nhau. Ta sử dụng hai ma trận có
liên quan gần gũi và đặt tên là:

×