一种维特比译码方法及装置的制造方法
【技术领域】
[0001] 本发明属于编解码领域,尤其设及一种维特比(Viterbi)译码方法及装置
【背景技术】
[0002] 目前,CDMA2000、WCDMA 和 了0-5〔0魁、0¥1'-1'\(:\5、048、415(:、1508等标准相继采用卷 积码,作为其信道编码标准。同时,LTE等第四代移动通信标准也建议采用卷积码,作为其候 选信道编码标准之一。
[0003] 卷积码是由Elias等人在1955年首次提出的。稍后,Wozencraft提出了一种卷积码 的有效译码算法一序列译码。1963年,梅西提出了一种有效性稍差,但比较容易实现的口限 译码算法。而后在1967年,Viterbi提出了一种最佳最大似然译码算法。
[0004] 卷积码的Viterbi译码算法,W其优异的性能,得到广泛的应用。各种Viterbi译码 的专用硬件,大量的出现。同时,基于软件译码的专用Viterbi译码单元"加比选"也成为各 类DSP处理器的重点模块。然而,运些处理器,均采用串行的译码方法进行Viterbi译码,译 码速率较慢。如何在处理器上并行的实现高速的Viterbi译码的矢量译码指令,实现基于处 理器的软件矢量Viterbi译码,仍然是一个亟待解决的问题。
【发明内容】
[0005] (一)要解决的技术问题
[0006] 本发明的目的在于,提供一种低复杂度矢量化的维特比译码方法及装置。
[0007] (二)技术方案
[000引本发明提供一种维特比译码方法,用于对卷积码进行译码,方法包括:
[0009] Sl,对卷积码的每条支路进行度量,得到支路度量矢量;
[0010] S2,对支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
[0011] S3,对前向度量矢量最小值索引进行回溯,得到译码。
[0012] 本发明还提供一种维特比译码装置,用于对卷积码进行译码,包括:
[0013] 支路度量单元,用于对卷积码的每条支路进行度量,得到支路度量矢量;
[0014] 前向度量单元,用于对支路度量矢量进行前向度量,得到前向度量矢量最小值索 引;
[001引反向回溯单元,用于对前向度量矢量最小值索引进行回溯,得至幡码。
[0016] (;巧益效果
[0017] 采用本发明提供的维特比译码方法,能在处理器上并行执行高速的维特比译码的 矢量译码指令,实现基于处理器的软件矢量维特比译码,解决了现有处理器均采用串行的 译码方法的译码速率较慢问题。
【附图说明】
[0018] 图1是本发明实施例提供的维特比译码方法的流程图。
[0019] 图2是本发明实施例提供的维特比译码装置的结构示意图。
【具体实施方式】
[0020] 本发明提供一种维特比译码方法及装置,用于对卷积码进行译码,方法首先对卷 积码的每条支路进行度量,得到支路度量矢量,然后对支路度量矢量进行前向度量,得到前 向度量矢量最小值索引,最后对前向度量矢量最小值索引进行回溯,得到译码。本发明能在 处理器上并行执行高速的维特比译码的矢量译码指令,实现基于处理器的软件矢量维特比 译码,解决了现有处理器均采用串行的译码方法的译码速率较慢问题。
[0021] 根据本发明的一种实施方式,维特比译码方法包括:
[0022] Sl,对卷积码的每条支路进行度量,得到支路度量矢量;
[0023] S2,对支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
[0024] S3,对前向度量矢量最小值索引进行回溯,得到译码。
[0025] 根据本发明的一种实施方式,步骤Sl中,支路度量的表达式为:
[0026] 色知=caddsub(G,",if,<。:),
[0027] 其中,当啤等于加寸,caddsub(6?^,,\;f,皆)等于斬、'畔,否则,caddsub(色、8,巧\皆) 等于持乂 1',G,、、为所述卷积码第k个符号在编码输入为S时的支路度量矢量,是所述 卷积码第k个符号的第i个输入分量构成的矢量,是卷积码的输入为S时各个状态编码第 i个编码输出比特构成的整数。
[0028] 根据本发明的一种实施方式,步骤S2中,前向度量的表达式为:
[0029] 战;府k] = idmin (舟k 麻W,孩的,是),
[0030] 其中,舟k是第k个符号在编码输入为S时的支路度量矢量,舟k初始值为〇,dk是前 向度量最小值索引,idmin(网,,两^_1,馬,,4表示:
[00川确k取馬;和诉k-i+Gk,s之间的最小值,并且,当拥占<舟1^_1+0、,时,dk的值不变,否 贝lj,dk等于S。
[0032]根据本发明的一种实施方式,步骤S3中,反向回溯的的表达式为:
[003;3] [bk-i,sk-i] =sback(Fs,dk,sk),
[0034] 其中,bk-i为译码,Fs是前向状态矢量,恥=[/、;;'),乂。'),...,足;],3視第1^个符号的 最小路径的状态,sback (Fs, dk,Sk)表示:
[0035] 在dk为S时,选择Fs的第S个元素作为输出,即4__1 =义'1,同时,bk-i等于dk的第Sk个 兀素。
[0036] 根据本发明的一种实施方式,维特比译码装置包括:
[0037] 支路度量单元,用于对所述卷积码的每条支路进行度量,得到支路度量矢量;
[0038] 前向度量单元,用于对所述支路度量矢量进行前向度量,得到前向度量矢量最小 值索引;
[0039] 反向回溯单元,用于对所述前向度量矢量最小值索引进行回溯,得到译码。
[0040] 根据本发明的一种实施方式,支路度量单元执行支路度量的表达式为:
[0041] = caddsub(G,,,, ).
[00创其中,当皆等于0时,caddsub(色野,皆)等于%+巧,否则,caddsub(色峡,帮,xf) 等于乂i>,G|,、为所述卷积码第k个符号在编码输入为S时的支路度量矢量,巧>是所述 卷积码第k个符号的第i个输入分量构成的矢量,xf是卷积码的输入为S时各个状态编码第 i个编码输出比特构成的整数。
[0043] 根据本发明的一种实施方式,前向度量单元执行前向度量的表达式为:
[0044] [dk,MJ = Wmin…Gk,、,'s.),
[0045] 其中,拥k是第k个符号在编码输入为S时的支路度量矢量,化k初始值为〇,dk是前 向度量最小值索引,idniin;心 1|、,1\、_|,〇|、,、,.、')表示:
[0046] 舟k取抽k和My+石、、之间的最小值,并且,当成<舟,_1+〇、,时,dk的值不变,否 贝lj,dk等于S。
[0047] 根据本发明的一种实施方式,反向回溯单元执行反向回溯的的表达式为:
[004引[bk-i,sk-i] =sback(Fs,dk,sk),
[0049] 其中,bk-i为译码,Fs是前向状态矢量,肪= k.::Uf,…,乂;:]>sk是第k个符号的 最小路径的状态,sback (Fs, dk,Sk)表示:
[0050] 在dk为S时,选择Fs的第S个元素作为输出,即同时,bk-1等于dk的第Sk个 兀素。
[0051] 根据本发明的一种实施方式,本发明还提供指令集,用于进行矢量处理,通过执行 相应的指令,W实现支路度量过程、前向度量过程和反向回溯过程,其中,指令集包括:矢量 定向加减指令(caddsub),矢量含索引最小值指令(idmin),矢量状态回溯指令(sback),交 织指令(intlv),循环指令(loop)和矢量赋值指令(mov)。
[00对具体地,矢量定向加减指令,根据矢量1 = [0。,巧,…,.聲J和矢量_1]:, 实现 caddsub(A, B,d) ==: [。。,L'l,Cp J,其中 ci = (di==0) ?ai+bi: ai-bi,即整数d为定向整 数,其第i比特为0,则Cl为曰1和bi的和,否则的Cl为曰1和bi的差。
[0版3]具体地,矢量含索引最小值指令idmin,根据矢量1 = [(,,,,巧...?,邱_,]和矢量 ;良=[々,,毎,...,去4],实现[人,5.、]=伽1川(人,.8,(:,8|!),其中34和3[3为状态矢量4和6的索引, 它的第i位34,1=(曰1化+。0?34,:1:3[3,:1,即当矢量1的第1个变量曰1小于矢量6:的第1个变量131 和矢量C的第i个变量Cl时,SA,1保持不变,否则更新为SB的第i位SB,1;矢量A的第i个变量曰1 为 ai 和 bi+ci 的最小值,即 ai= (ai<bi+Ci)?ai:bi+Ci。
[0054] 具体地,状态回溯指令,执行[bk-i,sk-i] = sback(Fs , dk,Sk),其根据其状态 恥=[/;.、1,乂、1,...,/、二1],在选择位比特dk为S时,选择Fs的第S个元素作为输出,即 'Vi = /sf>,同时输出dk的第Sk个元素。
[0055]具体地,交织指令,执行B = Intlv (A,s),其根据其状态S = Iiso ,SI, ...,Ss, ..., 85-1],将矢量又=.〇'。,01.,.....馬-1..义织为矢量8 =权。.,〇9,'.'':,功&.,.'.','