資源簡(jiǎn)介
CRC編碼的matlab仿真,內(nèi)含文檔和代碼。

代碼片段和文件信息
function?[?out?]?=?check_CRC(?varargin?)
%CRC校驗(yàn)碼檢驗(yàn)程序
%???輸入:data:接收碼
%?????????gen:多項(xiàng)式
%???輸出:1為校驗(yàn)正確,0為錯(cuò)誤
%???舉例:check_CRC([1010011][1011]);
%???同樣支持字符輸入和數(shù)組輸入,如
%???check_CRC([1010011][1011]);
%???check_CRC(‘1010011‘‘1011‘);
[datagen]?=?parse_inputs(varargin{:});
dlen?=?length(data);
len?=?length(gen);
num?=?0;
while?gen(1)?==0????????%去除多項(xiàng)式開(kāi)頭0項(xiàng)
???gen?=?gen(2:len);
???len?=?length(gen);
end
crc?=?data(1:len-1);
for?i?=?len:dlen
????crc(len)?=?data(i);
????if?crc(1)
????????crc?=?xor(crc(2:len)gen(2:len));%異或運(yùn)算,相當(dāng)于除法
????else
????????crc?=?crc(2:len);
????end
end
n?=?length(crc);
for?j?=?1:n
????num?=num?+?crc(j)*10^(n-j);
end
if?num?==0
????out?=?1;
????msgbox(‘傳輸過(guò)程正確!‘‘提示信息‘‘help‘‘modal‘);
else
????out?=?0;
????msgbox(‘傳輸過(guò)程出現(xiàn)錯(cuò)誤!‘‘提示信息‘‘help‘‘modal‘);
end
end
%--------------------------------------------------------------------------
function?[datagen]?=?parse_inputs(varargin)
if?nargin?==?0
????error(message(‘必須輸入?yún)?shù)‘));
elseif?nargin?==?1
????error(message(‘必須輸入2個(gè)參數(shù)(接收數(shù)碼與多項(xiàng)式)‘));
elseif?nargin?==?2
????if?ischar(varargin{1})?==?1
????????n?=?length(varargin{1});
????????temp?=?varargin{1};
????????data?=?zeros(1n);
????????for?i?=?1:n
???????????data(i)?=?str2double(temp(i));
????????end
????else
????????if?length(varargin{1})?==?1
????????????temp?=?num2str(varargin{1});
????????????n?=?length(temp);
????????????data?=?zeros(1n);
????????????for?i?=?1:n
????????????????data(i)?=?str2double(temp(i));
????????????end
????????else
????????????data?=?varargin{1};
????????end
????end
????
????if?ischar(varargin{2})?==?1
????????n?=?length(varargin{2});
????????temp?=?varargin{2};
????????gen?=?zeros(1n);
????????for?i?=?1:n
???????????gen(i)?=?str2double(temp(i));
????????end
????else
????????if?length(varargin{2})?==?1
????????????temp?=?num2str(varargin{2});
????????????n?=?length(temp);
????????????gen?=?zeros(1n);
????????????for?i?=?1:n
????????????????gen(i)?=?str2double((temp(i)));
????????????end
????????else
????????????gen?=?varargin{2};
????????end
????end
end
end
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????2229??2016-05-19?16:51??CRC\check_CRC.m
?????文件??????30195??2016-05-08?23:12??CRC\CRC.docx
?????文件???????2487??2016-05-19?16:53??CRC\generate_CRC.m
?????目錄??????????0??2016-05-19?16:54??CRC
-----------?---------??----------?-----??----
????????????????34911????????????????????4
評(píng)論
共有 條評(píng)論