循环码生成矩阵与监督 (校验) 矩阵

news2024/11/17 7:52:02

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

文章目录

    • 循环码生成多项式与生成矩阵
      • 系统码生成矩阵的构造
      • 系统码的循环码生成矩阵
    • 循环码的监督 (校验) 矩阵

循环码生成多项式与生成矩阵

定义:记 C ( x ) \mathrm{C}(x) C(x) 为 (n, k) 循环码的所有码字对应的多项式的集合, 若 g(x) 是 C ( x ) \mathrm{C}(x) C(x) 中除 0 多项式以外次数最低的多项式, 则称 g(x) 为这个循环码的生成多项式

定理1: ( n , k ) (\boldsymbol{n}, \boldsymbol{k}) (n,k) 循环码中, 必定存在一个次数最小的唯一的码多项式g(x) , 称为生成多项式,
g ( x ) = x r + g r − 1 x r − 1 + ⋯ + g 1 x + 1 g(x)=x^{r}+g_{r-1} x^{r-1}+\cdots+g_{1} x+1 g(x)=xr+gr1xr1++g1x+1
其中: r = n − k r=n-k r=nk .

该码集中任意码字的码多项式必为g(x)的倍式。

非系统循环码的编码:
c ( x ) = u ( x ) g ( x ) c(x)=u(x) g(x) c(x)=u(x)g(x)

设某 (7,4) 循环码的生成多项式为 g ( x ) = x 3 + x + 1 g(x)=x^{3}+x+1 g(x)=x3+x+1,问信息串 0110 的循环码是什么?

解:

c ( x ) = u ( x ) g ( x ) = ( x 2 + x ) ( x 3 + x + 1 ) = x 5 + x 4 + x 3 + x c(x)=u(x) g(x)=(x^{2}+x)(x^{3}+x+1)=x^{5}+x^{4}+x^{3}+x c(x)=u(x)g(x)=(x2+x)(x3+x+1)=x5+x4+x3+x

故码字为: 0111010

定理2: 当且仅当 g(x) 是 x n + 1 x^{n+1} xn+1 r = n − k r=n-k r=nk 次因式时, g(x)是(n, k)循环码的生成多项式。

定理3: (n, k) 循环码的校验多项式为
h ( x ) = x n + 1 g ( x ) = h k x k + h k − 1 x k − 1 + ⋯ + h 1 x + h 0 \begin{array}{l} h(x)=\frac{x^{n}+1}{g(x)} \\ =h_{k} x^{k}+h_{k-1} x^{k-1}+\cdots+h_{1} x+h_{0} \end{array} h(x)=g(x)xn+1=hkxk+hk1xk1++h1x+h0
写出下面(7,3)循环码的生成多项式


g ( x ) = x 4 + x 3 + x 2 + 1 a r r o w 0011101 g(x)=x^{4}+x^{3}+x^{2}+1 arrow 0011101 g(x)=x4+x3+x2+1arrow0011101
(1) 生成多项式、生成矩阵

循环码生成多项式的特点:

  • g(x) 的 0 次项是 1 ;
  • g(x) 唯一确定, 即它是码多项式中除 0 多项式以外次数最低的多项式;
  • 循环码每一码多项式都是 g(x) 的倍式, 且每一个小于等于 (n-1) 次的 g(x) 倍式一定是码多项式;
  • g(x) 的次数为 (n-k) ;
  • g(x) 是 x n + 1 x^{n}+1 xn+1 的一个因子。

为了保证构成的生成矩阵 G 的各行线性不相关, 通常用生成多项式 g(x) 来构造生成矩阵; 若码多项式为降幂排列,
g ( x ) = g n − k x n − k + g n − k − 1 x n − k − 1 + ⋯ + g 1 x + g 0 , r = n − k C ( x ) = u G ( x ) = ( u k − 1 u k − 2 ⋯ u 0 ) G ( x ) = u k − 1 x k − 1 g ( x ) + u k − 2 x k − 2 g ( x ) + ⋯ + u 0 g ( x ) G ( x ) = [ x k − 1 g ( x ) x k − 2 g ( x ) ⋮ g ( x ) ] r i g h t a r r o w G = [ g r g r − 1 ⋯ g 1 g 0 0 0 ⋯ 0 0 g r g r − 1 ⋯ g 1 g 0 0 ⋯ 0 ⋮ ⋮ 0 ⋯ 0 0 g r g r − 1 ⋯ g 1 g 0 ] \begin{array}{l} g(x)=g_{n-k} x^{n-k}+g_{n-k-1} x^{n-k-1}+\cdots+g_{1} x+g_{0}, r=n-k \\ C(x)=\mathbf{u G}(x)=(u_{k-1} u_{k-2} \cdots u_{0}) \mathbf{G}(x) \\ =u_{k-1} x^{k-1} g(x)+u_{k-2} x^{k-2} g(x)+\cdots+u_{0} g(x) \\ G(x)=[\begin{array}{c} x^{k-1} g(x) \\ x^{k-2} g(x) \\ \vdots \\ g(x) \end{array}] rightarrow G=[\begin{array}{ccccccccc} g_{r} & g_{r-1} & \cdots & g_{1} & g_{0} & 0 & 0 & \cdots & 0 \\ 0 & g_{r} & g_{r-1} & \cdots & g_{1} & g_{0} & 0 & \cdots & 0 \\ & \vdots & & & & & \vdots & & \\ 0 & \cdots & 0 & 0 & g_{r} & g_{r-1} & \cdots & g_{1} & g_{0} \end{array}] \\ \end{array} g(x)=gnkxnk+gnk1xnk1++g1x+g0,r=nkC(x)=uG(x)=(uk1uk2u0)G(x)=uk1xk1g(x)+uk2xk2g(x)++u0g(x)G(x)=[xk1g(x)xk2g(x)g(x)]rightarrowG=[gr00gr1grgr10g10g0g1gr0g0gr100g100g0]
显然, 上式不符合 G = ( I k : Q ) \mathbf{G}=(\mathbf{I}_{k}: \mathbf{Q}) G=(Ik:Q) 形式, 所以此生成矩阵不是典型形式。

系统码生成矩阵的构造

系统码-信息位在码字高位, 因此编码时需要先将信息位置于码字高位, 即 u(x) \bullet x^{n-k} 。 码字低位为校验位,如何获得?
c ( x )   m o d   g ( x ) = 0 c ( x ) = u ( x ) ⋅ x n − k + r ( x ) 0 = { [ u ( x ) x n − k ]   m o d   g ( x ) + r ( x ) } = r ( x ) [ u ( x ) x n − k ]   m o d   g ( x ) \begin{array}{c} c(x)_{\bmod g(x)}=0 \\ c(x)=u(x) \cdot x^{n-k}+r(x) \\ \mathbf{0}=\{[u(x) x^{n-k}]_{\bmod g(x)}+r(x)\} \end{array} \quad \stackrel{r(x)}{=}[u(x) x^{n-k}] \bmod g(x) c(x)modg(x)=0c(x)=u(x)xnk+r(x)0={[u(x)xnk]modg(x)+r(x)}=r(x)[u(x)xnk]modg(x)
(2) 系统循环码

系统循环码的编码:

a. 选择一信息码多项式 μ ( x ) \mu(x) μ(x) , 使 r ( x ) = x n − k μ ( x )   m o d   g ( x ) \quad r(x)=x^{n-k} \mu(x) \bmod g(x) r(x)=xnkμ(x)modg(x)

b. 产生系统循环码式 c ( x ) = x n − k μ ( x ) + r ( x ) \mathrm{c}(x)=x^{n-k} \mu(x)+r(x) c(x)=xnkμ(x)+r(x)

有一 (15, 11) 汉明循环码, 其生成多项式 g ( x ) = x 4 + x + 1 g(x)=x^{4}+x+1 g(x)=x4+x+1 , 若输入信息分组为 (10010010010), 求出 (15,11) 系统循环码字。

解: u ( x ) = x 10 + x 7 + x 4 + x u(x)=x^{10}+x^{7}+x^{4}+x u(x)=x10+x7+x4+x
x n − k u ( x ) = x 4 u ( x ) = x 14 + x 11 + x 8 + x 5 r ( x ) = [ x 4 u ( x ) ]   m o d   g ( x ) = x 2 ∴ c ( x ) = x 14 + x 11 + x 8 + x 5 + x 2 c = 10010010010 ( 0100 ) 监督位 \begin{array}{l} x^{n-k} u(x)=x^{4} u(x)=x^{14}+x^{11}+x^{8}+x^{5} \\ r(x)=[x^{4} u(x)] \bmod g(x)=x^{2} \\ \therefore c(x)=x^{14}+x^{11}+x^{8}+x^{5}+x^{2} \\ c=10010010010(0100)监督位 \end{array} xnku(x)=x4u(x)=x14+x11+x8+x5r(x)=[x4u(x)]modg(x)=x2c(x)=x14+x11+x8+x5+x2c=10010010010(0100)监督位
非系统码: c ( x ) = u ( x ) g ( x ) = x 14 + x 10 + x 7 + x 4 + x 2 + x c(x)=u(x) g(x)=x^{14}+x^{10}+x^{7}+x^{4}+x^{2}+x c(x)=u(x)g(x)=x14+x10+x7+x4+x2+x c=1000100100101100

已知某循环码生成多项式为 g ( x ) = x 8 + x 6 + x 4 + x 2 + 1 g(x)=x^{8}+x^{6}+x^{4}+x^{2}+1 g(x)=x8+x6+x4+x2+1,那么采用此多项式生成循环码时,校验位有 [8] 位。

已知某循环码生成多项式为 g ( x ) = x 8 + x 6 + x 4 + x 2 + 1 g(x)=x^{8}+x^{6}+x^{4}+x^{2}+1 g(x)=x8+x6+x4+x2+1,证明该多项式是 x 10 + 1 x^{10}+1 x10+1的一个因式。 直接长除即可,这里不多赘述。

请写出生成多项式为 g ( x ) = x 8 + x 6 + x 4 + x 2 + 1 g(x)=x^{8}+x^{6}+x^{4}+x^{2}+1 g(x)=x8+x6+x4+x2+1的系统型循环码 (10 ,2) 的码表。并说明该码至少能纠几位错。

d min ⁡ d_{\min } dmin=5, 能纠2位错

系统码的循环码生成矩阵

G ( x ) = [ x n − 1 + ( x n − 1 )   m o d   g ( x ) x n − 2 + ( x n − 2 )   m o d   g ( x ) ⋮ x n − i + ( x n − i )   m o d   g ( x ) ⋮ g ( x ) ] = [ 1 0 ⋯ 0 r 1 , 1 r 1 , 2 ⋯ r 1 , n − k 0 1 ⋯ 0 r 2 , 1 r 2 , 2 ⋯ r 2 , n − k ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 0 ⋯ 1 r k , 1 r k , 2 ⋯ r k , n − k ] G(x)=[\begin{array}{c} x^{n-1}+(x^{n-1})_{\bmod g(x)} \\ x^{n-2}+(x^{n-2})_{\bmod g(x)} \\ \vdots \\ x^{n-i}+(x^{n-i})_{\bmod g(x)} \\ \vdots \\ g(x) \end{array}]=[\begin{array}{cccccccc} 1 & 0 & \cdots & 0 & r_{1,1} & r_{1,2} & \cdots & r_{1, n-k} \\ 0 & 1 & \cdots & 0 & r_{2,1} & r_{2,2} & \cdots & r_{2, n-k} \\ \vdots & \vdots & & \vdots & \vdots & \vdots & & \vdots \\ 0 & 0 & \cdots & 1 & r_{k, 1} & r_{k, 2} & \cdots & r_{k, n-k} \end{array}] G(x)=[xn1+(xn1)modg(x)xn2+(xn2)modg(x)xni+(xni)modg(x)g(x)]=[100010001r1,1r2,1rk,1r1,2r2,2rk,2r1,nkr2,nkrk,nk]

某 (7,4) 循环码的生成多项式是 g ( x ) = x 3 + x + 1 g(x)=x^{3}+x+1 g(x)=x3+x+1 , 求系统码的生成矩阵。

解:
( x 6 )   m o d   g ( x ) = x 2 + 1 ( x 5 )   m o d   g ( x ) = x 2 + x + 1 ( x 4 )   m o d   g ( x ) = x 2 + x a r r o w G = [ 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 ] \begin{array}{l} (x^{6}) \bmod g(x)=x^{2}+1 \\ (x^{5}) \bmod g(x)=x^{2}+x+1 \\ (x^{4}) \bmod g(x)=x^{2}+x \end{array} \quad arrow G=[\begin{array}{lllllll} 1 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 1 & 0 & 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 1 & 1 \end{array}] (x6)modg(x)=x2+1(x5)modg(x)=x2+x+1(x4)modg(x)=x2+xarrowG=[1000010000100001111001111101]

循环码的监督 (校验) 矩阵

关系: G H T = 0 \boldsymbol{G} \boldsymbol{H}^{T}=\mathbf{0} GHT=0

a. 监督矩阵构造:由性质 x n + 1 = g ( x ) h ( x ) x^{n}+1=g(x) h(x) xn+1=g(x)h(x) ;
h ( x ) = h k x k + h k − 1 x k − 1 + … + h 1 x + h 0 H = [ h 0 h 1 ⋯ h k 0 ⋯ 0 0 h 0 h 1 ⋯ h k ⋯ 0 ⋮ ⋮ 0 0 ⋯ h 0 h 1 ⋯ h k ] \begin{array}{l} h(x)=h_{k} x^{k}+h_{k-1} x^{k-1}+\ldots+h_{1} x+h_{0} \\ H=[\begin{array}{ccccccc} h_{0} & h_{1} & \cdots & h_{k} & 0 & \cdots & 0 \\ 0 & h_{0} & h_{1} & \cdots & h_{k} & \cdots & 0 \\ & \vdots & & & & \vdots & \\ 0 & 0 & \cdots & h_{0} & h_{1} & \cdots & h_{k} \end{array}] \\ \end{array} h(x)=hkxk+hk1xk1++h1x+h0H=[h000h1h00h1hkh00hkh100hk]
b. 利用循环码的特点来确定监督矩阵 H :

由于 (n, k) 循环码中 g(x) 是 x n + 1 x^{n+1} xn+1 的因式, 因此可令: h ( x ) = x n + 1 g ( x ) = h k x k + h k − 1 x k − 1 + ⋯ + h 1 x + h 0 h(x)=\frac{x^{n}+1}{g(x)}=h_{k} x^{k}+h_{k-1} x^{k-1}+\cdots+h_{1} x+h_{0} h(x)=g(x)xn+1=hkxk+hk1xk1++h1x+h0 监督矩阵表示为:

H ( x ) = [ x n − k − 1 h ∗ ( x ) x n − k − 2 h ∗ ( x ) ⋮ x h ∗ ( x ) h ∗ ( x ) ] H(x)=[\begin{array}{c} x^{n-k-1} h^{*}(x) \\ x^{n-k-2} h^{*}(x) \\ \vdots \\ x h^{*}(x) \\ h^{*}(x) \end{array}] H(x)=[xnk1h(x)xnk2h(x)xh(x)h(x)]

h ∗ ( x ) = h 0 x k + h 1 x k − 1 + h 2 x k − 2 + ⋯ + h k − 1 x h^{*}(x)=h_{0} x^{k}+h_{1} x^{k-1}+h_{2} x^{k-2}+\cdots+h_{k-1} x h(x)=h0xk+h1xk1+h2xk2++hk1x

参考文献:

  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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/660411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解七层反向代理与四层反向代理【Nginx+Tomcat负载均衡、动静分离】

文章目录 1. 反向代理和正向代理概述2.七层反向代理实例2.1 实验环境描述2.2 部署Nginx负载均衡器2.3 部署2台Tomcat应用服务器2.3.1 部署CentOS 7-5 Tomcat服务器2.3.2 部署CentOS 7-6 Tomcat多实例服务器 3.四层反向代理实例3.1 实验环境描述3.2 部署Nginx负载均衡器&#xf…

2023年护网常见面试题汇总!看过的都通过面试啦!

​时间过得很快,回想起去年的这个时候,我也正在准备秋招,今天的我刚刚结束培训。 我的个人情况就读于某双非大学,信息与计算科学(大数据方向,校企合作,一个介于数学与计算机之间的专业&#xf…

JVM调优参数+Visual GC 插件安装及使用,jvm分析

调优的目的是什么呢? 1.就是让系统更加的丝滑,让用户体验变得更好。 2.提升系统的性能,提高效率,充分利用jvm内存。 更多参考->JVM常用调优参数 一.JVM参数配置位置 1.java.lang.OutOfMemoryError: Java heap space 解决方…

微信小程序开发之获取用户头像昵称

本文是对另一篇文档 https://blog.csdn.net/duke_ding2/article/details/130674320 的补充。 环境 微信开发者工具 Stable 1.06.2306020调试基础库 2.32.2 背景 在较低版本(2.27.0及以下)的基础库中,在小程序里可以使用 wx.getUserProfil…

PostgreSQL BTree(B-Link-tree) 索引 基本 实现原理

文章目录 背景BTreeBTreeB-Link-Tree 基本数据结构的插入实现BTree Insert 实现BTree Insert 实现 PostgreSQL BTree实现整体结构BTree 索引创建实现_bt_buildadd_bt_uppershutdown BTree 查询 _bt_search 实现BTree 插入 _bt_doinsert 实现_bt_split 节点分裂_bt_insert_paren…

flyway在Windows下安装及基本使用

文章目录 1. flyway中的SQL脚本命名2. flyway执行SQL脚本演示3. flyway中设置 ${CURRENT_DATE} 为当前时间的值 Flyway是一个开源的数据库迁移工具,用于管理和自动化数据库架构的演进。它允许开发人员和团队对数据库进行版本控制,并通过简单的命令行或脚…

【数据库与身份认证】课程笔记

目标: 知道如何配置MySQL数据库环境认识并使用常见的SQL语句操作数据库在Express中操作MySQL数据库了解Session的实现原理了解JWT的实现原理 目录: 数据库的基本概念安装并配置MySQLMySQL的基本使用在Express中操作MySQL前后端的身份认证 一. 数据库的…

美团一面:OOM后,JVM一定会退出吗?为什么?

说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如美团、拼多多、极兔、有赞、希音的面试资格,遇到一几个很重要的面试题: OOM后,JVM一定会退出吗?为什么? 生产环境&am…

MIT 6.S081 (BOOK-RISCV-REV1)教材第四章内容 -- 上

MIT 6.S081 教材第四章内容 -- 上 引言陷阱指令和系统调用RISC-V陷入机制代码:调用系统调用从用户空间陷入系统调用参数补充 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第四章教材内容翻译加整理。 本课程前置知识主要涉及: C语言(建议阅读C程序语言设计…

Django基础入门⑤:模板变量和标签的使用

Django基础入门④:数据表显示和Django模板详讲 模板变量使用模板变量模板标签if标签for标签forloop变量forloop.revcounter 示例forloop.first 和 forloop.last 示例forloop.parentloop 示例 🏘️🏘️个人简介:以山河作礼。 &…

Liunx开发工具:git和gdb

目录 一. git的功能和使用 1.1 git的功能 1.2 git三板斧 1.3 git使用中的其他问题 二. 使用gdb调试代码 2.1 生成带有调试信息的可执行程序 2.2 gdb调试代码的方法 一. git的功能和使用 1.1 git的功能 git是一块开源、免费的版本管理系统,能够高效敏捷地处…

【人工智能】— 神经网络、前向传播、反向传播、梯度下降、局部最小值、多层前馈网络、缓解过拟合的策略

【人工智能】— 神经网络、前向传播、反向传播 前向传播反向传播梯度下降局部最小值多层前馈网络表示能力多层前馈网络局限缓解过拟合的策略 前向传播和反向传播都是神经网络训练中常用的重要算法。 前向传播是指将输入数据从输入层开始经过一系列的权重矩阵和激活函数的计算后…

计算机网络408大题(2009-2019)

必备结构 TCP报文段结构 IP数据报结构 2009年 考察点:子网划分、路由表、路由聚合 2010年 考察点:CSMA/CD协议的相关计算 2011年 考察点:以太网帧格式、IP分组格式、IP地址和MAC地址、ARP协议、HTTP/1.1持续的非流水方式 在转发过程中&am…

Jupyter中使用Pyecharts绘制地图

背景:根据各省频率绘制地图 根据各省频率绘制地图,可以使用 Pyecharts 绘制。下面是详细的步骤: 1、安装 Pyecharts:可以通过 !pip install pyecharts 命令安装。 2、导入相关库 import pandas as pd from pyecharts import o…

设计模式之抽象工厂模式笔记

设计模式之抽象工厂模式笔记 说明Abstract Factory(抽象工厂)目录UML抽象工厂示例类图甜品抽象类甜品提拉米苏类甜品抹茶慕斯类 咖啡抽象类美式咖啡类拿铁咖啡类 甜品工厂接口美式风味的甜品工厂意大利风味的甜品工厂 测试类模式扩展 说明 记录下学习设计模式-抽象工厂模式的写…

SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发

好啊 接着我们上文SSMP整合案例(1) 构建 Spring Boot Vue MySql项目环境 我们继续 接下来 我们要在java项目中 建立出数据库表对应的实体类 我们还是先看看自己上文中 创建的这个 book表 其中四个字段 主键id 数字枚举类型的type 字符串类型name 字符串类型 description 我们…

【设计模式与范式:总结型】74 | 总结回顾23种经典设计模式的原理、背后的思想、应用场景等

到今天为止,23 种经典的设计模式已经全部讲完了。咱们整个专栏也完成了 3/4,马上就要进入实战环节了。在进入新模块的学习之前,我照例带你做一下总结回顾。23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。今天&…

Floyd 判圈算法(Floyd Cycle Detection Algorithm)

Floyd 判圈算法(Floyd Cycle Detection Algorithm) 前言 Floyd判圈算法属于对指针操作的算法,它一般需要且仅需要两个指针,通过设定不同的指针移动速度,来判定链表或有限状态机中是否存在环。人为规定移动较快的指针称为快速指针(fast poin…

Java官方笔记9Lambda表达式

Lambda Expression 有了Lambda Expression,就不用再写anonymous classes。 写Lambda,首先要找到它的类型。 There is a restriction on the type of a lambda expression: it has to be a functional interface. 函数接口,只有1个抽象方法的接…

Vue中v-text、v-html、v-on的基本语法(二)

文章目录 前言一、vue中data属性定义对象、数组相关数据二、v-text、v-html指令使用三、v-on基本指令使用(一)四、v-on指令基本使用(二)之在函数中获取vue实例本身this五、v-on指令基本使用(二)之在函数中传递参数六、v-on指令基本使用(二)之简化写法绑定函数和事件定义的两种写…