%function CRC_Wrong_Dec=CRC_Wrong_Dec
clc
clear
countt=0;
right_c=0;error_c=0;
n=input('choose n bits data = ');
m=zeros(n+1,n+1);
i=1;
k=4; % values of interest are 138, 113, 101, 87, 84, and 80
%data=[ 1 1 1 1 0 1 0 1]
data=randint(1,n,2)
%if (n<7)
poly=[1 0 0 1 0 1] %長度多長就錯幾個看不出來;
%elseif (n<10)
% poly=[1 1 0 0 1 1 0 1 1] % CRC-8-WCDMA x8 + x7 + x4 + x3 + x + 1
%elseif (n<17)
% poly=[1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1] %CRC-16-DECT x16 + x10 + x8 + x7 + x3 + 1
%else
% poly=[1 0 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1]
%end;
% Build the CRC with gfdeconv
[q,r]=gfdeconv(fliplr([data zeros(1,length(poly)-1)]),fliplr(poly));
r=fliplr(r); % change to descending powers
if length(r)<length(poly)-1 %餘數小於除式(長度-1),前面補零
r=[zeros(1,length(poly)-1-length(r)),r];
end
crc_data=[data r] % add the remainder
% CRC編碼完成
% 解碼
%rec_data=[ 1 0 1 0 1 0 0 1 1 0 1 1 1 ] %rec_data=randint(1,9,2); %產生隨機接收
K=0;
e=2^n-1; %十進位
while e>=0
a=dec2bin(e); %轉二位元
a=double(a); %轉ACS變字串
c=length(a);
while c<n
a=[0 a]; %補0 使其為8位元
c=c+1;
end;
nn=1;
while nn<n+1
if a(nn)==49 %ACS49 轉 1
b(nn)=1;
else
b(nn)=0; %ACS48 轉 0
end;
nn=nn+1;
end;
e=e-1;
[qq,rr]=gfdeconv(fliplr([b r]),fliplr(poly)); %判斷餘數
if (rr==0)
K=K+1
rec_data=[b r]
end
end;
CRC_Wrong_Dec_1.rar_CRC MATLAB_crc_crc matlab code
版权申诉
130 浏览量
2022-07-14
13:51:23
上传
评论
收藏 929B RAR 举报
林当时
- 粉丝: 100
- 资源: 1万+
最新资源
- module-0004.SyncTensorsGraph.7578.sm-8.0-gpu-after-optimizations
- python39.dll
- 【Matlab 六自由度机器人】Fixed Angles(固定角度) 和 Euler Angles(欧拉角) 之间的区别
- STLINK下载器调试过程中常见问题排查
- BMSP430工程PPT说明书.zip
- FlinkFlinkF
- 《计算机网络-自顶向下方法》答案
- 基于pyqt5框架开发的demo项目 全栈开发,短小精悍,入门学习,上手简单
- 国内IP地址大全 站长资源 访问IP设置 Order allow,deny 使用方法
- 【JavaScript实现点击鼠标出现爱心特效脚本】直接引入index.html文件可用!!!
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈