详解线性分组码(linear code)

目录

一. 介绍

二. 线性分组码

三. 生成矩阵

四. 对偶编码

五. 校验矩阵

六. 陪集编码

七. 小结


一. 介绍

Low-density parity-check,简称LDPC码,翻译为低密度奇偶校验码。

我们所熟悉的LDPC码就是一个典型的线性分组码(linear block code)。在接下来的讨论中,我们将主要关注二进制的线性分组码,也会简称为线性码。

看完本文章,你将学会对偶码(dual code),陪集码(coset),线性分组码。这些都是网络安全编码领域常用的概念。

二. 线性分组码

假定某二进制线性分组码的输出的比特长度为n-k,输出长度为n,那么该线性编码通常写做:

(n,n-k)

建议将此处的比特序列理解成向量,以方便后续的理解。

因为二进制每个元素均只能取0或1,那么就属于有限域GF(2)内,通常写做:

C\subseteq GF(2)^n

右上角的n可以理解为比特长度,也可以理解为向量维度。

很明显该码字的基数:

|C|=2^{n-k}

码字就是我们通常所说的codewords。

编码之前的元素叫消息,比特长度为n-k,其空间大小如下:

GF(2)^{n-k}

编码之和称之为码字,其比特长度为n,空间大小为:

GF(2)^n

编码的过程其实就是一种双射(bijective mapping)的过程。

编码的速率定义为输入长度除以输出长度,也就是:

R=\frac{n-k}{n}

三. 生成矩阵

generator matrix,生成矩阵,通常简写为G

一个线性码C可以利用生成矩阵来完整表示,生成矩阵的维度如下:

G\in GF(2)^{​{n-k}\times n}

那么我们就可以直接拿生成矩阵乘以输入的序列,便可以得到输出的序列,也就是完成了线性编码的过程:

右边输入的m为(n-k)行1列(看成列向量)

右边G^T为n行n-k列

右边便可以计算输出的左边的m为n行1列(看成列向量)

借助格理论很容易得到,可以把矩阵G的每一行看成该码字的基底(basis)。

通过以上讨论,我们发现,利用生成矩阵即可以把码字完整的表达清楚。当然码字不唯一,当生成矩阵在改变的时候,也就是编码算法在变化。

四. 对偶编码

原来的线性编码C,我们写做(n,n-k),其对偶的编码通常定义为如下:

对偶编码的输出长度也为n,否则向量无法完成相乘。一定要要注意此定义要求的任意性。

如果用向量的观点,那么对偶编码C^\bot包含所有跟原编码C垂直的向量,而且维度为n维,也就是向量属于:

GF(2)^n

五. 校验矩阵

parity-check matrix翻译为校验矩阵

根据以上的讨论,很容易证明对偶编码C^\bot为(n,k)的线性码,也就是输入长度为k,输出长度为n。那么很容易得到对偶编码C^\bot的生成矩阵可以记为H,如下:

H\in GF(2)^{k\times n}

该矩阵也被称之为编码C的校验矩阵。

根据定义校验矩阵和生成矩阵满足:

GH^T=0

对于任意的码字x,校验矩阵的理解就是:

Hx=0

六. 陪集编码

假定编码C的格式为(n,n-k),将其校验矩阵记为H,将上式子中的0改为s,格式如下:

s\in GF(2)^k

那么可以得到新的编码,如下:

上式子中的s通常称之为特征,syndrome。很明显当s=0时,就是原来的码字,也就是C=C(0)

我们还可以换个角度来理解陪集编码(coset code)。

比如x'满足如下:

Hx'=s

其中x'的格式满足:

x'\in GF(2)^n

那么陪集编码则可以理解为原编码相加的格式,如下:

来引入一个新的定义。从以上陪集编码中选择一个x',如果x'的汉明重量最小的话,那么就称之为coset leader。

假定原编码的格式为(n,n-k),那么容易证明其有2^k个不相交的陪集,对原始空间GF(2)^n进行了分割。

七. 小结

可以看到,信道编码的发展可以简单的归纳为分组码---卷积码-----分组码这样一个过程(在这里按其结构将 Turbo 码也归入卷积码的范畴)。其中 Turbo 码的出现以及迭代译码的思想引入使得信道编解码产生了前所未有的飞跃,但 Turbo 码之后卷积码却没有更大的发展,究其原因就是其没有完备的理论基础,使得人们不能给出其性能上严密的数学解释。

于是在那之后,Mackay等人再次发掘了 Gallager 于 1962 年提出的一种具有稀疏校验矩阵的分组纠错码,即 LDPC 码。LDPC 码和传统的分组码最大的区别在于它们的译码。分组码通常是用最大似然译码,因此,码长一般较短,并用代数方法设计使得复杂度较低。而 LDPC 码是迭代译码,校验矩阵用 Tanner 图表示,码长更长、围绕着校验矩阵 H 的特性进行设计是核心。LDPC 码自身的矩阵结构引入了交织特性,而且其采用迭代译码的方法,使其性能比以往的线性分组码有很大程度的提高。由于其基本原理是基于最原始的线性分组码,因此它有强大的数学工具作为其理论依据,几乎融图论、组合数学、概率论、矩阵论、代数、几何、代数数论、黎曼几何于一炉。

在通信,网络安全等领域,我们很难再找到某个方向可以有如此深厚的理论基础与之媲美。但理论上的完备性并不能使其直接应用于实际,因此从码字构造的方向来说,如何将 LDPC 码应用于实际工作才是值得深入研究的。为了保证其实现性,性能上就要有所妥协。在编码方面,以准循环 LDCP 码,即 QC-LDPC 码为例,为了降低硬件上的存储空间以及易于编码,就要以牺牲 LDPC 码先天的优势——交织特性为代价,这样便做出了性能与实现上的折中。但这种折中是有意义的,为 LDPC 码的实际应用开辟了道路。而且,通过某些方法,可以使设计出的码字在易于存储实现的同时,还能保证一定的性能。在译码方面,种种方法都可以归结为和积算法(SPA)的变形,都是在其基础上做出改进,从而保证译码性能前提下使译码器尽可能的简单。相对于 Turbo 码,LDPC 码的解码迭代次数还是过高,这样在实际应用中的竞争力便大打折扣。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 2023年是人工智能大语言模型大爆发的一年,一些概念和英文缩写也在这一年里集中出现,很容易混淆,甚至把人搞懵。 文章目录 前言01 《ChatGPT 驱动软件开…

气象条件对铸铁平台地基深度有哪些影响呢——河北北重

气象条件对铸铁平台地基有以下影响: . 1.地震 地震可能导致地基的震动和错动,因此地震活跃区域的建筑物通常需要更深的地基以提供更大的稳定性。 2..温度变化:气温的变化会导致地基中的土壤膨胀和收缩,从而影响地基的稳定性。特…

展厅设计更好的方法

一、与公司形象契合 在展厅规划时必定要留意公司的LOGO、主色调,以及企业文明。在展现时使用丰满的展厅规划传达出企业的理念。而在功用设置上,应当考虑内涵功用,从展厅作业人员的视点动身,为展厅作业人员提供杰出的环境&#xff…

书生·浦语大模型实战营-学习笔记6

目录 OpenCompass大模型测评1. 关于评测1.1 为什么要评测?1.2 需要评测什么?1.3 如何评测?1.3.1 客观评测1.3.2 主观评测1.3.3 提示词工程评测 2. 介绍OpenCompass工具3. 实战演示 OpenCompass大模型测评 1. 关于评测 1.1 为什么要评测&#…

《WebKit 技术内幕》学习之五(4): HTML解释器和DOM 模型

4 影子(Shadow)DOM 影子 DOM 是一个新东西,主要解决了一个文档中可能需要大量交互的多个 DOM 树建立和维护各自的功能边界的问题。 4.1 什么是影子 DOM 当开发这样一个用户界面的控件——这个控件可能由一些 HTML 的标签元素…

单域名证书,多域名证书,通配符证书怎么选?了解这些就够了

首次购买证书时,我们经常遇到不知道选择那种证书,由于缺乏相关的了解,稍不留神,就会踩坑!那初次购买证书时,了解这几点其实就足够了! 第一点,了解证书的类型。 证书一般分为DV&am…

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周。 在QQ群上交流答疑&am…

acwing 动态规划dp 0 1背包问题

前言 hello小伙伴们,最近由于个人放假原因颓废了一段时间很长时间没有更新CSDN的内容了,唉,毕竟懂得都懂寒暑假静下心来学习的难度远比在学校里大的多。 但是,也不是毫无办法克服,今天我来了我们当地的一家自习室来学习…

大数据开发之Spark(RDD弹性分布式数据集)

第 1 章:rdd概述 1.1 什么是rdd rdd(resilient distributed dataset)叫做弹性分布式数据集,是spark中最基本的数据抽象。 代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 1.1…

【操作工具】IDEA的properties文件变为灰色的解决办法

背景 赋值了一份properties文件放到项目下面,但是里面的key都是灰色的 解决方案 去掉下面3后面对应的勾 去掉之后

Java零基础学习18:字符串

编写博客目的:本系列博客均根据B站黑马程序员系列视频学习和编写目的在于记录自己的学习点滴,方便后续回忆和查找相关知识点,不足之处恳请各位有缘的朋友指正。 一、字符串拼接 第一题:false 第二题:true 二、 字符串…

Java项目:12 Springboot的垃圾回收管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 1.介绍 垃圾分类查询管理系统,对不懂的垃圾进行查询进行分类并可以预约上门回收垃圾。 让用户自己分类垃圾, 按国家标准自己分类&#x…

LabVIEW高级CAN通信系统

LabVIEW高级CAN通信系统 在现代卫星通信和数据处理领域,精确的数据管理和控制系统是至关重要的。设计了一个基于LabVIEW的CAN通信系统,它结合了FPGA技术和LabVIEW软件,主要应用于模拟卫星平台的数据交换。这个系统的设计不仅充分体现了FPGA在…

CSS实现文本和图片无限滚动动画

Demo图如下&#xff1a; <style>* {margin: 0;padding: 0;box-sizing: border-box;font-family: Poppins, sans-serif;}body {min-height: 100vh;background-color: rgb(11, 11, 11);color: #fff;display: flex;flex-direction: column;justify-content: center;align-i…

2024 年值得收藏的 6 大 iPad 恢复软件

众所周知&#xff0c;数据丢失是 iOS 用户的普遍问题。由于意外删除、软件更新、被盗等多种原因&#xff0c;您可能会丢失重要文件。通过备份&#xff0c;您可以轻松找回 iPad上丢失的文件。但是&#xff0c;当您没有可用的备份时&#xff0c;麻烦就开始了。那么&#xff0c;如…

如何高效挖掘Web漏洞?

简介 SRC漏洞平台&#xff1a;安全应急响应中心&#xff08;SRC, Security Response Center&#xff09;&#xff0c;是企业用于对外接收来自用户发现并报告的产品安全漏洞的站点。说白了&#xff0c;就是连接白帽子和企业的平台&#xff0c;你去合法提交漏洞给他们&#xff0…

数据结构之树和森林

数据结构之树和森林 1、树的存储结构2、树和森林的遍历2.1、树的遍历2.2、森林的遍历 3、树、森林和二叉树之间的相互转换 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0…

一键拥有你的GPT4

这几天我一直在帮朋友升级ChatGPT&#xff0c;现在已经可以闭眼操作了哈哈&#x1f61d;。我原本以为大家都已经用上GPT4&#xff0c;享受着它带来的巨大帮助时&#xff0c;但结果还挺让我吃惊的&#xff0c;还是有很多人仍苦于如何进行升级。所以就想着写篇教程来教会大家如何…

记录xxl-job重复执行引发业务问题

业务问题描述 1.创建运单&#xff0c;发现重复&#xff08;同一个车架号两条记录&#xff09; 2.通知重复反馈&#xff0c;A系统读取中间表状态为未处理数据&#xff0c;推送到B系统 原因分析 1.以上两个问题都是xxljob定时执行的 2.通过日志分析&#xff0c;读取中间表数…

pcl之滤波器(一)

pcl滤波器 pcl一共是有十二个主要模块&#xff0c;详细了解可以查看官网。https://pcl.readthedocs.io/projects/tutorials/en/latest/#basic-usage 今天学习一下pcl的滤波器模块。 滤波器模块&#xff0c;官网一共是提供了6个例程&#xff0c;今天先来看第一第二个。 直通…