本发明属于通信基带,特别涉及一种北斗三号通信基带自适应迭代次数的turbo译码方法。
背景技术:
1、随着卫星通信产业的不断发展,卫星通信核心模组中的基带技术,已经成为产业的关键核心技术,全世界都在为卫星无线通信领域基带技术找寻新的突破,尤其是北斗通信基带译码器算法,其设计性能、资源利用率、设计功耗等直接影响了整个北斗行业终端产品的性能;另外北斗通信基带译码器算法中,单个译码器能解调译码的信息数量,取决于系统时钟的主频率和译码迭代的次数,现有技术中turbo译码方法还不能够实现接收机收到不同个数波束的情况下,译码器根据系统时钟主频率自动调整迭代次数,实现波束个数多时译码器能实现多波束通信,波束个数少时译码器可以增加迭代次数,实现性能最优化的情况。
技术实现思路
1、(一)要解决的技术问题
2、为了克服上述现有技术中的不足,本发明提供一种北斗三号通信基带自适应迭代次数的turbo译码方法,能够实现接收机收到不同个数波束的情况下,译码器根据系统时钟主频率自动调整迭代次数,实现波束个数多时译码器能实现多波束通信,波束个数少时译码器可以增加迭代次数,实现性能最优化的情况。
3、(二)技术方案
4、本发明通过如下技术方案实现:本发明提出了一种北斗三号通信基带自适应迭代次数的turbo译码方法,turbo译码方法由以下单元实现包含原始待译码码元信息、主码码元获取单元、分量码码元获取单元、当前分支度量值、前向分支度量值alpha计算器、后向分支度量值beta计算器、delta存储单元、alpha存储单元、beta存储单元、最大似然比max_likehood计算器、外信息le计算器、3gpp交织器、3gpp解交织器、最优递推迭代次数niter计算器实现,其所述turbo译码方法具体步骤如下:
5、1st):根据接收的信息确定本帧为8kbps信息帧、16kbps信息帧、24kbps信息帧,分别记为kind = 8kbps ,kind = 16kbps, kind = 24kbps;
6、2nd):根据系统的主频率f_sys和当前总接收波束个数cnt_b计算每个波束可以占用译码器的时钟周期个数为cyc_clk =f_sys/8/cnt_b;根据卫星导航电文为每个波束每125ms一帧循环的特点,通过系统主频率f和接收波束个数cnt计算在当前系统主频率下,可以分配给解调每一帧的时钟周期数cyc_clk = f/8/cnt;
7、例如系统主频率130mhz,则125ms共可以提供(130*10^6)/8个时钟周期,若此时接收波束为3个,则这个波束可以占用译码器的时钟周期个数为:
8、cyc_clk =(130*10^6)/8/3;
9、3rd):查询时钟周期表,根据kind值查询相应的列,找到满足时钟周期表值小于cyc_clk的最大迭代次数,迭代索引niter值作为最优的迭代索引niter值;
10、4th):主码码元获取待译码的码元信息和外信息la;
11、5th):计算当前分支度量值delta,并存储在delta存储单元;
12、6th):读取delta存储单元的值计算前向分支度量值alpha值,存储在alhpa存储单元;
13、7th):读取delta存储单元的值计算后向分支度量值beta值,存储在beta存储单元;
14、8th):同时读取delta存储单元、alhpa存储单元、beta存储单元值计算最大似然比max_likelyhood;
15、9th):根据max_likelyhood与输入的外信息la共同计算新的外信息le;
16、10th):le经过3gpp标准交织器进行交织生成新的la作为副码或者分量码的外信息输入;副码也经过同样的过程输出新的外信息le;
17、11th):判断是否达到最优的迭代次数niter,是就结束,否则将le经过3gpp解交织器进行交织后作为新一轮主码的外信息la输入,继续新的一轮循环,跳转步骤4th)。
18、该turbo译码方法进一步地包括有,所述步骤3rd)时钟周期表中的建立是从主码码元获取单元达到最优迭代次数过程中,译码器依次计算分别接收1帧8kbps、16kbps或24kbps电文信息时,且经过不同迭代次数时,译码器所需要的时钟周期,并根据该信息建立时钟周期表,建立结果如图3所示。
19、该turbo译码方法进一步地包括有,所述步骤4th)第一次迭代外信息la默认为0。
20、该turbo译码方法进一步地包括有,所述步骤5th)中的分支度量值delta为计最优递推迭代次数niter计算器计算,计算方式是根据turbo编码器建时钟计数值和实际符号值对应关系表评估输入码元符号的方式来实现;例如:第一个时钟周期计数值为000,对应实际符号值为000,首先假设当前获取的3个码元信息分别为x,a,b,则delta = x+a+b;第二个时钟周期计数值为001,对应实际符号值为111,首先假设当前获取的3个码元信息分别为x,a,b,则delta = -x-a-b;符号值0表示正,1表示负,建立结果如图4所示。
21、该turbo译码方法进一步地包括有,所述步骤6th)前向分支度量值alpha值为前向分支度量值alpha计算器计算,且采用迭代法来实现;具体步骤如下:
22、首先初始化第1列的8个alpha值:
23、alpha(1,1) = 0;
24、alpha(1,2) = -max_num;
25、alpha(1,3) = -max_num;
26、alpha(1,4) = -max_num;
27、alpha(1,5) = -max_num;
28、alpha(1,6) = -max_num;
29、alpha(1,7) = -max_num;
30、alpha(1,8) = -max_num;
31、当k>1时,依次计算2~n组alpha值,方法如下:
32、alpha(k,1) = max(delta (k-1,1)+alpha(k-1,1), delta (k-1,2)+alpha(k-1,2));
33、alpha(k,2) = max(delta (k-1,4)+alpha(k-1,3), delta (k-1,3)+alpha(k-1,4));
34、alpha(k,3) = max(delta (k-1,5)+alpha(k-1,5), delta (k-1,6)+alpha(k-1,8));
35、alpha(k,4) = max(delta (k-1,8)+alpha(k-1,7), delta (k-1,7)+alpha(k-1,6));
36、alpha(k,5) = max(delta (k-1,2)+alpha(k-1,3), delta (k-1,1)+alpha(k-1,2));
37、alpha(k,6) = max(delta (k-1,3)+alpha(k-1,1), delta (k-1,4)+alpha(k-1,4));
38、alpha(k,7) = max(delta (k-1,6)+alpha(k-1,5), delta (k-1,5)+alpha(k-1,6));
39、alpha(k,8) = max(delta (k-1,7)+alpha(k-1,7), delta (k-1,8)+alpha(k-1,8));
40、其中,max_num为alpha对应二进制位数下的最大值,例如10位对应max_num=1023,16位对应max_num=65535;n为本帧待译码信息电文总bit数。
41、该turbo译码方法进一步地包括有,所述步骤7th)后向分支度量值beta值为后向分支度量值beta计算器计算,且采用迭代法来实现;具体步骤如下;
42、首先初始化最后1列的8个beta值:
43、beta(n,1) = 0;
44、beta(n,2) = -max_num;
45、beta(n,3) = -max_num;
46、beta(n,4) = -max_num;
47、beta(n,5) = -max_num;
48、beta(n,6) = -max_num;
49、beta(n,7) = -max_num;
50、beta(n,8) = -max_num;
51、当k<n时,依次计算1~n-1组beta值,方法如下:
52、beta(k,1) = max(delta (k+1,1) + beta(k+1,1), delta (k+1,2) + beta(k+1,5));
53、beta(k,2) = max(delta (k+1,1) + beta(k+1,6), delta (k+1,2) + beta(k+1,1));
54、beta(k,3) = max(delta (k+1,3) + beta(k+1,5), delta (k+1,4) + beta(k+1,2));
55、beta(k,4) = max(delta (k+1,3) + beta(k+1,2), delta (k+1,4) + beta(k+1,6));
56、beta(k,5) = max(delta (k+1,5) + beta(k+1,3), delta (k+1,6) + beta(k+1,4));
57、beta(k,6) = max(delta (k+1,5) + beta(k+1,7), delta (k+1,6) + beta(k+1,3));
58、beta(k,7) = max(delta (k+1,7) + beta(k+1,8), delta (k+1,8) + beta(k+1,7));
59、beta(k,8) = max(delta (k+1,7) + beta(k+1,4), delta (k+1,8) + beta(k+1,8));
60、其中,max_num为beta对应二进制位数下的最大值,例如10位对应max_num=1023,16位对应max_num=65535;n为本帧待译码信息电文总bit数。
61、该turbo译码方法进一步地包括有,所述步骤9th)最大似然比max_likelyhool采用最大似然比max_likelyhood计算器计算和对数运算计算,最大似然比max_likelyhood计算器由对数运算器和线性计算器构成,其对数运算计算步骤如下:
62、获取当前信息bit位数且读地址,通过对数运算器分别对delta、alpha、beta值做以10为底的对数运算,得到lg(delta)、lg(alpha)、lg(beta),再然后利用线性组合器获取得到lg(delta)+ lg(alpha)+ lg(beta)其值等于最大似然比max_likelyhool±1%的误差值范围。
63、(三)有益效果
64、本发明相对于现有技术,具有以下有益效果:
65、本发明采用自适应迭代次数的turbo译码方法,实现接收机收到不同个数波束的情况下,译码器根据系统时钟主频率自动调整迭代次数,实现波束个数多时译码器能实现多波束通信,波束个数少时译码器可以增加迭代次数,实现性能最优化,且系统主频率和捕获波束个数计算最优迭代次数并用于控制译码器迭代次数,实现自适应迭代次数的turbo译码方法,大大平衡了系统资源和功耗之间的矛盾。