【通信原理 入坑之路】—— 信息论部分 线性分组码各种计算的解法

本文主要是介绍【通信原理 入坑之路】—— 信息论部分 线性分组码各种计算的解法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在开始本文之前,我们先给出下面的几个名词,他们将会在后续的分析中反复出现:
【1】生成矩阵 【2】监督矩阵 【3】许用码字 【4】最小汉明距离 【5】伴随式 【6】错误图样

我们先重点看看接收端中,上面这些名词的关联:
在这里插入图片描述
首先,当我们接收到码字 y 时,我们可以通过监督矩阵计算出伴随式 S,通过伴随式,我们又可以得到错误图样,错误图样的意义就是它能够指出接收码字中哪一位出错了。从而去修改对应位置的码字。【监督矩阵的监督作用可以通过 : H ⋅ C T = 0 H\sdot C^T=0 HCT=0表现出来

下面我们具体看看如何通过监督矩阵得到所有的伴随式,也就是过程 a:

  1. 假设我们现在计算得到了监督矩阵H: H = [ 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 ] H = \begin{bmatrix} 1 & 1&0&1&0&0&0\\ 0&1&1&0&1&0&0\\ 1&1&1&0&0&1&0\\ 1&0&1&0&0&0&1 \end{bmatrix} H=1011111001111000010000100001
    那么伴随式S就是H 矩阵各列的组合(异或运算)。比如说,我们现在选择H的第1,2列进行异或,就会得到其中一个伴随式: S = [ 0 1 0 1 ] S = \begin{bmatrix} 0&1&0&1\end{bmatrix} S=[0101];再比如说我们如果只选择H的第6列进行异或,也可以得到另一个伴随式: S = [ 0 0 1 0 ] S = \begin{bmatrix} 0&0&1&0\end{bmatrix} S=[0010]

下面我们具体看看如何通过伴随式求出错误图样,以及如果通过错误图样反推伴随式:

  1. 如何通过伴随式求出错误图样?结果可能是不唯一的。由于我们刚刚不是选取了H的第1,2列异或得到了一个伴随式: S = [ 0 1 0 1 ] S = \begin{bmatrix} 0&1&0&1\end{bmatrix} S=[0101]吗,所以上图的 b 过程就是说你伴随式S是选取了H的哪些列计算得到了,那么错误图样 e 就是在对应的位置标记为“1”,否则标记为“0”。所以,这个伴随式对应的错误图样就是 [ 1 1 0 0 0 0 0 ] \begin{bmatrix} 1&1&0&0&0&0&0\end{bmatrix} [1100000],但是还有一种可能性: S = [ 0 1 0 1 ] S = \begin{bmatrix} 0&1&0&1\end{bmatrix} S=[0101]也可以是H矩阵的第5,7两列的组合。因此,错误图样还可能是: [ 0 0 0 0 1 0 1 ] \begin{bmatrix} 0&0&0&0&1&0&1\end{bmatrix} [0000101]

  2. 而反过来通过错误图样找S,结果就是唯一的了。比如说错误图样: [ 1 1 0 0 0 0 0 ] \begin{bmatrix} 1&1&0&0&0&0&0\end{bmatrix} [1100000],那么对应的伴随矩阵就只能是 S = [ 0 1 0 1 ] S = \begin{bmatrix} 0&1&0&1\end{bmatrix} S=[0101]

而可纠正的错误图样,指的就是错误最少的那种情况。


说了那么多,那么生成矩阵和监督矩阵到底怎么求呢?我们记住下面的关系: Q = [ I ∣ P ] Q = \begin{bmatrix} I|P\end{bmatrix} Q=[IP]
H = [ P T ∣ I ] H = \begin{bmatrix} P^T|I\end{bmatrix} H=[PTI]

上述都是系统的生成矩阵和监督矩阵,如果题目给出来的矩阵不是系统的(也就是没有单位矩阵的),那么大部分情况可以通过行的互换得出。


求出了监督矩阵,我们就来看看最小汉明距离 d m i n d_{min} dmin 如何计算。其实 d m i n d_{min} dmin 就是看H矩阵中最少有多少列是线性相关的。还是以刚刚的H为例:
H = [ 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 ] H = \begin{bmatrix} 1 & 1&0&1&0&0&0\\ 0&1&1&0&1&0&0\\ 1&1&1&0&0&1&0\\ 1&0&1&0&0&0&1 \end{bmatrix} H=1011111001111000010000100001

我们发现,任意的3列都无法表示成线性关系,但是其中第5,6,7列的和恰好等于第3列,也就是说最少4列是可以表示成线性相关的,所以 d m i n = 4 d_{min} = 4 dmin=4


我们再来看看许用码字的求法:

我们通过 (n, k) 码的形式【即:n位的码字里面有k个信息位】那么我们就把k个信息位的所有组合都列出来,然后分别跟生成矩阵相乘,就可以得到许用码字 C C C了。

其中,我们也可以通过生成矩阵的维度确定 n, k:生成矩阵的维度:(k, n).


另外还有一种题型:

已知某线性分组码的码长为 10 10 10,如果要想该线性码能够纠正两位随机错误,问需要多少位的监督位?

首先,我们明确这样一个性质:监督位如果有 x x x 位,那么其伴随式就会有: 2 x 2^{x} 2x种。下面我们回到题目:题目说想要线性码能够纠正两位随机错误,这个随机错误其实就是通过错误图样来反应的。比如一个 ( 7 , 4 ) (7,4) (7,4) 码,如果错误图样是 [ 0001000 ] [0 0 0 1 0 0 0] [0001000],那么就可以判断是第四位出错了。

接下来我们看一下如果是出现两位错误的时候,错误图样有多少种情况:根据排列组合的知识,从10位里面选出2位作为错误位,那么有: C 10 2 = 45 C_{10}^{2} = 45 C102=45种情况。然后只错一位的情况一共有: C 10 1 = 10 C_{10}^1=10 C101=10种。因此,错两位及以下的错误图样一共有: 45 + 10 = 55 45+10=55 45+10=55种情况。那么因此,我们所选取的监督位就应该使得线性码所产生的错误图样数比55大。由于 2 6 = 64 > 55 > 2 5 = 32 2^6=64>55>2^5=32 26=64>55>25=32,因此,监督位的个数应该是6.

这篇关于【通信原理 入坑之路】—— 信息论部分 线性分组码各种计算的解法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829477

相关文章

Spring Cloud Hystrix原理与注意事项小结

《SpringCloudHystrix原理与注意事项小结》本文介绍了Hystrix的基本概念、工作原理以及其在实际开发中的应用方式,通过对Hystrix的深入学习,开发者可以在分布式系统中实现精细... 目录一、Spring Cloud Hystrix概述和设计目标(一)Spring Cloud Hystr

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于