⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.m

📁 802.15 dsss 物理协议层方针代码
💻 M
字号:
%file name: crc.m%Written by Dr. James S. Kang, Cal Poly Pomona.%Calculate the CRC for the given data d and generator sequence g.%d = input data such as [0 1 0 1].%g = generator sequence such as [1 1 1 1 1].%q = quotient sequence.%r = remainder (crc).%To run the program, try% >>crc([0 1 0 1],[1 1 1 1 1])  <Enter>function[r] = crc(d)g=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];% modulated here by G.Jinnd=size(d,2); %nd = length of d.ng=size(g,2); %ng = length of g.fnzd=min(find(d)); %fnzd = index of first nonzero of d.fnzg=min(find(g)); %fnzg = index of first nonzero of g.ld=nd-fnzd+1; %ld = length of d from first nonzero.s = sum(d);g=g(1,fnzg:ng); %g starting from the first nonzero.ng=size(g,2); %ng = length of g.da=d(1,fnzd:nd); %da = data starting from the first nonzero.b=zeros(1,ng-1); %b = all zero vector of length ng - 1.da=[da,b]; %da = augmented by b.nda=size(da,2); %nda = length of da.fnzda=min(find(da)); %fnzda = index of the first nonzero of da.nz=nda-ng; %nz = length of da minus the length of g.b1=zeros(1,nz); %b1 = all zero vector of length nz.v=[g,b1]; %v = g augmented by b1.az=zeros(1,1);if s >0   nq=nda-ng+1; %nq = length of quotient.   	for i = 1:nq   	  if da(i) == 1		q(i) = 1;		da=[rem(da+v,2)]; %da = modulo 2 sum of da and v.	  else		q(i) = 0;	  end	  v=[az,v(1,1:nda-1)]; %v is shifted to the right by 1.		end   	for i=1:ng-1	  r(i) = da(1,nda-ng+1+i); %r = remainder 	endelse	r=zeros(1,ng-1); %if input is all zero, r = all zero vector.end%disp('The quotient = ')%disp(q);%disp('The CRC = ')%disp(r)c=[d r];%disp('The data plus the CRC = ')%disp(c)

⌨️ 快捷键说明

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