卷积码译码算法
❶ 常用的差错控制编码都有哪些
常用的差错控制编码方法有:奇偶校验、恒比码、矩阵码、循环冗余校验码、卷积码、Turbo码。
1、奇偶校验
奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称蚂森为偶校验。
采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。
2、恒比码
恒比码一般指定比码 。
定比码是指一组码中1和0的码元个数成一定比例的一种编码。换言之,它是选用比特序列中1和0码元之比例为定值,所以又称为恒比码。定比码是一种常用的检错码。
3、矩阵码
矩阵码属二维条码的一种,是将图文和数据编码后,转换成没兆一个二维排列的多格黑白小方块图形。
矩阵式二维条形码是以矩阵的形式组成,在矩阵相应元素位置上,用点(Dot)的出现表示二进制的 “1”,不出现表示二进制的 “0”,点的排列组合确定了矩阵码所代表的意义。其中点可以是方点、圆点或其它形状的点。矩阵码是建立在电脑图像处理技术、组合编码原理等基础上的图形符号自动辨识的码制,已较不适合用“条形码”称之。
4、循环冗余校验码
循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。
5、卷积码
卷积码将k个信息比特编成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。
6、Turbo码
Turbo码是Claude.Berrou等人在1993年首次提出的一种级联码。Turbo码有一重要特点是其译码较为复杂,比常规的卷积码要复杂的多,这种复杂不仅在于其译码要采用迭代的过程,而且采用的算法本身也比较复杂。这些算法的关键是不但要能够对每比特进行译码,而且还要伴随着译码给出每比特译出的可靠性信息,有了这些信息,迭代才能进行下去。
(1)卷积码译码算法扩展阅读:
差错控制编码是指在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。
为了在已知信噪比的情况下达到一定的误比特率指标,首先应合理设计基带信号,选择调制、解调方式,采用频域均衡和时域均衡,使误比特率尽可能降低,但若误比特率仍不能满足要求,则枯物租必须采用信道编码,即差错控制编码。
差错控制编码的基本做法是:在发送端被传输的信息序列上附加一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联(约束)。接收端按照既定的规则检验信息码元与监督码元之间的关系,一旦传输过程中发生差错,则信息码元与监督码元之间的关系将受到破坏,从而可以发现错误,乃至纠正错误。研究各种编码和译码方法正式差错控制编码所要解决的问题。
❷ 信道编码技术及电子系统工程应用的探讨论文
信道编码技术及电子系统工程应用的探讨论文
根据信道编码理论及编码、译码方法和技术的发展,结合工程实际从理论到实践进行了简要的阐述。
随着信息及信号传输技术的发展,应用电子领域也随之扩大并得到发展。通过对信源编码、信道编码、编码的方法,以及对压缩后的信息进行纠错编码,以抗击信道、网络及传输过程的误码或数据丢失,即信道编码问题的系统认识与理解对实际工程应用具有重要的意义。从电子系统工程的应用角度,对相关知识的理解与应用体会更为深刻。在此,就实际应用中贯穿其中的相关知识及带来的思考与启发扼要介绍。
一、信道编码理论及编、译码问题
衡量任何一个信号通信系统性能优劣的基本因素是有效性和可靠性,有效性是信道传输信息的速度快慢,可靠性是信道传输信息的准确程度。在数字通信系统中,信源编码是为了提高有效性,信道编码是为了提高可靠性,而在一个通信系统中,有效性和可靠性是互相矛盾的,也是可以互换的。我们可以用降低有效性的办法提高可靠性,也可以用用降低可靠性的办法提高有效性。而纠错编码,即信道编码问题是重点。
(一)编、译码问题
信道编码是以香农第二定理和香农第三定理为理论支持。在错误控制编码方面,主要是纠错线性分组码与非分组的卷积码。对于线性分组码,采用增加冗余码作为监督码,这样编出的码具有一定的检错和纠错能力。在译码方面,根据最大似然法译码,判断码的汉明距离,找到汉明距离最小的码,那就是在发送端传输过来的码。编码是一个比较抽象的概念,采用矩阵的描述方式表示编码,将输入的信息序列与生成矩阵相乘,那么就可以得到编码后的符号。在译码方面,通过奇偶校验矩阵就可以检测译码是否正确。
(二)关于卷积码
卷积码是编码不一样的领域,因为这种码在判决时用到过去的信息,也就是说,它是需要记忆的。这也就是卷积码得名的由来。卷积码的编码器由一个移位寄存器和相关逻辑电路组成,对每一个进入的信息帧,编码器都产生一个码字帧。当然,还可以画编码器的状态图,比较直观表示编码器根据输入情况而变化。根据状态图可画出网格图;由网格图很容易地知道卷积码的距离,这是卷积码译码的一个依据。卷积码用一个生成多项式矩阵表示,在编码方面极为方便,编码操作可以简单地描述为信息量矩阵与生成矩阵的乘积。而更加严谨、方便地表达,则需要生成函数。通过修改状态图,很容易得到生成函数。对生成函数的级数展开,可以很直观地得到汉明距离和输入路径的信息,最后还可以知道给定汉明距离全零路径的数量。
(三)Turbo码和LDPC码
Turbo码与LDPC码是两种性能接近香农极限的信道编码。Turbo码在低信噪比的情况下,性能比其他编码要好。Turbo码的优良性能在非实时数据通信方面被广泛采用。Turbo码是分组码和卷积码的“准”混合物。Turbo码有并行级联卷积码、串行级联卷积码和混杂级联卷积码三种不同的排列。因为有交织器的存在,所以编码器的纠错能力很好。LDPC码是一类可以用非常稀疏的校验矩阵或二分图定义的线性分组码,其特点是:译码算法具有线性复杂度可采用并行迭代方式,具有译码自校验特性,在高信噪比条件下能有效降低译码复杂度,提高误比特率性能;可以满足高性能信号通信要求。LDPC码以最低的复杂度提供了最好的性能。这意味着在同等性能情况下, LDPC码的复杂度只有Turbo码的1/4。与Turbo码相比,LDPC码尤其是非规则LDPC码具有非常出色的性能,优于迄今为止已知的其它编码方式。LDPC码与其它编码相比还有一些独特的优点:译码可以完全并行,因此可以获得更高的译码速度;译码器的复杂度大幅降低;译码是可验证的;非规则LDPC码具有天然的不等错误保护能力。
二、从信道编码定理看编、译码方法的发展
(一)信道编、译码方法的多样性
信道编码的'核心是“纠错”;信道编、译码的最终目的是实现信道与信号通信系统在可靠性指标下的优化。其方法是纠错编码,即抗干扰编码。奇偶校验码是一种检错分组码;由此原理派生出改进的:水平奇偶校验码、垂直奇偶校验码、群计数码等。定比码是一种只能发现错误的简单检错码,且需通过反向信道系统方能实现抗干扰。而重复码是前向纠错码,也是一种最简单的纠错码,实际应用较广泛。而由汉明码引出的线性分组码是一种具有线性代数关系的编码。在实际应用中,为得到希望的码长和信息位长度,将信息位缩减而得到原码的缩短码。在汉明码的基础上增加一位监督元,则产生增余汉明码或扩展汉明码,使纠错能力得到提高。而由完备码产生的完备译码、非完备译码,则反映了分组码的纠错能力是全部用于纠错,还是部分纠错检错。循环码是线性分组码中重要的一类码,从应用角度其编码与译码电路较为简单,易于实现;且编、译码方法方便、成熟。
(二)信道编、译码方法的发展过程与启示
不难看出,信道编码的方法是丰富多彩的。也是渐进发展,逐步完善的过程。由此可见,理论指导是发展的方向。对信道编码的理论支撑及方向的指引,使得信道编码方法沿着丰富而日臻完善、接近而趋于极限的方向发展。从这一发展过程可以看出,任何一种新的或衍生的方法,都是有局限性的。但这种局限和不完善性,并不会阻碍新的方法的产生和发展。旧的矛盾解决的同时,新的矛盾又会出现。正如,纠错检错能力的提高,对信息进行错误保护,以抵御信道或网络等信息传输过程的干扰所产生的误码或数据丢失的同时,也将使编码及信息传输效率降低。由于信道编码增加了数据量,其结果只能是以降低传送有用信息码率为代价。因此,不同的编码方式,其纠、检错的能力不同,编码效率(信息传输效率)也有所不同。
三、从工程应用实例看理论支撑点
(一)智能住宅小区建设中信道编码技术的应用
在工程中首次接触的,应用于数字电视地面广播(DTTB)的编码调制方案中,涉及到:以多级分组乘积码代替传统的串行级联编码结构,提高了频谱效率;同时采用一种多分辨率星座图,可在一个DTTB信道中提供3种级别的服务.在接收端采用基于MAX—LOG—MAP准则的迭代Turbo译码算法以获得可靠接收。仿真结果表明,在视觉门限BER=3×10-6处,高优先级码流的比特信噪比约为7dB,适用于高可靠性的服务.中优先级和低优先级码流可支持室外固定接收。由此,也加深了对并行级联卷积码的反馈迭代结构的理解。
(二)网络编码与网络安全
在网络工程中,接触到多址信道中联合网络编码和信道编码的设计方案。该方案利用LDPC码和网络编码的线性特性以及软输入软输出模块设计,不仅减少了编译码的复杂度,而且提高了编译码效率。同时,了解了网络——信道编码分离定理,以及该定理成立的条件,即当网络中的信道是确定型广播信道时,分离定理不成立。而信道安全编码与网络安全编码同样重要,又有所区别。信道编码问题,其核心是对传送的信息进行错误保护,以抗击信道或网络等信息传输媒介所带来的误码或数据丢失。而网络中的通信安全是网络编码研究的重要课题之一,网络安全编码更侧重于网络使用者信息及使用的安全层面。网络编码技术的发展可以大幅度提高网络的吞吐量。
四、结束语
专业技术的专长与拓展并存,这是专业技术发展的必然趋势。身处信息时代,信息科学是研究信息的获取、传输以及应用的科学,是信息资源与技术开发及其推广应用的理论基础,是信息技术及信息产业的核心。通信工程、电子信息工程、计算机科学、计算机应用等众多应用技术与信息科学、信息技术及信息产业息息相关。信道编码从理论上要解决理想编码器、译码器的存在性问题,即解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题;同时构造性的编码方法以及这些方法能达到的性能界限。筒言之,通过信道编码器和译码器来实现的用于提高信道可靠性的理论和方法。
;❸ 什么是软判决
很多初入通信行业的开发人员,都会接触到过信道编解码,信道编解码中常常出现软判决与硬判决。
那么什么是软判决,什么是硬判决呢?软判决就是Demolator将解调后的模拟信号直接接入到Decoder来实现解码,硬判决就是对Demolator输出信号做N比特量化,如果分量高于门限就认为Demolator输出1,否则输出0。(根据调制方式,例如MPSK,M=2^N,则N比特量化)
但是通常在做软判决时,模拟信号难以在数字信号系统中处理,所有为实现软判决,不得不某些妥协,那就是用多比特量化来逼近模拟信号作为Decoder的输入。这样当然会带来量化噪声。我们还可以注意让慎到如果软判决采用量化,那么硬判决就是软判决的特殊情况。
所以在数字通信系统,可以认为硬判决就是N比特量化,软判决就坦兆敬是多比特量化(>>N)。
另外,量化总会带来量化噪声,要越好逼近模拟信号,猜弊就要越多的比特位。
在均匀量化,信号在其空间均匀分布得到的情况下,多一个比特可以多得到6dB的增益。
具体推导可以参看老樊的《通信原理》,当然你也要自己做些推导,书
❹ 什么叫信道译码
信号在发送之前,为了抵抗各种衰落造成的误码,要将信号进行信道编码,在接收端,就要进行相应的信道译码来恢复原来的信号。
❺ 如何用R实现Viterbi算法
Viterbi译码算法是由Viterbi于1967年提出的一种最大似然译码办法,译码器根据接收序列R按最大似然准则力图找出正确的原始码序列。随着大规模集成电路技术的发展,采用Viterbi算法的卷积编码技术已成为广泛应用的纠错方案。Viterbi译码过程可用状态表示。Sj,t和Sj N/2,t表示t时刻的两个状态。在t1时刻,这两个状态值根据路径为0或者1,转移到状态S2j,t1和S2j1,t1。每一种可能的状态转移都根据接收到的有噪声的序列R计算路径度量,然后选择出各个状态的最小度量路径(幸存路径)。Viterbi算法就是通过在状态中寻找最小量路径向前回溯L步,最后得到的即为译码输出。
在卷积码(n,k,m)表示法中,参数k表示每次输入信息码位数,n表示编码的输出卷积码位数,m称为约束长度(一些书中采用k=m1为约束长度,也可称(2,1,2)码网格图,r=k/n称为信息率,即编码效率。本文运用的是(2,1,3)码,约速长度为2,状态数为22=-4。
TMS320C6000系列DSPs(数字信号处理器)是TI公司推出的一种并行处理的数字信号处理器,是基于TI的VLIW技术的。本文采用的是TMS320C6211。该处理器的工作频率经过倍频可达到150MHz,每个时钟周期最多可并行执行8条指令,从而可以实现1200MIPS定点运算能力。
❻ 译码的算法
viterbi译码算法是一种卷积码的解码算法。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。
算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入孝橡乎0或1),同时,跳传到不同巧悉的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(如销叫做回溯),得出相应的译码输出。
❼ Turbo码与传统级联码的对比,优缺点
Turbo码有一重要特点是其译码较为复杂,比常规的卷积码要复杂的多,这种复杂不仅在于其译码要
Turbo码
采用迭代的过程,而且采用的算法本身也比较复杂。这些算法的关键是不但要能够对每比特进行译码,而且还要伴随着译码给出每比特译出的可靠性信息,有了这些信息,迭代才能进行下去。用于Turbo码译码的具体算法有:MAP(Maximum A Posterior)
Max-Log-MAP、Log-MAP和SOVA(Soft Output Viterbi Algorithm)算法。MAP算法是1974年被用于卷积码的译码,但用作Turbo码的译码还是要做一些修改;Max-Log-MAP与Log-MAP是根据MAP算法在运算量上做了重大改进,虽然性能有些下降,但使得Turbo码的译码复杂度大大的降低了,更加适合于实际系统的运用;Viterbi算法并不适合Turbo码的译码,原因就是没有每比特译出的可靠性信息输出,修改后的具有软信息输出的SOVA算法,就正好适合了Turbo码的译码。这些算法在复杂度上和性能上具有一定的差异激孝,系统地了解这些算法的原理是对Turbo码研究的基础,同时对这些算法的复杂度和性能的比较研究也将有助于Turbo的应用研究。
Turbo码的仿真一般参考吴宇飞的经典程序。
此外,要想在移动无线系统中成功的使用Turbo码,首先要考伍铅纤虑在语音传输中最大延迟的限制。在短帧情况下的仿真结果表明短交织Turbo码在AWGN信道和Rayleigh衰落下仍然具有接近信道容量的纠错能力,从而显示出Turbo码在移动无线通信系统中非常广阔的应用前景。
Turbo码 (Turbo Code)
Turbo 码(Turbo Code)是一类应用在外层空间卫星通信和设计者寻找完成最大信息传输通过一个限制带宽通信链路在数据破坏的噪声面前的其它无线通信应用程序的高性能纠错码。有两类 Turbo 码在那里,块 Turbo 码和卷积 Turbo 码(CTCs),它们是相当不同的,因为它们使用腔仿不同的构件码,不同的串联方案和不同的 SISO 算法。
❽ 你应该知道的维特比译码
嵌牛导读:维特比译码是一种高效的卷积码译码方法,该方法由Andrew Viterbi 发明,并以他的名字命名。
嵌牛鼻子:Viterbi译码
嵌牛提问:维特比译码的性能相比分组码等其他编码的译码性能究竟好在哪里,如何来评估?编码约束度和监督位数量对维特比译码的性能是如何产生影响的。
嵌牛正文:
在接收端,我们有一组对应于发射监督比特的电压采样序列。为简单并不失一般性,我们将假设接收端获得了最佳采样点(或者一组采样集的均值对应一个监督位),通过与阈值比较判为“0”或“1”(解映射),并将判决结果传递给译码器。在没有关于采样点和译码器其它信息的情况下,译码过程被称为硬判决译码。
下面简述硬判决维特比译码:
译码算法使用两个度量:分支度量(branch metric,BM)和路径度量(path metric,PM)。分支度量计算的是发射和接收内容之间的“距离”,它是为网格中的每条分支路径定义的。在硬判决译码中,给出一组已经数字化的接收监督比特,分支度量就是监督比特预测值和接收监督比特之间的汉明距离。下图展示了一个示例,其中接收的位为00,对于每个状态转移,分支路径上的数字显示该转移的分支度量。其中有两条路径的分支量度为0,对应于汉明距离为0的唯一状态和转移关系,其他非0分支量度对应于存在位错误的情况。
路径度量值与网格中的状态相关联。对于硬判决解码,它对应于网格中从初始状态到当前状态的最可能路径与接收监督比特序列间的汉明距离。“最有可能”是指在计算从初始状态到当前状态之间的所有可能路径度量后,取汉明距离最小的那条。
维特比算法的关键点在于,接收机可以使用分支度量和先前计算的状态路径度量递推地计算当前状态的路径度量。
计算路径度量
假设接收机已经在时刻i计算好每个状态s的路径量度PM[s,i](设卷积码的编码约束度为K,则状态数为2^(K-1))。在硬判决译码中,PM[s,i]的值是在接收监督比特与最可能发送的消息进行比较时得到的差错比特总数(通常我们将状态“00”作为起始状态)。
在时刻i的所有可能状态中,最可能的状态是具有最小路径度量的状态。如果具备最小路径度量的状态不止一个,那它们拥有相等的可能性。
现在,我们如何确定时刻i+1下每个状态s的路径度量PM[s,i+1]呢?要回答这个问题,首先要注意的是,对于i+1时刻的状态s,它必须由i时刻的两种可能状态中的一个中转移而来。这两个之前状态记为α和β,并且对于给定的状态s,它们是固定的。实际上α和β仅由卷积码的编码约束度决定,与生成多项式无关。图2显示了每个状态的之前状态(箭头的另一端),该例中,对于状态00,α= 00 ,β= 01;对于状态01,α= 10 ,β= 11。
任何使得发射机在i+1时刻处于状态s的信息序列必定使得发射机在i时刻位于状态α或β。例如,在图2中,在时刻i+1时到达状态01,必定符合以下两点之一:
1. 发射机在时刻i位于状态10,且第i个信息比特为0。在这种情况下,发射机输出监督位11。由于接收比特为00,因此将产生2位误码,新的状态路径度量PM[01,i+1] = PM[10,i] + 2。
2. 发射机在时刻i位于状态11,且第i个信息比特为0。在这种情况下,发射机输出监督位01。由于接收比特为00,因此将产生1位误码,新的状态路径度量PM[01,i+1] = PM[11,i] + 1。
通过上面直观的分析,我们看到:
寻找最大似然路径
现在我们可以来描述译码器是如何找到最大似然路径了。初始时,状态00代价为0,其它2^(k-1)-1个状态代价为正无穷(∞)。
算法的主循环由两个主要步骤组成:首先计算下一时刻监督比特序列的分支度量,然后计算该时刻各状态的路径度量。路径度量的计算可以被认为是一个“加比选”过程:
1.将分支度量与上一时刻状态的路径度量相加。
2.每一状态比较达到该状态的所有路径(每时刻每个状态只有两条这样的路径进行比较,因为只有两条来自前一时刻状态的分支)。
3.每一状态删除其余到达路径,保留最小度量的路径(称为幸存路径),该路径对应于错误最少的路径。
一直采取这样的方法直到最后产生一条路径,所判决出来的的码即是译码结果。