CRC MATLAB源代码
这部分CRC MATLAB源代码,其中包括CRC8和CRC32 matlab代码。
各种基于多项式的CRC技术被用于错误检测。它的意思是检测从远端接收到的数据包中是否发生了任何错误。它既可用于有线传输系统,也可用于无线传输系统。在这种情况下,当检测到错误时,将启动重传。详情请参阅我们的网页儿童权利公约在术语部分。
CRC8 MATLAB代码
以下代码是广泛用于以太网和无线标准(wimax,wlan等)的CRC8多项式的CRC matlab代码。
输入=[0 1 0 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,…
0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,…
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);输入值。
M1 =输入;G1 = [1,0,0,0, 0,0,0,0,0,1,1,1];
mL =长度(M1);
gL =长度(G1);
计数= 0;
while((mL-count) >= gL)
msg9 = M1(1:gL);
rem = mod((msg9 + G1),2)
M1(1:gL) = rem;
j = 1;
SHFT = 0;
而(j < = gL)
如果(rem (j) ~ = 0)
打破;
Else SHFT = j;
J = J + 1;
结束
结束
计数=计数+位移;
M1(1:shft) = [];
结束
J = 0;
值= 0;
chksuml =长度(M1)
对于j = 1:chksuml %,将二进制转换为十进制
if(M1(j) == 1)
Value = Value + (2^(chksuml-j));
结束
结束
dec2hex(值)
%十进制到十六进制CRC8输出
0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,…
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);输入值。
M1 =输入;G1 = [1,0,0,0, 0,0,0,0,0,1,1,1];
mL =长度(M1);
gL =长度(G1);
计数= 0;
while((mL-count) >= gL)
msg9 = M1(1:gL);
rem = mod((msg9 + G1),2)
M1(1:gL) = rem;
j = 1;
SHFT = 0;
而(j < = gL)
如果(rem (j) ~ = 0)
打破;
Else SHFT = j;
J = J + 1;
结束
结束
计数=计数+位移;
M1(1:shft) = [];
结束
J = 0;
值= 0;
chksuml =长度(M1)
对于j = 1:chksuml %,将二进制转换为十进制
if(M1(j) == 1)
Value = Value + (2^(chksuml-j));
结束
结束
dec2hex(值)
%十进制到十六进制CRC8输出
输出在MATLAB命令窗口
CRC MATLAB代码为CRC32
下面的代码是CRC的matlab代码为CRC32多项式。
function Output = CRC_gen(Input) GenPoly = [1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0];
%G(x)=x32+x26+x23+x22+x16+x12+ x11+ x10+ x8+ x7+ x5+ x4+ x2+x+1
BufferInit = ones(1,32);
输入=[输入零(1,32)];
for i = 1:length(Input)
temp1 = BufferInit(end);
temp2 = temp1*GenPoly;
for j = length(BufferInit):-1:2
BufferInit(j) = xor(temp2(j), BufferInit(j-1));
结束
BufferInit(1) = xor(Input(i), temp2(1));
结束
输出= fliplr(BufferInit)
%G(x)=x32+x26+x23+x22+x16+x12+ x11+ x10+ x8+ x7+ x5+ x4+ x2+x+1
BufferInit = ones(1,32);
输入=[输入零(1,32)];
for i = 1:length(Input)
temp1 = BufferInit(end);
temp2 = temp1*GenPoly;
for j = length(BufferInit):-1:2
BufferInit(j) = xor(temp2(j), BufferInit(j-1));
结束
BufferInit(1) = xor(Input(i), temp2(1));
结束
输出= fliplr(BufferInit)
MATLAB代码的有用链接
参考以下以及左边面板上提到的链接,以获得有用的MATLAB代码。
OFDM前导信号的产生时间偏差估计频率估计信道估计11a WLAN信道PN序列生成OFDMA Tx RxAES DES载波聚合CCDF冷杉过滤器IIR滤波器低通FIR维特比译码器CRC8 CRC32
射频和无线教程
无线局域网802.11交流802.11广告wimax无线个域网z - waveGSMLTEUMTS蓝牙超宽频物联网卫星天线雷达