选择特殊符号

选择搜索类型

热门搜索

首页 > 百科 > 建设工程百科

编码原理

编码原理是对编码的属性及其各自适用于具体应用的方法研究。编码用于数据压缩,加密,纠错和网络。编码在各种科学学科(如信息理论,电气工程,数学,语言学和计算机科学)都有研究 - 旨在设计高效可靠的数据传输方法。这通常涉及去除冗余以及发送数据中的错误的校正或检测。

编码原理基本信息

编码原理编码方法

这里主要介绍线性编码有关内容

线性编码

术语代数编码理论表示编码原理的子领域,其编码性质以代数术语表示,然后进一步研究 。

代数编码理论基本上分为两大类代码:

线性分组码

卷积码

它分析一个编码的以下三个特性-主要是:

码字长度

有效代码字总数

两个有效代码字之间的最小距离,主要使用汉明距离,有时也使用其他距离像Lee距离。

线性分组码

线性分组码具有的特性的线性度,即,任何两个码字的总和也是一个编码字,并且它们被应用到组的源比特中,因此称为线性分组码。有分组码不是线性的,但是很难证明编码是没有这个属性的编码。

线性分组码由其符号字母(例如,二进制或三元)和参数(n,m,

)组成,其中

n是码字的长度,以符号表示,

m是将一次用于编码的源符号的数量,

是编码的最小汉明距离。

有许多类型的线性分组码,如循环码(如汉明码)、重复代码、奇偶校验码、多项式编码(例如BCH码)、里德 - 所罗门编码、代数几何编码、里德 - 穆勒编码、完美编码。

编码原理使用N维球体模型。例如,可以在桌面上或三维中将多少便士包装成圆圈,可以将多少个弹珠包装在一个球面上。其他注意事项输入编码的选择。例如,六边形包装成矩形框的约束将在角落留下空的空间。随着尺寸越来越大,空白空间的百分比越来越小。但是在某些维度上,包装使用所有空间,这些代码是所谓的“完美”代码。唯一非常重要和有用的完美编码是距离为3汉明码,其参数满足(2 r - 1,2 r - 1 - r,3)和[23,12,7]二进制和[11,6,5 ]三重Golay码。

另一个编码属性是单个码字可能具有的邻居的数量。再次,以便士为例。首先我们把便士打包成矩形网格。每一分钱将有4个邻近的邻居(在距离更远的角落有4个)。在六边形,每一分钱将有6个近邻。当我们增加尺寸时,近邻的数量增加非常快。结果是使接收端选择邻居(因此错误)的噪声的方式也增加。这是分组码以及所有编码的基本限制。可能更难对单个邻居造成错误,但邻居数量可能足够大,因此总错误概率实际上会受到影响。

线性分组码的属性可以应用于很多应用。例如,线性分组码的校正子集合唯一性被用网格成形,是最有名的形状码之一。传感器网络中使用相同的属性进行分布式源代码编码。

卷积码

如果特定的一致监督关系不是在一个码字中实现,而是在个码字中实现,这种码称为卷积码。卷积码可用移位寄存器来实现,这种卷积编码器的输出可看作是输入信息码元序列与编码器响应函数的卷积。能纠正突发错误的哈格伯尔格码也是一种卷积码。在平稳高斯噪声干扰的信道上采用序贯译码方法的卷积码有很好的性能,能用于卫星通信和深空通信。

UTF-8 编码原理

为了统一全世界各国语言文字和专业领域符号(例如数学符号、乐谱符号)的编码,ISO制定了ISO 10646标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示231个字符。如果两个字符编码的高位相同,只有低16位不同,则它们属于一个平面(Plane),所以一个平面由216个字符组成。目前常用的大部分字符都位于第一个平面(编码范围是U-00000000~U-0000FFFD),称为BMP(Basic Multilingual Plane)或Plane 0,为了向后兼容,其中编号为0~256的字符和Latin-1相同。UCS编码通常用U-xxxxxxxx这种形式表示,而BMP的编码通常用 U xxxx这种形式表示,其中x是十六进制数字。在ISO制定UCS的同时,另一个由厂商联合组织也在着手制定这样的编码,称为Unicode,后来两家联手制定统一的编码,但各自发布各自的标准文档,所以UCS编码和Unicode码是相同的。

有了字符编码,另一个问题就是这样的编码在计算机中怎么表示。现在已经不可能用一个字节表示一个字符了,最直接的想法就是用四个字节表示一个字符,这种表示方法称为UCS-4或UTF- 32,UTF是Unicode Transformation Format的缩写。一方面这样比较浪费存储空间,由于常用字符都集中在BMP,高位的两个字节通常是0,如果只用ASCII码或Latin-1,高位的三个字节都是0。另一种比较节省存储空间的办法是用两个字节表示一个字符,称为UCS-2或UTF-16,这样只能表示BMP中的字符,但BMP中有一些扩展字符,可以用两个这样的扩展字符表示其它平面的字符,称为Surrogate Pair。无论是UTF-32还是UTF-16都有一个更严重的问题是和C语言不兼容,在C语言中0字节表示字符串结尾,库函数strlen、 strcpy等等都依赖于这一点,如果字符串用UTF-32存储,其中有很多0字节并不表示字符串结尾,这就乱套了。

UNIX之父Ken Thompson提出的UTF-8编码很好地解决了这些问题,现在得到广泛应用。UTF-8具有以下性质:

* 编码为U 0000~U 007F的字符只占一个字节,就是0x00~0x7F,和ASCII码兼容。

* 编码大于U 007F的字符用2~6个字节表示,每个字节的最高位都是1,而ASCII码的最高位都是0,因此非ASCII码字符的表示中不会出现ASCII码字节(也就不会出现0字节)。

* 用于表示非ASCII码字符的多字节序列中,第一个字节的取值范围是0xC0~0xFD,根据它可以判断后面有多少个字节也属于当前字符的编码。后面每个字节的取值范围都是0x80~0xBF,见下面的详细说明。

* UCS定义的所有231个字符都可以用UTF-8编码表示出来。

* UTF-8编码最长6个字节,BMP字符的UTF-8编码最长三个字节。

* 0xFE和0xFF这两个字节在UTF-8编码中不会出现。

具体来说,UTF-8编码有以下几种格式:

U-00000000 – U-0000007F: 0xxxxxxx

U-00000080 – U-000007FF: 110xxxxx 10xxxxxx

U-00000800 – U-0000FFFF: 1110xxxx 10xxxxxx10xxxxxx

U-00010000 – U-001FFFFF: 11110xxx 10xxxxxx10xxxxxx 10xxxxxx

U-00200000 – U-03FFFFFF: 111110xx 10xxxxxx10xxxxxx 10xxxxxx 10xxxxxx

U-04000000 – U-7FFFFFFF: 1111110x 10xxxxxx10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

第一个字节要么最高位是0(ASCII字节),要么最高两位都是1,最高位之后1的个数决定后面有多少个字节也属于当前字符编码,例如111110xx,最高位之后还有四个1,表示后面有四个字节也属于当前字符的编码。后面每个字节的最高两位都是10,可以和第一个字节区分开。这样的设计有利于误码同步,例如在网络传输过程中丢失了几个字节,很容易判断当前字符是不完整的,也很容易找到下一个字符从哪里开始,结果顶多丢掉一两个字符,而不会导致后面的编码解释全部混乱了。上面的格式中标为x的位就是UCS编码,最后一种6字节的格式中x位有31个,可以表示31位的UCS编码,UTF-8就像一列火车,第一个字节是车头,后面每个字节是车厢,其中承载的货物是UCS编码。UTF-8规定承载的UCS编码以大端表示,也就是说第一个字节中的x是UCS编码的高位,后面字节中的x是UCS编码的低位。

例如U 00A9(©字符)的二进制是10101001,编码成UTF-8是11000010 10101001(0xC2 0xA9),但不能编码成11100000 10000010 10101001,UTF-8规定每个字符只能用尽可能少的字节来编码。

查看详情

编码原理造价信息

  • 市场价
  • 信息价
  • 询价

绝对值编码

  • BVS58N-011AVR0NN-0013
  • 倍加福
  • 13%
  • 上海百策自控技术有限公司
  • 2022-12-07
查看价格

增量式编码

  • RVP510
  • 易福门
  • 13%
  • 易福门电子(上海)有限公司
  • 2022-12-07
查看价格

编码

  • HZ830
  • 13%
  • 上海鸿真电子有限公司(湖州市厂商期刊)
  • 2022-12-07
查看价格

编码

  • PGM8000
  • 依爱
  • 13%
  • 蚌埠依爱消防电子有限责任公司(湖州市厂商期刊)
  • 2022-12-07
查看价格

手持编码

  • TX6930
  • 13%
  • 深圳市泰和安科技有限公司
  • 2022-12-07
查看价格

防爆编码接口

  • LD-8340(EX)
  • 湛江市2005年1月信息价
  • 建筑工程
查看价格

防爆编码接口

  • LD-8340(EX)
  • 湛江市2005年2月信息价
  • 建筑工程
查看价格

防爆编码接口

  • LD-8340(EX)
  • 湛江市2005年1月信息价
  • 建筑工程
查看价格

防爆编码接口

  • LD-8340(EX)
  • 湛江市2005年2月信息价
  • 建筑工程
查看价格

编码中断器

  • GST-LD-8319
  • 茂名市2009年8月信息价
  • 建筑工程
查看价格

数学原理

  • 制作原型转盘,转盘内按照数学定理设计不同形状液体容器和管道,观众旋转转盘,通过观察其中定量液体形态及珠子走向形态等变化,了解勾股定理、圆锥与圆柱以及概率的数学原理
  • 1项
  • 1
  • 中高档
  • 含税费 | 含运费
  • 2022-10-24
查看价格

数学原理

  • 制作原型转盘,转盘内按照数学定理设计不同形状液体容器和管道,观众旋转转盘,通过观察其中定量液体形态及珠子走向形态等变化,了解勾股定理、圆锥与圆柱以及概率的数学原理
  • 1项
  • 1
  • 中高档
  • 含税费 | 含运费
  • 2022-09-16
查看价格

数学原理

  • 制作原型转盘,转盘内按照数学定理设计不同形状液体容器和管道,观众旋转转盘,通过观察其中定量液体形态及珠子走向形态等变化,了解勾股定理、圆锥与圆柱以及概率的数学原理
  • 1项
  • 1
  • 中档
  • 不含税费 | 含运费
  • 2022-08-15
查看价格

数学原理

  • 制作原型转盘,转盘内按照数学定理设计不同形状液体容器和管道,观众旋转转盘,通过观察其中定量液体形态及珠子走向形态等变化,了解勾股定理、圆锥与圆柱以及概率的数学原理
  • 1项
  • 1
  • 高档
  • 不含税费 | 含运费
  • 2022-09-14
查看价格

编码

  • 编码
  • 3791个
  • 4
  • 中档
  • 不含税费 | 不含运费
  • 2015-06-24
查看价格

编码原理简介

编码原理是对编码的属性及其各自适用于具体应用的方法研究。编码用于数据压缩,加密,纠错和网络。编码在各种科学学科(如信息理论,电气工程,数学,语言学和计算机科学)都有研究 -旨在设计高效可靠的数据传输方法。这通常涉及去除冗余以及发送数据中的错误的校正或检测。实现编码的具体方法和电路很多,方法有低速编码和高速编码、线性编码和非线性编码;电路有逐次比较型、级联型和混合型编码。 编码原理按照应用来分可以分为算术编码原理,音频编码原理、图像编码原理、字符编码原理等。

查看详情

编码原理常见问题

查看详情

编码原理文献

光电编码器电路原理分析 光电编码器电路原理分析

光电编码器电路原理分析

格式:pdf

大小:281KB

页数: 2页

本文以光电编码器为例介绍了数控检测系统的种类,详细分析了光电编码器的结构原理。分析SZLF-102.4BM-C05L光电脉冲编码器电路原理,把机械转角通过光电转换元件将变化的光信号转换成近似正弦波的电信号,然后由放大电路、整形电路、经频率---电压变换器变成正比于频率的电压,作为速度反馈信号,供给速度控制单元,进行速度调节。

欧司朗编码 欧司朗编码

欧司朗编码

格式:pdf

大小:281KB

页数: 2页

序号 物料编码 型号规格 1 3225040084179578 荧光管 /欧司朗DULUXSTAR CL/7W 2 3225080084179570 金属卤化物灯 /欧司朗HQI-E/涂粉70W 3 3225040082797872 荧光管 /OSRAM DULUXSTAR/TWIST 23W 4 3225040084513150 荧光管 /欧司朗YZ15T8 15W 5 3225040084179582 荧光管 /欧司朗 电子节能灯 DULUXSTAR 32W 6 3225990084534074 节能灯 /欧司朗 24W 7 3213100084566170 日光灯具 欧司朗LMY-36W 8 3213100084179573 日光灯具 欧司朗LMY-2*36W 9 3229990083704157 应急日光灯具 欧司朗LMYyj-1*36W 10 3213100084566

卷积编码器原理

卷积码拥有良好的纠错性能,是一种被广泛应用于移动通信的信道编码系统。一个(n,k,m)卷积码编码器由k个输入,具有m阶存储的n个输出的线形时序电路实现。通常, nk是较小的整数,且

,但m比较大。当
时,信息序列不再分成小块,以便可以连续处理。卷积码(n,k,m)表示码率
,编码器级数
,其中s是码约束长度。

反向CDMA信道使用(3,1,8)卷积码,码率

,约束长度为9,由于
,则该卷积编码器包含单个输入端,一个8级移位寄存器,三个模2加法器和一个3向编码器输出的连续转向器。编码器每输入一位信息比特将产生三位编码输出。这些编码符号中,第一个输出符号
是生成序列
编码产生的符号,第二个输出符号
是由生成序列
编码产生的符号,最后一个输出符号
是由生成序列
编码产生的符号,如图1所示。

该电路由一个八位寄存器、三个码生成逻辑、一个时隙发生器和一个四选一复用器构成。mux的输入为

,码选择信号C[1:0]和clk1由时隙发生器产生,输出信号即为整个电路的输出

卷积编码器的初始状态用rst异步清零信号置为0,

时,电路清零。 卷积编码器的初始状态全为0,初始状态之后输出的第一个编码符号由生成序列
编码产生。这里,三个生成序列分别为

即三个生成多项式分别为:

查看详情

OMRON编码器工作原理

OMRON编码器工作原理

由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。 由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。 编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。 分辨率-编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。

查看详情

稀疏自编码器算法原理

假设我们只有一个没有带类别标签的训练样本集合

,其中
。自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输入值,比如
。下图是一个自编码神经网络(图一)的示例。

自编码神经网络尝试学习一个

的函数。换句话说,它尝试逼近一个恒等函数,从而使得输出
接近于输入
。恒等函数虽然看上去不太有学习的意义,但是当我们为自编码神经网络加入某些限制,比如限定隐藏神经元的数量,我们就可以从输入数据中发现一些有趣的结构。举例来说,假设某个自编码神经网络的输入
是一张
图像(共100个像素)的像素灰度值,于是
,其隐藏层
中有50个隐藏神经元。注意,输出也是100维的
。由于只有50个隐藏神经元,我们迫使自编码神经网络去学习输入数据的'''压缩'''表示,也就是说,它必须从50维的隐藏神经元激活度向量
中'''重构'''出100维的像素灰度值输入
。如果网络的输入数据是完全随机的,比如每一个输入
都是一个跟其它特征完全无关的独立同分布高斯随机变量,那么这一压缩表示将会非常难学习。但是如果输入数据中隐含着一些特定的结构,比如某些输入特征是彼此相关的,那么这一算法就可以发现输入数据中的这些相关性。事实上,这一简单的自编码神经网络通常可以学习出一个跟主元分析(PCA)结果非常相似的输入数据的低维表示。

我们刚才的论述是基于隐藏神经元数量较小的假设。但是即使隐藏神经元的数量较大(可能比输入像素的个数还要多),我们仍然通过给自编码神经网络施加一些其他的限制条件来发现输入数据中的结构。具体来说,如果我们给隐藏神经元加入稀疏性限制,那么自编码神经网络即使在隐藏神经元数量较多的情况下仍然可以发现输入数据中一些有趣的结构。

稀疏性可以被简单地解释如下。如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。这里我们假设的神经元的激活函数是sigmoid函数。如果你使用tanh作为激活函数的话,当神经元输出为-1的时候,我们认为神经元是被抑制的。

注意到

表示隐藏神经元
的激活度,但是这一表示方法中并未明确指出哪一个输入
带来了这一激活度。所以我们将使用
来表示在给定输入为
情况下,自编码神经网络隐藏神经元
的激活度。

进一步,让

表示隐藏神经元

的平均活跃度(在训练集上取平均)。我们可以近似的加入一条限制

其中,

是'''稀疏性参数''',通常是一个接近于0的较小的值(比如
)。换句话说,我们想要让隐藏神经元
的平均活跃度接近0.05。为了满足这一条件,隐藏神经元的活跃度必须接近于0。

为了实现这一限制,我们将会在我们的优化目标函数中加入一个额外的惩罚因子,而这一惩罚因子将惩罚那些

有显著不同的情况从而使得隐藏神经元的平均活跃度保持在较小范围内。惩罚因子的具体形式有很多种合理的选择,我们将会选择以下这一种:

这里,

是隐藏层中隐藏神经元的数量,而索引
依次代表隐藏层中的每一个神经元。如果你对相对熵(KL divergence)比较熟悉,这一惩罚因子实际上是基于它的。于是惩罚因子也可以被表示为

其中

是一个以
为均值和一个以
为均值的两个伯努利随机变量之间的相对熵。相对熵是一种标准的用来测量两个分布之间差异的方法。(如果你没有见过相对熵,不用担心,所有你需要知道的内容都会被包含在这份笔记之中。)

这一惩罚因子有如下性质,当

,并且随着
之间的差异增大而单调递增。举例来说,在图二中,我们设定
并且画出了相对熵值
随着
变化的变化(图二)。

我们可以看出,相对熵在

时达到它的最小值0,而当
靠近0或者1的时候,相对熵则变得非常大(其实是趋向于
)。所以,最小化这一惩罚因子具有使得
靠近
的效果。

我们的总体代价函数可以表示为

其中

如之前所定义,而
控制稀疏性惩罚因子的权重。
项则也(间接地)取决于
,因为它是隐藏神经元
的平均激活度,而隐藏层神经元的激活度取决于

为了对相对熵进行导数计算,我们可以使用一个易于实现的技巧,这只需要在你的程序中稍作改动即可。具体来说,前面在后向传播算法中计算第二层(

)更新的时候我们已经计算了

我们将其换成

就可以了。

有一个需要注意的地方就是我们需要知道

来计算这一项更新。所以在计算任何神经元的后向传播之前,你需要对所有的训练样本计算一遍前向传播,从而获取平均激活度。如果你的训练样本可以小到被整个存到内存之中(对于编程作业来说,通常如此),你可以方便地在你所有的样本上计算前向传播并将得到的激活度存入内存并且计算平均激活度 。然后你就可以使用事先计算好的激活度来对所有的训练样本进行后向传播的计算。如果你的数据量太大,无法全部存入内存,你就可以扫过你的训练样本并计算一次前向传播,然后将获得的结果累积起来并计算平均激活度
(当某一个前向传播的结果中的激活度
被用于计算平均激活度
之后就可以将此结果删除)。然后当你完成平均激活度
的计算之后,你需要重新对每一个训练样本做一次前向传播从而可以对其进行后向传播的计算。对于后一种情况,你对每一个训练样本需要计算两次前向传播,所以在计算上的效率会稍低一些。

证明上面算法能达到梯度下降效果的完整推导过程不再本教程的范围之内。不过如果你想要使用经过以上修改的后向传播来实现自编码神经网络,那么你就会对目标函数

做梯度下降。使用梯度验证方法,你可以自己来验证梯度下降算法是否正确。

查看详情

相关推荐

立即注册
免费服务热线: 400-888-9639