CN112152638A - 一种基于Q学习算法的Spinal码编译码交织策略及装置 - Google Patents
一种基于Q学习算法的Spinal码编译码交织策略及装置 Download PDFInfo
- Publication number
- CN112152638A CN112152638A CN202011066122.2A CN202011066122A CN112152638A CN 112152638 A CN112152638 A CN 112152638A CN 202011066122 A CN202011066122 A CN 202011066122A CN 112152638 A CN112152638 A CN 112152638A
- Authority
- CN
- China
- Prior art keywords
- decoding
- coding
- symbols
- interleaving
- code
- 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.)
- Granted
Links
Images
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
- H03M13/1131—Scheduling of bit node or check node processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明公开了一种基于Q学习算法的Spinal码编译码交织策略及装置,所述编译码策略结构的发射端包括通过Q学习策略确定发送的编码符号数目W,然后由Spinal码编码端生成W个编码符号,接着3GPP标准交织器对W个编码符号进行交织,最后经过调制后发送到传输信道;接收端包括解调,3GPP标准交织器解交织得到W个编码符号,Spinal码译码端对W个编码符号逐一译码,判断译码是否成功,如果译码成功,则进入下一信息比特序列的传输,如果译码不成功,则根据Q学习算法继续发送编码符号,直到达到最大传输次数。本发明适用于自由空间光通信,太赫兹通信,毫米波通信,微波通信,光(电磁)声融合通信等无线电磁波通信系统的应用场景,用于保障通信的稳定性和可靠性。
Description
技术领域
本发明涉及自由空间光通信,太赫兹通信,毫米波通信,微波通信,光(电磁)声融合通信等无线电磁波通信系统中的前向差错控制技术领域,具体涉及一种基于Q学习算法的Spinal码编译码交织策略及装置。
背景技术
在大气,水下,空水跨介质等复杂的无线通信环境中,传输的调制信号会因为受到湍流、散射、吸收、干扰等因素的影响而衰减,使得信息波束在传输过程中受到干扰,严重影响通信质量。因此需要采取有效的差错控制技术来保障无线电磁波通信系统的稳定性和可靠性。
数字喷泉码是一种无编码速率约束码,由于其前向递增冗余特性使其无需反馈便可以自动适应链路动态变化,使其成为恶劣信道条件下充分利用信道容量的前向差错控制技术。无速率码的发送端通过编码源源不断地产生编码符号并将其发送,接收端对收到的编码符号进行译码,直到译码成功。理论上只要译码器收到足够多的编码符号即可译码成功。由于这种链路自适应信道状态的属性,无速率码的传输速率随信道状况而自适应地变化。
Spinal码是一种灵活的、小码长的无速率编码方式。Spinal码的编译码结构简单,在编码过程中引入Hash函数对输入信息比特序列进行随机编码,并通过随机数生成器(Random Numeral Generator,RNG)源源不断地产生编码符号;在译码过程中,通过复现编码端的编码方式来构造译码树,使用最大似然译码算法选择译码算法开销最小的比特序列作为正确的译码结果,译码复杂度低。与Raptor码等其他限制最大编码符号数量的无速率码相比,它可以生成无限数量的编码符号,具有真正的无速率特性。基于以上特点,Spinal码更适合作为无线电磁波通信中的差错控制编码技术。
虽然Spinal码可以源源不断地产生编码符号并逐一发送,但在实际应用中,为了减少译码等待时间,通常将一定数量的编码符号组成一个数据包发送。接收端继而对数据包中的编码符号进行逐一译码,直到译码成功;否则发送端将继续发送包含若干个编码符号的数据包,如此往复,直到译码成功。在不同的信道条件下达到一定的误码率标准所需的编码符号数量是不同的,如何确定每次应发送的编码符号数量,成为当前充分发挥Spinal码的优势的重要问题。
现有的数字喷泉码,包括Spinal码都是基于信道差错满足统计独立特性设计。而在复杂介质环境下的无线电磁波通信中,由于受湍流、海浪、水、云、雾等环境因素的影响,导致了长串突发差错的产生。这种情况下仅依靠差错控制编码技术无法纠正长串的突发错误,从而影响信息的正确传输。
发明内容
为了无线通信的稳定性和可靠性,本发明提供一种基于Q学习算法的Spinal码编译码交织策略及装置。
本发明解决其技术问题所采用的技术方案如下:
一种基于Q学习算法的Spinal码编译码交织策略,包括如下步骤:
步骤S1,初始化Spinal码的编码参数和译码参数;初始化高斯学习算法参数;初始化交织器参数;初始化Q表等Q学习算法参数;
步骤S2,设置编码符号初始值W=N1,W指编码符号数量,N1表示设置的初始值;
步骤S3,发送端编码生成W个编码符号,编码的过程为:首先,将一段长度为n bits的信息比特序列M划分为组,即n表示信息比特序列的长度,k表示每组的长度,即每组长度为k bits;然后,将随机数种子s0和M0经过hash函数,根据式(1)依次类推计算:
si=Hash(si-1,Mi-1) (1)
得到每组信息比特对应的值si,即:其中i为每个值的标号,每个值si的大小为v bits,最后,将个si分别作为随机数生成器(Random NumeralGenerator,简称RNG)的输入,得到个xi,xi表示每一个随机数生成器的输出,随机数生成器每一批次的编码输出组成一个Spinal码的编码符号,对于每一信息比特序列,发送端可通过随机数生成器源源不断地生成编码符号;
步骤S4-1,根据式(2)确定矩阵行数R:
其行号依次为0,1…,R-1;
步骤S4-2,确定矩阵列数C和行内交织质数p:
若481≤K≤530,则p=53,C=p;否则使p满足K≤R×(p+1),根据式(3)确定C:
其列号依次为0,1…,C-1;
步骤S4-3,将输入信息序列按行写入R×C的矩阵中,若R×C>K,则在剩余位置上填入0或者1;
步骤S5,对R×C矩阵进行行内交织,具体步骤如下:
步骤S5-1,根据得到的行内交织质数p,查表1获得v,v表示与p相关的原始根,表1来自于3GPPTS45.003标准:
表1,p和v对应列表
p | v | p | v | p | v | p | v | p | v |
7 | 3 | 47 | 5 | 101 | 2 | 157 | 5 | 223 | 3 |
11 | 2 | 53 | 2 | 103 | 5 | 163 | 2 | 227 | 2 |
13 | 2 | 59 | 2 | 107 | 2 | 167 | 5 | 229 | 6 |
17 | 3 | 61 | 2 | 109 | 6 | 173 | 2 | 233 | 3 |
19 | 2 | 67 | 2 | 113 | 3 | 179 | 2 | 239 | 7 |
23 | 5 | 71 | 7 | 127 | 3 | 181 | 2 | 241 | 7 |
29 | 2 | 73 | 5 | 131 | 2 | 191 | 19 | 251 | 6 |
31 | 3 | 79 | 3 | 137 | 3 | 193 | 5 | 257 | 3 |
37 | 2 | 83 | 2 | 139 | 2 | 197 | 2 | ||
41 | 6 | 89 | 3 | 149 | 2 | 199 | 3 | ||
43 | 3 | 97 | 5 | 151 | 6 | 211 | 2 |
步骤S5-2,获取行内交织所需的基本序列:<f(j)>j∈(0,1,…,p-2),其中,f(j)表示交织的基本序列,f(j)=(v×f(j-1))mod p,j表示交织矩阵中列号的索引,j=1,2,…(p-2),且f(0)=1;
步骤S5-3,令q0=1,选取符合下述条件的最小质数序列〈qi>i∈(0,1,…,R-1)(i=1,2,…R-1),g·c·d(qi,p-1)=1,其中g.c.d表示最大公约数;qi>6;qi>q(i-1),qi表示最小质数的整数,i表示p的索引,i∈(0,1,…,R-1);
步骤S5-4,将<qi>i∈(0,1,…,R-1)按rT(i)=qi(i=0,1,…,R-1)重新排序得到<ri>i∈(0,1,…,R-1),其中,T(i)为表2所示的置换模型,rT(i)表示重新排序前的序列,ri表示重新排序后的序列,i表示每一行的索引,i∈(0,1,…,R-1),如表2所示;
表2,行间交织置换模型
步骤S5-5,对第i行(i=1,2,…,R-1)做行内交织:
如果C=p,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2,且Ui(p-1)=0;
如果C=p+1,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2
且Ui(p-1)=0,Ui(p)=p;
如果C=p-1,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2,其中Ui(j)是进行行内交织的序列,它表示被改变顺序的第i行中第j个信息所对应的原始位置;
步骤S6,将得到的Ui(j)按照T(i)进行行间交织,其中T(i)为表2所示的行间交织置换模型,具体参数根据交织深度K和矩阵行数R选取,得到交织后的新矩阵;
步骤S7,通过裁剪新矩阵并按列读取得到输出信息序列,把新矩阵中的数据按列从左至右读出,然后删去交织前在矩阵尾部填充的虚拟位,即可得到交织结果;
步骤S8,将得到的交织后的输出信息序列作为一个数据包发送;
步骤S9,接收端对收到的数据包解交织,解交织过程为交织的逆过程,得到W个Spinal码编码符号;
步骤S10,对W个编码符号进行逐一译码,直到译码成功,或W个编码符号均译码失败;译码过程为:使用与编码端相同的s0、Hash函数以及随机数生成器在译码端重建译码树,以s0为根节点,按顺序考虑的可能取值,然后从根节点遍历至叶子节点,从译码树的第d级开始,d表示译码时开始裁剪译码树的级数,每级译码树只保留译码开销最小的B个节点,B表示译码时每次删减保留的节点数,接着,从B·2k条路径中选出译码开销最小的路径,即为最终译码结果;最后,对译码结果进行CRC(Cyclic Redundancy Check,循环冗余校验码,简称CRC)校验,若CRC校验通过,则译码成功;否则译码失败;
步骤S11,判断当前译码状况,若对其中一个编码符号译码成功,表示对这一段信息比特序列译码成功,本轮译码结束;若对W个编码符号均译码失败,Retranstime次数累加1次,判断当前是否达到最大允许传输次数Retranstimemax;记本轮参与译码的编码符号数目为Morepass,当前信息段的传输次数为Retranstime;
步骤S12,计算回报函数Reward,在发送端,根据上一步译码的编码符号数目Morepass和传输次数Retranstime计算回报函数Reward,其中,γ(0≤γ≤1)为权衡因子;Morepassmax为允许发送的最大累计编码符号数目;Retranstimemax表示最大允许的传输次数;
步骤S13,通过高斯学习确定方差σ2,均值μ,偏度σ3,发送端根据接收端的反馈,利用高斯学习算法计算当前信道的译码累计分布函数,得到信道新状态参数:方差σ2,均值μ,偏度σ3,计算方法为:
Qsample=Qα·Qsample+1,Qsumq=Qα·Qsumq+Qsample,Qsumsq=Qα·Qsumsq+Qsample 2,Qsumtq=Qα·Qsumtq+Qsample 3,
Qα表示高斯学习因子,其取值越大,之前时刻的译码累积分布函数对当前时刻的译码累计分布函数的估计的影响就越大;Qsample、Qsumq、Qsumsq和Qsumtq为高斯学习算法参数,Qsample表示与高斯学习因子相乘得到的折扣后的样值,Qsumq表示与高斯学习因子相乘得到的折扣后的累加和、Qsumsq表示与高斯学习因子相乘得到的折扣后的平方和、Qsumtq表示与高斯学习因子相乘得到的折扣后的立方和,在步骤S1中进行初始化;
步骤S14,在发送端,根据信道状态参数σ2,均值μ确定当前状态State(μ,σ2),找到步骤S1初始化Q学习参数时建立的Q表中对应的行Q(State,:),找出这一行中最大的元素Qmax(State,A);得到下一步执行的最优动作A;
步骤S15,在发送端,根据最优动作A和偏度σ3确定当前需要编码产生的编码符号N,σ3的正负及大小用来衡量译码累计分布函数的不对称性,偏度为正代表分布为右偏态,即右侧的尾部更长,分布的主体集中在左侧,此时应减少编码符号的数量;偏度为负代表分布为左偏态,即左侧的尾部更长,分布的主体集中在右侧,此时应增加编码符号的数量,具体计算方法为:
步骤S16,设置探索因子βQ的值,产生一个0到1的随机数Qrand,若βQ>Qrand,则spinal码编码端生成的编码符号数量为W=N;若βQ≤Qrand,则实际发送的编码符号数量为W=N-δ,δ表示探索值;
步骤S17,根据Reward和Qmax(State,A)更新Q表,更新公式为:Qnew(State,A)=Reward+η·Qmax(State,A),η为Q学习因子,Qnew(State,A)表示Q表的更新值;
步骤S18,编码端根据步骤S11的译码情况,若译码成功,则按照步骤S16得到的W,回到步骤S3,进入下一信息比特序列的传输;若译码失败,判断是否达到最大传输次数:若是,丢弃这一信息比特序列,按照步骤S16得到的W,回到步骤S3,进入下一信息比特序列的传输;若否,按照步骤S16得到的W,回到步骤S3,继续这一信息比特序列的传输。
实现上述方法的基于Q学习算法和交织技术的Spinal码编译码装置,包括
Q学习装置,用于通过Q学习算法确定当前应编码产生的Spinal码编码符号数目W;
Spinal码编码器,与Q学习装置相连,用于将信息比特序列经过Spinal码编码器生成W个Spinal码编码符号;
3GPP标准交织器,与Spinal码编码器连接,用于将从Spinal码编码器生成的W个编码符号进行交织,然后组帧并发送到激光信道;
3GPP标准解交织器,用于将从自由空间光信道中接收的W个Spinal码编码符号进行解帧,然后解交织,得到W个Spinal码编码符号;
Spinal码译码器,与3GPP标准解交织器连接,用于将解交织后的W个Spinal码编码符号进行逐一译码,直到译码成功或W个均译码失败。
通过本装置可实现上述方法。
为了尽量避免传输不必要的编码符号,尽量减少传输的次数,从而达到控制开销、减少译码等待时间,提高信息传输效率的目的,Spinal码需要一种策略协调收发双方,该策略结合具体信道状况,首先在发送端估计译码端成功译码所需的编码符号数量,然后将这些编码符号组成数据包发送。在发送端采用强化学习中的Q学习算法估计译码端成功译码所需的编码符号数量,可以在不同的信道状态下通过学习的方式动态确定当前应发送的编码符号数量,并随着学习经验的累加不断提高系统的整体性能。
交织技术可以将长串的突发错误分散开来,将其转变为容易得到纠正的随机差错,以达到对抗突发错误的目的,从而提高译码成功概率。
本发明中,在发送端采用3GPP标准交织器对Q学习策略确定的数据包中的编码符号进行比特交织;在接收端相应地进行解交织,将本来不可译的成串误码转换成可以纠正的随机错误,然后再逐一对编码符号进行译码,提高译码成功概率,最终提高系统的整体性能。
本发明涉及但不仅限于自由空间光通信,太赫兹通信,毫米波通信,微波通信,光(电磁)声融合通信等无线电磁波通信系统中的前向差错控制技术领域,针对信号强度由于受湍流、海浪、水、云、雾等环境因素的影响,使光束在传输过程中受到干扰,严重影响通信质量的情况,用于保障如卫星对地、卫星对卫星等长距离自由空间光通信的稳定性和可靠性。
本发明的优点或有益效果:
1、本发明在发送端采用Q学习算法对Spinal码发送的编码符号数量进行动态调整,在不同的信道状态下通过学习的方式动态确定当前应发送的编码符号数量,并随着学习经验的累加不断提高系统的整体性能。与目前已有的策略(如固定每次发送的编码符号数目)相比,通过在发送端使用该Q学习策略可根据信道条件动态确定当前应发送的编码符号数量,具备了很好的灵活性。同时避免传输不必要的编码符号并减少传输的次数,从而控制开销、减少译码等待时间,提高信息传输效率;
2、本发明在发送端利用3GPP标准交织器对即将发送的数据包中的编码符号进行比特交织;在接收端相应地进行解交织,将长距离自由光通信中出现的本来不可译的成串误码转换成可以纠正的随机错误,提高Spinal码的译码成功概率;最终提高系统的整体性能;
3、本发明针对信道状态波动较大时,Spinal码成功译码所需编码符号数目的动态范围过大导致的高斯学习译码累计分布函数不对称的问题,引入偏度σ3,通过σ3确定当前Spinal码译码所需的编码符号数量的分布。σ3的正负及大小用来衡量译码累计分布函数的不对称性,偏度为正代表分布为右偏态,分布的主体集中在左侧,此时应减少编码符号的数量;偏度为负代表分布为左偏态,分布的主体集中在右侧,此时应增加编码符号的数量,据此进行调整,从而提高译码性能。
附图说明
图1为实施例中基于Q学习算法的Spinal码编译码交织策略结构图;
图2为实施例中基于Q学习算法的Spinal码编译码交织策略实现流程图;
图3为实施例中基于Q学习算法的Spinal码编译码装置的方框示意图。
具体实施方式
下面结合实施例和附图对本发明内容作进一步的阐述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
下面根据附图1、图2、图3来描述本发明提出的一种应用交织技术和Q学习算法的Spinal码编译码策略及装置的基本过程。
如图1所示,基于Q学习算法的Spinal码编译码交织策略结构,包括发射端和接收端,
所述发射端包括信息比特序列通过Q学习策略确定发送的编码符号数目W,然后由Spinal码编码端生成W个编码符号,接着3GPP标准交织器对W个编码符号进行交织,最后经过调制后发送至传输信道;
所述接收端包括解调,3GPP标准交织器解交织得到W个编码符号,Spinal码译码端对W个编码符号逐一译码,判断译码是否成功,如果译码成功,则进入下一信息比特序列的传输,如果译码不成功,则根据Q学习算法继续发送编码符号,直到达到最大传输次数。
如图2所示,一种基于Q学习算法的Spinal码编译码交织策略,包括如下步骤:
步骤S1,初始化Spinal码的编码参数和译码参数,设置spinal码编码端信息比特序列的分段长度k=8bits,随机数生成器输出的每一批次长度c=16bits,译码时每次删减保留的节点数B=3;最大允许传输次数Retranstimemax=3,每次最大允许的编码符号数量Morepassmax=500;初始化高斯学习算法参数;设置Qsample=1,Qsumq=5,Qsumsq=Qsumq+102,Qsumtq=Qsumsq+103,取高斯学习因子Qα=0.8,初始化值也可设置为其它值;Qsample表示与高斯学习因子相乘得到的折扣后的样值,Qsumq表示与高斯学习因子相乘得到的折扣后的累加和、Qsumsq表示与高斯学习因子相乘得到的折扣后的平方和、Qsumtq表示与高斯学习因子相乘得到的折扣后的立方和;
初始化交织器参数;
初始化Q学习算法参数,初始化一个4行4列的Q表,其中行代表信道状态,通过高斯学习得到的σ2和μ来划分,分别为State0,State1,State2,State3,当σ2∈(0,100],μ∈(0,10],为State0;当σ2∈(100,200],μ∈(10,20],为State1;当σ2∈(200,300],μ∈(20,30],为State2;当σ2∈(300,+∞),μ∈(30,+∞),为State3;列代表动作A0,A1,A2,A3,分别取1、2、3、4,代表计算编码通道数量时的系数因子,每一行的Q值依次初始化为1、2、3、4,Q学习算法中探索因子βQ=0.8,Q学习因子η=0.4,权衡因子γ=0.1;探索值δ=10;
步骤S2,设置编码符号初始值W=N1=20,W指编码符号数量,N1表示设置的初始值;
步骤S3,发送端编码生成W个编码符号,编码的基本过程为:首先,将一段长度为n=64bits的信息比特序列M划分为组,即M0,M1,...,M7,每组长度为k=8bits;然后,将随机数种子s0和M0经过Hash函数,根据式(1)依次类推计算:
si=Hash(si-1,Mi-1) (1)
s1=Hash(s0,M0)
s2=Hash(s1,M1)
s3=Hash(s2,M2)
s8=Hash(s7,M7)
得到每组信息比特对应的值si,即;s1,s2...s8,其中i为每个值的标号,1≤i≤8,每个值si的大小为16bits,最后,将8个值si分别作为随机数生成器(RNG)的输入,得到8个xi,每一批次的编码输出xi:{x1,...,x8}组成一个Spinal码的编码符号,对于每一信息比特序列,编码端可通过随机数生成器(RNG)源源不断地生成编码符号;
步骤S4,确定交织深度K,c表示每一个随机数生成器输出的长度,将W个编码符号作为输入信息序列逐行写入到大小为R×C的矩阵中,将20个编码符号作为输入信息序列逐行写入到大小为R×C的矩阵中,具体步骤为:
步骤S4-1,根据式(2)确定矩阵的行数R:
得R=20,其行号依次为0,1…,19;
步骤S4-2,确定矩阵列数C和行内交织质数p:
得p=127,C=128,其列号依次为0,1…,127;
步骤S4-3,将输入信息序列按行写入R×C=20×128的矩阵中,本例中R×C=20×128=2560=K,因此无需再补0;
步骤S5,对R×C=20×128矩阵进行行内交织,具体步骤如下:
步骤S5-1,根据得到的p=127,查表1获得v=3,表1来自于3GPP TS 45.003标准:
表1,p和v对应列表
p | v | p | v | p | v | p | v | p | v |
7 | 3 | 47 | 5 | 101 | 2 | 157 | 5 | 223 | 3 |
11 | 2 | 53 | 2 | 103 | 5 | 163 | 2 | 227 | 2 |
13 | 2 | 59 | 2 | 107 | 2 | 167 | 5 | 229 | 6 |
17 | 3 | 61 | 2 | 109 | 6 | 173 | 2 | 233 | 3 |
19 | 2 | 67 | 2 | 113 | 3 | 179 | 2 | 239 | 7 |
23 | 5 | 71 | 7 | 127 | 3 | 181 | 2 | 241 | 7 |
29 | 2 | 73 | 5 | 131 | 2 | 191 | 19 | 251 | 6 |
31 | 3 | 79 | 3 | 137 | 3 | 193 | 5 | 257 | 3 |
37 | 2 | 83 | 2 | 139 | 2 | 197 | 2 | ||
41 | 6 | 89 | 3 | 149 | 2 | 199 | 3 | ||
43 | 3 | 97 | 5 | 151 | 6 | 211 | 2 |
步骤S5-2,获取行内交织所需的基本序列:<f(j)>j∈(0,1,…,125},其中,f(j)表示交织的基本序列,f(j)=(v×f(j-1))mod127,j=1,2,…125,且s(0)=1,j表示交织矩阵中列号的索引;
步骤S5-3,令q0=1,选取符合下述条件的最小质数序列<qi>i∈(0,1,…,19}(i=1,2,…19),g·c·d(qi,126)=1,其中g.c.d表示最大公约数;qi>6;qi>q(i-1),qi表示最小质数的整数,i表示p的索引,i∈(0,1,…,R-1);
步骤S5-4,将<qi>i∈{0,1,…,19}按rT(i)=qi(i=0,1,…,19)重新排序得到<ri>i∈{0,1,…,19},其中T(i)为表2所示的重新排序置换模型,rT(i)表示置换前的序列,ri表示置换后的序列,i表示每一行的索引,i∈(0,1,…,R-1),如表2所示;由K=2560,则T(i)=<19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11>
表2,行间交织置换模型
步骤S5-5,对第i行(i=0,2,…,19)做行内交织:
由C=p+1=127+1=128,Ui(j)=f((j×ri)mod(126)),j=0,1,…,125,
且Ui(126)=0,Ui(127)=127;其中Ui(j)是进行行内交织得序列,它表示被改变顺序的第i行中第j个信息所对应的原始位置;
步骤S6,将得到的Ui(j)按照T(i)进行行间交织,其中T(i)为行间交织模型,具体参数根据交织的深度K和行数R选取,由K=2560,R=20,选择T(i)=<19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11>,得到交织后的新矩阵;
步骤S7,通过裁剪新矩阵并按列读取得到输出信息序列,本例中R×C=20×128=2560=K,因此无需再裁剪;
步骤S8,将得到的交织后的输出信息序列作为一个数据包发送;
步骤S9,接收端对收到的数据包解交织,解交织过程为交织的逆过程,得到20个Spinal码编码符号;
步骤S10,对20个编码符号进行逐一译码,直到译码成功,或20个编码符号均译码失败,译码过程为:使用与编码端相同的s0、Hash函数以及随机数生成器在译码端重建译码树,以s0为根节点,按顺序考虑M0,M1,...,M7的可能取值,然后从根节点遍历至叶子节点,从译码树的第d级开始,d表示译码时开始裁剪译码树的级数,每级译码树只保留译码开销最小的3个节点,接着,从B·2k=3·28条路径中选出译码开销最小的路径,即为最终译码结果;最后,对译码结果进行CRC校验,若CRC校验通过,则译码成功;否则译码失败;
步骤S11,判断当前译码状况,若对其中一个编码符号译码成功,表示对这一段信息比特序列译码成功,本轮译码结束;若对20个编码符号均译码失败,Retranstime次数累加1次,判断当前是否达到最大允许传输次数Retranstimemax=3次;记本轮参与译码的编码符号数目为Morepass(1≤Morepass≤20),当前信息段的传输次数为Retranstime(1≤Retranstime≤3),假设本轮参与译码的编码符号数目Morepass=20,传输次数为Retranstime=1,即第一次译码失败;
步骤S12,计算回报函数Reward,在发送端,根据上一步译码的编码符号数目Morepass=20和传输次数Retranstime=1计算回报函数Reward,其中,γ(0≤γ≤1)为权衡因子,这里取γ=0.8,表示更倾向于节约编码符号数目;
步骤S13,通过高斯学习确定方差σ2,均值μ,偏度σ3,发送端根据接收端的反馈,利用高斯学习算法计算当前信道的译码累计分布函数,得到信道新状态参数:方差σ2,均值μ,偏度σ3,计算方法为:
Qsample=Qα×Qsample+1=0.8×1+1=1.8,
Qsumq=Qα×Qsumq+Qsample=0.8×5+1.8=5.8,
Qsumsq=Qα×Qsumsq+Qsample 2=0.8×125+1.82=103.24,
Qsumtq=Qα×Qsumtq+Qsample 3=0.8×1025+1.83=825.8,
Qα表示高斯学习因子,其取值越大,之前时刻的译码累积分布函数对当前时刻的译码累计分布函数的估计的影响就越大;Qsample、Qsumq、Qsumsq和Qsumtq为高斯学习算法参数,Qsample表示与高斯学习因子相乘得到的折扣后的样值,Qsumq表示与高斯学习因子相乘得到的折扣后的累加和、Qsumsq表示与高斯学习因子相乘得到的折扣后的平方和、Qsumtq表示与高斯学习因子相乘得到的折扣后的立方和;
步骤S14,在发送端,根据信道状态参数σ2,均值μ确定当前状态State(3.2,47.1),找到步骤S1中Q表中对应的行Q(State,:),这里为第1行,找出这一行中最大的元素Qmax(State,A)=Q(State0,A3)=4,根据初始化结果,得A=4,得到下一步执行的最优动作A=4,若计算的当前状态不在Q表划分范围内,则按State=State0计算;
步骤S15,在发送端,根据最优动作A=4和偏度σ3=99.1确定当前应编码产生的编码通道符号N,因为σ3>0,代表分布为右偏态,即右侧的尾部更长,分布的主体集中在左侧,应减少发送的编码符号数目,具体计算方法为:
步骤S16,设置探索因子βQ=0.8,产生一个0到1的随机数Qrand,若βQ>Qrand,则Spinal码编码端生成的编码符号数量为W=N=135;若βQ≤Qrand,则实际发送的编码符号数量为W=N-δ=125,δ表示探索值,取δ=10,设产生的Qrand=0.4,则W=135;
步骤S17,根据Reward和Q(State0,A3)更新Q表,更新公式为:Qnew(State0,A3)=Reward+η·Qmax(State0,A3)=0.1+0.4×4=1.7,η=0.4为Q学习因子,此时,Q表的Q(State0,A3)更新为1.7,其余位置Q值不变;
步骤S18,编码端根据步骤S11的译码情况,当前译码失败且未达到最大传输次数,则按照步骤S16得到的W=135,回到步骤S3,Spinal码编码生成W=135个编码符号,继续这一信息比特序列的传输。
如图3所示,实现上述方法的基于Q学习算法的Spinal码编译码交织策略装置,包括:
Q学习装置,用于通过Q学习算法确定当前应编码产生的Spinal码编码符号数目W;
Spinal码编码器,与Q学习装置相连,用于将信息比特序列经过Spinal码编码器生成W个Spinal码编码符号;
3GPP标准交织器,与Spinal码编码器连接,用于将从Spinal码编码器生成的W个编码符号进行交织,然后调制并发送到自由空间光信道;
3GPP标准解交织器,用于将从自由空间光信道中接收的的W个Spinal码编码符号进行解调,然后解交织,得到W个Spinal码编码符号;
Spinal码译码器,与3GPP标准解交织器连接,用于将解交织后的W个Spinal码编码符号进行逐一译码,直到译码成功或W个编码符号均译码失败。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.一种基于Q学习算法的Spinal码编译码交织策略,包括如下步骤:
步骤S1,初始化Spinal码的编码参数和译码参数;初始化高斯学习算法参数;初始化交织器参数;初始化Q学习算法参数;
步骤S2,设置编码符号初始值W=N1,W指编码符号数量,N1表示设置的初始值;
步骤S3,发送端编码生成W个编码符号,编码的过程为:首先,将一段长度为n bits的信息比特序列M划分为组,即n表示信息比特序列的长度,k表示划分后每组的长度,即每组长度为k bits;然后,将随机数种子s0和M0经过Hash函数,根据式(1)依次类推计算:
si=Hash(si-1,Mi-1) (1)
得到每组信息比特对应的值si,即:其中i为每个值的标号,每个值si的大小为v bits,最后,将个值si分别作为随机数生成器(RNG)的输入,得到个xi,xi表示每一个随机数生成器的输出,随机数生成器每一批次的编码输出组成一个Spinal码的编码符号,对于每一信息比特序列,发送端可通过随机数生成器源源不断地生成编码符号;
步骤S5,对R×C矩阵进行行内交织,得到行内交织的序列Ui(j),它表示被改变顺序的第i行中第j个信息所对应的原始位置;
步骤S6,将得到的Ui(j)按照T(i)进行行间交织,其中T(i)为行间交织模型,具体参数根据交织的深度K和行数R选取,得到交织后的新矩阵;
步骤S7,通过裁剪新矩阵并按列读取得到输出信息序列;
步骤S8,将得到的交织后的输出信息序列作为一个数据包发送;
步骤S9,接收端对收到的数据包解交织,解交织过程为交织的逆过程,得到W个Spinal码编码符号;
步骤S10,对W个编码符号进行逐一译码,直到译码成功,或W个编码符号均译码失败,译码过程为:使用与编码端相同的s0、Hash函数以及随机数生成器在译码端重建译码树,以s0为根节点,按顺序考虑的可能取值,然后从根节点遍历至叶子节点,从译码树的第d级开始,d表示译码时开始裁剪译码树的级数,每级译码树只保留译码开销最小的B个节点,B表示译码时每次删减保留的节点数;接着,从B·2k条路径中选出译码开销最小的路径,即为最终译码结果;最后,对译码结果进行CRC校验,若CRC校验通过,则译码成功;否则译码失败;
步骤S11,判断当前译码状况,若对其中一个编码符号译码成功,表示对这一段信息比特序列译码成功,本轮译码结束;若对W个编码符号均译码失败,Retranstime次数累加1次,判断当前是否达到最大允许传输次数Retranstimemax;记本轮参与译码的编码符号数目为Morepass,当前信息段的传输次数为Retranstime;
步骤S12,计算回报函数Reward,在发送端,根据上一步译码的编码符号数目Morepass和传输次数Retranstime计算回报函数Reward,其中,γ(0≤γ≤1)为权衡因子;Morepassmax为允许发送的最大累计编码符号数目;Retranstimemax表示最大允许的传输次数;
步骤S13,通过高斯学习确定方差σ2,均值μ,偏度σ3,发送端根据接收端的反馈,利用高斯学习算法计算当前信道的译码累计分布函数,得到信道新状态参数:方差σ2,均值μ,偏度σ3,计算方法为:
Qsample=Qα·Qsample+1,Qsumq=Qα·Qsumq+Qsample,Qsumsq=Qα·Qsumsq+Qsample 2,Qsumtq=Qα·Qsumtq+Qsample 3,
Qα表示高斯学习因子,其取值越大,之前时刻的译码累积分布函数对当前时刻的译码累计分布函数的估计的影响就越大;Qsample、Qsumq、Qsumsq和Qsumtq为高斯学习算法参数,Qsample表示与高斯学习因子相乘得到的折扣后的样值,Qsumq表示与高斯学习因子相乘得到的折扣后的累加和、Qsumsq表示与高斯学习因子相乘得到的折扣后的平方和、Qsumtq表示与高斯学习因子相乘得到的折扣后的立方和,在步骤S1中进行初始化;
步骤S14,在发送端,根据信道状态参数σ2,均值μ确定当前状态State(μ,σ2),找到步骤S1初始化Q学习参数时建立的Q表中对应的行Q(State,:),找出这一行中最大的元素Qmax(State,A);得到下一步执行的最优动作A;
步骤S15,在发送端,根据最优动作A和偏度σ3确定当前应编码产生的编码符号N,σ3的正负及大小用来衡量译码累计分布函数的不对称性,偏度为正代表分布为右偏态,即右侧的尾部更长,分布的主体集中在左侧,此时应减少编码符号的数量;偏度为负代表分布为左偏态,即左侧的尾部更长,分布的主体集中在右侧,此时应增加编码符号的数量,具体计算方法为:
步骤S16,设置探索因子βQ的值,产生一个0到1的随机数Qrand,若βQ>Qrand,则spinal码编码端生成的编码符号数量为W=N;若βQ≤Qrand,则实际发送的编码符号数量为W=N-δ,δ表示探索值;
步骤S17,根据Reward和Qmax(State,A)更新Q表,更新公式为:Qnew(State,A)=Reward+η·Qmax(State,A),η为Q学习因子,Qnew(State,A)表示Q表的更新值;
步骤S18,编码端根据步骤S11的译码情况,若译码成功,则按照步骤S16得到的W,回到步骤S3,进入下一信息比特序列的传输;若译码失败,判断是否达到最大传输次数:若是,丢弃这一信息比特序列,按照步骤S16得到的W,回到步骤S3,进入下一信息比特序列的传输;若否,按照步骤S16得到的W,回到步骤S3,继续这一信息比特序列的传输。
3.根据权利要求1所述的基于Q学习算法的Spinal码编译码交织策略,其特征在于,步骤S5中对R×C矩阵进行行内交织,包括如下步骤:
步骤S5-1,根据得到的行内交织质数p,查表1获得v,v表示与p相关的原始根,表1来自于3GPPTS45.003标准:
表1,p和v对应列表
步骤S5-2,获取行内交织所需的基本序列:<f(j)>j∈(0,1,…,p-2),
其中,f(j)表示交织的基本序列,f(j)=(v×f(j-1))modp,j表示交织矩阵中列号的索引,j=1,2,…(p-2),且f(0)=1;
步骤S5-3,令q0=1,选取符合下述条件的最小质数序列<qi>i∈(0,1,…,R-1)(i=1,2,…R-1),g·c·d(qi,p-1)=1,其中g.c.d表示最大公约数;qi>6;qi>q(i-1),qi表示最小质数的整数,i表示p的索引,i∈(0,1,…,R-1);
步骤S5-4,将<qi>i∈(0,1,…,R-1)按rT(i)=qi(i=0,1,…,R-1)重新排序得到<ri>i∈(0,1,…,R-1),其中,T(i)为重新排序的置换模型,rT(i)表示置换前的序列,ri表示置换后的序列,i表示每一行的索引,i∈(0,1,…,R-1),如表2所示;
表2,行间交织置换模型
步骤S5-5,对第i行(i=1,2,…,R-1)做行内交织:
如果C=p,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2,且Ui(p-1)=0;
如果C=p+1,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2,
且Ui(p-1)=0,Ui(p)=p;
如果C=p-1,那么Ui(j)=f((j×ri)mod(p-1)),j=0,1,…,p-2,其中Ui(j)是进行行内交织的序列,它表示被改变顺序的第i行中第j个信息所对应的原始位置。
4.一种基于Q学习算法的Spinal码编译码交织装置,包括
Q学习装置,用于通过Q学习算法确定当前应编码产生的Spinal码编码符号数目W;
Spinal码编码器,与Q学习装置相连,用于将信息比特序列经过Spinal码编码器生成W个Spinal码编码符号;
3GPP标准交织器,与Spinal码编码器连接,用于将从Spinal码编码器生成的W个编码符号进行交织,然后调制并发送到自由空间光信道;
3GPP标准解交织器,用于将从自由空间光信道中接收的的W个Spinal码编码符号进行解调,然后解交织,得到W个Spinal码编码符号;
Spinal码译码器,与3GPP标准解交织器连接,用于将解交织后的W个Spinal码编码符号进行逐一译码,直到译码成功或W个均译码失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011066122.2A CN112152638B (zh) | 2020-09-30 | 2020-09-30 | 一种基于Q学习算法的Spinal码编译码交织策略及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011066122.2A CN112152638B (zh) | 2020-09-30 | 2020-09-30 | 一种基于Q学习算法的Spinal码编译码交织策略及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152638A true CN112152638A (zh) | 2020-12-29 |
CN112152638B CN112152638B (zh) | 2023-07-25 |
Family
ID=73952360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011066122.2A Active CN112152638B (zh) | 2020-09-30 | 2020-09-30 | 一种基于Q学习算法的Spinal码编译码交织策略及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152638B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113922947A (zh) * | 2021-09-18 | 2022-01-11 | 湖南遥昇通信技术有限公司 | 一种基于加权概率模型的自适应对称编码方法以及系统 |
CN116318552A (zh) * | 2023-03-15 | 2023-06-23 | 归芯科技(深圳)有限公司 | Turbo码的交织或解交织方法及其器件、通信芯片和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2968892A1 (en) * | 2014-11-27 | 2016-06-02 | Huawei Technologies Co., Ltd. | Polar code rate matching method and apparatus, and wireless communications device |
CN107769892A (zh) * | 2017-10-27 | 2018-03-06 | 中山大学 | 基于块长自适应的脊髓编码大规模多天线系统无速率传输方法 |
CN109286405A (zh) * | 2018-09-10 | 2019-01-29 | 山东科技大学 | 一种低复杂度的极化码递进式比特翻转sc译码方法 |
CN110061808A (zh) * | 2019-02-25 | 2019-07-26 | 北京理工大学 | 一种基于素数码交织及脊髓码编码的水下抗干扰传输方法 |
WO2020022539A1 (ko) * | 2018-07-27 | 2020-01-30 | 엘지전자 주식회사 | Ldpc코드의 인코딩 및 디코딩을 수행하는 방법과 이를 위한 통신 장치 |
-
2020
- 2020-09-30 CN CN202011066122.2A patent/CN112152638B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2968892A1 (en) * | 2014-11-27 | 2016-06-02 | Huawei Technologies Co., Ltd. | Polar code rate matching method and apparatus, and wireless communications device |
CN107769892A (zh) * | 2017-10-27 | 2018-03-06 | 中山大学 | 基于块长自适应的脊髓编码大规模多天线系统无速率传输方法 |
WO2020022539A1 (ko) * | 2018-07-27 | 2020-01-30 | 엘지전자 주식회사 | Ldpc코드의 인코딩 및 디코딩을 수행하는 방법과 이를 위한 통신 장치 |
CN109286405A (zh) * | 2018-09-10 | 2019-01-29 | 山东科技大学 | 一种低复杂度的极化码递进式比特翻转sc译码方法 |
CN110061808A (zh) * | 2019-02-25 | 2019-07-26 | 北京理工大学 | 一种基于素数码交织及脊髓码编码的水下抗干扰传输方法 |
Non-Patent Citations (1)
Title |
---|
敖;梁积卫;马春波;曹桂兴;李聪;沈宇飞;: "自由空间光通信中基于Q学习算法的Raptor10码译码策略", 中国激光, no. 09 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113922947A (zh) * | 2021-09-18 | 2022-01-11 | 湖南遥昇通信技术有限公司 | 一种基于加权概率模型的自适应对称编码方法以及系统 |
CN113922947B (zh) * | 2021-09-18 | 2023-11-21 | 湖南遥昇通信技术有限公司 | 一种基于加权概率模型的自适应对称编码方法以及系统 |
CN116318552A (zh) * | 2023-03-15 | 2023-06-23 | 归芯科技(深圳)有限公司 | Turbo码的交织或解交织方法及其器件、通信芯片和装置 |
CN116318552B (zh) * | 2023-03-15 | 2023-09-22 | 归芯科技(深圳)有限公司 | Turbo码的交织或解交织方法及其器件、通信芯片和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112152638B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100984289B1 (ko) | 통신 시스템에서 가변 부호화율을 지원하는 신호 송수신장치 및 방법 | |
US8533556B2 (en) | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes | |
KR20080104376A (ko) | 통신 장치, 복호 장치, 정보 전송 방법 및 복호 방법 | |
WO1998032231A1 (en) | Method and apparatus for transmitting and receiving concatenated code data | |
WO2008034289A1 (en) | Bit mapping scheme for an ldpc coded 32apsk system | |
EP1901434A1 (en) | An interleaving scheme for a LDPC coded 16APSK system | |
KR20120091001A (ko) | Ldpc 컨벌루션 코드를 사용하여 gnss 신호 데이터를 통신하는 방법 및 그 시스템 | |
US20110258521A1 (en) | Interleaving scheme for an ldpc coded qpsk/8psk system | |
CN112152638B (zh) | 一种基于Q学习算法的Spinal码编译码交织策略及装置 | |
JP2007515122A (ja) | 移動通信システムで不均一誤り確率を有する符号化によるデータ送受信方法及び装置 | |
EP1901435A1 (en) | An interleaving scheme for an LDPC coded 32APSK system | |
US11012100B2 (en) | Convolutional precoding and decoding of polar codes | |
CN103457612B (zh) | 针对里德所罗门-卷积级联码的迭代软判决译码方法 | |
CN113037298A (zh) | 一种基于低码率ldpc码干扰信息填充的系统及方法 | |
JP6427461B2 (ja) | 受信装置、無線通信システム、及び無線通信方法 | |
Zaitsev et al. | Structural adaptation of the turbo code coder and decoder for generating the transmission repeat request under conditions of uncertainty | |
CN116418395A (zh) | 一种面向fso系统的中继激光通信编码方法 | |
KR101276845B1 (ko) | 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법 | |
CN101150377A (zh) | 用于低密度奇偶校验编码的32apsk系统的比特映射方案 | |
CN114430279A (zh) | 一种列表维特比译码方法、装置、译码器和存储介质 | |
CN101150551A (zh) | 低密度奇偶校验编码的qpsk/8psk系统的交织方案 | |
WO2009102012A1 (ja) | 復号化装置、復号化方法、復号化プログラム、受信装置、及び通信システム | |
CN114785451B (zh) | 上行图像分割多址接入传输的接收方法、装置及存储介质 | |
CN114866191B (zh) | 一种适用于cpm调制的极化码编码调制方法及译码方法 | |
CN109005010B (zh) | 一种用于深空衰落信道环境的lt码编码方法 |
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 |