MATLAB代做|FPGA代做|simulink代做——伽罗华域乘法

发布时间:2021/6/4 浏览数:813
% function out=gf28(a,b)   %伽罗华域乘法
temp1=4;
temp2=4;
i=8;
for j=0:7  %将temp1中的值化为二进制,存在一个1行的矩阵g中,矩阵每列存一位
g(i-j)=rem(temp1,2);
temp1=fix(temp1/2);
end
for j=0:7 %将temp2中的值化为二进制,存在一个1行的矩阵h中,矩阵每列存一位
h(i-j)=rem(temp2,2);
temp2=fix(temp2/2);
end
s=conv(g,h);  %多项式乘法
[h l]=size(s);
for i=1:l    %奇数=1;偶数=0
    if(rem(s(i),2)==0)s(i)=0;
    else if(rem(s(i),2)~=0)s(i)=1;
        end
    end
end
m=[1 0 0 0 1 1 0 1 1];  %不可月多项式M
[k r]=deconv(s,m);    %多项式除法;l为余数,h为商
[h l]=size(r);  
for i=1:l  %奇数=1;偶数=0
    if(rem(r(i),2)==0)r(i)=0;
    else if(rem(r(i),2)~=0)r(i)=1;
        end
    end
end
c=0;
for i=0:l-1   %结果放入c中
    c=c+r(l-i)*(2^i);
end
out=c; %输出结果
out
————————————————
 
Copyright 2017-2024 © 嘉兴麦特莱博软件开发工作室
  • 网站备案号:浙ICP备18008591号-1