发明内容
(一)要解决的技术问题
本发明的目的在于克服现有技术的不足,提供一种适用于移动多媒体广播中结构化LDPC码的高吞吐率译码器及译码方法。
(二)技术方案
为达到上述目的,本发明提供了一种适用于移动多媒体广播中结构化LDPC码的高吞吐率译码器,该译码器包括信息存储模块、译码控制模块、迭代计算模块、停止检测模块和交织器模块,其中:
信息存储模块,用于存储校验矩阵信息、译码器接收的先验信息、译码迭代过程产生的比特节点与校验节点信息;
译码控制模块,用于在译码过程中控制译码进程,以及信息存储模块与迭代计算模块和停止检测模块的交互,包括产生信息存储模块的读写使能及地址,产生迭代计算模块与停止检测模块的状态及时序控制信息;在译码前,控制信息存储模块从外部设备写入先验信息,包括完成与外部设备的握手及生成信息存储模块的写使能及地址;在译码结束后,控制信息存储模块读出译码结果,输出至外部设备,包括完成与外部设备的握手及生成信息存储模块的读使能及地址;
迭代计算模块,用于译码过程中校验节点与比特节点的更新计算;
停止检测模块,用于译码器的停止迭代检测,与迭代计算模块同步接收节点信息,生成的停止检测标志位返回译码控制模块,进行迭代次数的控制;
交织器模块,用于对译码器接收的先验信息进行顺序重排后输出至先验信息存储模块,以及在译码结束后对从用作初始空间的第一比特节点信息存储模块或第二比特节点信息存储模块读出的码字进行顺序重排后输出至外部设备;
其中,译码控制模块从信息存储模块的校验节点信息存储模块读出P个压缩格式校验节点信息,经恢复得到P×D个校验节点信息,从作为初始空间的比特节点信息存储模块读取P×D个比特节点信息,送入迭代计算模块的并行CNU,经计算输出更新后的P个压缩格式校验节点信息,将其分为两路,一路重新存入校验节点信息存储模块,覆盖更新前的数据,另一路经解压缩模块恢复为P×D个校验节点信息,由对应的累加标志位在校验节点信息或校验节点信息与先验信息的和之间做出选择,其结果将更新在此次迭代中用作累加空间的信息存储模块的比特节点信息存储模块中与此P×D个校验节点相连的比特节点信息;其中P表示译码器数据存储和信息更新的并行度,D表示校验矩阵行重。
上述方案中,所述信息存储模块包括校验矩阵信息存储模块、先验信息存储模块、校验节点信息存储模块、第一比特节点信息存储模块和第二比特节点信息存储模块,其中:
所述校验矩阵信息存储模块,用于存储由校验矩阵码表生成的查找表,辅助译码控制模块产生信息存储模块的读写地址、使能信号以及迭代计算模块与停止检测模块的状态及时序的控制信号;
所述先验信息存储模块,用于存储由外部设备写入译码器的先验信息,包含K个独立子存储器,每个地址空间的数据宽度为P×W1;
所述校验节点信息存储模块,用于存储压缩格式的校验节点信息,每个地址空间的数据宽度为P×Wr;
所述第一比特节点信息存储模块及第二比特节点信息存储模块,分别包含K个独立双口子存储器,每个地址空间的数据宽度为P×Ws;
其中,P表示译码器数据存储和信息更新的并行度,K表示码表循环的列数,W1为先验信息的数据宽度,Wr为压缩格式校验节点信息的数据宽度,Ws为比特节点信息与累加标志位信息拼接后的数据宽度。
上述方案中,所述校验节点信息存储模块的每个地址空间依次存储校验节点序号除以J后余数相同的数列中P个连续的校验节点压缩格式数据,其中J表示码表循环的行数。
上述方案中,所述第一比特节点信息存储模块及第二比特节点信息存储模块在前后连续的两次迭代过程中交替用作比特似然比的初始空间和累加空间,每个地址空间存储比特似然比信息序号除以K后余数相同的数列中连续的P个拼接的比特似然比信息与其累加标志位信息。
上述方案中,所述先验信息存储模块的每个地址空间存储先验信息序号除以K后余数相同的数列中连续的P个先验信息。
上述方案中,所述迭代计算模块包括并行CNU、乒乓选择器、累加选择器、并行解压缩模块、数据分配网络、数据选择网络、滑动窗以及并行滑动窗,其中:
并行CNU,包含P个独立的CNU模块,在迭代过程并行执行P个校验节点更新的计算,并行输出P个更新后压缩格式的校验节点信息;
乒乓选择器,通过对第一比特节点信息存储模块与第二比特节点信息存储模块的读写使能信息和数据输出的控制选择,实现第一比特节点信息存储模块与第二比特节点信息存储模块在迭代过程中乒乓操作;
累加选择器,用于比特节点更新过程中累加数据的选择;
并行解压缩模块,含P个独立的解压缩模块,在迭代过程中并行执行P个压缩格式的校验节点的解压计算,并行输出P×D个校验节点信息;
数据分配网络,为D输入K输出网络,用于在K个输出路径中选择有效路径,将恢复后的校验节点信息分配到D个有效输出路径上;
数据选择网络,为K输入D输出网络,用于将来自K个路径的输入数据过滤,将其中的D个有效数据输出;
滑动窗,用于对存储在相邻两个地址中的2×P个数据进行相应的偏移,选择输出其中P个所需要的数据;
并行滑动窗,包含D个独立的滑动窗单元,用于同时对2×P×D的并行数据进行相应的偏移,选择输出其中P×D个所需要的数据;
其中,P表示译码器数据存储和信息更新的并行度,D表示校验矩阵行重,K表示码表循环的列数。
上述方案中,所述交织器模块包括输入行列交织器与输出行列交织器,其中:
输入行列交织器,大小为P×K,行进列出,用于将接收到的码字重新排序后存入先验信息存储模块。
输出行列交织器,大小为P×K,列进行出,用于译码输出时对比特硬判决信息的重新排序;
其中,P表示译码器数据存储和信息更新的并行度,K表示码表循环的列数。
上述方案中,利用结构化LDPC码校验矩阵码表的特点,生成4张查找表,其中第一张查找表记录码表元素的存储器序号的重复信息,第二张查找表记录码表元素的存储器序号信息,第三张查找表记录码表元素的地址信息,第四张查找表记录码表元素的偏移信息。
上述方案中,在译码控制模块中,通过对查找表元素的计算,产生先验信息、比特似然比信息以及累加标志位信息的读写使能及地址。
为达到上述目的,本发明还提供了一种适用于移动多媒体广播中结构化LDPC码的高吞吐率译码方法,该方法包括以下步骤:
步骤1:输入端通过1个的输入行列交织器将接收先验信息重新排序后存入先验信息存储模块;
步骤2:迭代从校验节点的更新开始,第一次迭代仅从先验信息存储模块取值进行计算,其余次迭代从校验节点存储模块及用作初始空间的比特节点信息存储模块取值进行计算;
步骤3:校验节点更新不间断并行进行,依次遍历码表各行所代表的校验矩阵的M/J个校验行;
步骤4:比特节点的更新采用累加的方式,随一组P个校验节点更新结束而开始,依次遍历每行码表所代表的校验矩阵的M/J行;
步骤5:停止检测与迭代计算同步进行,对本次迭代用作初始空间的比特节点信息存储模块内的码字进行校验,所有校验行校验正确或达到最大迭代次数则停止迭代,进入步骤6,否则重复步骤2~5的译码过程;
步骤6:输出端通过输出行列交织器将比特硬判决信息重新排序后输出;
其中,P表示译码器数据存储和信息更新的并行度,选择能被M/J整除的正整数,M表示校验矩阵行数,J表示码表循环的行数;
步骤2中所述从校验节点信息存储模块及用作初始空间的比特节点信息存储模块取值后进行的节点更新计算过程包括:
从校验节点信息存储模块读出P个压缩格式校验节点信息,经恢复得到P×D个校验节点信息,从作为初始空间的比特节点信息存储模块读取P×D个比特节点信息,送入并行CNU,经计算输出更新后的P个压缩格式校验节点信息,将其分为两路,一路重新存入校验节点信息存储模块,覆盖更新前的数据,另一路经解压缩模块恢复为P×D个校验节点信息,由对应的累加标志位在校验节点信息或校验节点信息与先验信息的和之间做出选择,其结果将更新在此次迭代中用作累加空间的比特节点信息存储模块中与此P×D个校验节点相连的比特节点信息;其中P表示译码器数据存储和信息更新的并行度,D表示校验矩阵行重。
上述方案中,该译码器结构停止迭代检测独立于节点更新过程,依次对校验矩阵行序号除以J后余数相同的数列中连续P行进行并行检测,若有奇偶校验不满足的情况发生,则停止本次停止迭代检测;若所有校验节点校验正确,或到达最大迭代次数,则中断本次迭代并对本次迭代初始空间中的比特节点信息进行译码输出,并将迭代中断时的累加空间用作下一码字第一次迭代译码的初始空间;其中,J表示码表循环的行数,P表示译码器数据存储和信息更新的并行度。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
利用移动多媒体结构化LDPC码的特殊构造,通过对码表的特殊处理产生节点寻址查找表,本发明所设计的译码器存储结构及数据存取方式可实现在一个时钟或两个时钟周期内完成对P×W的节点信息的读写,令译码器可并行处理大量节点信息的存储操作及更新计算;结合通过三条独立计算路径并行执行的校验节点更新、比特节点更新与停止迭代检测过程,上述译码器在数据吞吐率上有较为明显的优势。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,图1是本发明提供的适用于移动多媒体广播中结构化LDPC码的高吞吐率译码器的示意图,该译码器包括信息存储模块、译码控制模块、迭代计算模块、停止检测模块和交织器模块。
其中,信息存储模块用于存储校验矩阵信息、译码器接收的先验信息、译码迭代过程产生的比特节点与校验节点信息;译码控制模块用于在译码过程中控制译码进程,以及信息存储模块与迭代计算模块和停止检测模块的交互,包括产生信息存储模块的读写使能及地址,产生迭代计算模块与停止检测模块的状态及时序控制信息;在译码前,控制信息存储模块从外部设备写入先验信息,包括完成与外部设备的握手及生成信息存储模块的写使能及地址;在译码结束后,控制信息存储模块读出译码结果,输出至外部设备,包括完成与外部设备的握手及生成信息存储模块的读使能及地址;迭代计算模块用于译码过程中校验节点与比特节点的更新计算;停止检测模块用于译码器的停止迭代检测,与迭代计算模块同步接收节点信息,生成的停止检测标志位返回译码控制模块,进行迭代次数的控制;交织器模块用于对译码器接收的先验信息进行顺序重排后输出至先验信息存储模块,以及在译码结束后对从用作初始空间的第一比特节点信息存储模块或第二比特节点信息存储模块读出的码字进行顺序重排后输出至外部设备。
信息存储模块内部结构如图2所示,包括校验矩阵信息存储模块、先验信息存储模块、校验节点信息存储模块、第一比特节点信息存储模块和第二比特节点信息存储模块。其中,所述校验矩阵信息存储模块用于存储由校验矩阵码表生成的查找表,辅助译码控制模块产生信息存储模块的读写地址及使能信号以及迭代计算模块与停止检测模块的状态及时序的控制信号;先验信息存储模块用于存储由外部设备写入译码器的先验信息,包含K个独立子存储器,每个地址空间的数据宽度为P×W1;校验节点信息存储模块用于存储压缩格式的校验节点信息,每个地址空间的数据宽度为,P×Wr;第一比特节点信息存储模块及第二比特节点信息存储模块,分别包含K个独立双口子存储器,每个地址空间的数据宽度为P×Ws。其中,P表示译码器数据存储和信息更新的并行度,K表示码表循环的列数,W1为先验信息的数据宽度,Wr为压缩格式校验节点信息的数据宽度,Ws为比特节点信息与累加标志位信息拼接后的数据宽度。
校验节点信息存储模块的每个地址空间依次存储校验节点序号除以J后余数相同的数列中P个连续的校验节点压缩格式数据,其中J表示码表循环的行数。在校验节点信息存储模块中,地址为addr的空间所对应存储的P个压缩格式校验节点信息为:
·
·
·
其中Rc,c∈[0,M-1]为一个压缩格式校验节点信息,c为压缩格式校验节点行序号。
第一比特节点信息存储模块及第二比特节点信息存储模块在前后连续的两次迭代过程中交替用作比特似然比的初始空间和累加空间,每个地址空间存储比特似然比信息序号除以K后余数相同的数列中连续的P个拼接的比特似然比信息与其累加标志位信息。先验信息存储模块的每个地址空间存储先验信息序号除以K后余数相同的数列中连续的P个先验信息,先验信息存储模块、第一比特节点信息存储模块、第二比特节点信息存储模块分别由K个独立子存储器组成,第j个子存储器的地址为i的空间存储P个拼接的比特节点信息与累加标志或先验信息为:
[Si×P×K+j,Ci×P×K+j]orIi×P×K+j
[S(i×P+1)×K+j,C(i×P+1)×K+j]orI(i×P+1)×K+j
·
·
·
[S((i+1)×P-1)×K+j,C((i+1)×P-1)×K+j]orI((i+1)×P-1)×K+j
其中Sn为比特节点信息,Cn为累加标志,[Sn,Cn]为拼接后的比特节点信息与累加标志,In为先验信息,n为其对应节点的列序号。
迭代过程中比特节点信息、先验信息以及累加标志位的读写地址通过由18×6码表生成的1张18×1的查找表和3张18×6的查找表经简单计算生成。
查找表一(以下简称L1)记录存储器序号信息,构造方法为:
其中Table为18×6码表,如下图所示:
0 |
6 |
12 |
18 |
25 |
30 |
0 |
7 |
19 |
26 |
31 |
5664 |
0 |
8 |
13 |
20 |
32 |
8270 |
1 |
6 |
14 |
21 |
3085 |
8959 |
1 |
15 |
27 |
33 |
9128 |
9188 |
1 |
9 |
16 |
34 |
8485 |
9093 |
2 |
6 |
28 |
35 |
4156 |
7760 |
2 |
10 |
17 |
7335 |
7545 |
9138 |
2 |
11 |
22 |
8962 |
8728 |
5278 |
3 |
7 |
2510 |
4765 |
8637 |
8875 |
3 |
4653 |
4744 |
7541 |
9175 |
9198 |
3 |
23 |
2349 |
9012 |
9107 |
9168 |
4 |
7 |
29 |
5921 |
7774 |
8946 |
4 |
7224 |
8047 |
8339 |
8725 |
9212 |
4 |
4169 |
8650 |
8780 |
9023 |
9159 |
5 |
8 |
6638 |
8986 |
9064 |
9210 |
5 |
2107 |
7787 |
8655 |
9141 |
9171 |
5 |
24 |
5939 |
8507 |
8906 |
9173 |
得到的1/2码率对应L1如下表所示:
0 |
6 |
12 |
18 |
25 |
30 |
0 |
7 |
19 |
26 |
31 |
12 |
0 |
8 |
13 |
20 |
32 |
26 |
1 |
6 |
14 |
21 |
25 |
31 |
1 |
15 |
27 |
33 |
20 |
8 |
1 |
9 |
16 |
34 |
25 |
21 |
2 |
6 |
28 |
35 |
16 |
20 |
2 |
10 |
17 |
27 |
21 |
30 |
2 |
11 |
22 |
34 |
16 |
22 |
3 |
7 |
26 |
13 |
33 |
19 |
3 |
9 |
28 |
17 |
31 |
18 |
3 |
23 |
9 |
12 |
35 |
24 |
4 |
7 |
29 |
17 |
34 |
18 |
4 |
24 |
10 |
23 |
13 |
32 |
4 |
29 |
10 |
32 |
23 |
15 |
5 |
8 |
14 |
22 |
28 |
30 |
5 |
19 |
11 |
15 |
33 |
27 |
5 |
24 |
35 |
11 |
14 |
29 |
查找表四(以下简称L0)记录L1每行元素根据重复率不同的划分的情况。针对标准中1/2码率参数,得到L0如下表所示,其中第i个元素为1表示L1的第i行有1个元素和其他元素重复率不同。
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
查找表二(简称L2)记录码表元素在存储器中的地址,构造方法为:
查找表LUT_3(简称L3)记录码表元素在存储器中的偏移信息,构造方法为:
其中mod(x,y)表示对x取模y,floor(x)表示对x向下取整。
图3所示为迭代计算模块内部结构,包括并行CNU、乒乓选择器、累加选择器、并行解压缩模块、数据分配网络、数据选择网络、滑动窗以及并行滑动窗。
其中,并行CNU包含P个独立的CNU模块,在迭代过程并行执行P个校验节点更新的计算,并行输出P个更新后压缩格式的校验节点信息;乒乓选择器,通过对第一比特节点信息存储模块与第二比特节点信息存储模块的读写使能信息和数据输出的控制选择,实现第一比特节点信息存储模块与第二比特节点信息存储模块在迭代过程中乒乓操作;累加选择器,用于比特节点更新过程中累加数据的选择;并行解压缩模块,含P个独立的解压缩模块,在迭代过程中并行执行P个压缩格式的校验节点的解压计算,并行输出P×D个校验节点信息;数据分配网络,为D输入K输出网络,用于在K个输出路径中选择有效路径,将恢复后的校验节点信息分配到D个有效输出路径上;数据选择网络,为K输入D输出网络,用于将来自K个路径的输入数据过滤,将其中的D个有效数据输出;滑动窗,用于对存储在相邻两个地址中的2×P个数据进行相应的偏移,选择输出其中P个所需要的数据;并行滑动窗,包含D个独立的滑动窗单元,用于同时对2×P×D的并行数据进行相应的偏移,选择输出其中P×D个所需要的数据;其中,P表示译码器数据存储和信息更新的并行度,D表示校验矩阵行重,K表示码表循环的列数。
其中,所述交织器模块包括输入行列交织器与输出行列交织器,输入行列交织器,大小为P×K,行进列出用于将接收到的码字重新排序后存入先验信息存储模块。输出行列交织器,大小为P×K,列进行出,用于译码输出时对比特硬判决信息的重新排序;其中,P表示译码器数据存储和信息更新的并行度,K表示码表循环的列数。
利用结构化LDPC码校验矩阵码表的特点,生成4张查找表,其中第一张查找表记录码表元素的存储器序号的重复信息,第二张查找表记录码表元素的存储器序号信息,第三张查找表记录码表元素的地址信息,第四张查找表记录码表元素的偏移信息。
在译码控制模块中,通过对查找表元素的计算,产生先验信息、比特似然比信息以及累加标志位信息的读写使能及地址。
下面结合译码装置描述移动多媒体广播标准的1/2码率LDPC码译码过程:
译码器接收的先验信息通过P×K大小的行列交织器,以行入列出的形式重新排序,存入先验信息存储模块的K个独立存储器中,其中交织器的第K列数据存入第K个子存储器,同列的P个先验信息拼接后存入同一地址空间。
迭代过程中,校验节点与比特节点分别通过两条独立的计算路径进行更新。在一次迭代过程中,将更新过程分为T=0,1,...,J×(M/(J×P))节拍。
下面对校验节点的更新进行描述:
在T=0,1,...,J×(M/(J×P))-1的每个节拍中完成一组P个并行的校验节点更新,第k次迭代过程中的校验节点计算路径的第T节拍的更新计算如下:
α是归一化参数,(·)(k)表示第k次迭代中被更新的数据,(·)q是T时刻P个并行更新数据中序号为q的数据。
将上述
个节拍用二重嵌套循环(tth,rth)的形式表示,有:
即一次遍历过程为依次循环码表的J行所对应的M/J个校验矩阵行,并行度为P:
for tth=0:J-1
for rth=0:(M/(J×P))-1
校验节点更新过程的第(tth,rth)节拍中,对如下校验矩阵行所对应的校验节点进行更新:
H(J×rth×P+tth,:)
H(J×(rth×P+1)+tth,:)
·
·
·
H(J×[(rth+1)×P-1]+ttg,:)
end
end
第(tth,rth)节拍中,更新的校验节点为:
{Rmn|m=J×(rth×P+q)+tth,q=0,1,...,P-1,n∈N(m)}
上述校验节点的压缩数据在校验节点信息存储模块中的存储地址为:
addr=tth×(M/J)+rth
第(tth,rth)节拍中,校验节点{Rmn|m=J×(rth×P+q)+tth,n∈N(m)}连接的比特节点信息为:
其中q=0,1,...,P-1。
上述比特节点信息获得过程如下:
1)、从比特节点信息存储器的序号为L1(tth,:)的子存储器中读取地址为
和
的2×P×W个比特节点信息,如下所示:
其中q=0,1,...,2P-1。
2)、上述读取过程中,对序号为L1(tth,:)的子存储器的
地址进行读取时,若L0(tth)指示L1的第tth行(以下用L(t,:)表示查找表L的第t行)中存在重复元素,则按重复的情况分若干时钟完成读取,否则,一个时钟即可完成上述P×W个数据的读取,写入过程同理;
3)、L3(tth,:)控制的滑动窗单元对2×P×W个数据进行选择,得到
其中q=0,1,...,P-1。
为简化更新过程的描述,这里将本次迭代中用作初始空间的比特节点信息存储模块简称为初始空间,将用作累加空间的比特节点信息存储模块简称为累加空间,由控制单元根据译码迭代的次数控制两者的映射关系。
对照图3的迭代计算模块与信息存储模块的连接关系,下面将校验节点一个更新节拍的计算过程描述如下:
1)、在(tth,rth)节拍下,若为第一次迭代,根据译码控制单元传递的控制信号,将从先验信息存储模块的序号为L1(tth,:)的子存储器中读取地址为
或
的2×P×W个先验信息,否则,从初始空间的相同地址读出2×P×W个比特节点信息,将上述有效信息通过数据选择网络,经由L3(tth,:)控制的并行滑动窗对数据进行选择,并行滑动窗的输出直接连接到并行CNU输入端;
2)、若为第一次迭代,并行CNU的校验节点信息输入端输入为0,否则,从校验节点信息存储模块的tth×(M/J)+rth地址读取P个压缩格式校验节点信息,并行解压缩模块恢复为P×W个校验节点信息,输入到并行CNU单元的校验节点输入端,压缩格式校验节点解压缩过程可参见Zhongfeng Wang,Zhiqiang Cui,“A Memory Efficient Partially ParallelDecoder Architecture for Quasi-Cyclic LDPC Codes”,IEEE Trans.On VLSISystem.Vol,15,No.4.April2007;
3)、并行CNU内含P个独立的CNU,将节点信息集合
{In,p|n∈N(tth×(M/J)+rth)},p=0,1,...,P-1
或
{Sn,p-Rtth×(M/J)+rth,n,p|n∈N(tth×(M/J)+rth)},p=0,1,...,P-1的数据分配至P个CNU,分别计算符号信息、最小绝对值、次小绝对值及最小绝对值位置信息,并对最小绝对值及次小绝对值用归一化参数进行修正;
4)、并行CNU将P个CNU计算得到的更新后压缩格式校验节点信息进行拼接,存入校验节点信息存储模块的tth×(M/J)+rth地址空间。
下面对比特节点的更新过程进行描述:
在一次迭代过程中的T=1,2,...,J×(M/(J×P))节拍中,将上一节拍更新完成的P×W个校验节点信息向与其相连的比特节点进行累加。
与校验节点更新过程类似,将上述
个节拍用二重嵌套循环(tth,rth)的形式表示,有:
一次迭代中比特节点遍历过程如下:
for tth=0:J-1
for rth=0:(M/(J×P))-1
比特节点更新过程的第(tth,rth)节拍中,将如下校验矩阵行所对应的校验节点信息向与其相连的比特似然比信息进行累加:
H(J×rtg×P+tth,:)
H(J×(rth×P+1)+tth,:)
·
·
·
H(J×[(rth+1)×P-1]+tth,:)
end
end
比特节点更新过程的第(tth,rth)节拍中,在
节拍中经校验节点计算路径更新完成并在本节拍中向与之相连的比特似然比信息累加的校验节点为:
{Rmn|m=J×(rth×P+q)+tth,q=0,1,...,P-1,n∈N(m)}
上述校验节点的压缩数据由
节拍中并行CNU的输出得到。
比特节点更新过程的第(tth,rth)节拍中,校验节点{Rmn|m=J×(rth×P+q)+tth,n∈N(m)}连接的先验信息、比特节点信息及累加标志位为:
其中q=0,1,...,P-1。
上述先验信息、比特节点信息的获得过程如下:
1)、从先验信息存储模块及累加空间中序号为L1(tth,:)的子存储器中,读取地址为
或
的2×P×W个先验信息、累加标志位及比特节点信息,如下所示:
其中q=0,1,...,2P-1。
2)、上述过程中,对序号为L1(tth,:)的子存储器的
地址进行读写时,若L0(tth)指示L1(tth,:)中存在重复元素,则按重复的情况分若干时钟完成读写,否则,一个时钟即可完成上述P×W个数据的读写;
3)、L3(tth,:)为滑动窗提供滑动系数,滑动窗按滑动系数向下偏移,选择的节点信息为:
其中q=0,1,...,P-1。
对照图3的迭代计算模块与信息存储模块的连接关系,比特节点一个更新节拍的计算过程如下:
1)、在比特节点更新过程的第(tth,rth)节拍,并行CNU输出的P个更新后压缩格式校验节点信息,经并行解压缩模块计算得到更新后的P×W个校验节点信息:
{Rmn|m=J×(rth×P+q)+tth,q=0,1,...,P-1,n∈N(m)};
2)、P×W个更新后的校验节点信息由数据分配网络扩展至K个数据输出端口,扩展方法为P×W个更新后的校验节点信息连接至第L1(tth,:)个输出端口,其余输出端口输出一个较大正数;
3)、从先验信息存储模块读取校验节点{Rmn|m=J×(rth×P+q)+tth,q=0,1,...,P-1,n∈N(m)}所连接的P×W个先验信息:
q=0,1,...,P-1}
4)、从累加空间中读取校验节点{Rmn|m=J×(rth×P+q)+tth,q=0,1,...,P-1,n∈N(m)}所连接的比特节点信息及累加标志位:
q=0,1,...,P-1}
q=0,1,...,P-1}
5)、根据累加标志位的指示,在序号为L1(tth,:)的累加选择器中选择并计算校验节点信息与其连接的先验信息或比特节点信息之和,即完成以下比特节点信息的一次累加,过程为:
If Cn=valid
Sn=In+Rmn;
对Cn取反;
else
Sn=Sn+Rmn;
end
其中m=J×(rth×P+q)+tth,n∈N(m),q=0,1,...,P-1;
6)、在的序号为L1(tth,:)的滑动窗中利用上述结果更新下面缓存的2P×W个比特似然比信息中对应位置的数据:
7)、将下面的P×W个比特似然比信息存入累加空间的对应位置:
下面对停止检测过程进行描述:
在一次迭代过程中,停止检测独立于节点更新计算,遍历校验矩阵的M行直到有奇偶校验不满足的情况发生。若所有校验节点校验正确,或到达最大迭代次数,则中断本次迭代,并对本次迭代初始空间中的比特节点信息进行译码输出,并将迭代中断时的累加空间用作下一码字第一次迭代译码的初始空间。
停止检测分为T′=0,1,...,M/P-1个节拍完成,依次以并行度P进行检测,第T′节拍校验以下校验行的节点信息是否正确:
·
·
·
具体过程如下:
1)、第T′节拍,根据迭代译码控制单元传递的控制信号,在初始空间的序号为
的子存储器中,读取地址为
及
的2×P×W个比特节点信息;
2)、经由
控制的并行滑动窗单元对上述2×P×W个数据进行选择,得到P×W个比特节点信息:
3)、将上述P×W个比特节点信息输出至停止检测模块,对P组比特节点信息进行校验;若存在校验错误,则结束本次停止检测,反之,令T′++,开始下一节拍校验行的检测,若M个校验行均无错,则向译码控制模块返回停止检测标志位,令译码控制模块中断迭代计算。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。