① 译码的过程是
译码是编码的逆过程,同时去掉比特流在传播过程中混入的噪声。利用译码表把文字译成一组组数码或用译码表将代表某一项信息的一系列信号译成文字的过程称之为译码。译码器是电子技术中的一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。 数字电路中,译码器(如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条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出
② 译码器的工作原理
工作原理
译码器是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号。有一些译码器设有一个和多个使能控制输入端,又成为片选端,用来控制允许译码或禁止译码。
在图1中,74138是一种3线—8线译码器 ,三个输入端CBA共有8种状态组合(000—111),可译出8个输出信号Y0—Y7。这种译码器设有三个使能输入端,当G2A与G2B均为0,且G1为1时,译码器处于工作状态,输出低电平。当译码器被禁止时,输出高电平。
图2时检测74ls138译码器时间波形的电路,使用的虚拟仪器为数字信号发生器和逻辑分析仪。数字信号发生器在一个周期内按顺序送出两组000—111的方波信号。
图3表明如何将两片3线—8线译码器连接成4线—16线译码器。其中第二片74138的使能端G1和第一片的使能端G2A接成D输入端。当D=0时,第一片74138工作,对0000—0111的输入信号进行译码输出。当D=1时,第二片74138工作,对1000—1111的输入信号进行译码输出。
在图4中 ,7442为二—十进制译码器,具有4个输入端和10个输出端。输入信号采用8421BCD码,二进制数0000—1001与十进制数0—9对应。当输入超过这个范围是无效,10个输出端均为高电平。7442电路没有使能端,因此只要输入在规定范围内,就会有一个输出端为低电平。
图5位BCD—七段显示译码器电路,LED数码管将显示与BCD码对应的十进制数0—9。因为显示译码器电路输出高电平,所以应该采用共阴极LED数码管。
编码与译码的过程刚好相反。通过编码器可对一个有效输入信号生成一组二进制代码。有的编码器设有使能端,用来控制允许编码或禁止编码。
优先编码器的功能是允许同时在几个输入端有输入信号,编码器按输入信号排定的优先顺序,只对同时输入的几个信号中优先权最高的一个进行编码。在图6中,74147为BCD优先编码器,输入和输出都是低电平有效。为了取得有效输出高电平,可在每个输出端连接一个反相器。7417只有1—9各输入端,0输入端不接入电路。这是因为7417约定,当无有效输入时,输出0的BCD代码0000。
图7是一个检测优先编码/译码功能的逻辑电路,对每一个接地的逻辑开关,数码管都会显示一个相应的十进制数。在输入端的8个逻辑开关中,代号为[7]的优先级别最高,代号为[0]的优先级别最低。
③ 什么是卷积编码
卷积码是将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。
卷积码定义:
若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进
卷积码的编码器
行 传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。
编码原理:
卷积码编码器
以二元码为例,编码器如图。输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+ulxl+…。编码器的连接可用多项式表示为g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,称为码 的子生成多项式。它们的系数矢量g(1,1)=(111)和g(1,2)=(101)称作码的子生成元。以子生成多项式为阵元构成的多项式矩阵G(x)=[g(1,1)(x),g(1,2)(x)],称为码的生成多项式矩阵。
④ 卷积码的原理
DMT和卷积编码调制在DSL中的应用
钟晓建 潘贵敦 马亲民 梁小宇
�
(华中师范大学物理系武汉430079)
【摘要】讨论了离散多音频调制和网格编码相结合的调制方式在DSL中的应用,离散多音频调制DMT〔1〕是一种多载波调制技术,将传输数据根据各子带信噪比按位分配到子带上,使每个子带码元宽度大于多径延迟。如果把调制和纠错编码结合起来,则可使误码率大大降低,是一种带宽利用率较高的调制方式。
�关键词:ADSL离散多音频网格编码〔2〕欧氏距离〔3〕离散傅立叶变换/逆变换
1引 言
� 随着Internet技术的不断发展,人们对传输数据的速度、质量要求越来越高,在当前为了有效地利用现有的资源——电话线,提出了DSL〔1〕(数字用户线)的概念,使用话音频率以上的频带(4 k~1.1 MHz)来调制高速数字信号,按照Δf=4.3125 kHz分割成一个个的子带,由于Δf刚好是音频的宽度,故命名为离散多音频,DMT调制是基于离散傅立叶变换对并行数据进行调制解调的。随着超大规模集成电路(VL SI)和数字信号处理(DSP)技术的不断进步,用FFT实现实时DMT调制已付诸使用。但以往的调制解调系统,纠错编码与调制是各自独立设计并实现的,译码和解调也是如此,这样解调器在接收信号是对信号作独立硬判决,硬判决结果再送给译码器译码,这种硬判决会导致接收端信息的不可恢复的丢失,解决这个问题的方法是在接收端采用软判决译码。DSL技术中就是将DMT和网格编码综合设计,在白噪声环境下比传统技术的误码性能有了很大的提高。这种最佳的编码调制系统是按照编码序列的欧氏距离为设计的量度,这就要求将编码器和调制器当作一个统一的整体进行综合设计,使得编码器和调制器级联后产生的编码信号序列具有最大的欧氏自由距离。从信号空间的角度看,这种最佳编码调制的设计实际上是一种对信号空间的最佳分割。经过实验分析,DMT和卷积编码结合后的编码增益比传统编码的编码增益增加了8 dB。�
2xDSL接入设备体系结构
� 在ADSL的应用当中,其硬件体系结构大致是由线路接口、接收滤波、线路驱动、模拟前端以及DMT收发器这几个模块组成。其中DMT收发器在发端对数据进行复用、循环冗余校验、前向纠错、子带排序、卷积编码、星座映射以及IFFT变换,送到模拟前端变换成模拟信号发送出去,而在收端是将模拟信号经过FFT变换、解映射、维特比译码等一系列反变换,提交给上层。根据T1.413〔4〕标准,采用韦氏16状态4维网格码作为内码,采用Reed�Solomon编码作为前向纠错码,另外由于网格编码对成块的噪声抵抗能力较差,因此在进行网格编码之前将数据进行交织使噪声分散。ADSL的DMT收发器框图大致如图1所示。
3DMT与卷积编码调制原理
� 在ADSL的发送端,将数据分配到不同的子带上,这种分配可以根据各个子带的信噪比来确定分配的bit数。而ADSL系统为各个子带建立并维持了一个比特数和增益大小的表,是在ATU-R一端计算出来并返回给局端。为保证后一子带所带的位数不小于前一子带的位数,先对子带进行排序,即子带按信噪比大小从小到大进行排序。为了使编码获得的码字有较大的欧氏自由距离,采用了四维TCM网格编码,这样位抽取是基于一对子带的,因为一个子带在空间上是二维的,一对相互正交的子带在空间上则是四维的 ,相应的在解码的时候也是一对一对的作维特比译码。欧氏自由距离是在四维空间上计算出来的,这样四维的陪集可以由两个二维的陪集的联合构成,即这样四维TCM网格码的欧氏自由距离可以由两个二维星座图的距离的平方和算出, 在译码系统中,最可能发生错误的情况是在具有最小的平方欧氏距离的两个序列�{an}和{bn}�之间,(前者是发送序列,后者是译码序列),这一最小平方欧氏距离常又称为平方自由距离,记做:
��编码的目的是为了使这个平方自由距离最大。
�网格编码调制的通过一种特殊的信号映射可变成卷积码的形式。这种映射的原理是将调制信号集分
割成子集,是的子集内的信号间具有更大的空间距离,用编码效率为k/(k 1)的卷积码选择子集,用其余位选择子集中的点。在DSL数字用户环路中用16状态的4维网格编码的编码器结构如图2所示。
其中的卷积编码部分如图3所示。
图2中每两个子带抽取的位数z′=x y-1(x为第一个子带所带的位数,y为第二个子带所带的位数)。{uz′-1,uz′-2,…u1}为原码,输出的是经过卷积以及异或以后的编码,为两个二进制码字,即{vz-y�,vz′-y-1,…v1,v0}和{wy-1,wy-2,…w1,w0},这两个二进制码字将映射成两个星座点。编码算法使星座点的两个最低位决定星座点的二维陪集{v1,v0}和{w1,w0}实际上是这个上标的二进制表示。对于一帧中最后两个码字,为了使卷积编码状态{s3,s2,s1,s0}回到零状态。让编码前的码字的{u1,u2}={0,0},则最后两对子带抽取的位数z′=x y-3。
�
这样编码得出的信号有两个基本特征:
� (1)星座图中所用的信号点数大于未编码同种调制所需的点数(扩大了一倍),这些附加的信号点为纠错编码提供冗余度。
�(2)采用卷积码在相继的信号点之间引入某种依赖性,因而只有某些信号点序列才是允许出现的,这些允许的信号序列可以模型化为网络结构。可用网格图来表述。
� 在接收端对接收序列进行维特比译码〔4〕,即最大似然译码,可以用网格图求最相似的路径来描述这种算法,它依赖于有限状态的马尔可夫系统的描述,包括状态变迁以及状态变迁的输出码字。在四维TCM�编码的基础上,解码时要对一对一对的数据进行解码,计算码距时也是以四维空间的欧氏距离为标准,取最相似的一条路径。对于长度为L m的网格路径(L为信息序列的长度,m表示后缀为m个0向量)接收序列为所有的网格路径在零时刻发散于同一个初始状态、收敛于第j时刻(j=L m)的同一个最后一状态。在理想状况下,对于一个存储量无限度的通道,可以将所有可能的路径都记录下来,然后选择其中对数似然函数值最大的作为译码结果。
对数似然函数是将接收序列判定为某条路径的序列的条件概率的对数
��这里的对数似然函数取最大值,实际上是接收的码序列与估计路径的码之间的距离取最小值,是基于欧氏空间距离来计算的。在这里维特比译码算法的核心是回退的观点,采用动态规划法存储数据,如果对每条可能的路径进行存储的话,随着译码深度的增加,存储量将成4的指数增长,这在现实条件下是不可能的。因为每个节点都有四个分支(二输入十六状态的网格图),因此我们对于j时刻到达的某一状态
δi(i=1,2…,S-1),进行加—比—选操作,即将所有可能前一时刻的状态的最大似然函数∧j-1(δp)与当前接收的序列和前一状态到当前状态的估计码的似然度相加,选择其中最大的作为j时刻i状
态的最大似然函数值,并在幸存序列j(δi)在原来的基础上加上这条最优的路径u〔δp→δi〕。这样给出的算法可以表述为:
� 变量/存储:
� S—状态数(DSL为16);
� T—每一状态的分支数(4);
� j—时刻编号,即第j时刻
�对于用卷积编码完毕的序列可以直接送到数字信号处理器中作IDFT〔5〕变换成串行数据了。每个子带i的二进制码字可以映射成星座图上的复数点(Zi=ai jbi),为了使输出信号为实信号,频域上的子带i的复数值(i≥N′,N′=N/2)为
��Zi=conj�(ZN-i),(i≥N′,N′=N/2)
即取共轭复数,这样经过离散傅立叶逆变换,得到时域信号:
��此信号经过并/串变换,再通过A/D变换,变成模拟信号送到线路上进行传输。
4仿真结果
� 我们在应用Itex公司的ADSL解决方案中,用该公司提供的局端仿真工具IADT对ADSL链路性能进
行仿真,得到ADSL每个子带(从0~255)的信噪比,再根据这个预测值来确定每个子带的位数和增益值。
从而建立一个与子带一一对应的表,其线路预测的信噪比曲线如图4所示。
我们可以看到,测得的线路上行速率为544
kbps,网络速率(去掉ADSL链路开销)为448 kbps,下行链路速率为8 160 kbps,网络速率为7 616 kbps。
5总 结
� 本文描述了在带宽受限的信道采用DMT和卷积编码相结合的技术,将调制与纠错编码结为一体,高效利用了现有的带宽。随着ADSL技术的逐渐成熟,该编码技术也正在应用于其它领域,如无线通信,针对其信道的衰减特性可以获得较高的带宽利用率。在具体硬件实现上,由于超大规模集成电路的发展,硬件已不再是信号处理的瓶颈了,如以上分析的维特比译码,其对硬件的需求是随着N的增大而迅速增加,需要上十万的门电路实现,现已有单片的维特比译码器,或是在特殊的应用中集成在一块数字芯片中,同时完成RS编码、交织、FFT变换等等。
�参考文献
�
1Asymmetrical Digital Subscriber Lines(ADSL)�ITU-T�Recommendation G.992,Geneva,June,1999
2曹志刚,钱亚生.现代通信原理.北京:清华大学出版社
3Stephen G Wilson.digital Molation and Coding,○C1996 byPrentice�Hall,Inc
4ANSI T1.413�1998,COMMITTEE T1—Telecommunications Working Group T1E1.4 T1E1.4/98�007R5,1998
5John G Proakis.Digital Communications,Third edition,McGraw�Hill 1998
⑤ 采用卷积编码器当输入信息位10110时输出编码位多少
参考资料:http://hi..com/wuruide/blog/item/33d28bbf1b34940818d81f26.html
在一个二进制分组码(n,k)当中,包含k个信息位,码组长度为n,每个码组的(n-k)个校验位仅与本码组的k个信息位有关,而与其它码组无关。为了达到一定的纠错能力和编码效率(=k/n),分组码的码组长度n通常都比较大。编译码时必须把整个信息码组存储起来,由此产生的延时随着n的增加而线性增加。
为了减少这个延迟,人们提出了各种解决方案,其中卷积码就是一种较好的信道编码方式。这种编码方式同样是把k个信息比特编成n个比特,但k和n通常很小,特别适宜于以串行形式传输信息,减小了编码延时。
与分组码不同,卷积码中编码后的n个码元不仅与当前段的k个信息有关,而且也与前面(N-1)段的信息有关,编码过程中相互关联的码元为nN个。因此,这N时间内的码元数目nN通常被称为这种码的约束长度。卷积码的纠错能力随着N的增加而增大,在编码器复杂程度相同的情况下,卷段积码的性能优于分组码。另一点不同的是:分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段,把纠错性能与码的结构十分有规律地联系起来,目前大都采用计算机来搜索好码。
下面通过一个例子来简要说明卷积码的编码工作原理。正如前面已经指出的那样,卷积码编码器在一段时间内输出的n位码,不仅与本段时间内的k位信息位有关,而且还与前面m段规定时间内的信息位有关,这里的m=N-1通常用(n,k,m)表示卷积码(注意:有些文献中也用(n,k,N)来表示卷积码)。图8-8就是一个卷积码的编码器,该卷积码的n = 2,k = 1,m = 2,因此,它的约束长度nN = n×(m+1) = 2×3 = 6。
(2,1,2)卷集码编码器
在图8-8中,与为移位寄存器,它们的起始状态均为零。、与、、之间的关系如下:
(8-41)
假如输入的信息为D = [11010],为了使信息D全部通过移位寄存器,还必须在信息位后面加3个零。表8-9列出了对信息D进行卷积编码时的状态。
表8-9 信息D进行卷积编码时的状态 输入信息D
1
1
0
1
0
0
0
0
b3b2
0 0
0 1
1 1
1 0
0 1
1 0
0 0
0 0
输出C1C2
1 1
0 1
0 1
0 0
1 0
1 1
0 0
0 0
描述卷积码的方法有两类,也就是图解表示和解析表示。解析表示较为抽象难懂,而用图解表示法来描述卷积码简单明了。常用的图解描述法包括树状图、网格图和状态图等。基于篇幅原因这里就不详细介绍了。
卷积码的译码方法可分为代数译码和概率译码两大类。代数译码方法完全基于它的代数结构,也就是利用生成矩阵和监督矩阵来译码,在代数译码中最主要的方法就是大数逻辑译码。概率译码比较常用的有两种,一种叫序列译码,另一种叫维特比译码法。虽然代数译码所要求的设备简单,运算量小,但其译码性能(误码)要比概率译码方法差许多。因此,目前在数字通信的前向纠错中广泛使用的是概率译码方法。
⑥ 请详细讲解卷积码的原理并举出例子,例如输入是什么输出是什么,为什么是这样的 基于vhdl语言的卷积码编解码
接地RMB求助,VHDL的卷积码译码,有意请加Q599210285
⑦ 卷积码的编码原理
卷积码编码器
以二元码为例,编码器如图。输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+ulxl+…。编码器的连接可用多项式表示为g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,称为码 的子生成多项式。它们的系数矢量g(1,1)=(111)和g(1,2)=(101)称作码的子生成元。以子生成多项式为阵元构成的多项式矩阵G(x)=[g(1,1)(x),g(1,2)(x)],称为码的生成多项式矩阵。
⑧ 卷积码的表示方法
描述卷积码编码器过程的方法有很多,如矩阵法、多项式、码树和网格图等,这里我们主要介绍和卷积码编码器结构密切相关的多项式法,以及与卷积码译码密切相关的网格图法。
结构图多项式法就是由卷积码的生成多项式直接得出其编码器的结构图。如前面例子中的(2,1,2)卷积码的生成多项式矩阵为:G(D)=[1 ,1 ]
其中,D是延迟算子,生成多项式的第一项为1 D ,表示输出编码的第一个码元等于输入码元x(n)与前两个时刻输入的码元x(n-1)、x(n-2)的模2和,同理第二项类似。 将编码器寄存器中的内容组合(x(n-1)、x(n-2))定义为编码器状态。如仍以前面所举的例子(2,1,2)为例,则该编码器的状态有四种:00,10,01和11,下面分别用a,b,c,d来代替。编码器在每一个时钟沿打入一个输入信息x(n),因此图示寄存器组合内容就变为(x(n),x(n-1))即状态发生了转移,并同时输出G0(n)、G1(n)。由此我们可以将图所示编码过程用右图所示的状态图表示。
编码器
由图所示,随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图 很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入信息依次类推,按照状态转移路径a->b->d->c->b->c->a输出其对应的编码结果“110101001011”。
网格图
状态图可以完整的描述编码器的工作过程,但是其只能显示状态转移的过程而不能显示状态转移发生的时刻,由此引出用来表示卷积码的另一种常用方法——网格图。网格图就是时 间与对应状态的转移图(如图),在网格图中每一个点表示该时刻的状态,状态之间的连线表示状态转移。通过观察网格图可以发现在网格图中输入信息x(n)并没有标出,但如观察到转移后的状态表示(x(n),x(n-1))就可以发现输入信息已经隐含在转移后的状态中。在图中还可以发现两个网格图不同主要集中在转移后状态位置不同。重新排序结构(即所谓蝶型结构)是为了优化运算而设计的,因为其中蝶型与蝶型之间是相互独立的。