首页 > 其他分享 >BCH码与RS码详解

BCH码与RS码详解

时间:2023-06-19 22:31:40浏览次数:50  
标签:BCH RS 错码 多项式 生成 译码 循环码 详解

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:<https://github.com/timerring/information-theory> 】或者公众号【AIShareLab】回复 信息论 获取。

BCH码-循环码

特点: 它的生成多项式 g(x) 与最小码距之间有密切 的关系, 可以根据所要求的纠错能力 t , 很容易地构 造出 BCH码。

如果循环码的生成多项式具有如下形式:

BCH码与RS码详解_多项式

其中 t 为纠错个数, $m_{i}(x) $ 既约 (素) 多项式, BCH码与RS码详解_多项式_02 表示取最小公倍数, 则由此生成的循环码为 BCH码与RS码详解_通信原理_03 码。码距 BCH码与RS码详解_通信原理_04 。每个码字能纠 BCH码与RS码详解_通信原理_05 个随机独立差错。

BCH码与RS码详解_通信原理_03 码的码长 BCH码与RS码详解_通信原理_07 , 其中 BCH码与RS码详解_通信原理_08, BCH码与RS码详解_通信原理_09, BCH码与RS码详解_通信原理_10 , 则为本原 BCH码与RS码详解_通信原理_03 码;

BCH码与RS码详解_通信原理_03 码的码长是 BCH码与RS码详解_通信原理_07 的因子, 则为非本原 BCH码与RS码详解_通信原理_03 码。

相关知识:

本原多项式的定义: 一个 n 次的多项式 f(x)

(1) f(x) 为既约多项式 (不可因式分解) -GF(2);

(2) f(x) 是 BCH码与RS码详解_多项式_15 因子, $ p{2}=2{n}-1$

(3) f(x) 不是 $ \left(x^{q+1}\right)$ 的因子, $ p>q$

BCH码与RS码详解_多项式_16 码的编码: 生成多项式查表。

BCH码与RS码详解_多项式_16 码的译码:

BCH码与RS码详解_通信原理_03 的译码主要采用彼得森译码, 思路如下:

  • 用生成多项式 g(x) 的各因式作为除式, 对接收到的码多项式求余, 得到 t 个余式, 称为部分伴随式;
  • 用 t 个部分伴随式构造一个特定的译码多项式, 它以错误位置数为根;
  • 求译码多项式的根, 得到错误位置;
  • 纠正错误位置。

RS码

q 进制 BCH码与RS码详解_多项式_16 码的一个特殊子类 (n=q-1) , 并且具有很强的纠错能力。

BCH码与RS码详解_通信原理_20 码的参数:码长 n=q-1 , 监督位数目 r=2t , 其中 t 是 能够纠正的错码数目, 最小码距 BCH码与RS码详解_通信原理_21 ; 其生成多项式为

BCH码与RS码详解_通信原理_22

式中, BCH码与RS码详解_多项式_23 为伽罗华域 BCH码与RS码详解_通信原理_24 中的一个元素。

RS码的主要优点:

  • 它是多进制纠错编码,所以特别适合用于多进制调制的场合;
  • 它能够纠正t个q位二进制错码,即能够纠正不超过q个连续的二进制错码,所以适合在衰落信道中纠正突发性错码。

总结

  • 循环码基本概念;
  • 循环码的生成多项式,以及用该多项式编译码
  • 由生成多项式构造系统型生成矩阵和监督矩阵
  • 循环码的编译码电路;
  • BCH、RS码。

参考文献:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. 周炯槃. 通信原理(第3版)[M\]. 北京:北京邮电大学出版社, 2008.
  4. 樊昌信, 曹丽娜. 通信原理(第7版) [M\]. 北京:国防工业出版社, 2012.

标签:BCH,RS,错码,多项式,生成,译码,循环码,详解
From: https://blog.51cto.com/u_15736437/6517997

相关文章

  • JSqlParser 解析存储过程
    我现在有一个比较复杂的存储过程,我想要使用这个框架来解析这个存储过程,解析存储过程中用到的表,以及字段等信息,我应该怎么做?要使用JSqlParser解析存储过程并提取其中的表和字段信息,你需要遵循以下步骤:导入JSqlParser库:首先,你需要将JSqlParser库添加到你的Java项目中。你可以在J......
  • this version of the Java Runtime only recognizes class file versions up to 52.0
    在SAPCommerceCloudBackoffice做fullindexing时,遇到错误消息:ERROR:Errorfromserverathttps://localhost:8983/solr:ErrorCREATEingSolrCore'master_backoffice_backoffice_product_flip':Unabletocreatecore[master_backoffice_backoffice_product......
  • Windows下载更新powershell
    在使用windows系统默认的powershell时,打开使用的时候一般都会碰到以下这种情况,有新的版本可以尝试使用在powershell中使用命令:$PSVersionTable;可以查看到当前powershell的一些信息安装新版本powershellWindows官方powershell文档:https://aka.ms/pscore6Powershell7.1的官方Git......
  • 03后台主页模块设计,simpleui后台管理,轮播图接口,跨域问题详解,前台主页功能
    1后台主页模块设计#1创建后台主页模块(一个模块一个app)python../../manage.pystartapphome#2在models中写轮播图表 -写一个基表BaseModel-写轮播图表#3迁移###BaseModel##########fromdjango.dbimportmodelsclassBaseModel(models.Model):creat......
  • 数字签名的过程详解
      数字签名的过程详解1.数字证书的概念2.数字签名的过程3.加密的过程4.数字签名两大特性5.用到的部分名词解释1.数字证书的概念数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及公开密钥相关信息的一种电......
  • C++ typeid关键字详解
    typeid关键字 注意:typeid是操作符,不是函数。这点与sizeof类似)运行时获知变量类型名称,可以使用typeid(变量).name()需要注意不是所有编译器都输出”int”、”float”等之类的名称,对于这类的编译器可以这样使用intia=3;if(typeid(ia)==typeid(int)){  cout<<"in......
  • SNN-RAT: Robustness-enhanced Spiking Neural Network through Regularized Adversar
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!同大组工作 Abstract ......
  • Rockchip rk3588 U-Boot详解 (三)
    Rockchiprk3588U-Boot详解(三)专栏总目录1.1Environment-VariablesENV(Environment-Variables)是U-Boot支持的一种全局数据管理和传递方式,原理是构建一张HASH映射表,把用户的数据以"键值-数据"作为表项进行管理。EVN通常用于定义平台配置参数:固件加载地址、网络配置(ipaddr、serve......
  • static详解
     static+属性 //静态属性 ,可直接通过类调用publicstaticstringname=“张三”static+方法 // 静态方法,可直接通过类调用publicstaticvoidadd(){system.out.print("xxxxxx")}static+{} //静态模块代码,最先执行且只执行一次static{system.out.print("xxxxx......
  • windows ,go powershell 测试并且性能分析
    benchamark并且性能分析gotest-runnone-bench.-benchmem-cpuprofilecpu.prof-memprofilemem.prof;Start-Job{gotoolpprof-http=:10000.\cpu.prof};Start-Job{gotoolpprof-http=:10001.\mem.prof}-bench表示执行哪些基准测试函数,后面可以加需要执行......