Mã hóa kênh truyền
260
nw = 4; % Tổng số từ của thông điệp
msgw = gf(randint(nw,k,2^m),m); % Tạo thông điệp ngẫu nhiên
genpoly = rsgenpoly(n,k); % Tạo đa thức sinh
c = rsenc(msgw,n,k,genpoly); % Mã hoá dữ liệu.
noise = (1+randint(nw,n,2^m-1)).*randerr(nw,n,t); % t lỗi trên mỗi hàng
cnoisy = c + noise; % Công nhiễu vào mã.
[dc,nerrs,corrcode] = rsdec(cnoisy,n,k,genpoly); % Giải mã.
% Kiểm tra xem bộ giải mã có hoạt động tốt không.
isequal(dc,msgw) & isequal(corrcode,c)
nerrs % Số lỗi đã được sửa.
msgw % Thông điệp ban đầu
cnoisy % Thông điệp mã hoá đã bị lỗi
corrcode % Thông điệp mã hoá đúng
dc % Thông điệp giải mã
Kết quả xuất hiện trên cửa sổ lệnh của MATLAB như sau:
ans =
1
nerrs =
2
2
2
2
msgw = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
Array elements =
7 7 6
1 6 3
4 3 4
3 0 6
cnoisy = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
Array elements =
0 7 6 4 4 5 4
1 1 0 6 4 3 1
4 3 4 5 2 6 2
3 0 6 5 5 5 3
corrcode = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)
Array elements =
7 7 6 4 6 5 4
1 6 3 6 4 3 1
4 3 4 5 3 2 2
3 0 6 0 5 6 3