CRC校验matlab源码
function C = CRC_code_new_n1_mod(M,n,G)
%CRC code (n,k) function,每k个bit编成nbit。
%Input:
% M:(1,x*k) input data
% n:
% G:generating polynomial.(1,n-k+1)
%Output:
% C:(1,n) coded data;
len1=length(G);%len1=n-k+1 已经比n-k大1了。
k=n-len1+1
len2=length(M)
M1=reshape(M,k,len2/k);
C1=zeros(n,len2/k);
C1(1:k,:)=M1;
%t=zeros(n-k+1,1);
%CRC 部分
t=C1(1:n-k+1,:);%8=n-k;eg.n-k+1=9; t为矩阵
GG=[];
for ii=1:len2/k
GG=[GG,t(1,ii).*G];
end
t=mod((t+GG),2);
for jj=n-k+2:n
GG=[];
t=[t(2:n-k+1,:);C1(jj,:)];
for ii=1:len2/k
GG=[GG,t(1,ii).*G];
end
t=mod((t+GG),2);
end
C1(k+1:n,:)=t(2:n-k+1,:);%2-9,共8位
C=reshape(C1,1,n*len2/k);
function [DC,indicate]= CRC_decode_new_n1_mod(C,n,G)
%CRC code (n,k) function,每k个bit编成nbit。%还没有实现纠错。
%Input:
% M:(1,x*n) input data
% n:
% G:generating polynomial.(1,n-k+1)
%Output:
% C:(1,x*k) coded data;
% indicate: CRC indicator,0-correct,>=1-err;
len1=length(G);%len1=n-k+1 **已经比n-k大1了。
k=n-len1+1;
len2=length(C);
M=reshape(C,n,len2/n);
DC=reshape(M(1:k,:),1,k*len2/n);
indicate=zeros(1,len2/n);
%CRC_deco 部分
t=M(1:n-k+1,:);%8=n-k;eg.n-k+1=9; t为矩阵
GG=[];
for ii=1:len2/n
GG=[GG,t(1,ii).*G];
end
t=mod((t+GG),2);
for jj=n-k+2:n
GG=[];
t=[t(2:n-k+1,:);M(jj,:)];
for ii=1:len2/n
GG=[GG,t(1,ii).*G];
end
t=mod((t+GG),2);
end
indicate=sum(t);
D-31
相关文章
- Matlab中函数的优先顺序
- Matlab中在类定义中重载函数
- Matlab中namedargs2cell函数的使用
- matlab结构体的创建与元素访问
- matlab学习笔记10_5 通用字符串操作和比较函数
- 【MATLAB教程案例88】通过matlab模拟光的干涉现象
- 【MATLAB教程案例85】通过matlab实现有限差分法求解微分方程
- 【MATLAB教程案例57】使用matlab实现RCNN,FastRCNN以及FasterRCNN网络目标检测功能与仿真分析
- 【MATLAB教程案例51】传统神经网络学习——使用matlab神经网络工具箱实现BP、PNN、GRNN神经网络等
- 基于matlab的陷波滤波器设计
- 【COST231】LOS和NLOS下COST231-WI模型路径损耗的MATLAB仿真
- 基于matlab史密斯圆图演示源码程序
- 基于MATLAB的波速形成仿真
- 根据MATLAB的函数histeq()改写的运行在OpenCV1.x下的直方图规定化C++源码
- 《数字图像处理与机器视觉——Visual C++与Matlab实现(第2版)》——2.3 MATLAB的图像转换
- 【Matlab算法】L-M法求解非线性最小二乘优化问题(附L-M法MATLAB代码)
- Matlab ------ 打开MATLAB,设置默认打开的文件夹
- MATLAB | 我用MATLAB复刻了这场颜色图生成大赛的作品
- MATLAB | 我用MATLAB制作了一款伪3D第一视角迷宫小游戏
- Matlab中将行向量转为列向量的方法
- 正交频分复用调制(OFDM)-MATLAB