CN105634509A - 一种维特比译码方法及装置 - Google Patents
一种维特比译码方法及装置 Download PDFInfo
- Publication number
- CN105634509A CN105634509A CN201511009424.5A CN201511009424A CN105634509A CN 105634509 A CN105634509 A CN 105634509A CN 201511009424 A CN201511009424 A CN 201511009424A CN 105634509 A CN105634509 A CN 105634509A
- Authority
- CN
- China
- Prior art keywords
- vector
- path metric
- decoding
- convolutional code
- forward metrics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种维特比译码方法及装置,用于对卷积码进行译码,方法首先对卷积码的每条支路进行度量,得到支路度量矢量,然后对支路度量矢量进行前向度量,得到前向度量矢量最小值索引,最后对前向度量矢量最小值索引进行回溯,得到译码。本发明能在处理器上并行执行高速的维特比译码的矢量译码指令,实现基于处理器的软件矢量维特比译码,解决了现有处理器均采用串行的译码方法的译码速率较慢问题。
Description
技术领域
本发明属于编解码领域,尤其涉及一种维特比(Viterbi)译码方法及装置
背景技术
目前,CDMA2000、WCDMA和TD-SCDMA、DVT-T\C\S、DAB、ATSC、ISDB等标准相继采用卷积码,作为其信道编码标准。同时,LTE等第四代移动通信标准也建议采用卷积码,作为其候选信道编码标准之一。
卷积码是由Elias等人在1955年首次提出的。稍后,Wozencraft提出了一种卷积码的有效译码算法—序列译码。1963年,梅西提出了一种有效性稍差,但比较容易实现的门限译码算法。而后在1967年,Viterbi提出了一种最佳最大似然译码算法。
卷积码的Viterbi译码算法,以其优异的性能,得到广泛的应用。各种Viterbi译码的专用硬件,大量的出现。同时,基于软件译码的专用viterbi译码单元“加比选”也成为各类DSP处理器的重点模块。然而,这些处理器,均采用串行的译码方法进行viterbi译码,译码速率较慢。如何在处理器上并行的实现高速的viterbi译码的矢量译码指令,实现基于处理器的软件矢量viterbi译码,仍然是一个亟待解决的问题。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种低复杂度矢量化的维特比译码方法及装置。
(二)技术方案
本发明提供一种维特比译码方法,用于对卷积码进行译码,方法包括:
S1,对卷积码的每条支路进行度量,得到支路度量矢量;
S2,对支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
S3,对前向度量矢量最小值索引进行回溯,得到译码。
本发明还提供一种维特比译码装置,用于对卷积码进行译码,包括:
支路度量单元,用于对卷积码的每条支路进行度量,得到支路度量矢量;
前向度量单元,用于对支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
反向回溯单元,用于对前向度量矢量最小值索引进行回溯,得到译码。
(三)有益效果
采用本发明提供的维特比译码方法,能在处理器上并行执行高速的维特比译码的矢量译码指令,实现基于处理器的软件矢量维特比译码,解决了现有处理器均采用串行的译码方法的译码速率较慢问题。
附图说明
图1是本发明实施例提供的维特比译码方法的流程图。
图2是本发明实施例提供的维特比译码装置的结构示意图。
具体实施方式
本发明提供一种维特比译码方法及装置,用于对卷积码进行译码,方法首先对卷积码的每条支路进行度量,得到支路度量矢量,然后对支路度量矢量进行前向度量,得到前向度量矢量最小值索引,最后对前向度量矢量最小值索引进行回溯,得到译码。本发明能在处理器上并行执行高速的维特比译码的矢量译码指令,实现基于处理器的软件矢量维特比译码,解决了现有处理器均采用串行的译码方法的译码速率较慢问题。
根据本发明的一种实施方式,维特比译码方法包括:
S1,对卷积码的每条支路进行度量,得到支路度量矢量;
S2,对支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
S3,对前向度量矢量最小值索引进行回溯,得到译码。
根据本发明的一种实施方式,步骤S1中,支路度量的表达式为:
其中,当等于0时,等于否则,等于 为所述卷积码第k个符号在编码输入为s时的支路度量矢量,是所述卷积码第k个符号的第i个输入分量构成的矢量,是卷积码的输入为s时各个状态编码第i个编码输出比特构成的整数。
根据本发明的一种实施方式,步骤S2中,前向度量的表达式为:
其中,是第k个符号在编码输入为s时的支路度量矢量,初始值为0,dk是前向度量最小值索引,表示:
取和之间的最小值,并且,当时,dk的值不变,否则,dk等于s。
根据本发明的一种实施方式,步骤S3中,反向回溯的的表达式为:
[bk-1,sk-1]=sback(Fs,dk,sk),
其中,bk-1为译码,Fs是前向状态矢量, sk是第k个符号的最小路径的状态,sback(Fs,dk,sk)表示:
在dk为s时,选择Fs的第s个元素作为输出,即同时,bk-1等于dk的第sk个元素。
根据本发明的一种实施方式,维特比译码装置包括:
支路度量单元,用于对所述卷积码的每条支路进行度量,得到支路度量矢量;
前向度量单元,用于对所述支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
反向回溯单元,用于对所述前向度量矢量最小值索引进行回溯,得到译码。
根据本发明的一种实施方式,支路度量单元执行支路度量的表达式为:
其中,当等于0时,等于否则,等于 为所述卷积码第k个符号在编码输入为s时的支路度量矢量,是所述卷积码第k个符号的第i个输入分量构成的矢量,是卷积码的输入为s时各个状态编码第i个编码输出比特构成的整数。
根据本发明的一种实施方式,前向度量单元执行前向度量的表达式为:
其中,是第k个符号在编码输入为s时的支路度量矢量,初始值为0,dk是前向度量最小值索引,表示:
取和之间的最小值,并且,当时,dk的值不变,否则,dk等于s。
根据本发明的一种实施方式,反向回溯单元执行反向回溯的的表达式为:
[bk-1,sk-1]=sback(Fs,dk,sk),
其中,bk-1为译码,Fs是前向状态矢量,sk是第k个符号的最小路径的状态,sback(Fs,dk,sk)表示:
在dk为s时,选择Fs的第s个元素作为输出,即同时,bk-1等于dk的第sk个元素。
根据本发明的一种实施方式,本发明还提供指令集,用于进行矢量处理,通过执行相应的指令,以实现支路度量过程、前向度量过程和反向回溯过程,其中,指令集包括:矢量定向加减指令(caddsub),矢量含索引最小值指令(idmin),矢量状态回溯指令(sback),交织指令(intlv),循环指令(loop)和矢量赋值指令(mov)。
具体地,矢量定向加减指令,根据矢量和矢量实现其中ci=(di==0)?ai+bi:ai-bi,即整数d为定向整数,其第i比特为0,则ci为ai和bi的和,否则的ci为ai和bi的差。
具体地,矢量含索引最小值指令idmin,根据矢量和矢量实现其中sA和sB为状态矢量和的索引,它的第i位sA,i=(ai<bi+ci)?sA,i:sB,i,即当矢量的第i个变量ai小于矢量的第i个变量bi和矢量的第i个变量ci时,sA,i保持不变,否则更新为sB的第i位sB,i;矢量的第i个变量ai为ai和bi+ci的最小值,即ai=(ai<bi+ci)?ai:bi+ci。
具体地,状态回溯指令,执行[bk-1,sk-1]=sback(Fs,dk,sk),其根据其状态在选择位比特dk为s时,选择Fs的第s个元素作为输出,即同时输出dk的第sk个元素。
具体地,交织指令,执行其根据其状态s=[s0,s1,...,ss,...,sS-1],将矢量交织为矢量
具体地,循环指令,执行loopnextN,times,对其后的nextN条指令进行times次循环执行。
具体地,矢量赋值指令,执行将int赋值给矢量
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1是本发明实施例提供的维特比译码方法的流程图,如图1所示方法包括:
S1:对卷积码的每条支路进行度量,得到支路度量矢量。
k从0到K-1计数(fork=0…K-1),每次执行然后,k从K到K+L-1计数,每次执行Gk(u,s)=0,其中Gk(u,s)为第k个符号在输入为u状态为s时的支路度量,是接收到的第k个符号的第i个分量,x(i)(u,s)在输入为u状态为s时的编码输出的第i个分量,K为编码长度,L为编码约束长度。
S2:对支路度量矢量进行前向度量,得到前向度量矢量最小值索引。
k从K+L-1到K-1计数(fork=K+L-1…K-1),每次执行
k从K+L-1到K-1计数(fork=K+L-1…K-1),每次执行:
其中,Mk(s)是第k个符号的状态为s的前向度量,它是其前一个符号的状态度量Mk-1(s′)和其对应的支路度量Gk(u,s)之和的最小值;dk(s)是第k个符号到达状态s的最小路径的输入u。
S3:对前向度量矢量最小值索引进行回溯,得到译码。
k从K+L-1到0计数(fork=K+L-1…0),每次执行并且,sK-1+L=0,
bk-1=dk(sk)
由于最后一个状态sK-1+L=0,可知状态sk的最小路径输入为dk(s),可知其前一个状态sk-1,译码输出为ck=dk(sk)。
本实施例采用矢量指令执行的方法如下:
S1:对卷积码的每条支路进行度量,得到支路度量矢量。
其中为Gk(u,s)输入u时转移到任意状态s的支路度量矢量, 为x(i)(u,s)输入u且转移到任意状态s的编码输出的第i个分量。通过将初始化为0,通过矢量定向加减指令caddsub实现Gk(u,s)支路度量的计算。
S2:对支路度量矢量进行前向度量,得到前向度量矢量最小值索引。
其中为Mk(s)任意状态s的前向度量矢量,为使k符号状态转移到s的前一个符号的前向度量 为使k符号状态转移到s的前一个符号的状态s′的索引。通过intlv交织操作,得到通过矢量含索引最小值指令idmin,实现前向度量的计算。使 为x(i)(u,s)输入u且转移到任意状态s的编码输出的第i个分量。通过将初始化为0。
S3:对前向度量矢量最小值索引进行回溯,得到译码。
执行sK-1+L=mov(0),
[bk-1,sk-1]=sback(Fs,dk,sk),fork=K+L-1…0,sK-1+L=0
其中,由于最后一个状态sK-1+L=0,可知状态sk的最小路径输入为dk(s),可知其前一个状态sk-1,译码输出为ck=dk(sk)。
图2是本发明实施例提供的维特比译码装置的结构示意图,如图2所示,装置包含指令存储单元、取指单元、指令译码单元、矢量计算单元和数据存储单元。指令存储单元存储指令流,取指单元从指令存储单元取出指令,交给指令译码单元;指令译码单元将取出的指令进行译码,分配给不同的指令执行单元;矢量计算单元根据指令进行矢量计算,执行支路度量过程、前向度量过程和反向回溯过程,实现译码。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种维特比译码方法,用于对卷积码进行译码,其特征在于,包括:
S1,对所述卷积码的每条支路进行度量,得到支路度量矢量;
S2,对所述支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
S3,对所述前向度量矢量最小值索引进行回溯,得到译码。
2.根据权利要求1所述的维特比译码方法,其特征在于,所述步骤S1中,支路度量的表达式为:
其中,当等于0时,等于否则,等于为所述卷积码第k个符号在编码输入为s时的支路度量矢量,是所述卷积码第k个符号的第i个输入分量构成的矢量,是卷积码的输入为s时各个状态编码第i个编码输出比特构成的整数。
3.根据权利要求2所述的维特比译码方法,其特征在于,所述步骤S2中,前向度量的表达式为:
其中,是第k个符号在编码输入为s时的支路度量矢量,初始值为0,dk是前向度量最小值索引,表示:
取和之间的最小值,并且,当时,dk的值不变,否则,dk等于s。
4.根据权利要求2所述的维特比译码方法,其特征在于,所述步骤S3中,反向回溯的的表达式为:
[bk-1,sk-1]=sback(Fs,dk,sk),
其中,bk-1为译码,Fs是前向状态矢量,sk是第k个符号的最小路径的状态,sback(Fs,dk,sk)表示:
在dk为s时,选择Fs的第s个元素作为输出,即同时,bk-1等于dk的第sk个元素。
5.一种维特比译码装置,用于对卷积码进行译码,其特征在于,包括:
支路度量单元,用于对所述卷积码的每条支路进行度量,得到支路度量矢量;
前向度量单元,用于对所述支路度量矢量进行前向度量,得到前向度量矢量最小值索引;
反向回溯单元,用于对所述前向度量矢量最小值索引进行回溯,得到译码。
6.根据权利要求5所述的维特比译码装置,其特征在于,所述支路度量单元执行支路度量的表达式为:
其中,当等于0时,等于否则,等于为所述卷积码第k个符号在编码输入为s时的支路度量矢量,是所述卷积码第k个符号的第i个输入分量构成的矢量,是卷积码的输入为s时各个状态编码第i个编码输出比特构成的整数。
7.根据权利要求6所述的维特比译码装置,其特征在于,所述前向度量单元执行前向度量的表达式为:
其中,是第k个符号在编码输入为s时的支路度量矢量,初始值为0,dk是前向度量最小值索引,表示:
取和之间的最小值,并且,当时,dk的值不变,否则,dk等于s。
8.根据权利要求7所述的维特比译码装置,其特征在于,所述反向回溯单元执行反向回溯的的表达式为:
[bk-1,sk-1]=sback(Fs,dk,sk),
其中,bk-1为译码,Fs是前向状态矢量,sk是第k个符号的最小路径的状态,sback(Fs,dk,sk)表示:
在dk为s时,选择Fs的第s个元素作为输出,即同时,bk-1等于dk的第sk个元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511009424.5A CN105634509A (zh) | 2015-12-29 | 2015-12-29 | 一种维特比译码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511009424.5A CN105634509A (zh) | 2015-12-29 | 2015-12-29 | 一种维特比译码方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105634509A true CN105634509A (zh) | 2016-06-01 |
Family
ID=56049117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511009424.5A Pending CN105634509A (zh) | 2015-12-29 | 2015-12-29 | 一种维特比译码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634509A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027374A (en) * | 1990-03-26 | 1991-06-25 | Motorola, Inc. | Bit serial Viterbi decoder add/compare/select array |
CN1731686A (zh) * | 2005-08-08 | 2006-02-08 | 北京大学深圳研究生院 | 一种维特比译码器及用于维特比译码器的加比选单元电路 |
CN101436122A (zh) * | 2008-11-25 | 2009-05-20 | 中国科学院微电子研究所 | 一种实现指令并行执行的优化方法和装置 |
CN103905068A (zh) * | 2012-12-26 | 2014-07-02 | 中国移动通信集团公司 | 一种维特比译码方法及系统 |
-
2015
- 2015-12-29 CN CN201511009424.5A patent/CN105634509A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5027374A (en) * | 1990-03-26 | 1991-06-25 | Motorola, Inc. | Bit serial Viterbi decoder add/compare/select array |
CN1731686A (zh) * | 2005-08-08 | 2006-02-08 | 北京大学深圳研究生院 | 一种维特比译码器及用于维特比译码器的加比选单元电路 |
CN101436122A (zh) * | 2008-11-25 | 2009-05-20 | 中国科学院微电子研究所 | 一种实现指令并行执行的优化方法和装置 |
CN103905068A (zh) * | 2012-12-26 | 2014-07-02 | 中国移动通信集团公司 | 一种维特比译码方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104079382B (zh) | 一种基于概率计算的极化码译码器和极化码译码方法 | |
CN101635611B (zh) | 一种信道译码方法和装置 | |
CN105634508A (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
CN105322973B (zh) | 一种rs码编码器及编码方法 | |
CN103354483B (zh) | 通用的高性能Radix-4SOVA译码器及其译码方法 | |
CN109428607A (zh) | 极化码的译码方法、译码器及译码设备 | |
CN103986557B (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN105721107B (zh) | 一种分块计算crc以提高时钟频率的装置和方法 | |
CN103957016B (zh) | 一种低存储容量的Turbo码译码器及其设计方法 | |
CN106059597B (zh) | 一种基于概率Turbo译码器的有符号概率计算单元 | |
CN102142849B (zh) | 一种维特比译码方法及维特比译码器 | |
CN105634509A (zh) | 一种维特比译码方法及装置 | |
CN107017962A (zh) | 动态功耗控制的编码方法及编解码器 | |
CN103595424A (zh) | 分量译码方法、译码器及Turbo译码方法、装置 | |
JP2010130271A (ja) | 復号器および復号方法 | |
CN103986477A (zh) | 矢量viterbi译码指令及viterbi译码装置 | |
CN103475380A (zh) | 用于图像处理器的并行Turbo 译码方法 | |
CN105162474A (zh) | 一种基四算法下的加比选计算方法和装置 | |
Bhowal | Transformation of ACS module to CSA module of low-power Viterbi decoder for digital wireless communication applications | |
CN104579368B (zh) | 一种信道纠错码rs码解关键方程电路 | |
CN101741399B (zh) | 卷积码Viterbi译码器中的级联加比选单元及其数据处理方法 | |
CN101908943B (zh) | 一种应用于td-scdma系统的信道解码方法 | |
CN111277527B (zh) | N阶维特比思想应用在m-gfsk相位域的解调方法 | |
Santhi et al. | Synchronous pipelined two-stage radix-4 200Mbps MB-OFDM UWB Viterbi decoder on FPGA | |
Wang et al. | A Novel Parallel Viterbi Decoding Scheme for NoC‐Based Software‐Defined Radio System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160601 |
|
WD01 | Invention patent application deemed withdrawn after publication |