rs_encode.m

来自「Reed Solomon码的编译码器MATLAB仿真程序」· M 代码 · 共 45 行

M
45
字号
function t_x = rs_encode(m_x);
%本函数实现编码器过程

%下为生成矩阵的构造过程
g=zeros(1,7);
g(1)=2;
g(2)=1;   
temp=zeros(1,7);
for i=2:6
    temp = g;
    g=zeros(1,7);
    g(2:7)=temp(1:6);
    for j=1:6
        temp(j)=rs_symbolmultiple(temp(j), 2^i);
    end
    for j=1:6;
        g(j) = rs_symboladd( temp(j), g(j));
    end
end

G = zeros(25,31);
for i=1:25
    G(i,i:i+6)=g;
end

for i = 1:24
    for l = i+1:25
        mod = rs_symboldiv(G(l,6+i), G(i,6+i)); 
        for j = 1:i+6
            G(l,j) = rs_symbolminus(G(l,j), rs_symbolmultiple(G(i,j),mod));
        end
    end
end

%下为信息序列(原始序列)与生成矩阵的相乘,得到编码结果
X = zeros(25);
X(1:length(m_x))=m_x;

t_x= zeros(1,31);
for i=1:31
    for j=1:25
       t_x(i) = rs_symboladd( rs_symbolmultiple( X(j), G(j,i)),t_x(i));
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?