精华内容
下载资源
问答
  • 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

         

    展开全文
  • 各位老师好我叫xxx是信息学院的学生论文题目是卷积码编译码算法研究及实现我的导师是xxx老师论文的完成得益于她的悉心指导下面我将本论文的设计目的和内容向各位答辩老师作一汇报恳请各位老师批评指导 首先我想谈谈...
  • 这是最近在25个最危险的编程错误中提出的:硬编码秘密帐户和 密码进入你的软件 非常方便 - 技术娴熟 逆向工程师。 如果密码是 所有软件都一样, 然后每个客户都变得脆弱 当密码不可避免地变成时众所周知。 而且因为...

    切勿将密码硬编码到代码中。 这是最近在25个最危险的编程错误中提出的:

    硬编码秘密帐户和   密码进入你的软件   非常方便 - 技术娴熟   逆向工程师。 如果密码是   所有软件都一样,   然后每个客户都变得脆弱   当密码不可避免地变成时  众所周知。 而且因为它是硬编码的,   修复是一个巨大的痛苦。

    您应该将配置信息(包括密码)存储在应用程序启动时读取的单独文件中。 这是防止密码因反编译而泄漏的唯一真正方法(永远不要将其编译成二进制文件开头)。

    有关此常见错误的更多信息,请阅读CWE-259文章。 本文包含更全面的定义,示例以及有关该问题的许多其他信息。

    在Java中,最简单的方法之一是使用Preferences类。 它旨在存储各种程序设置,其中一些可能包括用户名和密码。

    import java.util.prefs.Preferences;

    public class DemoApplication {

    Preferences preferences =

    Preferences.userNodeForPackage(DemoApplication.class);

    public void setCredentials(String username, String password) {

    preferences.put("db_username", username);

    preferences.put("db_password", password);

    }

    public String getUsername() {

    return preferences.get("db_username", null);

    }

    public String getPassword() {

    return preferences.get("db_password", null);

    }

    // your code here

    }

    在上面的代码中,您可以在显示对话框后询问用户名和密码后调用getInventoryList方法。 当您需要连接到数据库时,您可以使用getUsername和getPassword方法来检索存储的值。 登录凭据不会硬编码到您的二进制文件中,因此反编译不会带来安全风险。

    重要说明:首选项文件只是纯文本XML文件。 确保采取适当的措施防止未经授权的用户查看原始文件(UNIX权限,Windows权限等)。 至少在Linux中,这不是问题,因为调用getInventoryList将在当前用户的主目录中创建XML文件,无论如何其他用户都无法读取。 在Windows中,情况可能会有所不同。

    更重要的注意事项:在这个答案的评论和其他人的讨论中已经有很多关于这种情况的正确架构的讨论。 最初的问题没有真正提到使用该应用程序的上下文,所以我将讨论我能想到的两种情况。 第一种情况是使用该程序的人已经知道(并且被授权知道)数据库凭证。 第二种情况是,您(开发人员)正在尝试将数据库凭据与使用该程序的人保密。

    第一种情况:用户有权知道数据库登录凭据

    在这种情况下,我上面提到的解决方案将起作用。 Java getInventoryList类将以纯文本格式存储用户名和密码,但首选项文件只能由授权用户读取。 用户可以简单地打开首选项XML文件并读取登录凭据,但这不是安全风险,因为用户知道要开始的凭据。

    第二种情况:尝试隐藏用户的登录凭据

    这是一个更复杂的情况:用户不应该知道登录凭据,但仍然需要访问数据库。 在这种情况下,运行应用程序的用户可以直接访问数据库,这意味着程序需要提前知道登录凭据。 我上面提到的解决方案不适用于这种情况。 您可以将数据库登录凭据存储在首选项文件中,但是用户将能够读取该文件,因为它们将是所有者。 事实上,以安全的方式使用这种情况确实没有好办法。

    正确案例:使用多层架构

    正确的方法是在数据库服务器和客户端应用程序之间建立一个中间层,用于对单个用户进行身份验证,并允许执行一组有限的操作。 每个用户都有自己的登录凭据,但不是数据库服务器。 凭证将允许访问中间层(业务逻辑层),并且对于每个用户将是不同的。

    每个用户都有自己的用户名和密码,可以在本地存储在首选项文件中,不存在任何安全风险。 这称为三层体系结构(层是数据库服务器,业务逻辑服务器和客户端应用程序)。 它更复杂,但它确实是最安全的方式来做这种事情。

    基本操作顺序是:

    客户端使用用户的个人用户名/密码对业务逻辑层进行身份验证。 用户名和密码是用户已知的,并且以任何方式与数据库登录凭据无关。

    如果身份验证成功,则客户端向业务逻辑层发出请求,要求从数据库中获取某些信息。 例如,产品清单。 请注意,客户端的请求不是SQL查询; 它是一个远程过程调用,如getInventoryList。

    业务逻辑层连接到数据库并检索所请求的信息。 业务逻辑层负责根据用户的请求形成安全的SQL查询。 应该清理SQL查询的任何参数以防止SQL注入攻击。

    业务逻辑层将库存清单发送回客户端应用程序。

    客户端向用户显示库存清单。

    请注意,在整个过程中,客户端应用程序永远不会直接连接到数据库。 业务逻辑层接收来自经过身份验证的用户的请求,处理客户端对库存列表的请求,然后才执行SQL查询。

    展开全文
  • JIT编译和AOT编译

    2020-12-22 13:43:35
    在安装时对二进制进行编译,提高在运行时的执行速度。可以提高速度(特别是启动时间)、减少内存足迹(不是JIT)和改进内存回收。 使用AOT编译模式,模板时类型安全的,适用于部署发布。 JIT和AOT比较 参考资料 ...

    JIT(just in time)

    • 实时编译,即时编译。
    • Profile-Based Optimization,边跑边优化,根据运行时信息然后随着时间的推移得到尽可能优化的代码,适用于开发调试。

    AOT(ahead of time)

    • 预先编译,静态编译。
    • 在安装时对二进制码进行编译,提高在运行时的执行速度。可以提高速度(特别是启动时间)、减少内存足迹(不是JIT)和改进内存回收。
    • 使用AOT编译模式,模板时类型安全的,适用于部署发布。

    JIT和AOT比较

    在这里插入图片描述
    参考资料
    JIT和AOT编译技术
    JIT编译与AOT编译
    JIT和AOT
    AOT,JIT区别,各自优劣,混合编译

    展开全文
  • 批量加密PDF的应用场景随着信息技术的发展,信息安全日益受到重视。如何更好地保护好信息,是每个人都要考虑的问题。特别在工作中,对外的文件最好进行加密后再发送,有利于提高安全性。对单个PDF加密相对容易,许多...

    426f262282b7f59c7c254ca655448f5f.png

    批量加密PDF的应用场景

    随着信息技术的发展,信息安全日益受到重视。如何更好地保护好信息,是每个人都要考虑的问题。特别在工作中,对外的文件最好进行加密后再发送,有利于提高安全性。

    对单个PDF加密相对容易,许多PDF编辑器自带保护功能,可以对PDF进行加密操作。然而,如果需要加密的PDF数量很多时,一个一个地手动操作非常低效。如果有工具可以进行批量加密,将极大地节省人力。

    今天介绍用Python对PDF进行批量加密。利用PyPDF2这个Python库,将PDF加密后生成新的PDF导出,实现批量处理的目标。

    批量加密PDF的任务分解

    Step1:将需要加密的PDF放入同个文件夹,读取该文件夹所在路径

    Step2:确定加密完成的文件输出路径,并自定义密码

    Step3:依次读取文件夹中PDF,加密后生成新的pdf并输出

    批量加密PDF的python实现

    import 

    局限及拓展

    上述程序为每一个PDF都设定了相同的密码,如果需要对不同的PDF设定不同的密码,则可以在上述代码的基础上进行改进。

    我们已将上述python程序打包成为PDF加密器的exe文件。无需安装python,打开批量加密PDF器,点击鼠标即可完成批量加密PDF的任务,详见:

    批量加密PDFmp.weixin.qq.com
    090048a1ef664df5facfe20134dca0e3.png
    展开全文
  • 在运行期的代码中生成二进制字节由JVM通过字节的二进制信息加载类的,那么,如果我们在运行期系统中,遵循Java编译系统组织.class文件的格式和结构,生成相应的二进制数据,然后再把这个二进制数据加载转换成...
  • PHP编译安装

    2019-07-01 14:19:50
    PHP编译安装 身为一名PHP开发者,技术栈自不用多说。...本机测试案例系统信息:ubuntu16.04 安装路径:/usr/local/php 下载PHP7.2.0安装包,点此下载 [密码:us9h] 1、安装依赖包 sudo apt-get update ...
  • Java agent又叫做Java 探针,本文将从以下...java类编译之后形成字节被JVM执行,JVM在执行这些字节之前获取这些字节码信息,并且对这些字节进行修改,来完成一些额外的功能,这种就是java agent技术。二、java...
  • Java agent又叫做Java 探针,本文将从以下四个问题出发来...java类编译之后形成字节被JVM执行,JVM在执行这些字节之前获取这些字节码信息,并且对这些字节进行修改,来完成一些额外的功能,这种就是java agent...
  • QR二维码解码C++源代码,不含DLL中间件,全套源程序,原代码全中文...可以选择输入8位或24位BMP格式QR图像,输出(包括版本号和纠错等级的)QR译码信息。 支持QR中文国家标准,是研究QR译码技术的入门样本。
  • 本项目是一个图书条形扫描的应用项目源码,主要的技术就是Zxing开源库的使用,简单的网络通信,数据解析及UI更新的要点。扫描书籍的条形以后。返回ISBN值之后,然后再去豆瓣图书API:...
  • 信息化发展凸显了信息安全问题 2010年6月 震网病毒(stuxnet病毒) -> 证明物理隔离也不一定安全 2015年9月 XcodeGhost -> 证明编译层面也可能存在安全漏洞 网络威胁惊人,每天超过亿次GPT攻击,攻击方式:可...
  • 编译原理实验报告 计算机与信息学院 第 第 PAGE 14 页 共 NUMPAGES 14 页 实验一 词法分析器的设计 一实验目的 理解词法分析器的任务和输出形式 理解扫描器的工作原理 掌握状态转换图的绘制以及单词的识别技术 掌握...
  • 对于一般的线性分组(如循环、BCH等),它们的共同特点是:一个码字的监督单元仅与本码组的k位信息码元有关,与其它码字的码元无关。而卷积的特点在于本组的码元不仅与当有输入的k个信息有关,而且还与前面m...
  • 借助适当的工具,我们可以反编译任何SWF文件。所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。 我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的最大...
  • 众所周知,在 jdk 8以前java源码编译后通过反射是无法获得形参名的,在Java 8及之后,编译的时候可以通过-parameters为...答案是 通过字节码技术,将该类的class文件读进来,通过class的存储信息来得到的 ,就是Loca...
  • 借助适当的工具,我们可以反编译任何SWF文件。所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。  我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的...
  • JAVA语言程序设计期末考试模拟试题(一) 一 单选择题(每小题2分共10分) TOC \o "1-5" \h \z 1 编译Java Application 源程序文件将产生相应的字节文件这些字节文件的扩展名为 (B ) .java B. .class C. ....
  • 在通信系统中要提高信息传输的有效性我们将信源的输出经过信源编码用较少的符 号来表达信源消息这些符号的冗余度很小效率很高但对噪声干扰的抵抗能力很弱汉 明码Hamming Code是一种能够自动检测并纠正一位错的线性...
  • 1编译 Java Application 源程序文件将产生相应的字节文件这些字节文件的扩展名为 ( B ) A. .java B. .class C. .html D. .exe 2 设x = 1 , y = 2 , z = 3则表达式 y + = z/ + + x的值是(A ) A. 3 B. 3. 5 C. 4 D...
  • 自己没有写过博客,更没有写过技术类的博客。------第一次。本博客纯粹为了学习、兴趣,别无他意 我这次对支付宝的手机软件进行反编译,目的是为了尝试获取应用中保存在本地的账号、密码。大家都知道,支付宝第一次...
  • Python首先将后缀为.py的源码文件编译为字节文件,存储在工程目录__pycache__下,再交由虚拟机转换为二进制,由CPU执行。Python的字节文件为了达到跨平台性,所以保留了源代码中的所有信息。正是因为...
  • 借助适当的工具,我们可以反编译任何SWF文件。所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。 我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的最大...
  • 数字通信技术的最终目标是在系统允许...经验,设计性能优良且编译码复杂度低的LDPC码是近年来人们研究的热点问题。 本论文在LDPC码的设计和分析,编译码算法和实现,以及在多级编码调制中的 应用三个方面进行了深入研究
  • 本书从理论到实践由浅入深地介绍了LDPC编译原理及其在不同信道下的应用。全书共分8章,包括BP算法、密度进化、LDPC卷积和广义LDPC等内容。 第1章 通信和信息论初步   1.1 数字通信系统   1.1.1 通信和...
  • 提出了一种适用于体全息存储系统读写数据处理的新的编码结构:调制-阵列码,同时提出了与其相适应的软判决度量方法....将这种新的编译码技术用于包含音频和视频的多媒体数据的全息存储,重构数据基本能成功回放.
  • 如何防止SWF文件被反编译?(一)

    千次阅读 2004-04-27 23:55:00
    所以,不要将重要的信息置于SWF文件中。SWF文件中不要包含个人的帐号或者密码。我将简要的论述“保护”技术的历史,和他们是如何失败的,接着我将说明我们能尽的最大努力。中国古语有云,“规则只能防君子,不能仿...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 404
精华内容 161
关键字:

信息编译码技术