一种基于通用处理器的ldpc编译码方法

文档序号:8301261阅读:333来源:国知局
一种基于通用处理器的ldpc编译码方法
【技术领域】
[0001] 本申请涉及LDPC编译码技术,特别涉及一种基于通用处理器的LDPC编译码方法。
【背景技术】
[0002] LDPC码,是一种码长较大的线性分组码。其校验矩阵也较大,并且校验矩阵中的非 零元素很少,即" 1"的个数很少,故称低密度。
[0003] 在实现IEEE 802. lln无线局域网传输协议的过程中,需使用到LDPC编译码技术, 依协议要求,其中LDPC PPDU (Presentation Protocol Data Unit,表示层协议数据单元) 的生成过程如下,参见图1 :
[0004] (1)计算缩短比特位
[0005] (la)计算可用比特数Navbits,公式为:
[0006]
【主权项】
1. 一种基于通用处理器的LDPC编码方法,包括:通过信号采集或接收获取待编 码的信号向量S,确定校验矩阵H及其分块矩阵4、8、0、£、?和!',并进行保存;根据
角定向量口1和口2,并得到LDPC的编码结果向量c= (S,Pl,p2);其特 征在于,所述确定向量pjPP2时进行的任一矩阵与任一向量的相乘处理包括: 将所述任一矩阵的每一行作为一个线程,进行该矩阵的相应行与所述任一向量的相乘 操作,并将所有行的相乘结果组合在一起构成结果向量; 其中,所述任一矩阵的每一行与所述任一向量的相乘操作包括:确定矩阵当前第i行 的每个元素j对应的向量起始位置=所述任一向量的起始位置+Ai;j+(j-l)*Z,将所述任一 向量中从所述起始位置起Z-Au长度的数据通过单指令多数据流SMD的方式进行左移位, 并将所述起始位置开始的前Au长度的数据移至左移位后的数据之后,得到所述元素j对 应的向量移位结果;再将每个元素对应的向量移位结果相加,作为所述每一行与所述任一 向量的相乘结果; 所述SIMD的方式中,将从所述起始位置起Z-Au长度的数据以长度W为单位划分成
兒据并行进行左移位操作,再将剩余的(Z-UmodW长度的数 据进行左移位操作; Z为所述校验矩阵中的一个元素代表的子矩阵大小。
2. 根据权利要求1所述的方法,其特征在于,当所述任一矩阵为P时,所述r1的每一 行与相应向量的相乘操作时,仅进行r1取值为〇的元素与相应向量的相乘,得到该取值为〇 元素对应的向量移位结果,将其余元素对应的向量移位结果设置为零向量;再将每个元素 对应的向量移位结果相加,作为所述每一行与所述任一向量的相乘结果。
3. 根据权利要求1或2所述的方法,其特征在于,对W段数据同时进行左移位操作后取 前z个数据为有效数据。
4. 根据权利要求1或2所述的方法,其特征在于,所述将每个元素对应的向量移位结果 相加包括:将每个元素对应的向量移位结果以长度W为单位划分成段,通过SIMD 又寸撤腳霞衍目力口艦獅乘_(Z_A")modW碰白勺翻通才目廳 作。
5. 根据权利要求1或2所述的方法,其特征在于,所述矩阵A、B、D、E、F和T<通过线 性查找表进行保存。
6. -种基于通用处理器的LDPC译码方法,包括:接收已编码的LDPC码字信号c,确定 校验矩阵H;通过多次迭代计算变量节点向量q作为译码结果,每次迭代时,根据当前的变 量节点向量q和校验节点向量r计算临时变量向量为? = 〃|,并根据所述临时变量 向量t更新校验节点向量r,再根据校验节点向量r和临时变量向量t更新变量节点向量q 为f =(f+ ;初次迭代时,将码字信号c作为变量节点向量q,将校验节点向量1设为0 ; 其特征在于, 每次迭代计算临时变量向量t、校验节点向量r和变量节点向量q时,以校验矩阵 的每一行作为一个线程进行运算和更新,得到与每行相对应的向量t、(1和1*中索引号从
I的子向量;其中,i为校验矩阵的行索引, 对应所述校验矩阵的第i行计算临时变量向量t、校验节点向量r和变量节点向量q对应 的子向量时,根据校验矩阵该行的每个非元素Hu对应计算向量t、q和r中与元素Hu 对应的索引号Z
<Z-1的子向量,再 依次进行连接得到与每行相应的子向量,i= 1时,
计算与Hu对应的临时变量向量t子向量的方式为:确定Hu对应的向量起始位置 2" -jj Z*(n-1)+Hin,将第i行对应的向量q子向量中所述起始位置起长度为或6的数据 通过SIMD的方式拷贝到与Hi;」对应的临时变量向量t子向量的开头;在Hi;n尹0、H且(Z-Hi;n)m〇dW关0时,确定矩阵MUpeAssemblel中与校验矩阵元素Hi;」对应行中各个元素的取 §
If与元素Hi;j对应的当前向量q的子向量中索 V-1 引号戈
)的各个元素依次拷贝到与Hi,j对应的临时变 量向量t子向量的当前位置上;再确定每个元素Hu对应的第二向量起始位置MUpc;Mfsrt2,将 所述第二向量起始位置起长度为|的数据通过SIMD的方式拷贝到与Hu对应的临时 变量向量t子向量的当前位置上;取与Hi;j对应的临时变量向量t子向量中的前Z位并取 绝对值作为与氏,」对应的临时变量向量t的有效子向量; 当Hi,n尹 0、Hi,n尹 - 且(Z-Hi'JmodW尹 0 时,
当Hi;n= 0 或Hi;n= 或 (Z-UmodW= 0 时,〇\^_"如山,』=Z*(n-1);
妒=^,K为通用处理器一次可处理数据量大小,k为SMD处理的基础单位大小;码k 长Lldpc= 648 时,LdpcRemain= 11 ;当码长Lldpc= 1296 时,LdpcRemain= 6 ;当码长Lldpc =1944时,LdpcRemain= 1 ;j为第i行中的每个非元素在该行所有非元素中的 索引,n为第i行第j个非元素在校验矩阵中的列索引。
7. 根据权利要求6所述的方法,其特征在于,计算与校验矩阵的每行对应的校验节点 向量r子向量的方式为: 将与校验矩阵每行对应的临时变量向量t子向量写成VUpdjOTtogth(v)行和W* |列的 矩阵Tv,其中,所述矩阵1;的每一行为所述临时变量向量t子向量中与元素Hu对应的子向 量,列数不够时进行补位; 对所述矩阵Tv进行最值分配,得到最值变量向量m子向量矩阵Mv; 根据所述矩阵Tv计算中间变量向量s子向量矩阵Sv; 根据所述矩阵Mv和所述矩阵Sv中索引值相同的元素,确定一中间矩阵Rv'中相应索引 值的元素取值;其中,若矩阵Sv中的任一元素小于0,则取该任一元素的补数并与该任一元 素相加,将相加结果作为矩阵&'中与所述任一元素索引值相同的元素的取值;若矩阵Sv* 的任一元素等于0,则将该任一元素与0相加,将相加结果作为矩阵Rv中与所述任一元素索 引值相同的元素的取值;若矩阵Sv中的任一元素>0,则在矩阵^中取与所述任一元素索引 值相同的元素与所述任一元素相加,将相加结果作为矩阵&中与所述任一元素索引值相同 的元素的取值;所述比较和相加的操作通过SMD的方式进行; 通过SIMD方式将所述矩阵Rv'与矩阵Tv中索引值相同的元素相减,将结果作为校验节 点向量r子向量矩阵Rv中相同索引值的元素取值;将所述矩阵Rv中每行的前Z个元素按照 行优先的方式依次读出组成校验节点向量r子向量。
8. 根据权利要求7所述的方法,其特征在于,所述进行最值分配包括: 通过SIMD的方式确定所述矩阵1;中每一列的最小值和次小值以及最小值对应的行索 弓丨;将得到的最小值和次小值进行修正,均减去预设的修正值0,当修正后的最小值和次 小值小于〇时,将其设置为〇,否则保持不变; 根据所述矩阵1中每一列的当前最小值、次小值和最小值对应的行索引,构造最值变 量向量m子向量矩阵…中相同索引的列,其中,在Mv的任一列中,将与当前最小值对应相同 行索引的元素设置为确定出的最小值,将其余元素设置为次小值。
9. 根据权利要求8所述的方法,其特征在于,所述通过SIMD的方式确定每一列的最小 值和次小值以及相应的行索引的方式包括: 将所述矩阵Tv的每一行元素分成|个子块,每个子块包括W个基本单位;在比较所 W 述矩阵Tv中任意两行的元素时,通过SMD的方式一次性比较W个基本单位。
10. 根据权利要求7所述的方法,其特征在于,所述计算中间变量向量s子向量矩阵Sv 包括: 对于矩阵1中的每一列,将该列所有元素进行异或操作,再将结果与第i'行的元素异 或后与0x7f进行或操作,将或操作结果作为中间向量矩阵Sv中相同索引列的第i'行元素; 其中,将所述矩阵Tv的每一行元素分成#个子块,每个子块包括W个基本单位,在进行异 或/或操作时,通过SIMD的方式一次性执行W个基本单位的异或/或操作。
11. 根据权利要求6所述的方法,其特征在于,计算与Hu对应的变量节点向量q子向 量包括: 确定Hu对应的向量起始位置Z*(n-1)+H,通过SMD方式将Hy对应的临时变量向 量t子向量与Hu对应的校验节点向量r子向量相加,将结果向量中所述起始位置起长度 2^ -11 为^^或5的数据通过SIMD的方式拷贝到与Hu对应的变量节点向量q子向量的开 头;在Hi;n尹0、H"关'且(Z-HJmodW关0时,确定矩阵MWpeAssemblel中与校验矩阵元素 Hi;」对应行中各个元素的取值
并将与元素Hu对应的 当前向量q的子向量中索引号为
勺各个元素依次拷 贝到与Hu对应的变量节点向量q子向量的当前位置上; 确定每个元素Hu对应的第二向量起始位置Mu_ffsrt2,将所述第二向量起始位置起长 度为0或-1的数据通过SIMD的方式拷贝到与Hu对应的变量节点向量q子向量的 当前位置上; 根据LdpcRemain指示的补位个数,按照MWpeAssemblel中与校验矩阵元素Hi;』对应行中元 素的取值进行补位。
12. 根据权利要求6到11中任一所述的方法,其特征在于,预先计算并保存每个元素 I」对应的向量起始位置Z* (n-1)+H和第二向量起始位置M Ldpc0ffset2、 矩阵 、校验 矩阵中每行非元素的个数构成的向量。―、M_eAssemblel、LdpcRemain。
【专利摘要】本申请公开了一种LDPC编码方法,确定向量p1和p2,并得到编码结果向量;确定向量p1和p2时任一矩阵与任一向量的相乘处理包括:将任一矩阵的每一行作为一个线程,进行该矩阵相应行与任一向量的相乘,并将所有行的相乘结果构成结果向量;任一矩阵的每一行与任一向量的相乘操作包括:确定矩阵第i行的每个元素j对应的向量起始位置,将任一向量中从该起始位置起Z-Ai,j长度的数据通过单指令多数据流的方式进行左移位,并将起始位置开始的前Ai,j长度的数据移至左移位后的数据之后,得到元素j对应的向量移位结果;再将每个元素的向量移位结果相加。通过上述方法,利用多线程和SIMD的处理,能够在通用处理器中提高编码速度。
【IPC分类】H03M13-11
【公开号】CN104617959
【申请号】CN201510026526
【发明人】牛凯, 贺志强, 张竟意
【申请人】北京邮电大学
【公开日】2015年5月13日
【申请日】2015年1月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1