crcdecode.m

来自「在基于matlab移动通信仿真中要使用到」· M 代码 · 共 50 行

M
50
字号
function [X,error]=CRCdecode(B)
G=[1,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,1];
LG=length(G);
LB=length(B);
P=B(1:LG);
pointer=LG;
while pointer<=LB
        P=xor(P,G);
          if pointer==LB
               break;
          end     
         if sum(P)==0
              for i=1:LG
                  pointer=pointer+1;
                  P(i)=B(pointer);
                  if pointer==LB
                      break;
                  end    
              end
               
         else
               for j=1:LG
                  if P(j)==1
                      k=j;
                           for i=1:LG+1-k
                              P(i)=P(k-1+i);
                           end
                      break;
                   end
                end
                if k>1 
                    for i=LG-k+2:LG
                       pointer=pointer+1;
                       P(i)=B(pointer);
                       if pointer==LB
                           break;
                       end    
                    end
                end           
         end          
 end
 
 if sum(P)==0
     error=0;
     X=B(1:end-LG+1);
 else
     error=1;
     X=B(1:end-LG+1);
 end  

⌨️ 快捷键说明

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