⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs_decode_iterate.m

📁 Reed Solomon码的编译码器MATLAB仿真程序
💻 M
字号:
function sigma_x=rs_decode_iterate(synd_x)
%本函数实现计算错误位置多项式
%sigma(i,:)是第i次叠带产生的错误位置多项式,step(i)表示第i次叠带产生的错误位置多项式的阶数,high是pi(x)第i+1次叠带的最高项系数
sigma=zeros(8,7);
step=zeros(1,8);
high=zeros(1,8);
sigma(1,1)=1;
step(1)=0;
high(1)=1;
sigma(2,1)=1;
step(2)=0;
high(2)=synd_x(2);
for j=2:7
    
    if (high(j)==0)
        sigma(j+1,:)=sigma(j,:);
        step(j+1)=step(j);
    else
        for n=1:j-1
            if(high(n)~=0)
                i=n;
            end;
        end;
        temp=zeros(1,j-i+1);
        temp(j-i+1)=1;
        temp1=rs_polymul(temp,sigma(i,:));
        len=length(temp1);
        temp2=zeros(1,7);
        temp2=temp1(1:7);
        sigma(j+1,:)=sigma(j,:)+high(j)*rs_symbolrev(high(i))*temp2;
        temp4=rs_symbolmultiple(high(j),rs_symbolrev(high(i)));
        for l=1:7
            sigma(j+1,l)=rs_symboladd(sigma(j,l),rs_symbolmultiple(temp4,temp2(l)));
        end;
       
    end;
        for m=1:7
            if (sigma(j+1,m)~=0)
                step(j+1)=m-1;
            end;
        end;
        for t=1:step(j+1)
            temp3=rs_symbolmultiple(sigma(j+1,t+1),synd_x(j+1-t));
            high(j+1)=rs_symboladd(high(j+1),temp3);
        end;
        if(j+1<8)
        high(j+1)=rs_symboladd(high(j+1),synd_x(j+1));
        end;
end;
sigma_x=sigma(8,:);

⌨️ 快捷键说明

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