golay_decoder.m

来自「golay码&RS码的性能分析与比较」· M 代码 · 共 45 行

M
45
字号
function  [decoder_data]=Golay_decoder(dsource)

B=[1 1 0 1 1 1 0 0 0 1 0 1;                 
   1 0 1 1 1 0 0 0 1 0 1 1;
   0 1 1 1 0 0 0 1 0 1 1 1;
   1 1 1 0 0 0 1 0 1 1 0 1;
   1 1 0 0 0 1 0 1 1 0 1 1;
   1 0 0 0 1 0 1 1 0 1 1 1;
   0 0 0 1 0 1 1 0 1 1 1 1;
   0 0 1 0 1 1 0 1 1 1 0 1;
   0 1 0 1 1 0 1 1 1 0 0 1;
   1 0 1 1 0 1 1 1 0 0 0 1;
   0 1 1 0 1 1 1 0 0 0 1 1;
   1 1 1 1 1 1 1 1 1 1 1 0];  
I=eye(12);
H=[B;I];  

ei=zeros(1,12);
s=rem(dsource*H,2);
o=zeros(1,12);
u=zeros(1,24);
if (sum(s(1,:)))<=3
    u=u+[s,o]; 
else 
    for i=1:12
        c=rem(s+B(i,:),2);
        if(sum(c(1,:)))<=2
            ei(i)=ei(i)+1;
            u=u+[s+B(i,:),ei];
        end
    end   
end
if(sum(s*B))<=3
    u=u+[o,s*B];
else
    for i=1:12
        c=rem(s*B+B(i,:),2);
        if (sum(c(1,:)))<=2
            ei(i)=ei(i)+1;
            u=u+[ei,s*B+B(i,:)];
        end
    end
end
    decoder_data=mod(u+dsource,2);
   

⌨️ 快捷键说明

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