发明名称 一种通用高速并行循环交错维特比译码方法
摘要 一种通用高速并行循环交错维特比译码方法,通过将数据循环交错并行处理,通过数据交错送入译码核,使译码核循环并行处理,从而利用少数译码核实现高速Viterbi译码,并降低资源占用;通过采用通用模块化设计,使循环交错Viterbi译器具有通用性,适用于CCSDS标准的Viterbi译码;由于循环并行的模块化设计,在需要时可以通过增加循环译码核个数提高性能,从而增加少量资源换取更高的译码速率。通过大量软件仿真和实际测试结果表明,使用本发明方法可使Viterbi译码速率达到960Mbit/s,优于目前文献中发表的同类型译码器的性能指标。
申请公布号 CN102361460B 申请公布日期 2013.10.16
申请号 CN201110214224.9 申请日期 2011.07.28
申请人 航天恒星科技有限公司 发明人 张浩;崔骞;战勇杰;张拯宁
分类号 H03M13/41(2006.01)I 主分类号 H03M13/41(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种通用高速并行循环交错Viterbi译码方法,其特征在于步骤如下:(1)将虚拟比特插入输入数据中,之后进入步骤(2);所述输入数据为卷积编码器输出的串行数据经1:8串并转换形成的8bit并行数据;(2)将步骤(1)中得到的输入数据写入分配FIFO中,所述分配FIFO是指用于临时存储输入数据的缓存;(3)判断步骤(2)中的分配FIFO中是否已经写入(n‑J)×m个字节,若已经写入(n‑J)×m个字节,则进入步骤(4);若写入的输入数据不足(n‑J)×m个字节,则返回步骤(2);其中,n为每个Viterbi译码器单次译码处理的数据长度,且n>6×k;k为卷积编码器的约束长度且k=7;所述J为连续两个Viterbi译码器单次译码处理数据的交错长度,且J>14bit;m为并行的Viterbi译码器的个数;(4)读取分配FIFO中的数据,送给第i个Viterbi译码器的输入存储寄存器,当读取了n‑J个字节之后,进入步骤(5);其中,i为自然数且i∈[1,m];(5)将分配FIFO中的第n‑J+1个字节同时写入第i个Viterbi译码器的输入存储寄存器和第i+1个Viterbi译码器的输入存储寄存器中;(6)判断是否将分配FIFO中的从第n‑J+1个字节到第n个字节共J个字节的数据同时写入第i个Viterbi译码器的输入存储寄存器和第i+1个Viterbi译码器的输入存储寄存器中,若已经写入,则进入步骤(7);若写入的数据不足J个,则继续写入直到写完J个字节的数据;(7)将分配FIFO中的从第n+1个字节到第2n‑2j个字节共n‑2J个字节的数据写入第i+1个Viterbi译码器的输入存储寄存器中,之后进入步骤(8);(8)判断i是否等于m,若不等于,则将i+1赋值给i,之后返回步骤(4);若等于,则将分配FIFO中的从第2n‑2j+1个字节到第2n‑j个字节共J个字节的数据同时写入第m个Viterbi译码器的输入存储寄存器和第1个Viterbi译码器的输入存储寄存器中,之后令i=1,返回步骤(4),同时进入步骤(9);(9)将m个Viterbi译码器的输入存储寄存器中的数据开始进行译码并将译码结果存入对应的各Viterbi译码器的输出存储寄存器中,之后进入步骤(10);(10)从步骤(9)中所述各Viterbi译码器的输出存储寄存器中读取数据,针对第1个Viterbi译码器的输出存储寄存器判断是否是第一次从其中读取数据,若是第一次,则读取从所述第1个Viterbi译码器的输出存储寄存中的第一个字节到第n个字节共n个字节的数据;若不是第一次,则进入步骤(11);(11)针对第i个Viterbi译码器的输出存储寄存器中的数据,从第J+1个字节开始读取,共读取n‑J个字节的数据,之后进入步骤(12);(12)判断i是否等于m,若不等于,则将i+1赋值给i,之后返回步骤(11);若等于,令i=1,之后返回步骤(11)。
地址 100086 北京市海淀区知春路82号院