Mã Hamming 7,4 là một trong những nguyên lý về mật mã đặt nền móng cho sự phát triển của quá trình truyền tải, sửa lỗi thông tin và ứng dụng thông tin vào các mặt của của đời sống hiện đ
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC
BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 6:
MÃ HAMMING
Giảng viên hướng dẫn : TS Nguyễn Xuân Mỹ
Trang 2Lớp : L14 Nhóm : 6
MỤC LỤC
1 Giới thiệu Mã Hamming (7,4) 1
1.1 Lịch sử 1
1.2 Khái niệm 1
1.3 Ưu điểm 2
1.4 Nhược điểm 2
2 Ví dụ 2
3 Minh họa mã Hamming bằng Matlab 4
3.1 Vấn đề 4
3.2 Code 5
3.3 Ví dụ
4 Ứng dụng vào đời sống 6
Truyền tin trong không gian 6
Tài liệu tham khảo 7
Kết luận 7
Trang 3Mã Hamming (7,4) là một trong những nguyên lý về mật mã đặt nền móng cho
sự phát triển của quá trình truyền tải, sửa lỗi thông tin và ứng dụng thông tin vào các mặt của của đời sống hiện đại Thông qua các cơ sở lý thuyết, ví dụ, cũng như các chương trình minh họa và các ứng dụng thực tiễn, chúng ta sẽ hiểu rõ hơn về tính chất của loại mã này.
1 GIỚI THIỆU VỀ MÃ HAMMING (7,4)
1 1 Lịch sử:
Từ những lỗi phát sinh khó chịu thường gặp trong việc vận hành máy điện cơ:
- Tốc độ hoạt động chậm
- Luôn gây ra lỗi khi đọc
- Không tự sửa lỗi được mà chuyển sang công việc khác
Hamming đã xây dựng hàng loạt các thuật toán có hiệu quả cao để giải quyết vấn đề sửalỗi
Năm 1950, ông đã công bố một phương pháp mà hiện nay được biết là Mã Hamming.
1.2 Khái niệm
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ủa
Hamming 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.
Sơ đồ:
Trang 4Mã Thêm Mã Kiểm
tra
1.3 Ưu điểm
- Có thể phát hiện tối đa các lỗi trong trường 2 bit hoặc sửa lỗi trong trường 1 bit mà không cần tìm ra cụ thể lõi đó là lỗi thế nào, nằm ở đâu
- Phương pháp mã Hamming có hiệu quả trên các mạng nơi các luồng dữ liệu được cung cấp cho các lỗi 1 bit
- Mã Hamming sử dụng dễ dàng nên phù hợp ứng dụng trong các bộ nhớ máy tính và
sửa lỗi đơn
1.4 Nhược điểm
Nếu nhiều bit bị lỗi,có thể dẫn đến 1 bit khác bị thay đổi,điều này có thể khiến dữ liệu
bị sai sót thêm
2 Ví dụ
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ẻ
Việc khai triển này bắt đầu bằng việc nhân các ma trận, được gọi là Ma trận Hamming.
Ta có ma trận:
Trang 5và
- Để truyền gửi dữ liệu, chúng ta hãy nhóm các bit dữ liệu mà mình muốn gửi thành một vectơ Lấy ví dụ, nếu dữ liệu là "1011" thì vectơ của nó là:
P=
- Giả sử, chúng ta muốn truyền gửi dữ liệu trên Chúng ta tìm tích của He và P
TH1: Giả sử không có lỗi xảy ra thì tín hiệu máy thu thu được là r’ giống với
r - Máy thu sẽ nhân Hd với r’, để kiểm tra xem có lỗi xảy ra hay không
Trang 6- Vì chúng ta được một vectơ toàn số không cho nên máy thu có thể kết luận là không
có lỗi xảy ra
TH2: Nếu có lỗi xảy ra ở 1 bit Ví dụ là bit số 5
Thì vector mà máy thu nhận được là:
- Máy thu sẽ nhân Hd với r’ thu được kết quả là
Ta được một vector giống với cột thứ 5 của Hd nên bit thứ 5 của r’ bị lỗi Ta chỉ việc chuyển 0 thành 1 và ngược lại
3 MINH HỌA MÃ HAMMING BẰNG CHƯƠNG TRÌNH SỬA LỖI TRONG MÔI TRƯỜNG MATLAB
3.1 Vấn đề:
Nhập một đoạn mã có số bất kì từ hai số 0 và 1, sau đó truyền đi Để nhận được mã chính xác ban đầu, ta phải thêm vào một đoạn ba bit để sửa lỗi
phát sinh trong quá trình truyền đi, khi đó đoạn mã nhận được sẽ chính xác
Trang 73.2 Code
function Hamming_Code
syms w v a i t x
a=input('Nhap thong tin can chuyen a=');
H=[1101100;1011010;0111001];
G=[1110000;1101100;0101010;1001001]; v=a*G;
for i=1:7
if mod(v(1,i),2)==0;
v(1,i)=0;
else v(1,i)=1;
end
end
num2str(v);
fprintf('Ma tran chuyen di\n');
disp(v);
w=input ('Nhap vector nhan duoc w=');
x=H*w';
for i=1:3
if mod(x(i,1),2)==0; %chuyen ve 0 va 1
x(i,1)=0;
else x(i,1)=1;
end
end
for i=1:7
if x==H(:,i);
t=i;
break ;
else t=0;
end
end
if t~=0
if w(1,t)==0;
w(1,t)=1;
else w(1,t)=0;
end
end
num2str(w);
fprintf('Ma tran sau khi chuyen doi \n');
disp(v);
end
3.3 Ví dụ minh họa
Một tín hiệu gửi đi gồm 4 bit “1 0 0 1” Tín hiệu nhận được là “0 1 1 1 0 0 0” Thực hiện trong môi trường Matlab để tìm bit sai và sửa lại cho đúng
Trang 84 ỨNG DỤNG THỰC TẾ VÀO ĐỜI SỐNG:
Được sử dụng vào tính toán máy tính, thông tin liên lạc, nén thông tin
Ứng dụng truyền thông tin trong không gian:
- Các vệ tinh, các tàu thám hiểm trong vũ trụ khi thường chụp các ảnh của các hành tinh khác, sau đó gửi về Trái Đất
- Trong quá trình truyền thông tin đi, ảnh chụp được mã hóa bằng các đoạn mã 0 và 1,
và môi trường truyền luôn có từ trường làm nhiễu loạn thông tin, dẫn đến thông tin bị sai, khi đó ảnh sẽ bị nhiễu hay hư hỏng, không còn giữ được trạng thái ban đầu
- Khi đó mã Hamming được áp dụng để nhận biết và sửa các thông tin sai trước khi trạm ở mặt đất nhận được thông tin chính xác
Ngoài ra, nhờ việc ứng dụng mã Hamming vào việc truyền thông tin mà ta có được
những bức ảnh từ vệ tinh với chất lượng ảnh rõ nét
Trang 9Lỗi khi truyền hình ảnh dưới dạng mã qua môi trường vũ trụ
Nguồn :youtube
Trang 10TÀI LIỆU THAM KHẢO
[1] Mã Hamming Truy câp 2/12/2019 http://wikipedia.com
[2] Ứng dụng thực tế mã sửa sai.Truy câp 2/12/2019 http://antoanthongtin.vn