📄 rs.m
字号:
%RS(255,239) generator polynomial
genpoly = rsgenpoly(255, 239, 285, 0)
%anoehr way to get the generator polynomial
n = 255;
a = gf(2,log2(n+1), 285); % Root of primitive polynomial
f0 = [1 1];
f1 = [1 a];
f2 = [1 a^2]; % Factors that form generator polynomial
f3 = [1 a^3];
f4 = [1 a^4];
f5 = [1 a^5];
f6 = [1 a^6];
f7 = [1 a^7];
f8 = [1 a^8];
f9 = [1 a^9];
f10 = [1 a^10];
f11 = [1 a^11];
f12 = [1 a^12];
f13 = [1 a^13];
f14 = [1 a^14];
f15 = [1 a^15];
f = conv(f0,f1) % Generator polynomial, same as r abov
f = conv(f,f2)
f = conv(f,f3);
f = conv(f,f4);
f = conv(f,f5);
f = conv(f,f6);
f = conv(f,f7);
f = conv(f,f8);
f = conv(f,f9);
f = conv(f,f10);
f = conv(f,f11);
f = conv(f,f12);
f = conv(f,f13);
f = conv(f,f14);
f = conv(f,f15)
m = 8; % Number of bits in each symbol
n = 255; % Length of the message
k = 239; % Length of the information
%data = randint(1, k, 2^m) % Four random integer messages
data = 80*ones(1, k);
%data = zeros(1, k);
%data(239) = 1;
%data(238) = 1;
info = gf(data, m); % Represent data using a Galois array.
%c1 = rsenc(info, n, k);
c1 = rsenc(info, n, k, rsgenpoly(n, k, 285, 0));
%c1(1) = 81;
%c1(4) = 81;
%c1(31) = 81;
c1(92) = 81;
%d1 = rsdec(c1, n, k, rsgenpoly(n, k, 285, 0));
c1
gf2 = gf(2, 8)
gf4 = gf(4, 8)
gf8 = gf(8, 8)
gf16 = gf(16, 8)
gf1 = gf(1, 8)
n2to16 = gf(1, 8)
for i=1:1:16
n2to16 = n2to16 .* gf(2, 8);
end
n2to16
s0 = c1(1)
s1 = c1(1)
s2 = c1(1)
s3 = c1(1)
s4 = c1(1)
s16 = c1(1)
for i=1:1:254
%i
prd0 = s0 .* gf1;
s0 = prd0 + c1(i+1);
prd1 = s1 .* gf2;
s1 = prd1 + c1(i+1);
prd2 = s2 .* gf4;
s2 = prd2 + c1(i+1);
prd3 = s3 .* gf8;
s3 = prd3 + c1(i+1);
prd4 = s4 .* gf16;
s4 = prd4 + c1(i+1);
prd16 = s16 .* n2to16;
s16 = prd16 + c1(i+1);
end
s0
s1
s2
s1 .* s1
s3
s1 .* s1 .* s1
s4
s1 .* s1 .* s1 .* s1
s2 .* s2
s16
s16+gf(241,8)
s4 .* s4 .* s4 .* s4
b = gf(1, 8)
b ./ s1
alpha = gf(1, 8);
for i = 1 : 1 : 12
alpha = alpha .* gf(2, 8);
end
alpha
%gf(215, 8) .* gf(2, 8)
%s16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -