编译码过程
A. 简单描述turbo译码过程
Turbo码主要的创新点在于利用似然比来调解两个译码器输出的差异。每个译码器都产生一>组对应m-输入比特的假设(似然比),然后比较两组假设结果,如果存在差异,则译码器交换假设的结果。每个译码器都可以利用对方的假设来估计新的假设,然后它们对新的假设结果进行比较,重复上述过程直至两个译码器得到同样的假设为止。
这个过程与小强填字或者数独类似。可以这么理解,两个不同的人(译码器)拿到同一个小强填字,但是他们采用不同的方式来解决填字的问题,一个只看横/竖方向,另一个只看斜>线方向。当然,他们独立做出来的结果不能保证完全正确,于是他们在填字的同时记下他们对于该结论的确定度,比如某些字他们敢保证绝不会出错,某些字吃不准,某些是胡乱猜的。。。然后他们对比各自的结果及相应的确定度,通过参考对方的结果,双方都可以根据差异得到一些启示,然后他们根据这些启示再次尝试填字,重复以上过程直至两人的结果完全相符(但还是不能确保和正确答案一样,只能保证差不离)。是概率译码算法,也就是最大后验概率算法(MAP)。但在Turbo码出现之前,信道编码使用的概率译码算法是最大似然算法(ML)。ML算法是MAP算法的简化,即假设信源符号等概率出现,因此是次优的译码算法。Turbo码的译码算法采用了MAP算法,在译码的结构上又做了改进,再次引入反馈的概念,取得了性能和复杂度之间的折衷。同时,Turbo 码的译码采用的是迭代译码,这与经典的代数译码是完全不同的。
Turbo 码的译码算法是最早在BCJR 算法的基础上改进的,我们称以MAP算法,后来又形成Log-MAP算法、Max-Log-MAP以及软输入软输出(SOVA)算法。Turbo 码的译码结构图
⒈Turbo 码的译码结构如图所示. Turbo 译码器有以下的特点:
1) 串行级联
2) 迭代译码
3) 在迭代译码过程中交换的是外部信息
⒉ 概率译码译码原理及结构
译码时首先对接收信息进行处理,两个成员译码器之间外部信息的传递就形成了一个循环迭代的结构。由于外部信息的作用,一定信噪比下的误比特率将随着循环次数的增加而降低。但同时外部信息与接受序列间的相关性也随着译码次数的增加而逐渐增加,外部信息所提供的纠错能力也随之减弱,在一定的循环次数之后,译码性能将不再提高。
B. pcm编译码输入与输出幅度是多少
入信号的频率为 1KHz,幅度为 2V(峰峰值),在测试点(6)可观察到 PCM 编码输出的码流.(需 要指出的是,由于我们只在一个时隙上工作,
1、实验目的及要求
①理解PCM编译码原理及PCM编译码性能;
②熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟间的关系;
③熟悉语音数字化技术的主要指标及测量方法;
④PCM编码原理验证,理解带限滤波器作用、A律编码规则;
⑤PCM编译码性能测量,观测编译码电路频响、时延、失真、增益等。
2、实验器材、设备及软件
PCM编码软件,集成芯片TP3057,双踪示波器,微处理器,液晶屏。
二、实验结果
1、定性描述PCM编译码的特性、编码规则,并填下表。
量化后的信号是取值离散的数字信号,下一步是将这个数字信号编码。通常把从模拟信
号抽样、量化,编码变换成为二进制符号的基本过程,称为脉冲编码调制。
完成PCM编码的方式有多种,最常用的是采用集成电路完成PCM编译码,如TP3057、TP3067等,集成电路的优点是电路简单,只需几个外围元件和三种时钟即可实现,不足是无法展示编码的中间过程,这种方法比较适合实际通信系统。另一种PCM编码方式是用软件来实现,这种方法能分离出PCM编码的中间过程,如:带限、抽样、量化、编码的完整过程。
在 13 折线法中,无论输入信号是正是负,均用 8 位折叠二进制码来表示输入信号的抽
样量化值。其中,用第一位表示量化值的极性,其余七位(第二位至第八位)则表示抽样量
化值的老册绝对大小。具体的做法是:用第二至第四位表示段落码,它的 8 种可能状态来分别代
表 8 个段落的起点电平。其它四位表示段内码,它的 16 种可能状态来分别代表每一段落的
16 个均匀划分的量化级。这样处理的结果,使 8 个段落被划分成 27=128 个量化级。段落
码和 8 个段落之间的关系如表 2-2 所示,段内码与 16 个量化级之间的关系见表 2-3。上述
编码方法是把压缩、量化和编码嫌汪合为一体的方法
在A律13折线编码中,正负方向共16个段落,在每一个段落内有16个均匀分布的侍者宏量化电平,因此总的量化电平数L=256。编码位数N=8,每个样值用8比特代码C1~C8来表示,分为三部分。第一位C1为极性码,用1和0分别表示信号的正、负极性。第二到第四位码C2C3C4为段落码,表示信号绝对值处于那个段落,3位码可表示8个段落,代表了8个段落的起始电平值。
上述编码方法是把非线性压缩、均匀量化、编码结合为一体的方法。在上述方法中,虽然各段内的16个量化级是均匀的,但因段落长度不等,故不同段落间的量化间隔是不同的。当输入信号小时,段落小,量化级间隔小;当输入信号大时,段落大,量化级间隔大。第一、二段最短,归一化长度为1/128,再将它等分16段,每一小段长度为1/2048,这就是最小的量化级间隔Δ。根据13折线的定义,以最小的量化级间隔Δ为最小计量单位,可以计算出13折线A律每个量化段的电平范围、起始电平I、段内码对应电平、各段落内量化间隔Δi。
如量化值:-1600量化值为负值,故极性码C1为:0;电平范围位于1024~2048,段落码C2C3C4为:111;量化间隔为64,段落起始电平为1024,1600-1024=576;576/64=9;段内码C5C6C7C8为:1001。那么量化值-1600对应的PCM编码值为:01111001
C. 哈夫曼编码的译码过程的大致思路是什么(不要代码)
哈夫曼树和字符编码对应你都弄完了,得到是如a :01 b :101对应关系,通过这个关系直接将像“asdsdfdfg”直接转换为“01110101”这样二进制编码。译码的时候,读取二进制编码,先读取一位,然后在关系表中查找该二进制数对应的字符,如果没有找到,继续读取二位,然后继续在关系表中查找该二位二进制对应的字符。如此循环,知道找到字符位置,然后将二进制数替换为相应的字符,知道所有的数都替换完为止。
D. 译码的过程是
译码是编码的逆过程,同时去掉比特流在传播过程中混入的噪声。利用译码表把文字译成一组组数码或用译码表将代表某一项信息的一系列信号译成文字的过程称之为译码。译码器是电子技术中的一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。 数字电路中,译码器(如n线-2n线BCD译码器)可以担任多输入多输出逻辑门的角色,能将已编码的输入转换成已编码的输出,这里输入和输出的编码是不同的。输入使能信号必须接在译码器上使其正常工作,否则输出将会是一个无效的码字。译码在多路复用、七段数码管和内存地址译码等应用中是必要的。
假设编码序列为( Λ) 1 2,m m m C = c c ,经过信道传输,接收端收到的信号为R (模拟信号或数字信号,取决于对信道的定义),那么接收端会顺理成章地在所有可能的码序列中寻找条件概率P(C R) m 最大的一个,认为它是最可能的发送序列。即:
C~ Arg{MAX P(C R)} m C mm=这种判决准则称为最大后验概率准则 (MAP)。
算法
viterbi译码算法是一种卷积码的解码算法。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。
算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出
E. 计算机编译就是指编码和译码两个过程吗
在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成"1"或"0",这样就可打开或关闭某个控制门,这就是直接控制法.
在6.3节中所讲的就是这种方法.但在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法.
6.4.1 微指令的编译法(编码译码方法)(2)
2.字段直接编译法
在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为"0").所谓微周期,指的是一条微指令所需的执行时间.如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的.
例如,向主存储器发出的读命令和写命令是互斥的;又如在ALU部件中,送往ALU两个输入端的数据来源往往不是唯一的,而每个输入端在任一微周期中只能输入一个数据,因此控制该输人门的微命令是互斥的.
选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法.
6.4.1 微指令的编译法(编码译码方法)(3)
例如,将7个互斥的微命令编成一组,用三位二进制码分别表示每个微命令,那么在微指令中,该字段就从7位减成3位,缩短了微指令长度.而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令.
6.4.1 微指令的编译法(编码译码方法)(4)
字段长度与所能表示的微命令数的关系如下:
字段长度 微命令数
2位 2~3
3位 4~7
4位 8~15
一般每个字段要留出一个代码,表示本段不发出任何微命令,因此当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令.
6.4.1 微指令的编译法(编码译码方法)(5)
3.字段间接编译法
字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.
如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法.
本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段.
6.4.1 微指令的编译法(编码译码方法)(6)
字段A(3位)的微命令还受字段B控制,当字段B发出b1微命令时,字段A发出a1,1,a1,2,…,a1,7中的一个微命令;而当字段B发出b2微命令时,字段A发出a2,1,a2,2,…,a2,7中的一个微命令,仅当A为000时例外,此时什么控制命令都不产生.
6.4.1 微指令的编译法(编码译码方法)(7)
4.常数源字段E
在微指令中,一般设有一个常数源字段E就如指令中的直接操作数一样.E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段.
该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等.
6.4.2 微程序流的控制 (1)
当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址称现行微地址,现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址.
所谓微程序流的控制是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址.
与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程和微子程序等,这将影响下址的形成.
下面介绍几种常见的产生后继微指令地址的方法.
6.4.2 微程序流的控制 (2)
(1)以增量方式产生后继微地址.
在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.
机器加电后执行的第一条微指令地址(微程序入口)来自专门的硬件电路,控制实现取令操作,然后由指令操作码产生后继微地址.接下去,若顺序执行微指令,则将现行微地址主微程序计数器( PC中)+1产生后继微地址;若遇到转移类微指令,则由 PC与形成转移微地址的逻辑电路组合成后继微地址.
6.4.2 微程序流的控制 (3)
6.4.2 微程序流的控制 (4)
(2)增量与下址字段结合产生后继微地址
将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送 PC,否则顺序执行下一条微指令( PC+1).
执行微程序条件转移时,决定转移与否的硬件条件有好几种.例如,"运算结果为零","溢出","已完成指定的循环次数"等.
我们假设有八种转移情况,定义了八个微命令(BCF取3位),在图中设置计数器CT用来控制循环次数.如在执行乘(或除)法指令时,经常采用循环执行"加,移位"(或减,移位)的方法,指令开始执行时,在CT中置循环次数)每执行一次循环,计数器减1,当计数器为零时结束循环.又考虑到执行微子程序时,要保留返回微地址,因此图中设置了一个返回寄存器RR.
F. 算术编码的编码方法
若有一个a、b、c、d四种符号的单符号信源,待编序列为S=abda,已知:
符号a b c d
符号概率Pi 0.100 0.010 0.001 0.001
(以二进位小数表示)
累积概率∑pi 0.000 0.100 0.110 0.111
按照一定精度的数值作为序列的算术编码,实质上是分割单位区间的过程。实现它,必须完成两个递推过程:一个代表码字C(·),另一个代表区间宽度为A(·)。若记SXi表示S的增长(即S后增加一个符号Xi)序列。则有图1 。
若记λ为空序列,有A(λ)=1,C(λ)=0,则有如图2 。
并依次求得:C(abd)= 010111, A(abd)= 0.00001
C(abda)= 0.010111 ,A(abda)= 0.000001 该编码过程可以用图3所示的单位区间划分的过程来描述。
译码为逆递推过程,可以通过对编码后的数值进行比较来实现。即判断C(S)落入哪一个区间,最后得出一个相应的符号序列S'=Ma=S。
实际的编译码过程比较复杂,但原理相同,算术编码的理论性能也可使平均符号代码长度接近符号熵,而且对二元信源的编码实现比较简单,故受重视。中国将它应用于报纸传真的压缩设备中,获得了良好的效果。
G. 简易编译码电路怎么实现编码和译码的
编码和译码电路需要数字逻辑运算,常见的逻辑运算是:与门、或门、非门,只要你设计好输入和输出,译码和编码就可以用逻辑运算实现,