精华内容
下载资源
问答
  • 信息编译码技术
    千次阅读
    2020-09-22 21:17:48

    通信的目的是要把对方不知道的消息即时可靠地(有时还要秘密地)传送给对方。当信道中存在干扰,可能使发送的消息出错。数字通信中,通常使用纠错码技术来进行差错控制,这样可以提高数据传输的可靠性。

    BCH码就是一种应用广泛的能纠正多重错误的分组码,具有极佳的纠错性能。本文对BCH码的原理进行深入分析,介绍BCH的编解码原理。重点介绍了BCH编码解码的计算方法以及BCH编码的性能分析。最后,本文采用MATLAB编写相应的BCH编解码代码进行仿真和误码率分析,并在Simulink中搭建BCH模块进行误码率统计分析。本文所作的研究成果具有一定的科研价值,为BCH的进一步研究或在硬件系统上的实现提供了良好的理论基础。

    1.1 本课题研究背景

    数字信号在传输系统中传输时,不可避免受到各种因素的干扰,使到达接收端的数字信号中混有噪声,从而引发错误判决,为了抗击干扰,必然要利用纠错码的差错控制技术。

    纠错码的分类有以下几种:

    ·按照对信息序列处理方式的不同,分为分组码与卷积码两大类,在分组码中按照码的结构特点,又可分为循环码和非循环码。

    ·根据信息位与校验位之间的关系分为线性码与非线性码。

    ·按照适用的差错类型,分成纠随机差错码和纠突发差错码两种,也有介于中间的纠随机/突发差错码。

    ·按

    更多相关内容
  • 安全技术-网络信息-选择性衰落信道下多天线系统编译码研究.pdf
  • 本文针对部分并行结构的准循环LDPC译码器,提出了一种将译码准码字存储在信道信息和外信息存储块中的高效存储方法,该方法可减少译码器对存储资源的需求量,并降低了译码电路的布线复杂度;另外,本文通过分析 ...
  • (15,7)循环码的编译码方法

    千次阅读 2021-05-14 21:45:14
    此次课程设计题目是(15,7)循环码的编译码方法,首先介绍了线性分组码的编译码原理;其次在matlab平台下,完成了任意码的编码和译码,并求出该码的最小码距以及其纠错能力;最后分析了该码在高斯信道下的误码性能。...

    (15,7)循环码的编译码方法

    论文+代码+仿真结果下载地址:下载地址

    摘要
    提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。此次课程设计题目是(15,7)循环码的编译码方法,首先介绍了线性分组码的编译码原理;其次在matlab平台下,完成了任意码的编码和译码,并求出该码的最小码距以及其纠错能力;最后分析了该码在高斯信道下的误码性能。
    关键词:循环码;编码;译码

    在这里插入图片描述
    前言
    随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作软件的要求也越来越高。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。
    数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。误码的处理技术有纠错、交织、线性内插等。提高数据传输效率,降低误码率是信道编码的任务。信道编码的本质是增加通信的可靠性。此次课程设计题目是(15,7)循环码的编译码方法,首先学习掌握了线性分组码的编译码原理;其次在matlab平台下,完成了任意码的编码和译码,并可求出该码的最小码距以及其纠错能力;最后分析了该码在高斯信道下的误码性能。

    一 基本原理
    1.1循环码的定义

    循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
    循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码。
    循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( )为一循环码组,则( )、( )……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。

    编码流程
    在这里插入图片描述
    译码流程
    在这里插入图片描述
    仿真结果:
    在这里插入图片描述
    实验分析
    此次课程设计题目是(15,7)循环码的编译码方法,首先学习掌握了线性分组码的编译码原理;其次在matlab平台下,完成了任意码的编码和译码,并求出该码的最小码距以及其纠错能力;最后分析了该码在高斯信道下的误码性能。但由于所学知识有限,在设计过程中困难有很多,其主要表现在不熟练软件编程。

    **参考文献**
    [1]樊昌信,曹丽娜.通信原理(第六版).北京:国防工业出版社.2007
    [2]徐明远,邵玉斌.MATLAB仿真在通信与电子工程中的应用.西安:西安电子科技大学学出版社.2005
    [3]唐向宏,岳恒立,郑雪峰等. MATLAB及在电子信息类课程中的应用(第二版) .北京:电子工业出版社,2009
    [4] 沈保锁等.《现代通信原理》.天津科学技术出版社.2000	
    [5] 李乐民等.《数字通信传输系统》.人民邮电出版社.2006 
    [6] 惠高潮,王辉.论文《基于单片机(7,4)循环码编码与译码的研究》.南京
    工业大学.2005
    
    
    展开全文
  • 各位老师好我叫xxx是信息学院的学生论文题目是卷积码编译码算法研究及实现我的导师是xxx老师论文的完成得益于她的悉心指导下面我将本论文的设计目的和内容向各位答辩老师作一汇报恳请各位老师批评指导 首先我想谈谈...
  • LDPC编译码原理介绍

    万次阅读 多人点赞 2020-07-18 16:43:29
    在系统的信息传输速率小于信道容量时,LDPC编译码技术可以在较高传输速率下将有噪信道下的突发错误尽可能无限减小,从而将系统的传输容量可以无限地逼近香农容限。由于 LDPC码校验矩阵的稀疏性使得相应编码及迭代...

    引言

           LDPC编码中文全称叫做低密度奇偶校验码,是众多信道纠错编码中的一种。在系统的信息传输速率小于信道容量时,LDPC编译码技术可以在较高传输速率下将有噪信道下的突发错误尽可能无限减小,从而将系统的传输容量可以无限地逼近香农容限。由于 LDPC码校验矩阵的稀疏性使得相应编码及迭代译码算法复杂度降低,硬件实现较容易,具有很好的应用前景,在业界广受欢迎。本文将从LDPC编译码基本工作流程,校验矩阵的构造方法,硬判决译码方法,置信传播软判决译码方法等四个方面展开介绍。

    1、LDPC编译码基本工作流程

           LDPC码作为线性分组码中的一种,其发送码字是由信息码元和监督码元组成的,在接收端利用监督码元与信息码元之间的规律来进行纠错和译码,如下图所示。

            其中,发送码字是由信息码字与生成矩阵相乘得到的,生成矩阵可由校验矩阵经过变换而得来,因此,整个LDPC编码过程其实就是一个校验矩阵的构造过程,如下图所示。

     2、校验矩阵的构造方法

           (1)Gallager 随机构造法 

              Gallager 随机构造法是使用确定的固定行重和列重(每行或每列所含 1 的个数)的稀疏矩阵进行随机置换和组合来构造 LDPC 码的校验矩阵。假若要使用 Gallager 随机构造法构造 m*n维,且行重和列重分别为 w_{r}^{}w_{c}^{}的校验矩阵 H,此时行重和列重应尽可能小以保证校验矩阵的稀疏性,降低 LDPC 码编码及迭代译码复杂度。将校验矩阵 H 的行数平分成每 m/w_{c}^{}行为一块,列数为(m/w_{c}^{})*w_{r}^{}}。在第一块子矩阵的构造中只有第 i 行(i-1)*w_{r}+1列到i*w_{r}列的连续 w_{r}^{}个元素为 1,其余位置上元素取 0 即完成了校验矩阵的基础子矩阵,之后将基础子矩阵按列随机置换得到其余部分矩阵并组合成最终的校验矩阵 H。

            (2)准循环构造法

             准循环构造法使用一组循环矩阵构造 LDPC 码的校验矩阵,一般选用单位阵为准循环 LDPC(QC-LDPC)码基矩阵。将基矩阵向左循环移位形成循环置换单位子矩阵,然后各子矩阵构成最终的校验矩阵。

             得到校验矩阵后就可根据1中所提及的方法得到生成矩阵,然后生成发送码字。

    3、硬判决译码方法

           LDPC 迭代译码过程即是通过校验码元和信息码元之间的校验规律在变量节点与校验节点之间不停进行消息迭代直至找到满足 C*H^{^{T}}=0 的码字,输出 C 即为解码后的码字。 当在校验节点及变量节点之间传递的是 0,1 的硬解调信息时称作硬判决译码。

           假设我们的校验矩阵构造如下图矩阵H,其Tanner图也如下图所示。

            假设经过编码后发送的码字 C=[ 1 0 0 1 0 1 0 1],经过噪声污染接受码字为 Y=[ 1 1 0 1 0 1 0 1],整个译码过程简述如下:

            (1)变量节点向校验节点传递消息:变量节点收到信息Y后认定C1,C2,C3,C4,C5,C6,C7,C8分别为1 1 0 1 0 1 0 1,然后变量节点根据Tanner图分别将值传给与之相连的校验节点,如 C1传递给 f2和 f4“C1=1”,C2传递给 f1和 f2“C2=1”。

            (2)校验节点向变量节点传递消息:校验节点在上一轮接收到变量节点传递给它的信息,它综合信息根据校验规律对这些信息做出判断来确定C1,C2,C3,C4,C5,C6,C7,C8 的值。如要确定C2的值,就需要根据f1和f2在上一轮接收到的消息来进行判断,由f1=C2+C4+C5+C8=0及接收到的C2=1,C4=1,C5=0,C8=1,对C2做出判断就需要依据C4,C5,C8传递来的信息,然后可以确定C2=0,然后将C2=0传递给f2节点,由f2=C1+C2+C3+C6=0及接收到的C1=1,C3=0,C6=1,可知C2=0,最终根据多数意见可以取C2=0。

            (3)对新码字验证 C*H^{^{T}}=0 是否满足,若满足输出 C,上述新码字经过验证即为纠正后的码字,若不满足则重复上述迭代过程直到满足(或者达到最大迭代次数输出错误)。 

    4、置信传播软判决译码

          当校验节点及变量节点之间传递的是似然概率软解调信息时称作置信传播译码(或者软判决译码),LDPC 码译码一般用置信传播算法,算法复杂度相对较低。 软判决译码流程介绍如下图所示。

          变量定义:

           基本定理: 

           译码过程:

     5、参考文献

          [1] 周佳颖. 基于LDPC技术轨道角动量光通信的仿真研究[D]. 华中科技大学. 2015.

          [2] https://wenku.baidu.com/view/da81feb2b6360b4c2e3f5727a5e9856a57122670.html

         

    展开全文
  • LDPC编译码原理

    万次阅读 多人点赞 2019-08-01 20:45:32
    LDPC简介 LDPC编码 LDPC译码 结语

    LDPC码简介

          低密度校验码(LDPC码)是一种前向纠错码,LDPC码最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC码并给出了LDPC码的图表示,即后来所称的Tanner图。1993年Berrou等人发现了Turbo码,在此基础上,1995年前后MacKay和Neal等人对LDPC码重新进行了研究,提出了可行的译码算法,从而进一步发现了LDPC码所具有的良好性能,迅速引起强烈反响和极大关注。经过十几年来的研究和发展,研究人员在各方面都取得了突破性的进展,LDPC码的相关技术也日趋成熟,甚至已经开始有了商业化的应用成果,并进入了无线通信等相关领域的标准。

    • LDPC码的特点
      LDPC码是一种分组码,其校验矩阵只含有很少量非零元素。正是校验矩阵的这种稀疏性,保证了译码复杂度和最小码距都只随码长呈现线性增加。除了校验矩阵是稀疏矩阵外,码本身与任何其它的分组码并无二致。其实如果现有的分组码可以被稀疏矩阵所表达,那么用于码的迭代译码算法也可以成功的移植到它身上。然而,一般来说,为现有的分组码找到一个稀疏矩阵并不实际。不同的是,码的设计是以构造一个校验矩阵开始的,然后才通过它确定一个生成矩阵进行后续编码。而LDPC的编码就是本文所要讨论的主体内容。对于LDPC码而言,校验矩阵的选取十分关键,不仅影响LDPC码的纠错性能力,也影响LDPC编译码的复杂度及硬件实现的复杂度。准循环 LDPC 码(Quasi-Cycle,QC-LDPC)是 LDPC 码中重要的一类,是指一个码字以右移或左移固定位数的符号位得到的仍是一个码字。QC-LDPC 码的校验矩阵是由循环子矩阵的阵列组成,相对于其他类型的 LDPC 码,在编码和解码的硬件实现上具有许多优点。编码可以通过反馈移位寄存器有效实现,采用串行算法,编码的复杂度与校验比特位数成正比,而采用并行算法,编码复杂度与码字长度成正比。对硬件解码实现,准循环的结构简化了消息传递的路径,可以部分并行解码,实现了解码复杂度和速率的折中。这些优点,使得 QC-LDPC 码作为未来通信和存储系统应用的主要 LDPC 码。

    • 译码算法的选择
      译码方法是LDPC码与经典的分组码之间的最大区别。经典的分组码一般是用ML类的译码算法进行译码的,所以它们一般码长较小,并通过代数设计以减低译码工作的复杂度。但是LDPC码码长较长,并通过其校验矩阵H的图像表达而进行迭代译码,所以它的设计以校验矩阵的特性为核心考虑之一。由于 LDPC 码校验矩阵的稀疏性,其译码复杂度与码长不是指数关系,而是线性关系,因而 LDPC 码的码长可以很长,可以达到几千到几万甚至更高,这样带来的一个好处是:一个码字内各比特之间的关联长度比较长,一般通过迭代译码方法进行译码,充分利用码字内各比特的关联性以提高译码准确度,并且还充分利用了信道的特征。本课题采用的译码算法为置信传播(BP)译码算法,置信传播算法是基于 Tanner 图的迭代译码算法。在迭代过程中,可靠性信息,即“消息”通过 Tanner图上的边在变量节点和校验节点中来回传递,经多次迭代后趋于稳定值,然后据此进行最佳判决,BP译码算法有着非常好译码性能。

    • Tanner图
      LDPC码常常通过图来表示,而Tanner图所表示的其实是LDPC码的校验矩阵。Tanner图包含两类顶点:n个码字比特顶点(称为比特节点),分别与校验矩阵的各列相对应和m个校验方程顶点(称为校验节点),分别与校验矩阵的各行对应。校验矩阵的每行代表一个校验方程,每列代表一个码字比特。所以,如果一个码字比特包含在相应的校验方程中,那么就用一条连线将所涉及的比特节点和校验节点连起来,所以Tanner图中的连线数与校验矩阵中的1的个数相同。以下图是矩阵的Tanner图,其中比特节点用圆形节点表示,校验节点用方形节点表示,加黑线显示的是一个6循环:
      ​​​​​​在这里插入图片描述
      Tanner图中的循环是由图中的一群相互连接在一起的顶点所组成的,循环以这群顶点中的一个同时作为起点和终点,且只经过每个顶点一次。循环的长度定义为它所包含的连线的数量,而图形的围长,也可叫做图形的尺寸,定义为图中最小的循环长度。如上图中,图形的尺寸,即围长为6,如加黑线所示。
      在这里插入图片描述

    LDPC编码

    • 基于校验矩阵H直接编码方案
      首先推导出根据校验矩阵直接编码的等式。将尺寸为(m,n)校验矩阵写成如下形式:
      H = [ H 1   H 2 ] H=[H_1 \ H_2] H=[H1 H2]
      其中 H 1 H_1 H1 的大小为 m ∗ k m*k mk H 2 H_2 H2 的大小为 m ∗ m m*m mm 。设编码后的码字行向量为 c c c ,它的长度为n,把它写成如下形式
      c = [ s   p ] c=[s \ p] c=[s p]
      其中s是信息码的行向量,长度为k,p为检验行向量,长度为m,根据校验公式
      H ∗ c T = 0 H*c^T=0 HcT=0
      上式展开得
      [ H 1   H 2 ] [ s T p T ] = 0 [H_1 \ H_2] \begin{bmatrix} s^T \\ p^T \\ \end{bmatrix}=0 [H1 H2][sTpT]=0
      展开该矩阵方程,并考虑到运算是在GF(2)中进行的,得到
      p ∗ H 2 T = s ∗ H 1 T p*H^T_2=s*H^T_1 pH2T=sH1T
      如果校验矩阵H是非奇异的,则满秩,所以有
      p = s ∗ H 1 T ∗ H 2 − T p=s*H^T_1*H^{-T}_2 p=sH1TH2T
      这样就把码字的校验位计算出来了,这种方法需要保证 H 2 H_2 H2 是可逆的,而准循环LDPC码因其结构化的特点可以保证这一条件。
    • 基于生成矩阵G的编码方案
      令LDPC码的校验矩阵H分为两部分:
      H = [ Q c ∗ m   P c ∗ c ] H=[Q_{c*m} \ P_{c*c}] H=[Qcm Pcc]
      其中子矩阵P的大小为c×c,Q的大小为c×m。计算
      W = ( P c ∗ c − 1   Q c ∗ m ) T W=(P^{-1}_{c*c} \ Q_{c*m})^T W=(Pcc1 Qcm)T
      其中的矩阵运算为模二运算。求得的m×c矩阵W必定是一个稠密的准循环结构矩阵。由稠密的准循环结构矩阵W可以求得生成矩阵:
      G = [ I m ∗ m   W ] G=[I_{m*m }\ W] G=[Imm W]
      其中 I I I是m×m的单位矩阵。可以看出生成矩阵具有准循环结构特性。得到生成矩阵G后将码字X与其相乘C=X*G,获得编码后的码字C。这里的乘法要满足有限域的乘法法则。

    LDPC译码

    Gallager 在描述 LDPC 码的时候,分别提出了硬判决译码算法和软判决译码算法两种。经过不断发展,如今的硬判决算法已在 Gallager 算法基础上进展很多,包含许多种加权比特翻转译码算法及其改进形式。硬判决和软判决各有优劣,可以适用于不同的应用场合。

    • 比特翻转算法(BF)
      硬判决译码算法最早是 Gallager 在提出 LDPC 码软判决算法时的一种补充。硬判决译码的基本假设是当校验方程不成立时,说明此时必定有比特位发生了错误,而所有可能发生错误的比特中不满足校验方程个数最多的比特发生错误的概率最大。在每次迭代时均翻转发生错误概率最大的比特并用更新之后的码字重新进行译码。具体步骤如下:
    1. 设置初始迭代次数 k1及其上限kmax 。对获得的码字y=(y1,y2…yn)按照下式展开二元硬判决得到接收码字的硬判决序列Zn 。
      在这里插入图片描述
    2. k 1 = k m a x k_1=k_{max} k1=kmax ,则译码结束。不然,计算伴随式s=(s0,s1,…sm-1),sm表示第m个校验方程的值。若伴随式的值均为 0,说明码字正确,译码成功。否则说明有比特位错误。继续进行步骤3。
    3. 对每个比特,统计其不符合校验方程的数量fn (1<=n<=N)

    在这里插入图片描述
    4. 将最大 f n f_n fn所对应的比特进行翻转,然后k=k+1,返回步骤2。

          BF 算法的理论假设是若某个比特不满足校验方程的个数最多,则此比特是最有可能出错的比特,因此,选择这个比特进行翻转。BF 算法舍弃了每个比特位的可靠度信息,单纯的对码字进行硬判决,理论最为简单,实现起来最容易,但是性能也最差。当连续两次迭代翻转函数判断同一个比特位为最易出错的比特时,BF 算法会陷入死循环,大大降低了译码性能。

    • 置信传播算法(BP)
      置信传播(Belief Propagation)译码算法是消息传递(Message Passing)算法在 LDPC译码中的运用。消息传递算法是一个算法类,最初运用于人工智能领域,人们将其运用到 LDPC 码的译码算法中,提出了LDPC 码的置信传播算法。置信传播算法是基于 Tanner 图的迭代译码算法。在迭代过程中,可靠性信息,即“消息”通过 Tanner图上的边在变量节点和校验节点中来回传递,经多次迭代后趋于稳定值,然后据此进行最佳判决。

    在介绍BP译码算法之前需要先了解一下Tanner图的概念。

          Tanner图是一种表示LDPC码的双向图,图的下面每个节点表示码字的一个比特位,称比特节点(bit nodes)。上面每个节点称为校验节点(check nodes)。校验矩阵中为1的元素,表示Tanner图中比特节点和校验节点之间存在连接边,这条边可称为两端节点的相邻边,相邻边两端的节点称为相邻节点,每个节点相邻边数称为该节点的度数。Tanner图是用来描述LDPC码结构的有效工具,同时也是迭代译码算法的参考工具。在Tanner图中校验节点和变量节点之间可以进行消息的可靠传递,首先变量节点接收初始化后验概率进行计算,将得到的可靠信息传递给相邻的校验节点;经过校验节点更新算法的计算,再将得到的运算结果传回至与其相邻的变量节点处,随后变量节点再将由校验节点得到的可靠信息以及初始化后验概率信息进行处理;将最后得到的有效信息进行判决得到译码结果。
          LDPC码的译码较为复杂,下面以置信传播算法举一个简单的例子来说明一下。
          发送码字C=(C9,C8,C7,C6,C5,C4,C3,C2,C1),其监督矩阵H是
    在这里插入图片描述
          则C必然满足线性方程组 H C T = 0 HC^T=0 HCT=0,即
    在这里插入图片描述
          通过信道后接收到的码字Y=(Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9)可能包含错误,因此伴随式 S = H Y T ≠ 0 S=HY^T≠0 S=HYT̸=0。将此线性方程组用如图所示的Tanner图来表示。
    在这里插入图片描述
    图中的X0,X1…X9称为变量节点,代表10个比特C0,C1,C2…C9,它们是译码器待求解的未知变量。图中的 □ □ 成为校验节点,代表线性方程组中的每一个校验方程,连线就代表方程中此变量的系数为1。
          译码过程是在变量节点和校验节点之间传递信息。每个变量节点告诉它所连接的校验节点“我认为该变量是什么”,而校验节点告诉它所连接的变量节点“我认为该变量应该是什么”。经过反复的消息传递后,变量节点和校验节点不断改变自己对各个变量是什么的看法,最终能形成一个满足校验方程的码字,这就是译码的结果。如果经过充分的迭代后仍然不能形成一个满足校验方程的码字,则译码器宣布它无法译出这个码字,即译码失败。

    置信传播译码算法的基本流程如下:
          在迭代前,译码器接收到信道传送过来的实值序列y=(y1,y2,….yn),所有变量节点bi接收到对应的接收值yi。
          第一次迭代:每个变量节点给所有与之相邻的校验节点传送一个可靠性消息,这个可靠性消息就是信道传送过来的值;每个校验节点接收到变量节点传送过来的可靠性消息之后,进行处理,然后返回一个新的可靠性信息给与之相邻的变量节点,这样就完成了第一次迭代;此时可以进行判决,如果满足校验方程,则不需要再迭代,直接输出判决结果,否则进行第二次迭代。
          第二次迭代:每个变量节点处理第一次迭代完成时校验节点传送过来的可靠性消息,处理完成后新的消息发送给校验节点,同理,校验节点处理完后返回给变量节点,这样就完成了第二次迭代。完成后同样进行判决,如果满足校验方程则结束译码,否则如此反复多次迭代,每次都进行判决,直到达到设定的最大迭代次数,译码失败。在每次迭代过程中,无论是变量节点传送给校验节点的信息或者校验节点传送给变量节点的信息,都不应该包括前次迭代中接收方发送给发送方的信息,这样是为了保证发送的信息与接收节点已得到的信息相互对立。
          假设在 AWGN 信道中,信道编码后的码字C=(c1,c2,…,cn)通过调制映射为调制序列X=(x1,x2…,xn),然后经信道传输,接收的序列为y=(y1,y2…,yn)。
    为后面章节的推导方便,先介绍一引理。

    引理:

    一个独立的比特序列,其长度为m,假设第i个比特为 1 的概率为 p i p_i pi,则整个序列中出现偶数个1的概率为
    在这里插入图片描述)
    出现奇数个 1 的概率为
    在这里插入图片描述
    这是信道编码领域中经常使用的一个定理,故直接使用。

    Gallager 定理:对于 ( n , j , k ) (n, j, k) (n,j,k)规则 LDPC 码, P i l P_{il} Pil i i i个校验方程中第 l l l校特为1的概率,则
    在这里插入图片描述
    其中:
    P r ( x i = 0 ∣ { y } , S ) P_r(x_i=0|\{y\},S) Pr(xi=0{y},S)表示在程组为 S S S,接收序列为 y y y 的条件下判断发送帧中的第i个比特为0的概率
    P r ( x i = 1 ∣ { y } , S ) P_r(x_i=1|\{y\},S) Pr(xi=1{y},S)表示在程组为 S S S,接收序列为 y y y 的条件下判断发送帧中的第i个比特为0的概率
    p i p_i pi表示发送序列的第 i位为1的先验概率;
    M ( i ) M(i) M(i) 表示校验节点的集合,集合中的节点均与变量节点 i i i相邻;
    N ( j ) N( j) N(j) 表示变量节点的集合,集合中的节点均与校验节点 j j j 相邻。

    由上节介绍的 BP 算法的原理及 Gallager 定理中的描述可知,变量节点 i i i传递给校验节点 j j j的可靠性信息 q i j ( 1 ) q_{ij} (1) qij(1)就是 P r ⁡ ( X j = 1 ∣ { y } , S ) Pr⁡(X_j=1|\{y\},S) Pr(Xj=1{y},S),于是定义
    在这里插入图片描述
    表示变量节点 i i i传递给校验节点 j j j 的外部概率信息,即在得到除校验节点 j j j 以外的其他所有校验比特和信道的外部信息后,判断变量节点 c i = 1 c_i=1 ci=1的概率。
    再定义
    在这里插入图片描述
    表示变量节点 i i i传递给校验节点 j j j 的外部概率信息,即在得到除 j j j 以外的其他所有校验比特和信道的外部信息后,判断变量节点 c i = 0 c_i=0 ci=0的概率。
    另一方面,校验节点 j j j 传递给变量节点 i i i 的可靠性信息应该为在给定信息位和其他信息位具有独立概率分布条件下,校验方程 j j j 满足的概率。将此可靠性信息记为 r j i r_{ji} rji,则
    在这里插入图片描述
    将上式代入
    在这里插入图片描述
    根据以上的描述和符号定义,概率 BP 译码算法流程可以归纳为如下几个步骤:
    (1) 初始化
    计算经信道传输后各变量节点的初始概率 p i ( 1 ) p_i(1) pi(1) p i ( 0 ) p_i(0) pi(0)。然后对每个变量节点求传递给与其相邻的校验节点的可靠性信息
    在这里插入图片描述
    其中的上标(0)表示迭代次数。
    2) 校验节点处理过程 ( r i j (r_{ij} (rij的计算)
    求出第 l l l次迭代过程中校验节点i递给与之相邻的变量节点 j j j可靠性信息
    在这里插入图片描述
    其中的上标 ( l ) (l) (l) ( l − 1 ) (l −1) (l1)均表示迭代次数。
    (3)变量节点处理过程( q i j q_{ij} qij的计算)
    求出第 l l l 次迭代过程中变量节点 j j j 传递给与之相邻的校验节点 i i i的可靠性信息
    在这里插入图片描述
    其中的 K i j K_{ij} Kij是校正因子,使每次计算出的 q i j ( l ) ( 1 ) + q i j ( l ) ( 0 ) = 1 q^{(l)}_{ij}(1)+q^{(l)}_{ij}(0)=1 qij(l)(1)+qij(l)(0)=1
    (4)译码判决
    在本次迭代过程处理最后,重新计算各变量节点的可靠性信息
    在这里插入图片描述
    其中的 K j K_j Kj也为校正因子,目的是使 q j ( l ) ( 1 ) + q j ( l ) ( 0 ) = 1 q^{(l)}_{j}(1)+q^{(l)}_{j}(0)=1 qj(l)(1)+qj(l)(0)=1
    如果 q j ( l ) ( 1 ) > q j ( l ) ) ( 0 ) q^{(l)}_j (1)>q^{(l)}_j)(0) qj(l)(1)qj(l))(0),那么这一点的估计值时 c i = 1 c_i=1 ci=1,否则估计值为 c i = 0 c_i=0 ci=0。如果估计值满足奇偶校验方程,那么终止算法,否则算法继续运行,直到达到预先设置的最大迭代次数。

    • 仿真验证
    LDPC码基于IEEE 802.16e标准
    码长1440
    码率1/2
    有限域四元
    迭代次数20
    调制方式QPSK
    单一信噪比下仿真次数10^5
    最小误码总数不少于200
    信道高斯信道

    仿真说明如下:
    下图是在高斯信道下,码字经过LDPC编码和未编码的译码结果对比图,为了保证对比的有效性,仿真中LDPC码与未编码的码字等长,同为1440,LDPC码通过BP译码算法译码,而未编码的码字通过解调硬判决译码。
    在这里插入图片描述
    仿真结果分析:从图可以看出码字经过LDPC编译码之后其抵抗噪声的能力极大加强,与未编码的码字相比,在误码率都为1e-4时,其性能提高了9.5dB左右,从而验证了LDPC码是一种性能极佳的信道纠错码。

    • 结束语

    目前LDPC码研究领域的主要工作集中在译码算法的性能分析、编码方法、码的优化算法等,经过研究人员的努力,LDPC码的研究取得很大进展,但仍有许多问题需要进一步研究:

    (1)LDPC码校验矩阵的构造,尽管在构造最优的LDPC码方面取得了一些进步,但目前还没有一套系统的办法来构造所需要的好码,特别是在码字长度有限、码率一定的条件下,构造性能优异的好码是一个非常具有挑战性的课题。

    (2)LDPC编码系统的联合优化设计,将编码技术与调制技术、均衡技术、时空编码技术、OFDM技术结合进行性能优化是当前及将来的发展方向之一。

    (3)无线衰落信道及MIMO技术下LDPC码的性能分析方法及优化设计准则。目前LDPC码字的优化设计主要在加性高斯白噪声信道下得到的,而无线衰落信道下,特别是时变信道非线性环境下码字的性能分析方法、优化设计准则和信道估计的影响也是非常关键的课题,需要进一步的研究探索。

    此外,基于LDPC码的链路自适应技术,LDPC码在集成通信网物理层、应用层联合优化系统中的应用,LDPC码在无线局域网和深空宇航中的应用,基于LDPC码的图像传输、图像数字水印系统中的应用以及寻找更适合硬件实现的LDPC码编译码方法等都是非常值得研究的课题。

    展开全文
  • java源码编译为字节的流程

    千次阅读 2021-06-04 21:47:42
    1. 词法、语法分析和填充符号表 1.1 词法分析:将源代码的字符流转为Token集合,关键字、变量名、字面量和运算符都可成为Token,比如...比如我们反编译字节文件看到的()方法和()方法,就是这个阶段添加到语法树中。
  • 三种编译技术比较_比较编译技术

    千次阅读 2020-06-30 20:13:58
    因为设计该语言是为了支持应用程序可移植性的关键目标而设计的,所以早期的Java运行时所提供的性能水平大大低于诸如C和C ++之类的编译语言所能达到的水平。 尽管此类语言可以在更高级别上执行,但是生成的代码只能...
  • JIT动态编译技术

    万次阅读 2020-08-25 16:11:47
    JIT动态编译技术 一个Java程序执行的过程,就是执行字节指令的过程,一般这些指令会按照顺序一条一条指令解释执行,这种就是解释执行,解释执行的效率是非常低下的,因为需要先将字节翻译成机器,才能执行。 ...
  • 引言 喷泉码不算一个特别新的码字了,2002年Luby就提出了喷泉码的概念,当年Luby也...系列文章分为两篇,第一篇主要是对于典型的喷泉码,LT码的编译码算法的详解,第二篇会对于其度分布生成的推导过程进行引导性的...
  • LDPC编译码

    万次阅读 多人点赞 2018-03-07 19:28:32
    低密度校验(LDPC)是一种前向纠错,LDPC最早在20世纪60年代由Gallager在他的博士论文中提出,但限于当时的技术条件,缺乏可行的译码算法,此后的35年间基本上被人们忽略,其间由Tanner在1981年推广了LDPC...
  • 信息传输原理与技术实验课 实验...2号模块数字终端&时分多址模块 3号模块信源编译码模块 6号模块信道编译码模块 7号模块时分复用&时分交换模块 8号模块基带传输编译码模块 9号模块数字调制解调模块 13号模块载波同步
  • 在通信系统中要提高信息传输的有效性我们将信源的输出经过信源编码用较少的符 号来表达信源消息这些符号的冗余度很小效率很高但对噪声干扰的抵抗能力很弱汉 明码Hamming Code是一种能够自动检测并纠正一位错的线性...
  • 【0226】信息安全与密码技术

    千次阅读 2022-03-22 18:23:36
    信息安全与密码技术 密码:指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 密码学:研制编译密码和破译密码的技术科学 密码学的应用:保证信息的保密性、真实性、准确性 密码算法和协议...
  • JVM_10 类加载与字节码技术(编译期处理——语法糖)

    千次阅读 多人点赞 2021-05-13 08:32:46
    所谓的语法糖 ,其实就是指 java 编译器把 *.java 源码编译为 *.class 字节的过程中,自动生成 和转换的一些代码,主要是为了减轻程序员的负担,算是 java 编译器给我们的一个额外福利(给糖吃嘛) 注意,以下代码...
  • 基于MATLAB的turbo编译码误码率仿真

    千次阅读 2021-05-02 04:54:13
    Turbo是一种极为复杂的信道编码技术,译码算法往往由于硬件实现的复杂度太高或者译码时延太长而难以实现。现目前Turbo领域面临的主要问题是:在复杂度和时延都可以接受的前提下如何获得最佳的系统性能。Turbo...
  • Python反编译之字节

    千次阅读 2019-05-19 13:16:36
    ok不知道也没关系,接下来的时间我们所有的话题都将围绕字节,在python有一个模块可以通过反编译Python代码来生成字节这个模块就是今天要说的--dis模块。 dis模块的使用 dis模块包括一些用于处理 Python 字节...
  • 我们把C代码编译成java字节,这样我们的C语言便具备了可跨品台...通过把C语言编译成java字节,我们不但能够继续学习和掌握编译原理相关的算法技术,于此同时,还能深入理解java虚拟机的基本原理,此乃一举两得之妙
  • 【Java核心技术卷】Java的解释执行与编译执行

    千次阅读 多人点赞 2019-02-28 18:23:16
    简化版的过程图示: ...字节:字节是已经经过编译(.class文件),但与特定机器无关,需要解释器转译后才能成为机器的中间代码。 Java字节:是Java虚拟机执行的一种指令格式。 解释器:是一种电脑...
  • 编译 什么是编译 编译方式 反编译 字节 反汇编
  • 编译程序

    千次阅读 2020-10-23 09:15:55
    在这一章中,我们将看一下如何通过编译源代码来创建程序。源代码的可用性是至关重要的自由,从而使得 Linux 成为可能。 整个 Linux 开发生态圈就是依赖于开发者之间的自由交流。对于许多桌面用户来说,编译是一种...
  • python需要编译

    千次阅读 2021-02-04 17:59:00
    通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。与此相对的,解释的意思是这...
  • 编译原理报告.docx

    2020-07-28 20:05:45
    编译原理实验报告 课 程 实 验 报 告 课程名称 编译原理(词法分析语法分析) 专业班级 信息安全1302班 学 号 姓 名 指导教师 报告日期 2015/11/8 计算机科学与技术学院 目 录 TOC \o "1-3" \h \u 实验一词法分析 1 ...
  • 编译基础知识

    千次阅读 2020-06-29 18:55:47
    本文相关反编译技术仅限于技术研究使用,不能用于非法目的,否则后果自负. 1. apktool 逆向APK文件的工具 官方网站 apktool主要用于逆向apk文件,可以将资源解码,并在修改之后可以重新构建它们.它还可以用来重新构建apk...
  • 可能资源被反编译影响还不是很大,而重新打包又由于有签名的保护导致很难被盗版,但代码被反编译就有可能会泄漏核心技术了,因此一款安全性高的程序最起码要做到的一件事就是:对代码进行混淆。 混淆代码并不是让...
  • 文章目录早期(编译期)优化概述Javac编译器Javac的源码与调试解析与填充符号表注解处理器语义分析与字节生成Java 语法糖的味道泛型与类型擦除自动装箱、拆箱与遍历循环条件编译实战:插入式注解处理器晚期(运行...
  • Android 增量编译小解

    千次阅读 2020-11-15 21:56:09
    工程编译,是Android应用开发工作中的重要一环。而随着工程代码量膨胀,编译耗时也越来越长,拖慢了开发效率。 这个问题在中大型团队中并不少见。以QQ音乐为例,Android工程代码量达到120万行以上,每修改一行代码,...
  • 编译原理报告 (4).docx

    2020-10-16 11:18:18
    课 程 实 验 报 告 课程名称 编译原理 专业班级 信息安全1302 学 号 姓 名 指导教师 报告日期 2015年11月13日 计算机科学与技术学院 目录 TOC \o "1-3" \h \z \u 实验一词法分析 1 1. 实验目的 1 2. 实验要求 1 2.1...
  • 运行时把Class文件字节码编译成本地机器 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在《Java三种编译方式:前端编译 JIT编译 AOT编译》中了解到了它们各有什么优点和缺点,以及...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 199,491
精华内容 79,796
热门标签
关键字:

信息编译码技术