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

4.47 Phát hiện và sửa lỗi mã CRC

Cho chuỗi bit toàn 1 dài 20, hãy chèn mã CRC có đa thức là x⁴ + x² + x + 1 vào chuỗi bit 
a. Kiểm tra giải thuật chèn bao nhiêu bit và chèn ở đầu hay cuối chuỗi. 
b. Thay đổi nội dung của hai bit đầu tiên và thực hiện kiểm tra lại mã CRC.

Giải: Chương trình Matlab là như sau. Giải thuật sẽ chèn 4 bit và chèn vào phía cuối.

% Chiều dài chuỗi bit
N = 20;
% Tạo tín hiệu vào toàn 1
x = ones(N,1);% Khỏi tạo đối tượng CRC
h = crc.generator('Polynomial', [1 0 1 1 1], 'InitialState', [0 0 0 0],'FinalXOR', [1 1 1 1]);
% Tạo dữ liệu chèn với mã CRC
x_crc = generate(h, x);
% Chèn lỗi vào tín hiệu nhận
x_crc(1:2)= ~x_crc(1:2);
% Khỏi tạo bộ kiểm tra CRC
h = crc.detector('Polynomial', [1 0 1 1 1], 'InitialState', [0 0 0 0],'FinalXOR', [1 1 1 1]);
% Kiểm tra mã CRC phía thu
[x_, error] = detect(h, x_crc);
% Kiểm tra có lỗi hay không?
error
% Tính số lỗi
sum(x~=x_) 

 

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...