概括地说,传输中的差错都是由噪声引起的。
全局性:1.随机热噪声,信道所固有、持续存在。
解决办法:提高信噪比来减少或避免干扰。
局部性:2.外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
差错控制分成自动重传请求(ARQ)和前向纠错(FEC)。
在ARQ中,接收端检测出差错时,就设法通知发送端重发,直到接受到正确的码字为止。
在FEC中,接收端不但能发现差错,而且能确定二进制数码的错误位置,从而加以纠正。
差错控制又可分为检错编码和纠错编码。
3.3.1检错编码
1.奇偶校验码
特点:只能检查出奇数个比特错误,检错能力为50%。
2.循环冗余码
原理:任意一个由二进制位串组成的代码都可以和一个系数仅为'0'和'1'取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。
定义:给定一个m bit的帧或报文,发送器生成一个r bit的序列,称为帧检验序列(FCS)。这样所形成的帧将由(m+r)比特组成。发送方和接收方事先商定一个多项式G(x),使这个带检验码的帧刚好能被这个预先确定的多项式
G(x)整除。接收方用相同的多项式去除收到的帧,如果五余数,则认为无差错。
计算步骤:1)加0 假设生成多项式G(x)的阶为r,则加上r个0。
2)模2除法 数据加上0后除以多项式,余数为冗余码/FCS。
3.3.2纠错编码——海明码
海明码:发现双比特错,纠正单比特错。
流程:
海明码“纠错”d位,需要码距为2d+1的编码方案;“检错”d位,则只需码距为d+1。