You are on page 1of 6

Bài tập chương 7

Câu 1
Câu 2:
Để xác định chuỗi bit thực tế được truyền và trình diễn việc phát hiện lỗi bằng
CRC:
1. Luồng bit đã cho là 10011101.
2. Tính mã CRC (Kiểm tra dự phòng chu kỳ) bằng cách sử dụng đa thức tạo
x^3 + 1.
Để thực hiện CRC:
1. Thêm các số 0 vào luồng bit ban đầu bằng với bậc của đa thức tạo. Trong
trường hợp này, chúng tôi nối thêm ba số 0 vào luồng bit gốc:
10011101000
2. Chia luồng bit mở rộng cho đa thức tạo bằng phép chia modulo-2
___________________________
x^3 + 1 | 10011101000
1001
______
1101
1001
_____
1010
1001
______
0111
0000
______
1110
1001
______
1011
1001
______
0110
0000
______
1100
1001
______
0111
0000
______
1110
3. Số dư thu được sau khi chia là mã CRC. Trong trường hợp này, số dư là
1110.

4. Nối mã CRC vào luồng bit gốc:


100111011110
Chuỗi bit được truyền đi sẽ là:
101111011110
Ở đầu thu, chuỗi bit nhận được sẽ được so sánh với mã CRC được tính toán. Nếu
có lỗi trong quá trình truyền, chuỗi bit nhận được sẽ không khớp với mã CRC được
tính toán.
Tính CRC cho chuỗi bit nhận được:
___________________________
x^3 + 1 | 101111011110
1001
______
1111
1001
_____
0110
0000
______
1100
1001
______
0111
0000
______
1110

Phần còn lại thu được trong trường hợp này là 1110, khớp với mã CRC được tính
toán => Không có lỗi trong chuỗi bit nhận được.
Tuy nhiên, nếu có lỗi trong quá trình truyền, chẳng hạn như đảo ngược bit thứ ba
từ bên trái, chuỗi bit nhận được sẽ không khớp với mã CRC được tính toán. Sự
khác biệt này sẽ cho phép người nhận phát hiện lỗi và yêu cầu truyền lại hoặc thực
hiện các biện pháp khắc phục thích hợp.

Câu 3:
Trong CRC mối quan hệ giữa
a) Mối quan hệ giữa kích thước của từ mã và từ dữ liệu : Là mối quan hệ dựa trên định
nghĩa: n = k + r
Trong đó n là kích thước của từ mã, k là kích thước của từ dữ liệu và r là kích thước của phần
còn lại.
b) Mối quan hệ giữa kích thước số chia và số dư phép chia bên thu : Số dư luôn nhỏ hơn số
chia 1 bit
c) Mối quan hệ giữa độ dài đa thức sinh và kích thước số chia : Bậc đa thức sinh nhỏ hơn
kích thước của số chia
d) Mối quan hệ giữa độ dài đa thức sinh và kích thước số dư: Bậc của đa thức sinh bằng
kích thước của số dư

Câu 4:
a) Khoảng cách Hamming giữa “10000” và “00000” là 1. Chỉ có 1 bit khác biệt giữa hai từ
mã.
b) Khoảng cách Hamming giữa “10101” và “10000” là 2. Có hai bit khác nhau giữa hai từ
mã.
c) Khoảng cách Hamming giữa “11111” và “11111” là 0. Hai từ mã giống hệt nhau nên
không có sự khác biệt về bit.
d) Khoảng cách Hamming giữa “000” và “000” là 0. Hai từ mã giống hệt nhau nên không
có sự khác biệt về bit.

Câu 7:
Để tìm bit chẵn lẻ cho mỗi đơn vị dữ liệu, giả sử là bit chẵn, chúng ta cần đếm số lượng bit 1
trong đơn vị dữ liệu. Nếu số lượng đếm là chẵn, bit chẵn lẻ sẽ là 0. Nếu số lượng đếm là lẻ, bit
chẵn lẻ sẽ là 1.
a) Đối với đơn vị dữ liệu 1001011, có bốn bit 1. Vì số lượng đếm là chẵn, bit chẵn lẻ sẽ là 0.
b) Đối với đơn vị dữ liệu 0001100, có hai bit 1. Vì số lượng đếm là chẵn, bit chẵn lẻ sẽ là 0.
c) Đối với đơn vị dữ liệu 1000000, chỉ có một bit 1. Vì số lượng đếm là lẻ, bit chẵn lẻ sẽ là 1.
d) Đối với đơn vị dữ liệu 1110111, có năm bit 1. Vì số lượng đếm là lẻ, bit chẵn lẻ sẽ là 1.

Câu 8:
a) Để tạo từ mã tại nơi gửi, chúng ta thực hiện theo các bước của phép chia độ dài đa thức.
Bước 1: Nối các số 0 vào từ dữ liệu. Trong trường hợp này, chúng tôi thêm bốn số không vào từ
dữ liệu: 1010011110 trở thành 10100111100000.
Bước 2: Thực hiện phép chia đa thức dài.
10100111100000/10111 = 10001001111101
Bước 3: Lấy phần còn lại làm từ mã. Trong trường hợp này, phần còn lại là 10001001111101,
trở thành từ mã.
b) Để kiểm tra từ mã tại nơi nhận, chúng ta thực hiện phép chia dài đa thức một lần nữa.
Bước 1: Chia từ mã nhận được (10001001111101) cho cùng ước số (10111).
10001001111101/10111 = 1010011110
Bước 2: Nếu số dư bằng 0 nghĩa là không có lỗi trong từ mã nhận được. Trong trường hợp này,
phần còn lại bằng 0, nghĩa là không phát hiện thấy lỗi.
Vì vậy, giả sử không có lỗi, việc kiểm tra từ mã tại nơi nhận sẽ xác nhận rằng không có lỗi.

Câu 9:
Xác suất xảy ra m lỗi trong đơn vị dữ liệu n-bit, với tỷ lệ lỗi bit là p, có thể được tính bằng cách
sử dụng phân phối nhị thức. Phân phối nhị thức cho phép chúng ta tính xác suất nhận được chính
xác m thành công (lỗi) trong số n lần thử (bit) với xác suất thành công (lỗi) cố định p. Xác suất
xảy ra m lỗi trong đơn vị dữ liệu n-bit được tính bằng công thức xác suất nhị thức:
P(m lỗi) = C(n, m) * (p^m) * ((1-p)^(n-m) )
Trong đó: C(n, m) biểu thị số cách chọn m lỗi trong số n bit, có thể tính được bằng công thức hệ
số nhị thức: C(n, m) = n!

Câu 10:
Trong sửa lỗi và phát hiện lỗi, có hai kỹ thuật chính: Mã sửa lỗi (ECC) và kiểm tra dự phòng
theo chu kỳ (CRC). Những kỹ thuật này phục vụ các mục đích khác nhau.
1. Mã sửa lỗi (ECC):
ECC được sử dụng để phát hiện và sửa lỗi xảy ra trong quá trình truyền dữ liệu. Nó sử dụng các
thuật toán không chỉ có thể phát hiện sự hiện diện của lỗi mà còn sửa chúng mà không cần
truyền lại. ECC thường được sử dụng trong các ứng dụng mà tính toàn vẹn dữ liệu là rất quan
trọng, chẳng hạn như trong các thiết bị lưu trữ (vd: ổ cứng, ổ đĩa thể rắn) và hệ thống truyền
thông (vd: mạng không dây).
Mã ECC được thiết kế để đưa tính dư thừa vào dữ liệu được truyền để có thể xác định và sửa lỗi.
Bằng cách sử dụng mã sửa lỗi, có thể khôi phục dữ liệu gốc ngay cả khi một số bit bị hỏng trong
quá trình truyền.
ECC thường được triển khai bằng cách sử dụng các kỹ thuật nâng cao hơn như mã Hamming, mã
Reed-Solomon hoặc mã Bose-Chaudhuri-Hocquenghem (BCH). Các mã này thêm các bit bổ
sung (bit chẵn lẻ hoặc bit kiểm tra) vào dữ liệu gốc để phát hiện và sửa lỗi. Thuật toán ECC cụ
thể được sử dụng sẽ xác định số lượng lỗi có thể được phát hiện và sửa chữa.

2. Kiểm tra dự phòng theo chu kỳ (CRC):


CRC là một kỹ thuật phát hiện lỗi thường được sử dụng trong các giao thức truyền thông mạng,
giao thức truyền tệp và các ứng dụng khác trong đó việc phát hiện lỗi là đủ và việc sửa lỗi là
không cần thiết hoặc có thể được xử lý ở mức cao hơn.
CRC hoạt động bằng cách tạo ra giá trị tổng kiểm tra dựa trên dữ liệu được truyền. Tổng kiểm
tra này được thêm vào dữ liệu và được truyền đi. Ở phía bên nhận, thuật toán CRC tương tự sẽ
được áp dụng cho dữ liệu nhận được, bao gồm cả tổng kiểm tra. Nếu tổng kiểm tra được tính
toán khớp với tổng kiểm tra nhận được thì được coi là không có lỗi xảy ra trong quá trình truyền.
Nhưng, nếu tổng kiểm tra được tính toán khác với tổng kiểm tra nhận được, điều đó cho thấy đã
xảy ra lỗi và dữ liệu được coi là bị hỏng.
CRC có thể phát hiện nhiều loại lỗi, bao gồm cả lỗi đơn bit và một số lỗi đa bit. Tuy nhiên, nó
không thể sửa lỗi trực tiếp. Nếu phát hiện lỗi bằng CRC, người nhận thường yêu cầu truyền lại
dữ liệu từ người gửi.
Vậy kết lại, ECC được sử dụng khi cần cả phát hiện và sửa lỗi, trong khi CRC được sử dụng khi
phát hiện lỗi là đủ và việc sửa lỗi là không cần thiết hoặc có thể được xử lý ở mức cao hơn. ECC
cho phép sửa lỗi tự động mà không cần truyền lại, trong khi CRC đóng vai trò là phương pháp
đơn giản và hiệu quả để phát hiện lỗi và yêu cầu truyền lại nếu cần.

You might also like