【技术实现步骤摘要】
一种基于通用处理器的LDPC编译码方法
本申请涉及LDPC编译码技术,特别涉及一种基于通用处理器的LDPC编译码方法。
技术介绍
LDPC码,是一种码长较大的线性分组码。其校验矩阵也较大,并且校验矩阵中的非零元素很少,即“1”的个数很少,故称低密度。在实现IEEE802.11n无线局域网传输协议的过程中,需使用到LDPC编译码技术,依协议要求,其中LDPCPPDU(PresentationProtocolDataUnit,表示层协议数据单元)的生成过程如下,参见图1:(1)计算缩短比特位(1a)计算可用比特数Navbits,公式为:Npld=length×8+16,其中,如果有STBC(Space-timeblockcode)预编码,则标志位mSTBC为2,否则为1;NCBPS表示每个符号的编码比特数;length表示PSDU(presentationServiceDataUnit)的字节数,即为信息比特位的字节数;Npld表示PSDU和SERVICEFIELD的总的比特数;R表示编码码率。(1b)计算LDPC码字个数NCW和码长LLDPC当Navbits≤648时,码字个数NCW为1,且如果Navbits≥Npld+912×(1-R)时,码长LLDPC为1296,否则码长LLDPC为648;当648<Navbits≤1296时,码字个数NCW为1,且如果Navbits≥Npld+1464×(1-R)时,码长LLDPC为1944,否则码长LLDPC为1296;当1296<Navbits≤1944时,码字个数NCW为1,此时码长LLDPC为194 ...
【技术保护点】
一种基于通用处理器的LDPC编码方法,包括:通过信号采集或接收获取待编码的信号向量S,确定校验矩阵H及其分块矩阵A、B、D、E、F和T,并进行保存;根据p1T=(ET-1A+F)STp2T=T-1(AST+Bp1T)]]>确定向量p1和p2,并得到LDPC的编码结果向量c=(S,p1,p2);其特征在于,所述确定向量p1和p2时进行的任一矩阵与任一向量的相乘处理包括:将所述任一矩阵的每一行作为一个线程,进行该矩阵的相应行与所述任一向量的相乘操作,并将所有行的相乘结果组合在一起构成结果向量;其中,所述任一矩阵的每一行与所述任一向量的相乘操作包括:确定矩阵当前第i行的每个元素j对应的向量起始位置=所述任一向量的起始位置+Ai,j+(j‑1)*Z,将所述任一向量中从所述起始位置起Z‑Ai,j长度的数据通过单指令多数据流SIMD的方式进行左移位,并将所述起始位置开始的前Ai,j长度的数据移至左移位后的数据之后,得到所述元素j对应的向量移位结果;再将每个元素对应的向量移位结果相加,作为所述每一行与所述任一向量的相乘结果;所述SIMD的方式中,将从所述起始位置起Z‑Ai,j长度的数据以长度W为单位 ...
【技术特征摘要】
1.一种基于通用处理器的LDPC编码方法,包括:通过信号采集或接收获取待编码的信号向量S,确定校验矩阵H及其分块矩阵A、B、D、E、F和T,并进行保存;根据确定向量p1和p2,并得到LDPC的编码结果向量c=(S,p1,p2);其特征在于,所述确定向量p1和p2时进行的任一矩阵与任一向量的相乘处理包括:将所述任一矩阵的每一行作为一个线程,进行该矩阵的相应行与所述任一向量的相乘操作,并将所有行的相乘结果组合在一起构成结果向量;其中,所述任一矩阵的每一行与所述任一向量的相乘操作包括:确定矩阵当前第i行的每个元素j对应的向量起始位置=所述任一向量的起始位置+Ai,j+(j-1)*Z,将所述任一向量中从所述起始位置起Z-Ai,j长度的数据通过单指令多数据流SIMD的方式进行左移位,并将所述起始位置开始的前Ai,j长度的数据移至左移位后的数据之后,得到所述元素j对应的向量移位结果;再将每个元素对应的向量移位结果相加,作为所述每一行与所述任一向量的相乘结果;所述SIMD的方式中,将从所述起始位置起Z-Ai,j长度的数据以长度W为单位划分成段,对段数据并行进行左移位操作,再将剩余的(Z-Ai,j)modW长度的数据进行左移位操作;Z为所述校验矩阵中的一个元素代表的子矩阵大小。2.根据权利要求1所述的方法,其特征在于,当所述任一矩阵为T-1时,所述T-1的每一行与相应向量的相乘操作时,仅进行T-1取值为0的元素与相应向量的相乘,得到该取值为0元素对应的向量移位结果,将其余元素对应的向量移位结果设置为零向量;再将每个元素对应的向量移位结果相加,作为所述每一行与所述任一向量的相乘结果。3.根据权利要求1或2所述的方法,其特征在于,对W段数据同时进行左移位操作后取前Z个数据为有效数据。4.根据权利要求1或2所述的方法,其特征在于,所述将每个元素对应的向量移位结果相加包括:将每个元素对应的向量移位结果以长度W为单位划分成段,通过SIMD对段数据并行进行相加操作,再将剩余的(Z-Ai,j)modW长度的数据进行相加操作。5.根据权利要求1或2所述的方法,其特征在于,所述矩阵A、B、D、E、F和T-1通过线性查找表进行保存。6.一种基于通用处理器的LDPC译码方法,包括:接收已编码的LDPC码字信号c,确定校验矩阵H;通过多次迭代计算变量节点向量q作为译码结果,每次迭代时,根据当前的变量节点向量q和校验节点向量r计算临时变量向量为并根据所述临时变量向量t更新校验节点向量r,再根据校验节点向量r和临时变量向量t更新变量节点向量q为初次迭代时,将码字信号c作为变量节点向量q,将校验节点向量r设为0;其特征在于,每次迭代计算临时变量向量t、校验节点向量r和变量节点向量q时,以校验矩阵的每一行作为一个线程进行运算和更新,得到与每行相对应的向量t、q和r中索引号从的子向量;其中,i为校验矩阵的行索引,对应所述校验矩阵的第i行计算临时变量向量t、校验节点向量r和变量节点向量q对应的子向量时,根据校验矩阵该行的每个非“-”元素Hi,j对应计算向量t、q和r中与元素Hi,j对应的索引号从的子向量,再依次进行连接得到与每行相应的子向量,i=1时,令VLdpcRowLength(v)为所述校验矩阵中每行非“-”元素的个数;计算与Hi,j对应的临时变量向量t子向量的方式为:确定Hi,j对应的向量起始位置Z*(n-1)+Hi,n,将第i行对应的向量q子向量中所述起始位置起长度为或6的数据通过SIMD的方式拷贝到与Hi,j对应的临时变量向量t子向量的开头;在Hi,n≠0、Hi,n≠'-'且(Z-Hi,n)modW≠0时,确定矩阵MLdpcAssemble1中与校验矩阵元素Hi,j对应行中各个元素的取值并将与元素Hi,j对应的当前向量q的子向量中索引号为的各个元素依次拷贝到与Hi,j对应的临时变量向量t子向量的当前位置上;再确定每个元素Hi,j对应的第二向量起始位置MLdpcOffset2,将所述第二向量起始位置起长度为的数据通过SIMD的方式拷贝到与Hi,j对应的临时变量向量t子向量的当前位置上;取与Hi,j对应的临时变量向量t子向量中的前Z位并取绝对值作为与Hi,j对应的临时变量向量t的有效子向量;其中,MLdpcAssemble1为根据所述校验矩阵计算出的补足偏移量标志位之一,MLdpcOffset2为根据所述校验矩阵计算出的循环偏移量之一;当Hi,n≠0、Hi,n≠'-'且(Z-Hi,n)modW≠0时,当Hi,n=0或Hi,n='-'或(Z-Hi,n)modW=0时,(MLdpcOffset2)i,j=Z*(n-1);K为通用处理器一次可处理数据量大小,k为SIMD处理的基础单位...
【专利技术属性】
技术研发人员:牛凯,贺志强,张竟意,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。