通信原理板块——奇偶监督码、方阵码、恒比码、正反码

微信公众号上线,搜索公众号小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等

1、奇偶监督码(parity check)

奇偶监督码分为奇数监督码和偶数监督码,两者原理相同。

利用"⊕模2和"进行检错,适用于检测随机错码。

(1)偶数监督码

在偶数监督码中,无论信息位多少,监督位只有1位,使码组中"1"的数目为偶数,即满足:

an-1⊕an-2⊕......⊕a0=0

a0为监督位,其他位为信息位

在接收端,按照上述公式求"模2和"

若计算结果为"1"表示存在错码

若计算结果为"0"表示无错码

(2)奇数监督码

在奇数监督码中,无论信息位多少,监督位只有1位,使码组中"1"的数目为偶数,即满足:

an-1⊕an-2⊕......⊕a0=1

a0为监督位,其他位为信息位

在接收端,按照上述公式求"模2和"

若计算结果为"0"表示存在错码

若计算结果为"1"表示无错码

2、二维奇偶监督码(two dimensional)

二维奇偶监督码又称为方阵码。

把奇偶监督码的若干码组,每个写成一行,然后再按照列的方向增加第二维监督位。

每一行的最后一位代表该行的监督位,每一列的最底下一位代表该列进行第二次编码所增加的监督位。

方阵码适用于检测突发错码。突发错码常常成串出现,随后有较长一段无措区间,在某一行中出现多个奇数或偶数错码的机会较多。

由于方阵码只对构成矩形四角的错码无法检测,检错能力较强,可使误码率降至原误码率的1/100到1/10000。

3、恒比码

在恒比码中,每个码组均含有相同数目的"1"和"0"。由于"1"的数目和"0"的数目之比保持恒定,故称为恒比码。

检测过程中,只要计算接收码组中"1"的数目是否对,即可判断有无错码。

恒比码的主要优点在于简单,适用于来传输电传机或其他键盘设备产生的字母和符号。

4、正反码

正反码是一种简单的能够纠正错误的编码,其中的监督位数目和信息位数目相同,监督码元与信息码元相同或者相反,由信息码中"1"的个数来确定。

若码长n=10,其中信息位k=5,监督位r=5,其编码规则为:

①当信息位中奇数个"1"时,监督位是信息位的简单重复;

②当信息位中偶数个"1"时,监督位是信息位的反码。

例如:

信息位为11001,码组为1100111001;

信息位为10001,码组为1000101110。

接收端解码规则:

①现将接收码组中信息位和监督位按"模2"相加,得到一个5位的合成码组;

②由合成码组产生一个校验码组。若接收码组的信息位中有奇数个"1",则合成码组就是校验码组;若接收码组的信息位中有偶数个"1",则取合成码组的反码作为校验码组;

③观察校验码组中"1"的个数,按照规则进行判决和纠正可能发现的错码。

一个编码示例:

①发送码组为1100111001,接收码组中无错码,则合成码组为11001⊕11001=00000。由于接收码组信息位中有奇数个"1",校验码组为00000,按判决规则可知:无错码。

②若传输过程中发送差错,接收码组变成1000111001,则合成码组为10001⊕11001=01000。由于接收码组信息位中有偶数个"1",校验码组为10111。按判决规则,校验码组有4个"1"和1个"0",确定:信息码中有1位错码,其位置对应校验码组"0"的位置,也就是信息码左边第二位为错码,可对其进行取反纠错。

③若传输过程中发送差错,接收码组变成1100101001,则合成码组为11001⊕01001=10000。由于接收码组信息位中有奇数个"1",校验码组为10000。按判决规则,校验码组有4个"0"和1个"1",确定:监督码中有1位错码,其位置对应校验码组"1"的位置,也就是监督码左边第一位为错码,可对其进行取反纠错。

④若传输过程中发送差错,接收码组变成1001111001,则合成码组为10011⊕11001=01010。按判决规则,可知错码多余一个。

相关推荐
IM_DALLA7 小时前
【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21
学习·fpga开发
皇华ameya11 小时前
AMEYA360:村田电子更适合薄型设计应用场景的3.3V输入、12A输出的DCDC转换IC
fpga开发
千穹凌帝14 小时前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
一口一口吃成大V20 小时前
FPGA随记——FPGA时序优化小经验
fpga开发
贾saisai21 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
redcocal1 天前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
思尔芯S2C2 天前
高密原型验证系统解决方案(下篇)
fpga开发·soc设计·debugging·fpga原型验证·prototyping·深度调试·多fpga 调试
坚持每天写程序2 天前
xilinx vivado PULLMODE 设置思路
fpga开发
redcocal2 天前
地平线内推码 kbrfck
c++·嵌入式硬件·mcu·算法·fpga开发·求职招聘
邹莉斯4 天前
FPGA基本结构和简单原理
fpga开发·硬件工程