Thứ Bảy, 11 tháng 7, 2020

4.49 Mã hóa và giải mã với mã vòng

Thực hiện mã hóa và giải mã với mã vòng (n , k) =(15,5) 
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. 

Không có nhận xét nào:

Đăng nhận xét

2.16 Tìm giá trị nhỏ nhất và lớn nhất trong ma trận

Cho ma trận X = [1 2 3; 4 5 6; 7 8 9]. Hãy a. Tìm giá trị lớn nhất và giá trị nhỏ nhất theo hàng. b. Tìm giá trị lớn nhất và nhỏ nhất theo...