第九讲——卷积码的维特比译码和卷积码的性能分析
卷积码+交织+维特比译码+解交织

1.实验摘要实验1 卷积码编码实验2 交织编码实验3 解交织实验4 维特比译码2.实验12.1 实验1概要在实验1中,首先给出了卷积码编码的流程,然后给出了实现卷积码编码的源程序。
2.2程序的具体过程2.2.1程序流程2.2.2MATLAB源程序function [output]=cnv_encd(input)%output=cnv_encd(g,k0,input) 卷积码编码函数%g 生成矩阵%k0 输入码长%input 输入信源序列%output 输出卷积编码序列g=[1 1 1;1 0 1];%编码矩阵k0=1;input=[1 1 0 1];if rem(length(input),k0)>0input=[input,zeros(size(1:k0-rem(length(input),k0)))];endn=length(input)/k0;if rem(size(g,2),k0)>0error('Error,g is not of the right size.')endli=size(g,2)/k0;n0=size(g,1);u=[zeros(size(1:(li-1)*k0)),input,zeros(size(1:(li-1)*k0))];u1=u(li*k0:-1:1);for i=1:n+li-2u1=[u1,u((i+li)*k0:-1:i*k0+1)];enduu=reshape(u1,li*k0,n+li-1);output=reshape(rem(g*uu,2),1,n0*(n+li-1));3.实验23.1 实验2概要在实验2中,给出了两种交织编码的过程—卷积交织和循环等差交织,然后给出了实现这两种交织编码的源程序。
3.2程序的具体过程3.2.1程序流程3.2.2MATLAB源程序(1)卷积交织function [aa]=jiaozhi(bb,n)%jiaozhi.m 卷积交织函数n=28; %分组长度%bb 卷积交织前原分组序列%aa 卷积交织后分组序列%序号重排方式:cc=[123171151721;82241812628;159****9137;22161042620 14 ];%交织矩阵bb=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28]; for i=1:naa(i)=bb(cc(i));end(2)循环等差交织function [aa]=jiaozhi_nocnv(bb,n)%jiaozhi_nocnv.m 循环等差交织函数n=28; %分组长度%bb 循环等差交织前原分组序列%aa 循环等差交织后还原分组序列%序号重排方式:bb=[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ];j=1;for i=1:nj=rem(j+5-1,n)+1; %序号重排方式迭代算法aa(n+1-i)=bb(j);end3.2.3程序说明交织码通常表示为(M,N),分组长度L=MN,交织方式用M行N列的交织矩阵表示。
DSP卷积码的维特比译码的分析与实现要点

编号:《DSP技术与应用》课程论文卷积码的维特比译码的分析与实现论文作者姓名:______ ______作者学号:___ ______所在学院:所学专业:_____ ___导师姓名职称:__ _论文完成时间: _目录摘要: (1)0 前言 (2)1 理论基础 (2)1.1信道理论基础 (2)1.2差错控制技术 (3)1.3纠错编码 (4)1.4线性分组码 (5)2 卷积码编码 (7)2.1 卷积码概要 (7)2.2 卷积码编码器 (8)2.3卷积码的图解表示 (8)2.4 卷积码的解析表示 (11)3 卷积码的译码 (14)3.1 维特比译码 (15)3.2 代数译码 (17)3.3 门限译码 (18)4 维特比译码器实现 (18)4.1 TMS320C54 系列DSP概述 (18)4.2 Viterbi译码器的DSP实现 (19)4.3 实现结果 (21)5 结论 (21)参考文献 (22)II卷积码的维特比译码的分析与实现摘要:针对数据传输过程中的误码问题,本文论述了提高数据传输质量的一些编码及译码的实现问题。
自P.Elias 首次提出卷积码编码以来,这一编码技术至今仍显示出强大的生命力。
在与分组码同样的码率R 和设备复杂性的条件下,无论从理论上还是从实际上均己证明卷积码的性能至少不比分组码差,且实现最佳和准最佳译码也较分组码容易。
目前,卷积码已广泛应用在无线通信标准中,其维特比译码则利用码树的重复性结构,对最大似然译码算法进行了简化。
本文所做的主要工作:首先对信道编码技术进行了研究,根据信道中可能出现的噪声等问题对卷积码编码方法进行了主要阐释。
其次,对卷积码维特比译码器的实现算法进行了研究,完成了译码器的软件设计。
最后,结合实例,采用DSP芯片实现卷积码的维特比译码算法的仿真和运行。
关键词:卷积码维特比译码DSPConvolutional codes and Viterbi decoding analysis andrealizationZhang Yi-Fei(School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China)Abstract:Considering the error bit problem during data transmission,this thesis discussed some codings and decoders,aiming at enhancing transmission performance. From P.Elias first gave the concept of convolutional code, it has show its’ great advantage. Under the same condition and the same rate of block code, the performance of convolutional code is better than block code, and it’s easier to implement the best decoding.Convolutional codes have been widely used in wireless communication standards, the Viterbi decoding using the repetitive structure of the code tree, the maximum likelihood decoding algorithm has been simplified. Major work done in this article: First, the channel coding techniques have been studied, the main interpretation of the convolutional code encoding method according to the channel may be noise and other issues.Secondly, the convolutional code Viterbi decoder algorithm has been studied, the software design of the decoder.Finally, with examples, simulation and operation of the DSP chip convolutional codes, Viterbi decoding algorithm.1Key words:convolutional code Vltebri decoder DSP0 前言随着数据处理、计算机通信、卫星通信以及高速数据通信网的飞速发展,用户对数据传输的可靠性提出了越来越高的要求,因此如何在保证数据传输速率的前提下,提高传输数据的可靠性,就成为一个迫切需要解决的问题。
卷积码及维特比译码 notes

卷积码在CDMA中使用,表示方式包含多项式表示法,状态转移图法和网格图法。
编码器:n (编码后输出的码字长度)(模二加法器个数)k (输入的比特信息长度)(每个寄存器的位数)L (约束长度/记忆深度)(寄存器个数)R表示为R = k/n。
莫二加法器以寄存器的数位为单位进行选取计算,计算方式自定义,形成网格图作为码本莫二加法运算,等同于“异或”运算。
两个序列按位相加,即两个序列中对应位相加,不进位。
效果是相同为0,不同为1。
例: 1+1 = 0+0 = 01+0 = 0+1 = 10 1 0 1+ 0 0 1 1──────0 1 1 0下图是输出码长n=2,输入比特k=1,记忆深度L=2的,(2,1,2)卷积码编码器。
如编码序列“0 1 1 0 0”在图中的序列如下:汉明距离两个二进制数之间进行逐位对比,得到不同的个数如1000,与1100为1,与1110为2,与1111为3维特比算法综合状态之间的转移概率和前一层各状态的概率情况计算出概率最大的状态转换路径,从而推断出隐含状态的序列的情况。
的分支度量(汉明距离)。
其中有两条路径的分支量度为0。
3.寻找最大似然路径 - 译码过程维特比算法的关键点在于,接收机可以使用分支度量和先前计算的路径度量递推地计算当前状态的路径度量。
初始时,状态00代价为0,其它状态代价为正无穷(∞)。
算法的主循环由两个主要步骤组成:首先计算下一时刻监督比特序列的分支度量,然后计算该时刻各状态的路径度量。
路径度量的计算可以认为是一个“加-比-选”的过程1)将分支度量与上一时刻状态的路径度量相加。
2)每一状态比较来自前一时刻状态可达到的所有路径(只有两条这样的路径进行比较)3)每一状态删除其余到达路径,选择最小度量的路径保留(称为幸存路径/存活路径)若进入某个状态的部分路径中,有两条路径的度量值相等,则可以任选其一作为幸存路径。
下图显示了维特比译码的过程。
此例接收到的位序列为11 10 11 00 01 10(偷偷告诉你:这是有误码的信息)此时,产生了具有相同路径度量的四个不同路径,通向这四个状态的任一路径都是可能发送的比特序列(它们都具有度量为2的汉明距离)。
卷积码

译码主要确定译码规则,使其差错率最小
1 2 – 译码器根据接收序列来产生信息序列M的一个估值M’,如果两者不同,
则表示译码出错 – 如信道传输的码字是X,当且只有当接收序列Y不等于X时,出现译码错 误
最大似然译码
译码主要确定译码规则,使其差错率最小
– 译码器必须根据接受序列y来产生信息序列M的一个估计
§12.1.1 卷积码的图解表示
树状图- tree
– 一个(2,1,3)卷积码编码器。 假设初始状态为全0 第一个比特输入为 0->00 ,1->11 第二个比特输入时,第一个比特右移一位,这时输出比特同时受前输入比 特和前一位比特决定 ...... 第四个比特输入时,第一个比特移出移位寄存器而消失
编码后序列。由于卷积码的线性性质,所有码序列之间的最 小汉明距应等于非零码序列的最小汉明重量,即非零码序列 中1码的个数。由此可见,要求最小距或自由距,只要考虑码 树中下半部的码序列就可以了 – 例: abca abcb abdc abdd 5 3 4 4 因而:dmin = 3
§12.2 卷积码的距离特性
维特比译码
进入第四级网格时,4条幸存支路又延伸为8条, 经计算路径量度并比较后又丢弃其中4条。在 比较是如果出现量度相同的情况,可以任意选 取其中一条。继续下去,到第10步时,会发现, 所有幸存路径已经合并称为一条全0路径,纠 错完毕。 译码结束的判断:可以在网格图的终结出加上 (N-1)*K个已知信息(即N-1条支路),发送固定 码,如全零,作为结束信息。
– 应用最多也是性能最接近最佳的是维特比译码,但
是硬件复杂。门限译码性能最差,但硬件简单。维 特比译码和序列译码都是建立在最大似然译码的基 础之上的
卷积编码和Viterbi译码

卷积编码和Viterbi译码摘要本文的目的是向读者介绍了前向纠错技术的卷积编码和Viterbi译码。
前向纠错的目的(FEC)的是改善增加了一些精心设计的冗余信息,正在通过信道传输数据的通道容量。
在添加这种冗余信息的过程称为信道编码。
卷积编码和分组编码是两个主要的渠道形式编码。
简介前向纠错的目的(FEC)的是改善增加了一些精心设计的冗余信息,正在通过信道传输数据的通道容量。
在添加这种冗余信息的过程称为信道编码。
卷积编码和分组编码是两个主要的渠道形式编码。
卷积码串行数据操作,一次一个或数位。
分组码操作比较大(通常,多达几百个字节的情侣)消息块。
有很多有用的分组码和卷积多种,以及接收解码算法编码信息的DNA序列来恢复原来的各种数据。
卷积编码和Viterbi译码前向纠错技术,是一种特别适合于在其中一个已损坏的发射信号加性高斯白噪声(AWGN)的主要通道。
你能想到的AWGN信道的噪声,其电压分布也随着时间的推移,可以说是用高斯,或正常,统计分布特征,即一钟形曲线。
这个电压分布具有零均值和标准差这是一个信号与噪声比接收信号的信噪比(SNR)函数。
让我们承担起接收到的信号电平是固定的时刻。
这时如果信噪比高,噪声标准偏差小,反之亦然。
在数字通信,信噪比通常是衡量Eb /N的它代表噪声密度双面能源每比特除以之一。
卷积码通常是描述使用两个参数:码率和约束长度。
码率k/n,是表示为比特数为卷积编码器(十一)信道符号卷积编码器输出的编码器在给定的周期(N)的数量之比。
约束长度参数,钾,表示该卷积编码器的“长度”,即有多少K位阶段提供饲料的组合逻辑,产生输出符号。
K是密切相关的参数米,这表明有多少位的输入编码器周期被保留,用于编码后第一次在卷积编码器输入的出现。
的m参数可以被认为是编码器的记忆长度。
在本教程中,并在此示例的源代码,我集中精力率1 / 2卷积码。
Viterbi译码是一种两个卷积编码与解码,其他类型的算法类型的顺序解码。
卷积码编码和维特比译码的原理、性能与仿真分析

卷积码编码和维特比译码的原理、性能与仿真分析1.引言卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位寄存器构成的有限状态的有记忆系统,通常称它为时序网络。
编码器的整体约束长度为v,是所有k个移位寄存器的长度之和。
具有这样的编码器的卷积码称作[n,k,v]卷积码。
对于一个(n,1,v)编码器,约束长度v等于存储级数m.卷积码是由k个信息比特编码成n(n>k)比特的码组,编码出的n比特码组值不仅与当前码字中的k个信息比特值有关,而且与其前面v个码组中的v*k个信息比特值有关。
卷积码有三种译码方式:序列译码、门限译码和概率译码。
其中,概率译码根据最大似然译码原理在所有可能路径中求取与接收路径最相似的一条路径,具有最佳的纠错性能,维特比译码是概率译码中极重要的一种方式。
序列译码和门限译码则不一定能找出与接收路径最相似的一条路径。
不同于维特比译码,门限译码与序列译码所需的计算量是可变的且对于给定信息分组的最终判决仅仅基于(m+1)个接收分组,而不是基于整个接收序列。
与维特比译码所使用的对数似然量度不同,序列译码所使用的量度为Fano量度。
在接收序列受扰严重的情况下,序列译码的计算量大于维特比译码所需的固定计算量,虽然序列译码要求的平均计算次数通常小于维特比译码。
在采用并行处理的情况下,维特比译码的速度会优于序列译码。
在同样码率和存储级数的条件下,门限译码的性能比维特比译码低大约3dB.维特比译码的数据输出方式有硬判决及软判决两种方式,本文选取生成多项式为561,753的(2,1,8)卷积码对硬判决的性能进行分析,并依据维特比译码的原理以及卷积码的特性,对卷积码编码和维特比译码过程在加性高斯白噪声(AWGN)信道下进行仿真,并且根据仿真结果对维特比译码(硬判决)的结果进行分析。
由于卷积码的生成可以看做一个马尔科夫过程,因此,不同状态间的转移概率对描述这个过程有极关键的作用。
本文则基于MATLAB对不同状态间的转移概率进行求解,从而更准确地分析维特比译码的性能。
卷积码的维特比译码

卷积码的维特比译码卷积编码器自身具有网格结构,基于此结构我们给出两种译码算法:Viterbi 译码算法和BCJR 译码算法。
基于某种准则,这两种算法都是最优的。
1967 年,Viterbi 提出了卷积码的Viterbi 译码算法,后来Omura 证明Viterbi 译码算法等效于在加权图中寻找最优路径问题的一个动态规划(Dynamic Programming)解决方案,随后,Forney 证明它实际上是最大似然(ML,Maximum Likelihood)译码算法,即译码器选择输出的码字通常使接收序列的条件概率最大化。
BCJR 算法是1974 年提出的,它实际上是最大后验概率(MAP,Maximum A Posteriori probability)译码算法。
这两种算法的最优化目标略有不同:在MAP 译码算法中,信息比特错误概率是最小的,而在ML 译码算法中,码字错误概率是最小的,但两种译码算法的性能在本质上是相同的。
由于Viterbi 算法实现更简单,因此在实际应用比较广泛,但在迭代译码应用中,例如逼近Shannon 限的Turbo 码,常使用BCJR 算法。
另外,在迭代译码应用中,还有一种Viterbi 算法的变种:软输出Viterbi 算法(SOV A,Soft-Output Viterbi Algorithm),它是Hagenauer 和Hoeher 在1989 年提出的。
为了理解Viterbi 译码算法,我们需要将编码器状态图按时间展开(因为状态图不能反映出时间变化情况),即在每个时间单元用一个分隔开的状态图来表示。
例如(3,1,2)非系统前馈编码器,其生成矩阵为:G(D)=[1+D1+D21+D+D2](1)图1 (a)(3,1,2)编码器(b)网格图(h=5)假定信息序列长度为h=5,则网格图包含有h+m+1=8 个时间单元,用0 到h+m=7 来标识,如图1(b)所示。
假设编码器总是从全0 态S0 开始,又回到全0 态,前m=2 个时间单元对应于编码器开始从S0“启程”,最后m=2 个时间单元对应于向S0“返航”。
第9讲 信道编码:维特比译码

假设在信道上发送时,产生了2个突发错误,如下红色部分所示:
x1x6 x11x16 x21x2 x7 x12 x17 x22 x3 x8 x13 x18 x23 x4 x9 x14 x19 x24 x5 x10 x15 x20 x25
接收端收到这长度为25的序列先进行去交织处理,同样将序列写入 到一个55的存储阵列中,写入和读出顺序与发送端相反,即按行 写入,按列读出。写入之后的情况如下:
x1 x2 x3 x4 x5
x6 x7 x8 x9 x10
x11 x12 x13 x14 x15
x16 x17 x18 x19 x20
x21 x22 x23 x24 x25
按列读出的序列:
x1x2 x3 x4 x5 x6 x7 x8 x9 x10 x11x12 x13 x14 x15 x16 x17 x18 x19 x20 x21x22 x23 x24 x25
交织过程:
1)发送端将序列按列的顺序写入,然后按行的顺序输出;
2)接收端将接收到的序列按行写入,然后按列的顺序输出 周期性交织特性: 1)l ≤M的突发错误 → 至少被N – 1个位隔开的独立随机错误 2)l > M的突发错误 → 变成 l1 = [l / M]短突发错误
3)交织和去交织的处理会造成2MN个符号的延迟
随机过程的基本概念
初等概率论研究的主要对象是一个或有限个随机变量
但在一些科学技术中需要对一些随机现象的变化过程进 行研究,必须考虑无穷多个随机变量 用一族随机变量才能刻划这种随机现象的全部统计规律 性
可以把这样的一族随机变量称为随机过程
随机过程的数学定义:
设随机试验的样本空间 S {ei },如果对于空间的每一个样本 t T 总有一个时间函数 X (t, ei ) 与之对应。对于样本空间S 的所有样 本 ei S,有一族时间函数 e S与其对应,这族时间函数 X (t , e) 定义为随机过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
卷积码收尾的实现
• 非递归卷积码:约束长度为m+1的卷积 码,只要在信息序列输入完成后连续送 入m个0,即可使任一路径都到达最终的 状态0。 • 递归卷积码:也可通过将输入值置成反 馈值的负值,而使m个时钟后的状态到达 0。
卷积码收尾
非系统非递归码
D D
D
D
递归系统码
维特比译码的复杂度
• 对信息序列长度为L,信息符号取自 GF(p),R=k/n,约束长度为m+1的卷积码。 状态数为pkm,因此对每个时刻要做pkm次 加比选得到pkm个状态的残留路径,每次 加比选包括pk次加法和pk-1次比较。因此 总运算量约为Lpkm次加比选。同时要能 保存pkm条残留路径,因此需要Lpkm个存 贮单元。
• 显然,两条路径分离后一般并不会立即合并, 而是要经过一段时间后才可能合并,这段时 间可长可短,是随机的。因此卷积码中出现 的误码一般也有较强的突发性,一般突发长 度不小于约束长度。 • 对半无限的卷积码而言,总是开始于状态0, 我们要研究的就是什么时候会发生第一次错 误事件?这一次错误事件的长度是多少?它 引起了多少比特错误?错误概率如何?等等。
第九讲
卷积码的维特比译码及卷积码性能分析
回顾
• • • • 卷积码的编码:有记忆的信道编码 卷积码的概率译码 序列译码:费诺算法和堆栈算法 最大似然译码:维特比算法
维特比译码的描述
• 从第1时刻的全零状态开始(零状态初始度量为0,其 它状态初始度量为负无穷) • 在任一时刻t,对每一个状态只记录到达路径中度量最 大的一个(残留路径)及其度量(状态度量) • 在向t+1时刻前进过程中,对t时刻的每个状态作延伸, 即在状态度量基础上加上分支度量,得到M*2k条路径 • 对所得到的t+1时刻到达每一个状态的2k条路径进行比 较,找到一个度量最大的作为残留路径 • 直到码的终点,如果确定终点是一个确定状态,则最 终保留的路径就是译码结果
01
10 0/10 11
0/10 1/01
0/10 1/01
0/10 1/01
维特比译码——收尾
• 最大似然序列译码要求序列有限,因此 对卷积码来说,要求能收尾。 • 收尾的原则:在信息序列输入完成后, 利用输入一些特定的比态 (一般是全零状态)。这样就变成只有 一条残留路径,这就是最大似然序列。
F(N,S,D)的含义
• 它表示,在所有可能路径中,长度是i个 时刻,输入重量为j,输出重量为k的路径 共有A(i,j,k)条。 • 这个式子包含了有关卷积码性能的大量 信息,可以从它得到误比特率、误事件 率及误帧率的性能界。
如何计算F(N,S,D)
• 为了得到F(N,S,D),我们可以借助流图的 方法,即将各分支的乘积增量做为该分 支的转移函数或增益,而计算从0状态注 入到0’状态输出的总增益,这个总增益 就是F(N,S,D)。
维特比译码的特点
• • • • • • 维特比算法是最大似然的序列译码算法 译码复杂度与信道质量无关 运算量与码长呈线性关系 存贮量与码长呈线性关系 运算量和存贮量都与状态数呈线性关系 状态数随分组大小k及编码深度m呈指数 关系
吞吐量与存储量
• 运算量与码长呈线性关系意味着平均吞 吐量与码长无关 • 存贮量与码长呈线性关系意味着对无限 码长(流的情况)要求有无限的存贮量。
状态数对维特比译码的影响
• 由于运算量与k和m呈指数关系,因此维 特比译码算法一般只适合于k和m较小的 场合。大多数情况下k=1,m<10。 • 对状态数很大的卷积码,维特比算法要 经一定的修正后才可能实用,常用的算 法是缩减状态的维特比译码,即在每一 时刻,只处理部分的状态。
序列译码与维特比译码的比较
图解维特比译码
00 0/00 1/11 0/01 0/11 1/00 1/10 1/10 0/01 0/00 1/11 0/11 1/00 1/10 1/10 0/00 1/11 0/11 0/01 1/00 1/10 1/10 0/10 1/01 1/01 0/01 0/00 1/11 0/11 1/00 1/10 1/10 0/01 0/00 1/11 0/11 1/00 1/10 1/10
• 信道质量对前者运算量影响较大,而对 后者运算量没有影响 • 前者是次优的,后者是最优的 • 前者运算量与约束长度无关,而后者运 算量与约束长度呈指数关系 • 前者会有译码失败,而后者只有译码错 误 • 在不同场合有不同用途
卷积码的性能分析
• 误码分析 • 重量或距离谱 • 首次差错率
两个序列间差异的扩大
对于线性卷积码
• 对线性卷积码而言,输入全0时输出也是 全0,构成一条全0序列,这是一个合法 的编码序列。因此研究误码可以假设发 的是全0序列,而研究译成非0序列的概 率。为此我们要研究卷积码的距离谱或 重量谱。
线性卷积码的首次错误事件
• 在研究首次错误事件概率时,要研究的是第一次与 全0序列分离并再次回到全0序列的事件。它等价于 在网格图上第一次离开状态0并再次回到状态0的路 径。 • 由于这些事件要离开状态0,而再次回到状态0后就 不允许离开状态0,因此状态0要分解成两个状态:0 和0’,其中0为注入态,而0’为吸收态。我们要研究 的就是从注入到吸收所有可能的路径,及它们的各 种特性,如长度、输入重量、输出重量等等。
• 对于有限状态的流编码传输而言,如果 两个序列不起始于同一状态且终于同一 状态,则可以通过网格图的继续延伸而 呈现出更大的差别。而只有有限的差别 才有可能造成误判。 • 因此对卷积码而言,我们关心的是某一 时刻两条路径分离,而在有限时间内又 再次合并的情形。这就是流编码中的一 次错误事件。
首次错误事件
重量表示
• 由于路径每走一步,长度、输入重量、输出重 量等参数都要随各自的分支而进行累加,因此 如果将这些参数在每个分支上的值用指数标注, 则可以用乘积的方式表示一条路径的各项值。 例如,一条路径的乘积项为NiSjDk,表示该路径 长度是i个时刻,输入重量为j,输出重量为k。 当将所有可能路径的乘积项加起来,合并同类 项,就可以得到下面的式子: • F(N,S,D)=i,j,kA(i,j,k) NiSjDk
滑动窗维特比译码算法
• 基本思想:当状态数有限时,给定时刻 的各状态残留路径在一定时间(L)之前 来自于同一状态的可能性随L的增加而迅 速趋近于1。因此当前时刻各残留路径很 可能来自于L时刻前的同一路径。
滑动窗维特比译码算法实现
• 在第k时刻,可以将t-L时刻前的路径结果直接 输出,而在存贮空间中不再保存t-L时刻前的内 容。因此存贮量控制在Lpkm。这里的L就被称 做译码深度。不再随码长的增加而增加。因而 特别适合信息流的卷积码编译码。在这种情况 下甚至不需要对流分段加尾比特。这里的L就 被称做译码深度。 • 显然,滑动窗算法是一种准最优算法。但通常 译码深度只要有编码约束长度的5到10倍,其 性能损失就可以忽略不计了。