CN105589082A - 一种北斗导航系统的维特比译码装置及方法 - Google Patents
一种北斗导航系统的维特比译码装置及方法 Download PDFInfo
- Publication number
- CN105589082A CN105589082A CN201510953661.0A CN201510953661A CN105589082A CN 105589082 A CN105589082 A CN 105589082A CN 201510953661 A CN201510953661 A CN 201510953661A CN 105589082 A CN105589082 A CN 105589082A
- Authority
- CN
- China
- Prior art keywords
- path
- state
- data
- unit
- input
- 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/30—Acquisition or tracking or demodulation of signals transmitted by the system code related
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
Abstract
本本发明设计一种北斗导航系统的维特比译码装置及方法,作为北斗RDSS的电文译码器,主要包括分支度量值计算单元、加比选单元、系统控制单元、存储单元、回溯单元,维特比译码器路径度量值的更新由加比选单元生成的新路径度量值写回到原来读出旧路径度量值的地址中去,在译码过程中译码状态会发生转移,路径度量值更新后存储的是转移后状态的路径度量值;所述分支度量值计算单元,根据状态转移蝶形对的状态转移规则,对接收到的两路卷积码数据进行计算,得到各对应状态的分支度量值;在保证译码性能的前提下,通过设计优化,大大减少资源使用,达到节约逻辑资源的目的。
Description
技术领域
本发明涉及电子信息领域,特别是指一种北斗导航系统的维特比译码装置及方法。
背景技术
公知的卷积码的译码算法方案有多种,但大规模应用的还是维特比(Viterbi)算法。Viterbi译码算法是A.J.Viterbi在1967年针对卷积码的译码而提出的一种概率译码算法,它是一种最大似然译码。在码的约束度较小时,Viterbi译码的算法效率高、速度快、译码器结构也较简单,因而自Viterbi算法提出以来,无论在理论上还是实践上都得到了极其迅速的发展,并广泛地应用于各种数字传输系统中,特别是无线通信系统和卫星通信系统。在北斗RDSS系统中,为了使信号能够更可靠地在信道中传输,在信道编码中采用卷积码来降低信号受噪声的影响,以降低通信的误码率,提高系统的可靠性。
北斗RDSS采用(2,1,7)卷积码,卷积码编码器由6个移位寄存器和两个模2加法器组成,约束长度K=7,编码效率R=1/2,即输入1bit信息,输出2bit编码信息,并分为上、下两路并行输出。其生成多项式为G=(133,171),电路图如图1所示。对卷积编码后的信号,采用Viterbi算法(VA)译码。Viterbi算法是对于卷积码的最大似然译码。最大似然译码函数,就是在已知收到的信道输出序列,找到最有可能的传输序列,即通过网格图找出一条路径对应,要求路径输出的码序列具有对数最大值。对于二进制对称信道来说,函数的最大化等价于在网格图中找到与接收序列之间有最小汉明距离的路径。
Viterbi译码算法是通过动态规划的方法,接收一段,计算、比较一段,选择一段最可能的码段,即分支,找出网格图中的最大似然路径,用局部最优等效全局最优,近似达到整个码序列是一个有最大似然函数的序列。在每一步中,它将进入每一状态的所有路径进行比较,并存储具有最大度量值的路径,即幸存路径,步骤为:
(1)根据接收到的码符号,计算出相应的分支度量值;
(2)将进入某一个状态的两条分支度量值与其前面的路径度量值分别进行累加求和,得到两个新的路径度量值;
(3)比较到达此同一状态的两条新的路径度量值的大小,选择较小的作为新的路径度量值存储起来,并存储与此路径度量值对应的路径,称此路径为留选(幸存)路径,删除另一条路径;
(4)对所有的26个状态都实施上述加/比/选运算,并存储所有状态的当前的幸存路径;
(5)重复(1)~(4)步骤,直到结束。
该算法主要包括两个工作:计算路径度量值并比较,以决定幸存路径;另一个是记录幸存路径及其相关的度量值。对于结尾卷积码序列,编码器从全为0的S0状态出发,最后又回到S0状态时所输出的码序列,在路径挑选的过程中,所有留选路径将逐渐合并为最后唯一的一条,该条路径即为所求。但是这种算法占用了较多的存储资源,在维特比译码器的实现中,路径度量值的一般为采用乒乓存储方式,乒乓方式使用两组路径度量存储单元交替使用,一组用来存储新的路径度量值,另一组用来存储旧的路径度量值,完成一次所有状态的幸存路径度量更新后读写改变方向,这样读写就不会发生冲突,因此耗费了两倍的路径度量值存储单元。
发明内容
本发明的目的是设计一种北斗导航系统的维特比译码装置及方法,作为北斗RDSS的电文译码器,提供了一种新的分支度量值的存储方式,只需要使用一组路径度量存储单元就可以满足存储需求,从而克服现有技术的不足。
本发明的技术方案是,为了减少资源的消耗,本发明提供了一种新的分支度量值的存储方式,主要包括分支度量值计算单元、加比选单元、系统控制单元、存储单元、回溯单元,维特比译码器路径度量值的更新由加比选单元生成的新路径度量值写回到原来读出旧路径度量值的地址中去,在译码过程中译码状态会发生转移,路径度量值更新后存储的是转移后状态的路径度量值;
所述分支度量值计算单元,根据状态转移蝶形对的状态转移规则,对接收到的两路卷积码数据进行计算,得到各对应状态的分支度量值;
所述加比选单元,利用分支度量值计算单元计算得到的分支度量值,计算各状态前一时刻的路径度量值,进行累加、比较、选择处理;
所述加比选单元由四个并行执行的,且具有相同的输入输出特性的蝶形运算单元组成,每个蝶形运算单元处理两路来自存储单元RAM0至RAM7的数据data状态,并由与蝶形运算单元连接的两个选择器通过sel0至sel3四种控制状态,将蝶形运算的结果,转换成输入数据ramdin,写入到对应的八个存储单元RAM中;所述八个RAM用于暂存64个状态的数据,每个RAM的长度是八;所述64个状态由四个蝶形运算单元分八个时钟周期完成处理;需要计算的64个状态在经过六次循环后回到初始状态;
所述系统控制单元主要实现对各运算单元的控制和调度,实现对维特比译码的整体流程控制。
本发明包括以下步骤:
步骤1,RAM0的数据data00和RAM1的数据data01输入蝶形运算单元BF0,生成蝶形运算的结果dout00、dout01;RAM4的数据data20和RAM5的数据data21输入蝶形运算单元BF1,生成蝶形运算的结果dout20、dout21;RAM2的数据data10和RAM3的数据data11输入蝶形运算单元BF2,生成蝶形运算的结果dout10、dout11;RAM6的数据data30和RAM7的数据data31输入蝶形运算单元BF3,生成蝶形运算的结果dout30、dout31;
步骤2,所述蝶形运算的结果dout输入两个选择器MUX中,并根据sel0至sel3四种控制状态生成输入数据ramdin;
步骤3,所述dout00、dout01、dout20、dout21输入选择器MUX1,生成输入数据ramdin0、ramdin2、ramdin4、ramdin6;dout10、dout11、dout30、dout31输入选择器MUX2,生成输入数据ramdin1、ramdin3、ramdin5、ramdin7;
步骤4,所述输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7分别写入存储单元的RAM0、RAM2、RAM4、RAM6、RAM1、RAM3、RAM5、RAM7中;
步骤5,重复步骤1至步骤4,需要计算的64个状态在经过总计六次循环后回到初始状态。
所述控制状态为:控制状态为sel0时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout00、dout20、dout01、dout21、dout10、dout30、、dout11、dout31;
控制状态为sel1时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout01、dout21、dout00、dout20、dout11、dout31、、dout10、dout30;
控制状态为sel2时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout20、dout00、dout21、dout01、dout30、dout10、dout31、dout11;
控制状态为sel3时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout21、dout01、dout20、dout00、dout31、dout11、、dout30、dout10。
路径度量值的溢出保护包括在维特比算法中,任一节点的所有幸存路径度量值之间的差值在一个有限的范围之内:△max≤(K-1)×λmax,K是约束长度,λmax是最大的分支度量值,选择路径度量值位宽两个路径度量值作差比较的结果在映射范围内不会发生重叠现象,通过判断比较结果的正负即可以判断数值大小。
所述系统控制单元产生系统中其他运算单元的控制信号,包括加比选单元分八次更新64个状态的路径度量值的状态切换信号,回溯单元的启动、停止信号,存储单元的读写控制信号,
通过系统控制单元对各运算单元的控制,实现对维特比译码整体流程的控制,其处理流程如下:
步骤1、当有待译码数据输入,启动一次数据处理;
步骤2、第1至8时钟周期,控制加比选单元计算幸存路径,并将幸存路径值写入存储单元;
步骤3、第9至11时钟周期,从存储单元中读取幸存路径值以配合路径回溯,控制回溯单元进行幸存路径回溯,若回溯达到译码深度,将译码结果缓存;
步骤4、第12时钟周期,输出回溯单元中缓存的1bit译码结果,输出方式为后入先出。
存储单元在幸存路径的计算过程中,存储加比选单元计算的幸存路径;在路径回溯的过程中,输出存储的幸存路径用于回溯。
回溯单元用于控制幸存路径回溯,根据回溯路径上的当前节点的状态以及存储单元中的幸存路径,计算前一个节点的状态,不断回溯直至到达译码深度后,输出译码结果;
根据回溯深度,将存储单元划分为四块区域,每块区域存储1/2回溯深度的幸存路径;每输入一个数据,用八个时钟周期计算存储新的幸存路径外,再用三个时钟周期进行路径回溯;每有存储区域满后,启动一次新的回溯流程。
本发明的优点是,作为北斗RDSS的电文译码器,在保证译码性能的前提下,通过设计优化,大大减少资源使用,只需要使用一组路径度量存储单元就可以满足存储需求,相对于传统的乒乓存储方式,节约了50%的存储资源,从而达到节约逻辑资源的目的;并且在北斗RDSS系统中,为了使信号能够更可靠地在信道中传输,在信道编码中采用卷积码来降低信号受噪声的影响,以降低通信的误码率,提高系统的可靠性。
附图说明
图1为北斗RDSS卷积码编码器示意图。
图2为维特比译码器结构框图。
图3为加比选单元结构框图。
图4为维特比译码状态转移图。
图5为加比选单元结构图。
图6为选择器选择结果图。
图7为初始状态存储方式图。
图8为路径度量存储器的地址产生方式图。
图9为存储单元回溯三号区域示意图。
图10为存储单元回溯二号区域示意图。
图11为存储单元回溯一号区域示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明主要包括分支度量值计算单元1(BMU)、加比选单元2(ACS)、系统控制单元3、存储单元4、回溯单元5,所述维特比译码器路径度量值的更新由加比选单元2生成的新路径度量值写回到原来读出旧路径度量值的地址中去,在译码过程中译码状态会发生转移,路径度量值更新后存储的是转移后状态的路径度量值。本发明只需要一组路径度量值存储单元就可以满足需求,参见附图4,相比于传统的乒乓存储方式,节约了50%的存储资源。
所述分支度量值计算单元1,根据状态转移蝶形对的状态转移规则,对接收到的两路卷积码数据进行计算,得到各对应状态的分支度量值;
分支度量值单元计算输入信号对卷积编码各种可能输出信号的距离值,即分支度量值。它的输入信号是接收机前端解调输出的信号,卷积编码的可能输出信号为00、01、10和11。分支度量值表征输入信号与理想码元之间的距离。
计算4个分支度量值,分别:
bm_0=ABS(Code0-ideal0)+ABS(Code1-ideal0)
bm_1=ABS(Code0-ideal1)+ABS(Code1-ideal1)
bm_2=ABS(Code0-ideal0)+ABS(Code1-ideal1)
bm_3=ABS(Code0-ideal1)+ABS(Code1-ideal0)
Code0与Code1表示接收到的两个解调信号,ideal0与ideal1表示理想码元0与1对应的数值。
所述加比选单元2,利用分支度量值计算单元计算得到的分支度量值,计算各状态前一时刻的路径度量值,进行累加、比较、选择处理;
所述加比选单元2由四个并行执行的,且具有相同的输入输出特性的蝶形运算单元21(BF)组成,每个蝶形运算单元21处理两路来自存储单元4的RAM0至RAM7的数据data状态,所述数据data从RAM读出至BF的规律参见附图5,并由与蝶形运算单元21连接的两个选择器22(MUX)通过sel0至sel3四种控制状态,将蝶形运算的结果,所述蝶形运算的结果dout参见附图5,转换成输入数据ramdin,所述输入数据ramdin参见附图5,写入到对应的八个存储单元4(RAM)中;所述八个RAM用于暂存64个状态的数据,每个RAM的长度是八;所述64个状态由四个蝶形运算单元21分八个时钟周期完成处理;需要计算的64个状态在经过六次循环后回到初始状态。
ACS,即加比选单元2的主要功能就是在每个状态上分别将其两条输入支路上的上一级状态的路径度量值与BMU,即分支度量值计算单元1输出的分支度量值相加,从中选出较小的那个作为该状态的路径度量值,并输出对应的幸存路径,幸存路径将会存储在存储单元4中。一个加比选单元2可以同时处理2个状态,结构如图3所示。
所述系统控制单元3主要实现对各运算单元的控制和调度,实现对维特比译码的整体流程控制;
所述存储单元4存在幸存路径的计算过程中,存储加比选单元计算的幸存路径;在路径回溯的过程中,输出存储的幸存路径用于回溯;
回溯单元5用于控制幸存路径回溯,根据回溯路径上的当前节点的状态以及存储器中的幸存路径,计算前一个节点的状态,不断回溯直至到达译码深度后,输出译码结果;
所述加比选单元2采用串并结合的结构,设置四个相同的加比选模块ACS0~ACS3,参见附图5,所述四个加比选模块独立地并行工作,既可以提高译码速度,又不会过多地占用器件资源。由于北斗RDSS卷积码的约束长度为七,每输入一个数据,需要处理64个状态,这64个状态由四个加比选单元分八个时钟周期完成处理;需要计算的64个状态在经过六次循环后总是可以回到初始状态。
本发明包括以下步骤:
步骤1,RAM0的数据data00和RAM1的数据data01输入蝶形运算单元21的BF0,生成蝶形运算的结果dout00、dout01;RAM4的数据data20和RAM5的数据data21输入蝶形运算单元21的BF1,生成蝶形运算的结果dout20、dout21;RAM2的数据data10和RAM3的数据data11输入蝶形运算单元21的BF2,生成蝶形运算的结果dout10、dout11;RAM6的数据data30和RAM7的数据data31输入蝶形运算单元21的BF3,生成蝶形运算的结果dout30、dout31;
步骤2,所述蝶形运算的结果dout输入两个选择器22MUX中,并根据sel0至sel3四种控制状态生成输入数据ramdin;
步骤3,所述dout00、dout01、dout20、dout21输入选择器22的MUX1,生成输入数据ramdin0、ramdin2、ramdin4、ramdin6;dout10、dout11、dout30、dout31输入选择器22的MUX2,生成输入数据ramdin1、ramdin3、ramdin5、ramdin7;
步骤4,所述输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7分别写入存储单元4的RAM0、RAM2、RAM4、RAM6、RAM1、RAM3、RAM5、RAM7中;
步骤5,重复步骤1至步骤4,需要计算的64个状态在经过总计六次循环后回到初始状态。
所述控制状态见附图5,具体控制方法为:
控制状态为sel0时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout00、dout20、dout01、dout21、dout10、dout30、、dout11、dout31;
控制状态为sel1时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout01、dout21、dout00、dout20、dout11、dout31、、dout10、dout30;
控制状态为sel2时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout20、dout00、dout21、dout01、dout30、dout10、dout31、dout11;
控制状态为sel3时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout21、dout01、dout20、dout00、dout31、dout11、、dout30、dout10。
64个状态的数据,存储于存储单元4的RAM0至RAM7的八个长度的地址中,其初始状态存储方式参见附图7,八个周期的读取与写入方法见附图8.
本发明还包括路径度量值的溢出保护:
路径度量值总是随着计算时间单调增长,所以在经过一段时间的比较计算后,必须考虑路径度量值的溢出问题。为了克服路径度量累加值的溢出,传统的处理方法对译码器增加了归一化处理模块,即当路径度量值累加到一定长度时,对当前所有状态的累加路径度量值减去其中的最小值。这种处理方法要用到比较器、减法器,且模块间的互连很多,需要大量的全局连线资源,不适合于硬件实现,且在路径度量值计算的过程中进行额外的溢出处理,影响译码速度;
可以证明,在维特比算法中,任一节点的所有幸存路径度量值之间的差值在一个有限的范围之内:△max≤(K-1)×λmax,K是约束长度,λmax是最大的分支度量值,利用这个特点,只需对比较运算作简单的修改,在计算时可以不必考虑加法运算的溢出问题,仍可以求出两个度量值的相对大小。具体做法是:选择路径度量值位宽两个路径度量值作差比较的结果在映射范围内不会发生重叠现象,通过判断比较结果的正负即可以判断数值大小。
所述系统控制单元3产生系统中其他运算单元的控制信号,包括加比选单元2分八次更新64个状态的路径度量值的状态切换信号,回溯单元5的启动、停止信号,存储单元4的读写控制信号,
通过系统控制单元3对各运算单元的控制,实现对维特比译码整体流程的控制,其处理流程如下:
步骤1、当有待译码数据输入,启动一次数据处理;
步骤2、第1至8时钟周期,控制加比选单元2计算幸存路径,并将幸存路径值写入存储单元4;
步骤3、第9至11时钟周期,从存储单元4中读取幸存路径值以配合路径回溯,控制回溯单元5进行幸存路径回溯,若回溯达到译码深度,将译码结果缓存;
步骤4、第12时钟周期,输出回溯单元5中缓存的1bit译码结果,输出方式为后入先出。
存储单元4在幸存路径的计算过程中,存储加比选单元2计算的幸存路径;在路径回溯的过程中,输出存储的幸存路径用于回溯。
回溯单元5用于控制幸存路径回溯,根据回溯路径上的当前节点的状态以及存储单元4中的幸存路径,计算前一个节点的状态,不断回溯直至到达译码深度后,输出译码结果;
根据回溯深度,将存储单元划分为四块区域,每块区域存储1/2回溯深度的幸存路径;每输入一个数据,用八个时钟周期计算存储新的幸存路径外,再用三个时钟周期进行路径回溯;每有存储区域满后,启动一次新的回溯流程。
参见附图9至11,假设以3号存储区域满作为起始,分如下几个步骤描述具体的操作方法:
1、每当输入一组待译码数据,进行加比选单元2计算,将计算结果存储于4号区域中,同时回溯以3号区域的最后一个节点为起始,并回溯3个节点。随着待译码数据的输入,待4号区域存满1/3时,3号区域回溯完成;如图9,
2、继续输入数据,按照与步骤1相同的方法进行处理,待4号区域存满2/3时,2号区域回溯完成;如图10,
3、继续输入数据,按照与步骤1相同的方法进行处理,同时记录回溯得到的幸存路径,作为译码结果供后续输出。待4号区域存满时,1号区域回溯完成,并完成译码;如图11,
4、通过上述3个步骤,在将幸存路径存入4号区域的过程中,完成了对1号区域的译码。待新的待译码数据输入时,再次重复步骤1~3,将幸存路径写入1号区域中,同时对2~4号区域进行路径回溯,并记录2号区域的译码结果,按照此方法循环往复。
以上所述实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种北斗导航系统的维特比译码装置及方法,
主要包括分支度量值计算单元(1)、加比选单元(2)、系统控制单元(3)、存储单元(4)、回溯单元(5),其特征是:
维特比译码器路径度量值的更新由加比选单元(2)生成的新路径度量值写回到原来读出旧路径度量值的地址中去,在译码过程中译码状态会发生转移,路径度量值更新后存储的是转移后状态的路径度量值;
所述分支度量值计算单元(1),根据状态转移蝶形对的状态转移规则,对接收到的两路卷积码数据进行计算,得到各对应状态的分支度量值;
所述加比选单元(2),利用分支度量值计算单元计算得到的分支度量值,计算各状态前一时刻的路径度量值,进行累加、比较、选择处理;
所述加比选单元(2)由四个并行执行的,且具有相同的输入输出特性的蝶形运算单元(21)组成,每个蝶形运算单元(21)处理两路来自存储单元(4)RAM0至RAM7的数据状态,并由与蝶形运算单元(21)连接的两个选择器(22)通过sel0至sel3四种控制状态,将蝶形运算的结果,转换成输入数据,写入到对应的八个存储单元(4)中;所述八个存储单元(4)用于暂存64个状态的数据,每个存储单元(4)的长度是八;所述64个状态由四个蝶形运算单元(21)分八个时钟周期完成处理;需要计算的64个状态在经过六次循环后回到初始状态;
所述系统控制单元(3)主要实现对各运算单元的控制和调度,实现对维特比译码的整体流程控制。
2.根据权利要求1所述的一种北斗导航系统的维特比译码装置及方法,其特征在于包括以下步骤:
步骤1,RAM0的数据data00和RAM1的数据data01输入蝶形运算单元(21)BF0,生成蝶形运算的结果dout00、dout01;RAM4的数据data20和RAM5的数据data21输入蝶形运算单元(21)BF1,生成蝶形运算的结果dout20、dout21;RAM2的数据data10和RAM3的数据data11输入蝶形运算单元(21)BF2,生成蝶形运算的结果dout10、dout11;RAM6的数据data30和RAM7的数据data31输入蝶形运算单元(21)BF3,生成蝶形运算的结果dout30、dout31;
步骤2,所述蝶形运算的结果dout输入两个选择器(22)MUX中,并根据sel0至sel3四种控制状态生成输入数据ramdin;
步骤3,所述dout00、dout01、dout20、dout21输入选择器(22)MUX1,生成输入数据ramdin0、ramdin2、ramdin4、ramdin6;dout10、dout11、dout30、dout31输入选择器(22)MUX2,生成输入数据ramdin1、ramdin3、ramdin5、ramdin7;
步骤4,所述输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7分别写入存储单元(4)的RAM0、RAM2、RAM4、RAM6、RAM1、RAM3、RAM5、RAM7中;
步骤5,重复步骤1至步骤4,需要计算的64个状态在经过总计六次循环后回到初始状态。
3.根据权利要求1或2所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,
控制状态为sel0时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout00、dout20、dout01、dout21、dout10、dout30、、dout11、dout31;
控制状态为sel1时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout01、dout21、dout00、dout20、dout11、dout31、、dout10、dout30;
控制状态为sel2时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout20、dout00、dout21、dout01、dout30、dout10、dout31、dout11;
控制状态为sel3时,输入数据ramdin0、ramdin2、ramdin4、ramdin6、ramdin1、ramdin3、ramdin5、ramdin7,分别对应蝶形运算的结果dout21、dout01、dout20、dout00、dout31、dout11、、dout30、dout10。
4.根据权利要求1或2所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,还包括路径度量值的溢出保护:
在维特比算法中,任一节点的所有幸存路径度量值之间的差值在一个有限的范围之内:△max≤(K-1)×λmax,K是约束长度,λmax是最大的分支度量值,选择路径度量值位宽两个路径度量值作差比较的结果在映射范围内不会发生重叠现象,通过判断比较结果的正负即可以判断数值大小。
5.根据权利要求1或2所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,
所述系统控制单元(3)产生系统中其他运算单元的控制信号,包括加比选单元(2)分八次更新64个状态的路径度量值的状态切换信号,回溯单元(5)的启动、停止信号,存储单元(4)的读写控制信号。
6.根据权利要求5所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,通过系统控制单元(3)对各运算单元的控制,实现对维特比译码整体流程的控制,其处理流程如下:
步骤1、当有待译码数据输入,启动一次数据处理;
步骤2、第1至8时钟周期,控制加比选单元(2)计算幸存路径,并将幸存路径值写入存储单元(4);
步骤3、第9至11时钟周期,从存储单元(4)中读取幸存路径值以配合路径回溯,控制回溯单元(5)进行幸存路径回溯,若回溯达到译码深度,将译码结果缓存;
步骤4、第12时钟周期,输出回溯单元(5)中缓存的1bit译码结果,输出方式为后入先出。
7.根据权利要求1所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,存储单元(4)在幸存路径的计算过程中,存储加比选单元(2)计算的幸存路径;在路径回溯的过程中,输出存储的幸存路径用于回溯。
8.根据权利要求1所述的一种北斗导航系统的维特比译码装置及方法,其特征在于,
回溯单元(5)用于控制幸存路径回溯,根据回溯路径上的当前节点的状态以及存储单元(4)中的幸存路径,计算前一个节点的状态,不断回溯直至到达译码深度后,输出译码结果;
根据回溯深度,将存储单元划分为四块区域,每块区域存储1/2回溯深度的幸存路径;每输入一个数据,用八个时钟周期计算存储新的幸存路径外,再用三个时钟周期进行路径回溯;每有存储区域满后,启动一次新的回溯流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953661.0A CN105589082A (zh) | 2015-12-17 | 2015-12-17 | 一种北斗导航系统的维特比译码装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510953661.0A CN105589082A (zh) | 2015-12-17 | 2015-12-17 | 一种北斗导航系统的维特比译码装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105589082A true CN105589082A (zh) | 2016-05-18 |
Family
ID=55928807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510953661.0A Pending CN105589082A (zh) | 2015-12-17 | 2015-12-17 | 一种北斗导航系统的维特比译码装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105589082A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107064959A (zh) * | 2017-02-03 | 2017-08-18 | 北京子午精航科技有限公司 | 北斗卫星导航系统的增强型转发引擎装置及其实现方法 |
CN110007325A (zh) * | 2019-04-15 | 2019-07-12 | 中国电子科技集团公司第二十研究所 | 一种用于星基增强l5信号的快速帧同步方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756092A (zh) * | 2004-09-27 | 2006-04-05 | 普天信息技术研究院 | 一种计算累加路径度量值的加比选装置和方法 |
CN1787386A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 一种维特比译码器路径度量存储的方法 |
CN103986477A (zh) * | 2014-05-15 | 2014-08-13 | 江苏宏云技术有限公司 | 矢量viterbi译码指令及viterbi译码装置 |
CN104184481A (zh) * | 2013-05-24 | 2014-12-03 | 成都林海电子有限责任公司 | 一种高速viterbi译码器及译码算法的FPGA实现方法 |
-
2015
- 2015-12-17 CN CN201510953661.0A patent/CN105589082A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756092A (zh) * | 2004-09-27 | 2006-04-05 | 普天信息技术研究院 | 一种计算累加路径度量值的加比选装置和方法 |
CN1787386A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 一种维特比译码器路径度量存储的方法 |
CN104184481A (zh) * | 2013-05-24 | 2014-12-03 | 成都林海电子有限责任公司 | 一种高速viterbi译码器及译码算法的FPGA实现方法 |
CN103986477A (zh) * | 2014-05-15 | 2014-08-13 | 江苏宏云技术有限公司 | 矢量viterbi译码指令及viterbi译码装置 |
Non-Patent Citations (2)
Title |
---|
刘少阳等: "(2,1,7)卷积编码及其维特比译码算法的软件实现", 《信息与电子工程》 * |
陈测库: "高效Viterbi译码器的结构与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107064959A (zh) * | 2017-02-03 | 2017-08-18 | 北京子午精航科技有限公司 | 北斗卫星导航系统的增强型转发引擎装置及其实现方法 |
CN110007325A (zh) * | 2019-04-15 | 2019-07-12 | 中国电子科技集团公司第二十研究所 | 一种用于星基增强l5信号的快速帧同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101997553B (zh) | 一种卷积码译码方法及装置 | |
CN101777924B (zh) | 一种Turbo码译码方法和装置 | |
CN107911195B (zh) | 一种基于cva的咬尾卷积码信道译码方法 | |
CN101286817B (zh) | 传统二进制和双二进制Turbo码通用译码方法 | |
CN100413217C (zh) | 一种维特比译码器及用于维特比译码器的加比选单元电路 | |
CN103427850A (zh) | 多模维特比解码装置及其解码方法 | |
CN101969311B (zh) | 一种高速并行分段交错维特比译码方法 | |
CN102404011B (zh) | 维特比解码实现方法及装置 | |
US8904266B2 (en) | Multi-standard viterbi processor | |
EP2339757B1 (en) | Power-reduced preliminary decoded bits in viterbi decoder | |
CN105589082A (zh) | 一种北斗导航系统的维特比译码装置及方法 | |
CN102142849B (zh) | 一种维特比译码方法及维特比译码器 | |
CN103986477A (zh) | 矢量viterbi译码指令及viterbi译码装置 | |
CN100505557C (zh) | 基于Viterbi译码的多路并行循环块回溯方法 | |
CN102291198B (zh) | 信道译码方法和装置 | |
CN105610550B (zh) | 一种用于电力线载波通信的Viterbi译码方法 | |
CN100429870C (zh) | 一种维特比译码器以及决定其中加比选单元数据位宽的方法 | |
JP3260714B2 (ja) | ビタビ復号化装置およびビタビ復号化方法 | |
CN108768412A (zh) | 一种低延时Viterbi译码方法及系统 | |
US20070230606A1 (en) | Viterbi traceback | |
CN118631265A (zh) | 一种新颖高效的全并行维特比译码设计方法及系统 | |
CN114531161B (zh) | 一种多模列表维特比实现方法及译码器 | |
CN103916142A (zh) | 信道译码器和译码方法 | |
CN102361460B (zh) | 一种通用高速并行循环交错维特比译码方法 | |
Singh et al. | Comparative analysis of modified register exchange method and trace back method of viterbi decoder for wireless communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160518 |