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

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

在开始本文之前,我们先给出下面的几个名词,他们将会在后续的分析中反复出现:
【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

相关文章

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

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

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2