BÁO CÁO BÀI TẬP CSLTTT
Đề bài: Tìm hiểu về mã sủa sai.
Bài làm: Sử dụng bit chẵn lẻ trong mã Hamming để sửa sai.
Thuật toán cho việc sử dụng bit chẵn lẻ trong 'mã Hamming' thông thường
được xác định như sau:
1. Tất cả các bit ở vị trí là các số mũ của 2 (powers of two) đượ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.)
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.)
3. Mỗi bit chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong từ mã (code
word). 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 (skips).
o Vị trí 1 (n=1): bỏ qua 0 bit(n-1), kiểm 1 bit(n), bỏ qua 1 bit(n),
kiểm 1 bit(n), bỏ qua 1 bit(n), v.v.
o Vị trí 2(n=2): bỏ qua 1 bit(n-1), kiểm 2 bit(n), bỏ qua 2 bit(n),
kiểm 2 bit(n), bỏ qua 2 bit(n), v.v.
)
- Tất cả các vị trí bit khác sẽ được dùng cho mã hóa dữ liệu, các vị trí 3,
5, 6, 7, 9, 10, 11, 12.(d
i
)
- Quy luật kiểm tra và bỏ qua như trên.
Từ đó ta có bảng sau: ví dụ với 8 bit nhập vào là 11010011
1 2 3 4 5 6 7 8 9 10 11 12
P
1
P
2
d
1
P
3
d
2
d
3
d
4
P
4
d
5
d
6
d
7
3
+ d
5
+ d
7
+ d
9
+ d
11
P
2
= d
3
+ d
6
+ d
7+ d
10
+d
11
P
3
= d
5
+ d
6
+ d
i
thì thông tin bị sai ở dòng đó. Sẽ xảy ra trường hợp các dòng sai như sau.
+ Nếu dòng 1 sai, các dòng khác đúng sai ở bit thứ 1.
+ Nếu dòng 2 sai, các dòng khác đúng sai ở bit thứ 2.
+ Nếu dòng 3 sai, các dòng khác đúng sai ở bit thứ 4.
+ Nếu dòng 1 sai, các dòng khác đúng sai ở bit thứ 8.
+ Nếu dòng 1, dòng 2 sai, các dòng khác đúng sai ở bit thứ 3.
3
t=random(12)+1;
for(j=1;j<13;j++)
{
if(j==t)
{
if(MH[0][j]==1)
{
MH[0][j]=0;
}
else
{
MH[0][j]=1;
}
}
}
+ Nếu dòng 1, dòng 3 sai, các dòng khác đúng sai ở bit thứ 5.
+ Nếu dòng 1, dòng 4 sai, các dòng khác đúng sai ở bit thứ 9.
+ Nếu dòng 2, dòng 3 sai, các dòng khác đúng sai ở bit thứ 6.
+ Nếu dòng 2, dòng 4 sai, các dòng khác đúng sai ở bit thứ 10.
+ Nếu dòng 3, dòng 4 sai, các dòng khác đúng sai ở bit thứ 12.
+ Nếu dòng 1, dòng 2, dòng 3 sai, các dòng khác đúng sai ở bit thứ 7.