奇偶校验:
最常用的检错码是就校验码,他在原编码基础上增加一位奇偶校验位,使得整个编码的“码重”固定为奇数(奇校验)或偶数(偶校验)。其中“码重”即编码中“1”的个数。
奇偶校验能发现奇数个错,而在计算机中发生一个差错的概率远大于两个差错,绝大多数是出现一个差错,这就使得奇偶校验具有很高的实用性;而因为奇校验不能产生全零的代码,故常用的为“偶校验”。
奇偶校验matlab实现:
下面有两个奇偶校验的MATLAB实现代码,其功能基本一致,第一个是可以选择奇校验或偶校验,第二个则是直接分别输出奇校验和偶校验,其中源码的行列自由输入,随机生成0-1矩阵即为源码,校验码则为附加的最后一列。
%奇偶校验1的源代码
clc;clear;
m=input('请输入行:'); n=input('请输入列:'); A=randint(m,n); A
for k=1:2
sum=zeros(1,m);
l=input('请选择奇偶校验(0、偶校验 1、奇校验):'); for i=1:m for j=1:n
sum(i)=sum(i)+A(i,j); z=sum(i); end
if rem(z,2)==l A(i,n+1)=0; else
A(i,n+1)=1; end
end A end
%奇偶校验2的源代码
clc;clear;
m=input('请输入行:'); n=input('请输入列:'); A=randint(m,n); A
for k=1:2
sum=zeros(1,m); for i=1:m for j=1:n
sum(i)=sum(i)+A(i,j); z=sum(i); end
if rem(z,2)==k-1 A(i,n+1)=0; else
A(i,n+1)=1; end end if k==1
fprintf('偶校验:') else
fprintf('奇校验:') end A end
因篇幅问题不能全部显示,请点此查看更多更全内容