www.pudn.com > RS.rar > RS_255_GF_Gen.m


%************************************************************************** 
% 生成伽逻华域GF(2^8)的255个非零的元素,用次数不超过7的多项式来表示, 
% 本原多项式为a^8+a^7+a^2+a+1,a为伽逻华域GF(2^8)的本原元,a的各次幂组 
% 成伽逻华域GF(2^8)的各个元素,各个元素又可以由次数不超过7的多项式来表 
% 示,下面的程序用来生成这些非零的多项式,算法为a^k(k<=254)除以本原多 
% 项式,余数即为这些多项式。 
%************************************************************************** 
 
A=[1 1 0 0 0 0 1 1 1];      % 本原多项式的向量表示 
A=gf(A);                    % 将A转化到伽逻华域GF(2)表示 
R=zeros(255,8); 
R=gf(R); 
for i=1:255 
    B=zeros(1,255); 
    B(256-i)=1; 
    B=gf(B); 
    [q,r]=deconv(B,A);      % 伽逻华域GF(2)的多项式除法 
    R(i,:)=r(248:255);       
end; 
 
% 注意这时生成的255个多项式的系数均是在伽逻华域GF(2)上,因此要对这些系数进行 
% 操作需要将其转化为正常域的浮点数,但好象matlab内部没有这样的函数,我采用的 
% 方法为,将这255组系数拷贝(cttl+c)到一个txt文档内,然后用matlab的文件的读 
% 的指令来将这些系数读回。(已生成了RS_255_double_data.mat,内部的系数已转化 
% 为十进制的形式) 
 
% RS码的生成多项式可由matlab的内部函数 g = rsgenpoly(255,241,391,120),来生成, 
% 具体该函数的用法见help文件,此时生成的G(x)的系数是用十进制的数来表示的,我们 
% 为了设计伽逻华域GF(2^8)的乘法器,须知道其对应的a^k的k的值,这很容易RS_255_ 
% double_data.mat文件中的数据data_dec查到。便可以设计各个乘法器。