CN112838872B - 卫星导航用ldpc码译码方法、译码器及接收机 - Google Patents
卫星导航用ldpc码译码方法、译码器及接收机 Download PDFInfo
- Publication number
- CN112838872B CN112838872B CN201911166138.8A CN201911166138A CN112838872B CN 112838872 B CN112838872 B CN 112838872B CN 201911166138 A CN201911166138 A CN 201911166138A CN 112838872 B CN112838872 B CN 112838872B
- Authority
- CN
- China
- Prior art keywords
- vector
- error correction
- sequence
- vectors
- hard decision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000013598 vector Substances 0.000 claims abstract description 354
- 238000012937 correction Methods 0.000 claims abstract description 86
- 238000012360 testing method Methods 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 15
- 208000011580 syndromic disease Diseases 0.000 claims description 11
- 238000003491 array Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 8
- 238000009432 framing Methods 0.000 description 6
- 108091026890 Coding region Proteins 0.000 description 5
- 238000012795 verification Methods 0.000 description 3
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供卫星导航用LDPC码译码方法、译码器及接收机,以实现对64进制LDPC码进行译码。上述方法包括:获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量;对接收序列向量中的每一接收值进行硬判决,得到硬判决向量;从接收序列向量的前N/2个位置中确定τ个目标位置;τ为正整数,且τ≤N/2;根据τ个目标位置,生成测试向量;其中,测试向量的长度为N/2,测试向量在τ个目标位置中的任一位置取值为0或者1;在测试向量中,取值为1的位置总数不超过μ,μ≤τ;使用测试向量对硬判决向量进行纠错处理,得到纠错结果;输出纠错结果作为译码结果。
Description
技术领域
本发明涉及信息安全领域,特别涉及卫星导航用LDPC码译码方法、译码器及接收机。
背景技术
LDPC(low-density parity-check,LDPC)码是一类由稀疏校验矩阵定义的线性分组码,在数字通信和存储等系统得到了广泛应用。LDPC码可以分为二进制LDPC码和多进制LDPC码两大类。其中,二进制LDPC码是基于二元域GF(2)构造的,多进制LDPC码是基于多元域GF(q)(q>2,称为q进制码)构造的。
在下一代北斗卫星导航系统中,三组64进制LDPC码分别应用于B1C和B2a信号中,以提高电文数据比特的准确率。其中,B1C信号的子帧2采用64进制LDPC(200,100)编码方案,子帧3采用64进制LDPC(88,44)编码方案,B2a信号采用64进制LDPC(96,48)编码方案。
图1a为北斗导航系统中的电文接收过程示意图。
从图1a中可以看出,在接收序列流程101中,分别对每个编码后的电文比特对应的跟踪通道的累加输出值进行接收,并形成与每个LDPC码字相对应的接收序列;
在64进制LDPC译码流程102中,会根据每个LDPC码字对应的接收序列进行LDPC译码,得到信息符号向量的估计,并且转换为对应的二进制序列;
在CRC校验流程103中,将LDPC译码估计的信息符号对应的二进制序列进行CRC校验。若校验通过,则将电文序列保存,否则将电文序列丢弃。
在上述步骤中,LDPC译码较为关键。如何实现对上述几组LDPC码的译码,是一个十分关键的问题。
发明内容
有鉴于此,本发明提供卫星导航用LDPC码译码方法、译码器及接收机,以实现对64进制LDPC码进行译码。
为了实现上述发明目的,本发明提供以下技术方案:
一种卫星导航用LDPC码译码方法,包括:
获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量;
对所述接收序列向量中的每一接收值进行硬判决,得到硬判决向量;
从所述接收序列向量的前N/2个位置中确定τ个目标位置;所述目标位置上的接收值可靠性最低;τ为正整数,且τ≤N/2;
根据所述τ个目标位置,生成测试向量;其中,所述测试向量的长度为N/2,所述测试向量在所述τ个目标位置中的任一位置取值为0或者1;在所述测试向量中,取值为1的位置总数不超过μ,μ≤τ;
使用所述测试向量对所述硬判决向量进行纠错处理,得到纠错结果;
输出所述纠错结果作为译码结果。
可选的,在执行所述从所述接收序列向量的前N/2个位置中确定τ个目标位置的步骤之前,还包括:
将所述硬判决序列向量转换为64进制符号向量v;
对所述64进制符号向量v进行LDPC校验;
所述从所述接收序列向量的前N/2个位置中确定τ个目标位置及后续步骤,是在判定LDPC校验未通过后执行的。
可选的,所述硬判决向量包括N个硬判决结果,其中,前N/2个硬判决结果组成信息序列向量x';所述测试向量数量为f个;任一所述测试向量表示为测试向量t(i),i大于等于1,小于等于f;
所述纠错处理包括:将所述信息序列向量x'与所述测试向量t(i)逐一进行模2和运算,得到长度为N/2的纠错向量w(i);
将所述纠错向量w(i)划分为信息子向量y(i)和校验子向量z(i);其中,所述信息子向量y(i)包括所述纠错向量w(i)中的前N/2-n个比特,所述校验子向量z(i)包括所述纠错向量w(i)的最后n个比特;n为所述接收序列向量中CRC校验序列的长度;
使用所述信息子向量y(i)计算得到n比特的校验向量;
将计算得到的校验向量与所述校验子向量z(i)进行比对,若比对一致,保存所述纠错向量w(i);否则,丢弃所述纠错向量w(i)。
可选的,保存下来的纠错向量的总数量为g;若g=1,所述纠错结果包括所述保存下来的纠错向量。
可选的,若g>1,所述纠错处理还包括:将保存下的g个纠错向量分别转换为信息符号向量,得到g个信息符号向量;所述g个信息符号向量中的每一数据符号为有限域GF(64)中的元素;对所述g个信息符号向量分别进行LDPC编码,得到g个码字向量;计算所述g个码字向量对应的二进制向量与所述接收序列向量的相关性;其中,所述纠错结果包括相关性最大的二进制向量所对应的纠错向量。
可选的,所述计算所述g个码字向量对应的二进制向量与所述接收序列向量的相关性包括:计算所述二进制向量与所述接收序列向量的相关值;所述相关值用于表征所述相关性。
可选的,g=0时,表征译码失败;所述方法还包括:丢弃接收到的导航电文数据。
可选的,所述g个信息符号向量中的任一信息符号向量表示为d(j);j大于等于1小于等于g;对所述g个信息符号向量中的任一信息符号向量进行的LDPC编码包括:使用所述信息符号向量d(j)与第一级编码数组进行第一级编码处理,得到长度为L的第一级编码向量;所述第一级编码数组的维数为L×a,所述a为不大于2的正整数;L=N/12;使用所述第一级编码向量与第二级编码数组进行第二级编码处理,得到校验符号向量p(j);所述第二级编码数组的维数为b×1,所述b为不大于L的正整数;所述校验符号向量p(j)中的每一数据符号为所述有限域GF(64)中的元素;将所述信息符号向量d(j)和所述校验符号向量p(j)组成码字向量。
一种译码器,包括:
接收序列模块,用于:
获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量;
硬判决模块,用于:
对所述接收序列向量中的每一接收值进行硬判决,得到硬判决向量;
纠错模块,用于:
从所述接收序列向量的前N/2个位置中确定τ个目标位置;所述目标位置上的接收值可靠性最低;τ为正整数,且τ≤N/2;
根据所述τ个目标位置,生成测试向量;其中,所述测试向量的长度为N/2,所述测试向量在所述τ个目标位置中的任一位置取值为0或者1;在所述测试向量中,取值为1的位置总数不超过μ,μ≤τ;
使用所述测试向量对所述硬判决向量进行纠错处理;
输出纠错结果为译码结果。
一种导航接收机,包括上述的译码器。
可见,在本发明实施例中,在得到硬判决向量后,会从硬判决向量的信息序列向量中确定可靠性最低的τ个目标位置,根据这τ个目标位置,生成测试向量,再使用测试向量对硬判决向量进行纠错处理,得到纠错结果作为译码结果,实现了64进制LDPC码的译码。
附图说明
图1a为北斗导航系统中的电文接收过程示意图;
图1b为本发明实施例提供的北斗卫星导航系统中的电文组帧过程示意图;
图2a为本发明实施例提供的卫星导航接收机的结构示意图;
图2b为本发明实施例提供的译码器的结构示意图;
图2c为本发明实施例提供的译码器的另一结构示意图;
图3为本发明实施例提供的译码方法的示例性流程图;
图4a为本发明实施例提供的译码方法的另一示例性流程图;
图4b为本发明实施例提供的CRC校验的示例性流程图;
图5为本发明实施例提供的纠错处理的示例性流程图;
图6为本发明实施例提供的译码方法的另一示例性流程图;
图7为本发明实施例提供的编码方法的示例性流程图;
图8为本发明实施例提供的计算第一级编码向量y的示例性流程图;
图9a、图9b、图9c为本发明实施例提供的计算校验符号向量p的示例性流程图;
图10a、图11a、图12a为本发明实施例提供的三组64进制LDPC码对应的P1数组;
图10b、图11b、图12b为本发明实施例提供的三组64进制LDPC码对应的A数组;
图10c、图11c、图12c为本发明实施例提供的三组64进制LDPC码对应的B数组;
图10d、图11d、图12d为本发明实施例提供的三组64进制LDPC码对应的P2数组。
具体实施方式
在介绍本发明实施例之前,先简要介绍北斗导航系统中的电文组帧过程和电文接收过程示意图。
图1b为本发明实施例提供的北斗卫星导航系统中的电文组帧过程示意图。从图1b中可以看出,原始电文信息序列经CRC校验单元11后得到待LDPC编码的序列(简称编码序列)。
其原理如下:
在北斗导航系统中,CRC校验的方式为CRC-24Q,生成多项式为:
g(x)=(1+x)p(x)
其中,p(x)表示g(x)除以1+x后的多项式。
p(x)=x23+x17+x13+x12+x11+x9+x8+x7+x5+x3+1。
假定原始电文信息序列为:m1,…,mk(也即长度为k),其对应的多项式:
m(x)=m1xk-1+m2xk-2+…+mk-1x+mk
用多项式x24m(x)除以g(x),余式为:
r(x)=r1x23+r2x22+…+r23x+r24
则系数r1,…,r24依次构成CRC校验序列。
也即,编码序列包括原始电文信息序列和CRC校验序列。
在北斗导航系统中,B1C信号的子帧2和子帧3以及B2a信号均采用了64进制LDPC编码。其中,B1C信号的子帧2的编码序列长度为600比特,B1C信号的子帧3的编码序列长度为264比特,B2a信号的编码序列长度为288比特。
在完成CRC编码后,64进制LDPC编码单元12对上述待进行LDPC编码的序列进行编码,具体方法为:将信息序列6比特一组,转化为一个信息符号,最终形成64进制信息符号向量d(也即,若编码序列长度为N',则信息符号向量d长度为N'/6)。
对于B1C信号的子帧2和子帧3,信息符号向量长度分别为100和44。对于B2a信号,信息符号向量长度为48。信息符号向量中的每个数据符号可以看作有限域GF(64)中的元素。GF(64)是二元域GF(2)的扩域,由GF(2)上的本原多项式p(x)=1+x+x6生成。GF(64)中的元素可用0,1,2,…,63表示,这些元素与6比特二进制向量存在一一对应关系(高位在前,低位在后)。例如,元素2对应6比特二进制向量[0 0 0 0 1 0]。
然后分别采用1/2码率的64进制LDPC码进行编码。
LDPC编码是计算校验符号向量p,进而形成LDPC码字c=[d,p]。
c满足公式c·HT=0。其中H为64进制LDPC码的校验矩阵,T表示矩阵转置。三组64进制LDPC码的校验矩阵在北斗导航系统信号接口控制文件中分别给出。
完成LDPC编码后,B1C信号的子帧2长度为1200比特,B1C信号的子帧3长度为528比特,B2a信号的长度为576比特。
电文组帧单元13对编码后的比特序列进行组帧,形成发送电文,采用BOC或BPSK调制后发射。
图1a为本发明实施例提供的北斗导航系统中的电文接收过程示意图。
从图1a中可以看出,在接收序列流程101中,分别对每个编码后的电文比特对应的跟踪通道的累加输出值进行接收,并形成与每个LDPC码字相对应的接收序列;
在64进制LDPC译码流程102中,会根据每个LDPC码字对应的接收序列进行LDPC译码,得到信息符号向量的估计,并且转换为对应的二进制序列;
在CRC校验流程103中,将LDPC译码估计的信息符号对应的二进制序列进行CRC校验,校验方式为前面给出的CRC-24Q。若校验通过,则将电文序列保存,否则将电文序列丢弃。
在上述步骤中,复杂度最高的是LDPC译码。本发明实施例则提供卫星导航用LDPC码译码方法、译码器及卫星导航接收机,以实现对64进制LDPC码进行译码。
请参见图2a,卫星导航接收机可包括捕获器2011、跟踪器2022、译码器2033等。
其中,由卫星发送的导航信号被卫星导航接收机捕获后,经信号跟踪、数据解调过程得到LDPC码的码字所对应的接收值,然后输入译码器进行译码,之后,可根据译码结果得到定位所需要的电文信息,以完成定位。
图2b示出了上述译码器的示例性结构,包括:接收序列模块21、硬判决模块22和纠错模块23。
在本发明其他实施例中,仍请参见图2b,上述译码器还可包括缓存24以缓存数据。
在一个示例中,请参见图2c,上述纠错模块23可进一步包括:位置选择模块201、测试向量生成模块202、CRC校验模块203、LDPC编码模块204和码字选择输出模块205。
下面,将介绍上述译码器所执行的译码方法。
图3示出了上述译码方法的一种示例性流程,其至少可包括如下步骤:
S31:获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量r。
上述接收值可由卫星导航接收机中的跟踪器2022输出至译码器2033。
更具体的,可由图2b、图2c中的接收序列模块21接收上述接收值。
具体的,接收序列模块21对序列中的每个比特对应的跟踪通道的累加输出值进行接收并且存入缓存,形成接收序列向量r=[r1,r2,…,rN]。
其中,N的数值与编码后的码字向量对应的二进制向量的长度相同。对于B1C信号的子帧2,N=1200,对于B1C信号的子帧3,N=528,对于B2a信号,N=576。
S32:对上述接收值进行硬判决,得到硬判决向量。
上述硬判决向量长度与码字的总长度相同,在本发明中,均为N。可使用x表示硬判决向量。
具体的,可由图2b、图2c中的硬判决模块22根据缓存中的缓存值(也即接收序列向量)对每个比特进行硬判决,判决方法为将累加输出值ri与设定的门限值进行比较,若超过门限值,则对应的比特xi判决为1,否则,对应的比特xi判决为0。完成判决后,将硬判决结果依次存入缓存,形成硬判决序列向量x=[x1,x2,…,xN]。
其中,前半部分向量x'=[x1,x2,…,xN/2]对应于信息序列,后半部分向量x"=[xN/2+1,xN/2+2,…,xN]对应于校验序列。
上述判决方法为通用硬判决方法,在此不作赘述。
S33:从接收序列向量的前N/2个位置中确定τ个目标位置,记为p1,p2,…,pτ,在这τ个目标位置上的接收值可靠性最低,因此,这τ个目标位置也可称为不可靠位置。
τ为正整数,且τ≤N/2。
在一个示例中,可通过下述方式确定τ个目标位置:
对前N/2个位置上的接收值的绝对值(|r1|,|r2|,…,|rN/2|)按照从小到大进行排序,选择其中最小的τ个接收值所对应的位置作为τ个目标位置。也即,接收值的绝对值越小,其可靠性越低。
举例来讲,假定N/2=600,τ=2,则对|r1|,|r2|,…,|r600|按照从小到大进行排序,选择其中最小的2个接收值所对应的位置作为目标位置。假定|r1|和|r600|最小,则第1和第600个位置为目标位置。
可由前述的纠错模块23或者位置选择模块201执行步骤S33。
步骤S33可简称为“位置选择”操作。
S34:根据上述τ个目标位置,生成测试向量。
可由前述的纠错模块23或者测试向量生成模块202执行步骤S34。
具体的,可根据位置p1,p2,…,pτ,生成一组测试向量,每一测试向量的长度为N/2。
测试向量在上述τ个位置中的每个位置取值为0或者1,并且取值为1的位置总数不超过μ,其余位置均为0,其中μ≤τ为预先设置的正整数。
所生成的测试向量的数量为f个,
其中,至为组合数,以为例,
任一测试向量表示为测试向量t(i),i大于等于1,小于等于f。
再举个更具体的例子,当N=1200,τ=3,μ=1时,f=4,假定选择的τ个目标位置为接收序列向量的最前面的3个位置,则测试向量示例性的可为如下4个长度为600的向量:
t(1)=[0,0,0,0,…,0]t(2)=[1,0,0,0,…,0]
t(3)=[0,1,0,0,…,0]t(4)=[0,0,1,0,…,0]
步骤S34可简称为“测试向量生成”操作。
S35:使用测试向量对硬判决向量进行纠错处理,得到纠错结果。
可由前述的纠错模块23执行步骤S35。本文后续将详细介绍如何进行纠错。
S36:输出纠错结果作为译码结果。
可由前述的纠错模块23执行步骤S36。
在本发明实施例中,在得到硬判决向量后,会从硬判决向量的信息序列向量中确定可靠性最低的τ个目标位置,根据这τ个目标位置,生成测试向量,再使用测试向量对硬判决向量进行纠错处理,得到纠错结果作为译码结果,实现了64进制LDPC码的译码。
在执行上述步骤S33之前,请参见图4a,在本发明其他实施例中,还可进行如下操作:
S401:将硬判决序列向量x转换为64进制符号向量v;
S402:对64进制符号向量v进行LDPC校验,若校验通过,输出硬判决序列向量x,否则,进入步骤S33,对硬判决序列向量x进行纠错。
其中,LDPC校验包括:判断v·HT=0是否成立。
若成立,则校验通过,直接结束不纠错译码。若不成立,则校验不通过,进行纠错译码。
其中,H为64进制LDPC码的校验矩阵,T表示矩阵转置。三组64进制LDPC码的校验矩阵在北斗导航系统信号接口控制文件中分别给出。
下面将详细介绍如何进行纠错。
请参见图4b,由前述纠错模块所执行的纠错处理过程可包括:
S41:将信息序列向量x'与测试向量t(i)逐一进行模2和运算,得到长度为N/2的纠错向量w(i);
在一个示例中,可由前述的CRC校验模块203执行步骤S41。
该步骤尝试用不同的测试向量对信息序列向量x'进行纠错。
可使用下述公式表示信息序列向量x'与测试向量t(i)逐一进行模2和运算:
w(i)=x'+t(i)
其中,“+”表示模2和运算。
S42:将纠错向量w(i)划分为信息子向量y(i)和校验子向量z(i);
在一个示例中,可仍由CRC校验模块203执行步骤S42,将纠错向量w(i)分为两部分:w(i)=[y(i),z(i)]。
其中,信息子向量y(i)包括纠错向量w(i)中的前N/2-n个比特,校验子向量z(i)包括所述纠错向量w(i)的最后n个比特,n为所述接收序列向量中CRC校验序列的长度。
由于在编码过程中,CRC校验方式为CRC-24Q,则n=24。
对于B1C信号的子帧2,N=1200,信息子向量y(i)包括576比特,对于B1C信号的子帧3,N=528,信息子向量y(i)包括504比特,对于B2a信号,N=576,信息子向量y(i)包括552比特。
S43:使用信息子向量y(i)计算得到n比特的校验向量;
在一个示例中,可仍由CRC校验模块203执行步骤S43。具体的,CRC校验模块203将子向量y(i)进行CRC24-Q计算,得到24比特的校验向量。
S44:将计算得到的校验向量与所述校验子向量z(i)进行比对,若比对一致,进入S45,否则,进入S46。
S45:保存纠错向量w(i);
S46:丢弃纠错向量w(i)。
在一个示例中,可仍由CRC校验模块203执行步骤S44-S46。其实现的是:CRC校验模块203将计算得到的比特校验向量与z(i)进行比较,若完全相同,则CRC校验成功,将w(i)保存;否则CRC校验失败,将w(i)丢弃。
其原理如下:在纠错向量w(i)中,前N/2-n个比特对应电文组帧过程中的原始电文信息序列,后n个比特对应CRC校验序列。
在电文组帧过程中,CRC校验序列是经原始电文信息序列计算得到的。
假定与包含原始电文信息序列和CRC校验序列的编码序列相对比,纠错向量w(i)中的每一比特都正确,那么,其前N/2-n个比特经CRC24-Q计算得到的校验向量,与最后n比特应该是逐比特相等的。
因此,若计算得到的校验向量与所述校验子向量z(i)不一致,则能确定纠错尝试未成功,可丢弃w(i)。
S41-S46在本实施例中可简称CRC校验操作。
在使用f个测试向量都进行一次CRC校验操作后,保存下来的纠错向量的总数为g。
此时可分下述几种情况:
情况一:g=0,这表征译码失败,此时可丢弃接收到的导航电文数据,等待接收下一组导航电文数据或下一帧导航电文数据。
情况二:g=1,纠错结果包括保存下来的纠错向量,或者,纠错向量中的信息子向量。
情况三:g>1。
请参见图5,可进行如下纠错处理:
S51:将保存下的g个纠错向量分别转换为信息符号向量,得到g个信息符号向量。
在一个示例中,可由前述的LDPC编码模块204执行步骤S51。
对于每一纠错硬判决向量,LDPC编码模块204以6比特一组,转化为信息符号,形成相应的64进制的信息符号向量。其中,g个信息符号向量中的每一数据符号为有限域GF(64)中的元素。
S52:对g个信息符号向量分别进行LDPC编码,得到g个码字向量;
在一个示例中,可由前述的LDPC编码模块204执行步骤S52。
假定g个纠错向量(二进制向量)对应的64进制信息符号向量分别为d(1),…,d(g)。对d(1),…,d(g)中的每个向量分别进行64进制LDPC编码,得到满足北斗导航系统信号接口控制文件中给出的校验矩阵定义的64进制LDPC码的码字向量c(1),…,c(g)。
其中,任一码字向量c(j)满足公式:c(j)·HT=0,j大于等于1小于等于g。
可采用现有的LDPC编码方式进行编码,也可采用本发明后续实施例所提供的LDPC编码方式进行编码。
S51-S52可简称为LDPC编码操作。
S53:计算g个码字向量对应的二进制向量与接收序列向量r的相关性;
在一个示例中,可由码字选择输出模块205执行步骤S53和下述步骤S54。
码字选择输出模块205可采用多种计算方式计算相关性,例如,计算两向量间的欧几里得距离,使用欧几里得距离表示二者的相关性。
再例如,可计算两向量间的相关值,使用相关值作为相关性。
可通过如下方式计算相关值:
将g个码字向量中的任一码字向量所对应的二进制向量记为向量b(j),向量b(j)的长度为N;
使用下述公式计算向量b(j)与接收序列向量的相关值m(j):
其中,m(j)表示相关值,r(i′)和b(j)(i′)分别为接收序列向量r和向量b(j)的第i'个元素,求和在实数域上进行。
由于有g个码字向量,则最后计算得到g个相关值。
S54:将相关性最大的二进制向量所对应的纠错向量作为纠错结果(即译码结果)。
沿用前述的计算相关值作为相关性,记m(J)为m(j)中的最大值,则译码输出结果为m(J)对应的纠错向量。
情况一至情况三的处理可称为码字选择输出操作。
整个流程可参见图6。
下面介绍如何对g个信息符号向量中的任一信息符号向量(记作信息符号向量d)进行LDPC编码。
请参见图7,其可包括如下流程:
S1:使用信息符号向量d与第一级编码数组进行第一级编码处理,得到长度为L的第一级编码向量y。
第一级编码数组的维数为L×a(a为不大于2的正整数)。
在一个示例中,第一级编码数组可包括:
维数为L×2的位置索引数组I(简称为数组I或I数组);
维数为L×1的第一排序表数组P1(简称为数组P1或P1数组);
维数为L×2的第一有限域数组E(简称为数组E或E数组)。
其中,位置索引数组I和第一排序表数组P1中的每一元素取值范围为1至L;第一有限域数组中的元素为有限域GF(64)中的元素。
本文后续还将详细介绍如何使用I数组、P1数组和E数组进行第一级编码处理,得到长度为L的第一级编码向量。
S2:使用第一级编码向量与第二级编码数组进行第二级编码处理,得到校验符号向量p。
第二级编码数组的维数为b×1(b为不大于L的正整数)。
校验符号向量p中的每一数据符号也为有限域GF(64)中的元素。
在一个示例中,第二级编码数组可包括:
维数为M×1的计数数组g(M为不大于5正整数);
维数为L×1的第二有限域数组A(简称为数组A或A数组);
维数为L×1的第三有限域数组B(简称为数组B或B数组);
维数为L×1的第二排序表数组P2(简称为数组P2或P2数组);
其中,数组A和数组B中的元素为有限域GF(64)中的元素。
本文后续还将详细介绍如何使用上述数组进行第二级编码处理,得到校验符号向量p。
S3:将信息符号向量d和校验符号向量p组成码字向量c。
码字输出模块可将信息符号向量d和校验符号向量p组合形成码字向量c=[d,p],使得c·HT=0成立。
其中H为64进制LDPC码的校验矩阵,T表示矩阵转置。三组64进制LDPC码的校验矩阵在北斗导航系统信号接口控制文件中分别给出。
下面介绍如何计算得到第一级编码向量y。
在一个示例中,可使用下述公式1,计算得到第一级编码向量y:
y(n)=d(I(i,1))·E(i,1)+d(I(i,2))·E(i,2)(公式1)
其中:
运算符号“·”和“+”分别表示有限域GF(64)中元素的乘法运算和加法运算;
i大于等于1,小于等于L;
I(i,1)和I(i,2)分别是I数组的第i行第1列的元素和第i行第2列的元素;
E(i,1)和E(i,2)分别是E数组的第i行第1列的元素和第i行第2列的元素;
y(n)表示第一级编码向量y中的第n个元素,n大于等于1,小于等于L;n=P1(i);P1(i)是第一排序表数组P1中的第i个元素。
三组64进制LDPC码对应的P1数组可参见图10a、图11a、图12a。
以图11a所示P1数组为例,若i=1,则P1(i)=29;y(29)=d(I(1,1))·E(1,1)+d(I(1,2))·E(1,2);若i=2,则P1(i)=7;y(7)=d(I(2,1))·E(2,1)+d(I(2,2))·E(2,2)。以此类推,不作赘述。
请参见图8,计算第一级编码向量y的流程可包括:
步骤A:读取I数组、E数组和P1数组;
可根据不同的LDPC码,相应读取预先储存在ROM中的I数组、E数组和P1数组。
其中,三组64进制LDPC码对应的P1数组可参见图10a、图11a、图11a;
B1C信号的子帧2中的LDPC码对应的I数组和E数组分别由北斗导航系统信号接口控制文件的数组H100200index和H100200element给出。
B1C信号的子帧3中的LDPC码对应的I数组和E数组分别由北斗导航系统信号接口控制文件的数组H44,88,index和H44,88,element给出。
B2a信号中的LDPC码对应的I数组和E数组分别由北斗导航系统信号接口控制文件的数组H48,96,index和H48,96,element给出。
P1数组的读取方式均为按栏从上至下读取,一栏读取完后从左至右继续读取。
在完成读取后,开始计算向量y。
步骤B:初始化向量y,并置i=1。
可将y中的所有元素初始化为0。
步骤C:按照公式(1)进行计算得到y(P1(i))的值。
如何计算请参见前述公式1的介绍,在此不作赘述。
步骤D:判断i是否等于L,若是,进入步骤F,若否,进入步骤E;
步骤E:置i←i+1,返回执行步骤C;
也即,重复上述计算过程,直至i=L,第一级编码计算完成。第一级编码计算结果为向量y,其长度为L,每个元素为GF(64)中的元素。
步骤F:输出向量y。
下面,介绍如何使用第一级编码向量与第二级编码数组进行第二级编码处理,得到校验符号向量p。
在一个示例中,请参见图9a,可分如下步骤计算校验符号向量p:
S91:分M次计算得到长度为L初始校验符号向量r;
其中,第m次计算得到的是初始校验符号向量r中的k个初始校验符号,k=g(m);g(m)表示前述计数数组g中的第m个元素(m大于等于1,小于等于M)。
具体的,对于B1C信号的子帧2,g数组为[68 12 12 8](M=4);对于B1C信号的子帧3,g数组为[10 18 6 6 4](M=5);对于B2a信号,g数组为[24 24](M=2),可见,数组g中的所有元素的总和为等于L。
S92:使用初始校验符号向量r计算得到校验符号向量p。
下面介绍第m次计算校验符号向量p中的校验符号的过程,请参见图9b,其可包括如下步骤:
S911:依次从第二有限域数组A、第三有限域数组B以及第一级编码向量y中分别读取k个连续的元素。
以B1C信号的子帧2对应的g数组为例,当m=1时,k=68;当m=2时,k=12;当m=3时,k=12;当m=4时,k=8。
可将从数组A中读取出的k个连续的元素所构成的向量记为向量a;
将从数组B中读取出的k个连续的元素中的第j个元素记为b(j)(j大于等于1,小于等于k);
将从第一级编码向量y中读取出的k个连续的元素所构成的向量记为向量w。
S912:使用向量a计算长度为k的第一中间校验符号向量s。
在一个示例中,可使用公式s(j)=[a(j)]-1·b(j),计算第一中间校验符号向量s;
其中,s(j)表示第一中间校验符号向量s中的第j个元素,[a(j)]-1表示向量a中第j个元素的逆元。
S913:使用向量w和第一中间校验符号向量s,计算长度为k的第二中间校验符号向量z;
在一个示例中,可将向量z中的第j个元素记为z(j),将向量w中的第j个元素记为w(j),则可通过下式计算向量z:
z(1)=w(1);
z(j)=s(j-1)·z(j-1)+w(j)。
S914:使用第一中间校验符号向量s和第二中间校验符号向量z,计算初始校验符号向量r中的k个初始校验符号。
可将k个初始校验符号中第j个元素记为x(j)。
在一个示例中,可采用如下计算公式计算k个初始校验符号:
x(1)=z(1)+s(k)·x(k);
其中,“·”和“+”分别表示有限域GF(64)中元素的乘法运算和加法运算。
三组LDPC码对应的A数组可参见图10b、图11b、图11b,B数组可参见图10c、图11c、图12c,P2数组可参见图10d、图11d、图12d。
下面,以一个更详细的例子介绍如何计算校验符号向量p。请参见图9c,其可包括如下步骤:
步骤a:读取A数组、B数组和P2数组,输入第一级编码向量y。
其中,A数组、B数组和P2数组的读取方式均为按栏从上至下读取,一栏读取完后从左至右继续读取。
步骤b:置m=1,初始化向量p和向量r。
第二级编码模块可将向量p和向量r的所有元素初始化为0。
步骤c:令k=g(m)。
g(m)表示前述计数数组g中的第m个元素(m大于等于1,小于等于M)。
步骤d:依次从A数组、B数组和y数组中读取k个连续的元素分别记为a(j)、b(j)和w(j)。
其中j=1,2,…,k。
步骤e:计算长度为k的向量s。
其中:
s(j) = [a(j)]-1·b(j) (公式2)
步骤f:计算长度为k的向量z。
其中:
z(1)=w(1);
z(j)=s(j-1)·z(j-1)+w(j)(公式3)
步骤g:计算长度为k的向量x。
其中:
x(1)=z(1)+s(k)·x(k);
其中,∏表示GF(64)上的元素相乘。
步骤h:将计算得到的k个初始校验符号放在向量r相应的位置。
其中,r=[r,x](公式5)
举例来讲,以B1C信号的子帧2,当m=1时,计算得到68个初始校验符号,作为向量r的第1至68个元素;当m=2时,计算得到12个初始校验符号,作为向量r的第69至80个元素,以此类推。
步骤i:判断m是否等于M,若是,进入步骤k,若否,进入步骤j;
步骤j:置m←m+1,返回步骤c;
重复上述计算过程,直至m=M。此时,得到一个长度为L的向量r,每个元素为GF(64)中的元素。
步骤k:形成校验符号向量p。
在一个示例中,可使用下述公式计算得到校验符号向量p:
p(t)=[a(i)]-1·r(i)(公式6)
其中,p(t)表示校验符号向量p中的第t个元素,t=P2(i);P2(i)是第二排序表数组P2中的第i个元素;i大于等于1,小于等于L,t大于等于1,小于等于L。
仍B1C信号的子帧2为例,若i=1时,P2(1)=1,则t=1,p(1)=[a(1)]-1·r(1);若i=2时,P2(2)=53,则t=53,p(53)=[a(2)]-1·r(2);若i=3时,P2(3)=19,则t=19,p(19)=[a(3)]-1·r(3)。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或模型的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种卫星导航用LDPC码译码方法,其特征在于,包括:
获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量;
对所述接收序列向量中的每一接收值进行硬判决,得到硬判决向量;
从所述接收序列向量的前N/2个位置中确定τ个目标位置;所述目标位置上的接收值可靠性最低;τ为正整数,且τ≤N/2;
根据所述τ个目标位置,生成测试向量;其中,所述测试向量的长度为N/2,所述测试向量在所述τ个目标位置中的任一位置取值为0或者1;在所述测试向量中,取值为1的位置总数不超过μ,μ≤τ;
使用所述测试向量对所述硬判决向量进行纠错处理,得到纠错结果;
输出所述纠错结果作为译码结果;
其中,在执行所述从所述接收序列向量的前N/2个位置中确定τ个目标位置的步骤之前,还包括:
将所述硬判决序列向量转换为64进制符号向量v;
对所述64进制符号向量v进行LDPC校验;
所述从所述接收序列向量的前N/2个位置中确定τ个目标位置及后续步骤,是在判定LDPC校验未通过后执行的。
2.如权利要求1所述的方法,其特征在于,
所述硬判决向量包括N个硬判决结果,其中,前N/2个硬判决结果组成信息序列向量x';
所述测试向量数量为f个;
任一所述测试向量表示为测试向量t(i),i大于等于1,小于等于f;
所述纠错处理包括:
将所述信息序列向量x'与所述测试向量t(i)逐一进行模2和运算,得到长度为N/2的纠错向量w(i);
将所述纠错向量w(i)划分为信息子向量y(i)和校验子向量z(i);其中,所述信息子向量y(i)包括所述纠错向量w(i)中的前N/2-n个比特,所述校验子向量z(i)包括所述纠错向量w(i)的最后n个比特;n为所述接收序列向量中CRC校验序列的长度;
使用所述信息子向量y(i)计算得到n比特的校验向量;
将计算得到的校验向量与所述校验子向量z(i)进行比对,若比对一致,保存所述纠错向量w(i);否则,丢弃所述纠错向量w(i)。
3.如权利要求2所述的方法,其特征在于,
保存下来的纠错向量的总数量为g;
若g=1,所述纠错结果包括所述保存下来的纠错向量。
4.如权利要求3所述的方法,其特征在于,
若g>1,所述纠错处理还包括:
将保存下的g个纠错向量分别转换为信息符号向量,得到g个信息符号向量;所述g个信息符号向量中的每一数据符号为有限域GF(64)中的元素;
对所述g个信息符号向量分别进行LDPC编码,得到g个码字向量;
计算所述g个码字向量对应的二进制向量与所述接收序列向量的相关性;
其中,所述纠错结果包括相关性最大的二进制向量所对应的纠错向量。
5.如权利要求4所述的方法,其特征在于,
所述计算所述g个码字向量对应的二进制向量与所述接收序列向量的相关性包括:
计算所述二进制向量与所述接收序列向量的相关值;所述相关值用于表征所述相关性。
6.如权利要求3所述的方法,其特征在于,
g=0时,表征译码失败;
所述方法还包括:丢弃接收到的导航电文数据。
7.如权利要求4所述的方法,其特征在于,所述g个信息符号向量中的任一信息符号向量表示为d(j);j大于等于1小于等于g;
对所述g个信息符号向量中的任一信息符号向量进行的LDPC编码包括:
使用所述信息符号向量d(j)与第一级编码数组进行第一级编码处理,得到长度为L的第一级编码向量;所述第一级编码数组的维数为L×a,所述a为不大于2的正整数;L=N/12;
使用所述第一级编码向量与第二级编码数组进行第二级编码处理,得到校验符号向量p(j);所述第二级编码数组的维数为b×1,所述b为不大于L的正整数;所述校验符号向量p(j)中的每一数据符号为所述有限域GF(64)中的元素;
将所述信息符号向量d(j)和所述校验符号向量p(j)组成码字向量。
8.一种译码器,其特征在于,包括:
接收序列模块,用于:
获取LDPC码的码字所对应的接收值,得到长度为N的接收序列向量;
硬判决模块,用于:
对所述接收序列向量中的每一接收值进行硬判决,得到硬判决向量;
纠错模块,用于:
从所述接收序列向量的前N/2个位置中确定τ个目标位置;所述目标位置上的接收值可靠性最低;τ为正整数,且τ≤N/2;
根据所述τ个目标位置,生成测试向量;其中,所述测试向量的长度为N/2,所述测试向量在所述τ个目标位置中的任一位置取值为0或者1;在所述测试向量中,取值为1的位置总数不超过μ,μ≤τ;
使用所述测试向量对所述硬判决向量进行纠错处理;
输出纠错结果为译码结果;
其中,在所述纠错模块执行所述从所述接收序列向量的前N/2个位置中确定τ个目标位置之前,还用于:
将所述硬判决序列向量转换为64进制符号向量v;
对所述64进制符号向量v进行LDPC校验;
所述从所述接收序列向量的前N/2个位置中确定τ个目标位置及后续步骤,是在判定LDPC校验未通过后执行的。
9.一种导航接收机,其特征在于,包括如权利要求8所述的译码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166138.8A CN112838872B (zh) | 2019-11-25 | 2019-11-25 | 卫星导航用ldpc码译码方法、译码器及接收机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166138.8A CN112838872B (zh) | 2019-11-25 | 2019-11-25 | 卫星导航用ldpc码译码方法、译码器及接收机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112838872A CN112838872A (zh) | 2021-05-25 |
CN112838872B true CN112838872B (zh) | 2024-07-05 |
Family
ID=75922917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911166138.8A Active CN112838872B (zh) | 2019-11-25 | 2019-11-25 | 卫星导航用ldpc码译码方法、译码器及接收机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112838872B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656541A (zh) * | 2009-09-15 | 2010-02-24 | 中兴通讯股份有限公司 | Rs码的译码方法和装置 |
CN102970047A (zh) * | 2012-12-01 | 2013-03-13 | 电子科技大学 | 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9166624B2 (en) * | 2010-05-11 | 2015-10-20 | Osaka University | Error-correcting code processing method and device |
EP2903166A1 (en) * | 2014-02-03 | 2015-08-05 | Centre National de la Recherche Scientifique (C.N.R.S.) | Multiple-vote symbol-flipping decoder for non-binary LDPC codes |
CN105159840B (zh) * | 2015-10-16 | 2018-11-02 | 华中科技大学 | 一种闪存器件的软信息提取方法 |
KR20180009558A (ko) * | 2016-07-19 | 2018-01-29 | 삼성전자주식회사 | 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러 |
CN109327227B (zh) * | 2018-08-30 | 2021-09-14 | 中国地质大学(武汉) | 一种用于无线随钻测量传输系统的信道编码方法 |
-
2019
- 2019-11-25 CN CN201911166138.8A patent/CN112838872B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656541A (zh) * | 2009-09-15 | 2010-02-24 | 中兴通讯股份有限公司 | Rs码的译码方法和装置 |
CN102970047A (zh) * | 2012-12-01 | 2013-03-13 | 电子科技大学 | 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法 |
Also Published As
Publication number | Publication date |
---|---|
CN112838872A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
JP5055578B2 (ja) | ホログラフィック記憶のための連結コード | |
US10218388B2 (en) | Techniques for low complexity soft decoder for turbo product codes | |
KR100757769B1 (ko) | 저밀도 패리티 체크 코드를 디코딩하는 디코더 및 방법 | |
US10090865B2 (en) | Performance optimization in soft decoding of error correcting codes | |
CN111541517B (zh) | 一种列表极化码传播译码方法 | |
US20070162821A1 (en) | Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus | |
US8832525B2 (en) | Memory controller with low density parity check code decoding capability and relevant memory controlling method | |
CN109873646B (zh) | 使用级联码的软芯片猎杀恢复 | |
US7681110B2 (en) | Decoding technique for linear block codes | |
JP2019057752A (ja) | メモリシステム | |
US10326473B2 (en) | Symbol-based coding for NAND flash devices | |
JP3876662B2 (ja) | 積符号の復号方法および積符号の復号装置 | |
CN111130567B (zh) | 添加噪声扰动和比特翻转的极化码置信传播列表译码方法 | |
US6802037B2 (en) | Iterative decoding method for block turbo codes of greater than three dimensions | |
JP2008502247A (ja) | ブロック符号の反復復号方法及び復号デバイス | |
CN111446973B (zh) | 基于多翻转比特集合的极化码置信传播译码方法 | |
US9350390B2 (en) | Encoder, decoder and semiconductor device including the same | |
CN112838872B (zh) | 卫星导航用ldpc码译码方法、译码器及接收机 | |
US20170222659A1 (en) | Power improvement for ldpc | |
US20140258807A1 (en) | Decoding and Optimized Implementation of SECDED Codes over GF(q) | |
CN111224741A (zh) | 卫星导航用bch码译码方法、译码器及卫星导航接收机 | |
JP4379329B2 (ja) | Crc生成多項式の選択方法、crc符号化方法およびcrc符号化回路 | |
CN110289863B (zh) | 译码设备、方法及信号传输系统 | |
US6789226B2 (en) | Decoder and method of decoding block codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |