a. Trường hợp 1: sai 4 bit
b. Trường hợp 2: sai 6 bit
Giải: Trường hợp 1, chúng ta đảo 4 bit ở vị trí 4 đến 7. Trường hợp 2, chúng ta đảo 6 bit từ
vị trí 1 đến 6.
%
n = 15;
k = 5;
% Khởi tạo dữ liệu
data = randi([0 1],k,1);
% Khỏi tạo đa thức vòng
gpol = cyclpoly(n,k);
% Tạo ra ma trận sinh
parmat = cyclgen(n,gpol);
% Tạo ra bảng giải mã syndrome
trt = syndtable(parmat);
% Mã hóa vòng
TxData = encode(data,n,k,'cyclic/binary',gpol);
% Trường hợp 1: sai 5 bit
RxData = TxData;
RxData(4:7) = ~RxData(4:7);
decData = decode(RxData,n,k,'cyclic/binary',gpol,trt);
numerr = biterr(data,decData)
% Trường hợp 2: sai 6 bit
RxData = TxData;
RxData(1:6) = ~RxData(1:6);
decData = decode(RxData,n,k,'cyclic/binary',gpol,trt);
numerr = biterr(data,decData)
Trường hợp 1 không có lỗi và Trường hợp 2 có 1 lỗi, nghĩa là mã vòng
( n,n )=(15,5) có
thể sửa đến 5 lỗi.