通信原理板块——线性分组码之循环码

news/2024/7/24 12:28:18 标签: fpga开发

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
1、循环码原理
循环码(cycle code),是一种线性分组码。具有线性码的一般性质外,还具有循环性。
循环性是指任一码组循环一位以后,仍然为该码中的一个码组。
即将最右端的一个码元移至左端,或者将最左端的一个码元移至右端,仍然为该码中的一个码组。
一个循环码的例子
在这里插入图片描述
长度n的循环码组的多项式
在这里插入图片描述
(2)循环码的运算
①码多项式的按模运算
模n(modulo-n)运算
若一个整数(integer)m,满足
在这里插入图片描述
Q为整数
在模n运算下,一个整数m等于它被n除得的余数(remainder)。
码多项式的按模运算,若任一多项式F(x)被一n次多项式N(x)除,得到商式(quotient)Q(x)和一个次数小于n的余式(residue)R(x)
注意:模2运算中,用加法代替了减法
在这里插入图片描述
一个重要结论:一个长为n的循环码必定为按模(x^n+1)运算的一个余式
②循环码的生成矩阵G
在循环码中,一个(n,k)码有2^k个不同码组。
g(x)必须是一个常数项不为“0”的(n-k)次多项式,而且这个g(x)还是(n,k)码中次数为(n-k)的唯一一个多项式。
以唯一的(n-k)次多项式g(x)为码生成多项式
可得到循环码的生成矩阵G
在这里插入图片描述
③任一(n,k)循环码的生成多项式
任一循环码多项式A(x)都是g(x)的倍式,即A(x)=h(x)×g(x)
生成多项式g(x)是一个(n-k)次多项式
x^k×g(x)是一个n次多项式
进行模(x^n+1)运算可得
(xk×g(x))/(xn+1) = Q(x)+A(x)/(x^n+1)
左端分子和分母都是n次多项式,故Q(x)=1
(xk×g(x))=(xn+1)+h(x)×g(x)
(xn+1)=g(x)×(xk+h(x))
生成多项式g(x)应该是(x^n+1)因子中的一个(n-k)次多项式
④循环码的编码方法
在编码时,根据给定的(n,k)值选定生成多项式g(x),即从(x^n+1)的因子中选一个(n-k)次多项式作为g(x)
具体编码规则:
设m(x)为信息码多项式,其次数小于k
x^(n-k)×m(x)的次数必定小于n,即在信息码后面附加上(n-k)个“0”
余式r(x)=g(x)/(x^(n-k)×m(x)),次数必定小于g(x)的次数(n-k)
余式r(x)与x^(n-k)×m(x)相加,得到码多项式
一个以(7,3)码为例分析:
第一步:
信息码为110,m(x)=x ^ 2+x
n=7,k=3,n-k=4
x ^ (n-k)×m(x)=x ^ 4×(x ^ 2+x)=x ^ 6+x ^ 5,即1100000
第二步:
x ^ n+1=x ^ 7+1=(x+1)×(x ^ 3+x ^ 2+1)×(x ^ 3+x+1)
循环码的生成多项式g(x)有两个:
(x+1)×(x ^ 3+x ^ 2+1)=x ^ 4+x ^ 2+x+1
(x+1)×(x ^ 3+x+1)=x ^ 4+x ^ 3+x ^ 2+1
用g(x)除x^(n-k)×m(x),得到商Q(x)和余式r(x)
(x ^ 6+x ^ 5)/(x ^ 4+x^ 2+x+1)=(x ^ 2+x+1)+(x ^ 2+1)/(x ^ 4+x ^ 2+x+1)
即Q(x)=(x2+x+1);r(x)=(x2+1)
第三步:
编码为:A(x)=x^(n-k)×m(x)+r(x)=1100000+101=1100101
⑤循环码的解码方法
接收端解码有两个要求:检错和纠错
通过余项是否为零来判断接收码组中有无错码
传输过程中为发送错误时,接收码组B(x)与发送码组A(x)相同,即B(x)必定能被g(x)整除;
传输过程中发生错误时,B(x)被g(x)除时,可能存在除不尽而有余项;
B(x)/g(x)=Q(x)+r(x)/g(x)
检错解码器的原理,一个除法电路和缓冲移位寄存器
除法电路与发送端编码器的除法电路相同,进行B(x)/g(x)的运算
余项为“0”,将暂存于缓冲器中的接收码组发送到解码器的输出端
余项不为“0”,将缓存器中的接收码组删除,并向发送端发出一个重发指令,要求重发一次该码组
在这里插入图片描述
捕错解码法,具体解码规则:
第一步:
用生成多项式g(x)除接收码组B(x),得出余式r(x)
第二步:
按余式r(x),用查表法或其他计算获得错误图样E(x),确定错码的位置
第三步:
从B(x)中减去E(x),得到已经纠正错码的原发送码组A(x)


http://www.niftyadmin.cn/n/5175299.html

相关文章

CSS 滚动捕获 scroll-snap-type

scroll-snap-type 语法实例 捕获轴 y 捕获严格程度 mandatory捕获轴 y 捕获严格程度 proximity同理看下捕获轴 x 一些注意事项兼容性 scroll-snap-type 用来指定一个滚动容器(scroll container)是否是滚动捕获容器(scroll snap container)、捕获的严格程度以及在什么方向上执行…

AI毕业设计生成器(基于AI大模型技术开发)

这是一个辅助生成计算机毕业设计的工具,可以自动完成毕业设计的源码。它基于几百个github上面开源的java和python项目,运用tengsorflow技术,训练出了AI大模型。基本实现了计算机毕业设计生成器,能够初步生成Java或python基本源码。…

比尔.盖茨最新思考和宣言, 未来5年AI将彻底改变生活!

人工智能即将彻底改变你使用计算机的方式 并颠覆软件行业。 比尔盖茨 今天我仍然像保罗艾伦和我创办微软时一样热爱软件。但是,尽管从那时起的几十年里它已经有了很大的进步,但在很多方面,软件仍然相当愚蠢。 要在计算机上执行任何任务&am…

阿里云国际站:密钥管理服务

文章目录 一、密钥管理服务的概念 二、密钥管理服务的功能 三、密钥管理服务的优势 一、密钥管理服务的概念 密钥管理服务KMS(Key Management Service)是您的一站式密钥管理和数据加密服务平台、一站式凭据安全管理平台,提供简单、可靠、…

桌面图标设置-将“我的电脑”、“控制面板”添加到桌面

桌面图标设置 1、将“我的电脑”、“控制面板”添加到桌面 桌面鼠标右键-个性化-主题-桌面图标设置-勾选”计算机“、”回收站“、”控制面板“-应用-确定-桌面鼠标右键-排序-名称

deployment.yaml文件详解

这里写目录标题 deployment/Service.yaml文件详解一.deployment二.service deployment/Service.yaml文件详解 一.deployment apiVersion: extensions/v1beta1 #接口版本 kind: Deployment #接口类型 metadata:name: cango-demo #Deployment名…

Linux常用命令——bzip2recover命令

在线Linux命令查询工具 bzip2recover 恢复被破坏的.bz2压缩包中的文件 补充说明 bzip2recover命令可用于恢复被破坏的“.bz2”压缩包中的文件。 bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用b…

【藏经阁一起读】(76)__《“DNS+”发展白皮书》

【藏经阁一起读】(76)__《“DNS”发展白皮书》 作者: 梁卓 宋林健 陈剑 刘志辉 刘保君 郭丰 马晨迪 马永 孙俊哲 沈建伟 嵇叶楠 孙宛月 张建光 李贤达 张晓军 赵华 发布时间:2023-10-31 章节数:6 一、基础知识 1.1、…