crcbit.m

来自「gsm的物理层仿真实现」· M 代码 · 共 41 行

M
41
字号
%****************************************************************
% 内容概述:crcbit for GSM 
% 创 建 人:李彩
% 单    位:Starpoint
% 创建时间:2008年
%参考TS 45.003
%****************************************************************
function crcoutput=crcbit(data,CRCNo)
len_crc = size(data,2);
switch (CRCNo)
case 3,
    crcpoly=[1 0 1 1];
case 6,
    crcpoly=[1 1 0 1 1 1 1];
case 10,
    crcpoly=[1 0 1 0 1 1 1 0 1 0 1];
case 16,
    crcpoly=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];
case 40,
    crcpoly = zeros(1,41);
    crcpoly(1) = 1;
    crcpoly(15) = 1;
    crcpoly(18) = 1;
    crcpoly(24) = 1;
    crcpoly(38) = 1;
    crcpoly(41) = 1;    
otherwise,
    disp('CRC位数错误!请重新调用函数');
end
%crcdata=[data zeros(1,CRCNo)];       
temp(1:len_crc)=data;
temp(len_crc+1:len_crc+CRCNo) = 0;
for ii=1:(len_crc)
    
    temp(ii:ii+CRCNo)=mod(temp(ii:ii+CRCNo)+temp(ii)*crcpoly,2);
    
    %  temp=[temp(2:CRCNo+1),crcdata(ii+CRCNo+1)];
end
%crcoutput=temp(2:CRCNo+1);
%crcoutput=temp(CRCNo+1:-1:2);%将CRC编码倒序
crcoutput = [data,temp(len_crc+1:len_crc+CRCNo)];

⌨️ 快捷键说明

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