格雷码的编码和译码算法

格雷码(Golay Code)的编码和译码算法

格雷码在通信中应用广泛。例如早在1980年俄罗斯航天仪表码研究所为了提高“星一地”、“地一星”链路数字指控信息的可靠性,研制和实现了格雷码的编码器和译码器,该设备在某型号飞行任务中成功地进行了试验。试验表明,使用格雷码,通信系统的误码率与未编码通信系统相比减少了1-3个数量级。格雷码通常是指线性分组(23,12)码,最小距离dmin=7,纠错能力 t=3。由于223-12=2048=1+ ,所以格雷码是完备码,其码重分布见下面表1。码重0781112151623码个数1253506128812885062531表1 格雷码的码重分布

格雷码Golay (23,12)是循环码。对于汉明码、格雷码、二次剩余码、BCH码和R-S码等循环码的解码有很多方法,如梅杰特解码(Meggit, 1961)、大数逻辑解码(Reed,1954)、门限解码(Massey, 1961)、信息组解码(Prange, 1962)。最经典的方法当属梅杰特解码,它充分利用了循环码的循环特征。

格雷码的编码算法输入:信源消息u(消息分组u)输出:码字v1、处理:信源输出为一系列二进制数字0和1。在分组码中,这些二进制信息序列分成固定长度的消息分组(message blocks)。每个消息分组记为u,由k个信息位组成。因此共有2k种不同的消息。编码器按照一定的规则将输入的消息u转换为二进制n维向量v,这里n >k。此n维向量v就叫做消息u的码字(codeword)、码字矢量或码向量(code vector)。 因此,对应于2k种不同的消息,也有2k种码字。这2k个码字的集合就叫一个分组码(block code)。若一个分组码可用,2k个码字必须各不相同。因此,消息u和码字v存在一一对应关系。由于n符号输出码字只取决于对应的k比特输入消息,即每个消息是独立编码的,从而编码器是无记忆的,且可用组合逻辑电路来实现。定义:一个长度为n,有2k个码字的分组码,当且仅当其2k个码字构成域GF(2)上所有n维向量组成的向量空间的一个K维子空间时被称为线性(linear)(n, k)码。格雷码Golay(n,k)就是线性分组(n, k)码的一种。其编码算法即为使用生成矩阵G:v = u·G 。例1-1 格雷码Golay (20,8,7) 的生成矩阵G为:G= [ Ik P ]k×n = ,v = u·G ,处理完毕。其他线性分组(n, k)码都可以照此办理即可。线性分组(n, k)码的校正子(伴随式)有2n-k个,设该码的纠错能力为t,那么重量小于或者等于t的所有错误模式(图样)都要有唯一的校正子(伴随式)与之对应,因而,对于二进制(n, k)码,有汉明限:2n-k≥ ,当2n-k=时,(n, k)码称为完备码(Perfect Code)。完备码的校正子(伴随式)得到了充分的利用,不存在解码不唯一的问题,然而完备码不一定是纠错能力强的码,因为它的最小距离dmin未必最大。完备码也是稀少的,已知的二进制完备码有t=1的汉明码(Hamming Code)和t=3的格雷码(Golay Code),以及n为奇数的简单重复(n,1)码。三进制完备码有t=2的(11,6,5)格雷码。纠错能力t=1的完备码统称为汉明码。由定义可知,(n, k)汉明码应当满足下列条件:2n-k=1+n ,令校验位长m=n-k,那么容易知道:n=2m-1, k=2m-1-m, dmin=3汉明码的校验矩阵H具有特殊的性质:它的m维列向量正好是除零向量以外的所有可能的向量组合,共有2m-1个,恰好构成了H矩阵的列数n。格雷码通常是指线性分组(23,12)码,最小距离dmin=7,纠错能力 t=3。由于223-12=2048=1+ ,所以格雷码是完备码,其码重(码的重量)分布见下面表0-1。

表1 格雷码的码重分布码重0781112151623码个数1253506128812885062531

备注:1、格雷码Golay (20,8,7) 的生成矩阵G为:G= [ Ik P ]k×n = 。2、除了分组码之外,还有卷积码。卷积码编码器同样接受k比特分组的信息序列u,并产生n符号组的编码序列(码序列)v(卷积码编码中,符号u和v用来表示分组的序列而非单个分组)。但是,每一个编码分组不仅取决于当前单位时间对应的k比特消息组,而且与前m个消息组有关。此时,编码器的存储级数(memory order)为m。编码器所产生的所有可能的输出编码序列的集合构成了一个码。比值R=k/n称为码率(code rate)。由于编码器有存储单元

4位格雷码的顺序编码_格雷码的编码和译码算法.doc相关推荐

  1. 4位格雷码的顺序编码_格雷码编码 解码 实现(Python)

    作者:曹博 01 二值码 02 格雷码编码 2.1 编码优点 2.2 编码生成 2.3 递归生成 2.4 二值码转换 2.5 编码图 03 格雷码投影 3.1 投影图案生成 3.2 DLP投影图像 0 ...

  2. 4位格雷码的顺序编码_格雷码那点事——递归非递归实现

    简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循环 ...

  3. 4位格雷码的顺序编码_格雷码编码规则_格雷码有什么规律

    格雷码 典型的二进制格雷码简称格雷码,因1953年公开的弗兰克·格雷专利"Pulse Code Communication"而得名,当初是为了通信,现在则常用于模拟-数字转换和位置 ...

  4. 北大青鸟消防设备类型编码_探测器该如何编码?即报警区域、探测区域的真正用途...

    <火灾自动报警系统设计规范> GB 50116-2013中说到 报警区域是将火灾自动报警系统的警戒范围按防火分区或楼层等划分的单元. 报警区域应根据防火分区或楼层划分:可将一个防火分区或一 ...

  5. python2默认编码_解决Python2.x编码之殇

    Python编码问题一直困扰了我许久,之前有过一些总结,但并不系统,比较凌乱.当然python2.x编码问题本身,便是剪不断理还乱.本篇将系统介绍python2.x编程中会遇到的一些编码问题,并给出解 ...

  6. 工业机器人码垛教学实施_工业码垛机器人存在问题与解决对策

    摘  要该文首先介绍了工业码垛机器人应用的适用领域.应用的意义及特点,阐述了工业码垛机器人系统的组成部分,详细分析了工业机器人码垛应用中所存在的多样化产品码垛,机器人抓取定位,结构设计,负载能力和码垛 ...

  7. 四轴码垛机器人配件_四轴码垛机器人的应用范围

    随着机器人技术的发展,在制造业中出现了很多机器人的身影,四轴码垛机器人就是其中的一种,现在码垛机器人代替了人工在作业,那么大家知道四轴码垛机器人的应用范围是什么吗?小编整理了一些相关的资料,大家一起来 ...

  8. mysql主码和外码能一样吗_主码、候选码、外部码之间的联系与区别

    展开全部 主码包含候选码和码,候选码包含码. 1.含义不同:若关系中的某一属性组的值能唯一地标识一个元e68a84e8a2ad3231313335323631343130323136353331333 ...

  9. 一位原码的乘法规则_原码一位乘法与补码一位乘法

    原码1位乘法 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号按异或运算得到.而乘积的数值部分则是两个正数相乘之积.设n位被乘数和乘数用定点小数表示(定点整数也相同适用) 被 ...

  10. 信息论与编码_哈夫曼编码

    哈夫曼树 哈夫曼树(Huffman Tree)也是一种特殊的二叉树,这种树的所有叶子结点都带有权值,从中构造出带权路径长度最短的二叉树,即哈夫曼树. 哈夫曼树的定义 ​ 设二叉树具有n个带权值的叶子结 ...

最新文章

  1. 记录一下g++的编译选项
  2. Angular cli 发布自定义组件
  3. Windows 7 提示AtBroke.exe初始化失败
  4. QGraphicsItem获取不到鼠标事件
  5. 多媒体技术创新与难点探索(内附讲师资料下载)
  6. java web后台_java web 后台那些事
  7. 熟悉MyEclipse
  8. echarts实用小技巧,控制字符串长度,限定整数等
  9. 8.22 NOIP模拟测试29(B) 爬山+学数数+七十和十七
  10. 碰上这种 Wi-Fi,iPhone 秒崩!
  11. 2014/08/31 Zushi
  12. php中is_uploaded_file()函数的用法
  13. Echarts+Vue地图
  14. OpenCV(项目)人脸识别(图片识别、摄像头识别)
  15. 动态规划(Dynamic Programming)算法与LC实例的理解
  16. 40163 php,微信授权登录code 40163
  17. 本地安装brat标注平台
  18. QtCreator-----Kits选项选择
  19. 消息系统(ActiveMQ)
  20. html5 canvas时光隧道3D粒子动画js特效

热门文章

  1. ECO生态币官网blog.sina.com.cn/ecocoin
  2. 汉仪字体安装后PPT找不到_字体不知道去哪下载?我教您
  3. Java开发使用百度翻译api
  4. 三星s10刷android原生,【极光ROM】-【三星S10E/S10/S10+ G97XX-9820】-【V12.0 Android-Q-TD1】...
  5. python批量切换图片格式的方法
  6. 【FPGA】QuartusII_13.1安装及破解
  7. 模拟电路电源芯片PROTUES
  8. 维纳滤波python 函数_Wiener维纳滤波基本原理及其算法实现
  9. C语言指针申请与释放
  10. 基于探索者串口更新字库笔记