发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种面向接收端链路自适应的译码信息处理方法,该方法将接收端链路自适应的理论研究转化为实用技术,系统吞吐量大,计算复杂度低,同时可以避免高度并行带来的内存访问冲突。
本发明的目的可以通过以下技术方案来实现:
一种面向接收端链路自适应的译码信息处理方法,包括以下步骤:
(1)乒乓输入模块采用兵乓输入的串行接收数据,进行处理后发送至两个数据缓冲区后,以一定的周期从两个数据缓冲区间隔读写数据,并发送给译码器;
(2)译码器在接收到数据后,由迭代水平迭代单元和垂直迭代单元分别进行迭代处理,再由多个判决单元对数据进行硬判决,然后将判决结果并行发送给乒乓输出模块;
(3)乒乓输出模块并行接收译码器中判决单元输出的判决结果,转换为串行数据,并输出。
步骤(1)中的乒乓输入模块包括用于数据写入的Writer单元、用于数据计算的Calculation单元、用于数据读取的Reader单元以及第一数据缓冲区和第二数据缓冲区,步骤(1)的具体处理步骤为:
(11)第一数据缓冲区乒乓写操作:
Writer单元将串行接收到的数据进行转换,转换成多组并行数据,存储在第一数据缓冲区中;
Calculation单元根据输入的信道信噪比,通过查表计算得到1/σ数据,并通过Writer单元写入第一数据缓冲区中;
Writer单元对第一缓冲区完成写入操作后,向Reader单元发送读使能信号;
(12)第一数据缓冲区乒乓读操作:
Reader单元接收到来自Writer单元和译码器的使能信号后,从第一数据缓冲区读取数据,发送给译码器;
Reader单元读取完第一数据缓冲区的数据后,发送一个进行第二数据缓冲区乒乓写操作的使能信号给Writer单元;
(13)第二数据缓冲区乒乓写操作:
Writer单元将串行接收到的数据进行转换,转换成多组并行数据,存储在第二数据缓冲区中;
Calculation单元根据输入的信道信噪比,通过查表计算得到1/σ数据,并通过Writer单元写入第二数据缓冲区中;
Writer单元对第二缓冲区完成写入操作后,向Reader单元发送读使能信号;
(14)第二数据缓冲区乒乓读操作:
Reader单元接收到来自Writer单元和译码器的使能信号后,从第二数据缓冲区读取数据,发送给译码器;
Reader单元读取完第二数据缓冲区的数据后,发送一个进行第一数据缓冲区乒乓写操作的使能信号给Writer单元;
(15)重复步骤(11)~(14),以一定周期对两个数据缓冲区间隔进行数据读写。
步骤(2)中的译码器由包含L×L个硬件模块,每个硬件模块由存储单元memorybank、随机地址发生器RAG、水平迭代单元HUP、垂直迭代单元VUP和硬判决器HD组成,每个硬件模块内的存储单元通过水平数据过滤器HDF进行水平连接,通过垂直数据过滤器VDF进行垂直连接,所述的随机地址发生器连接存储单元,所述的水平迭代单元连接水平数据过滤器,所述的垂直迭代单元连接垂直数据过滤器,所述的水平迭代单元内包含有用于进行迭代处理的概率卷积表;
译码器的硬件构架时序由平迭代单元和的垂直迭代单元的时钟周期数kc和kv来控制,所述的水平迭代单元和垂直迭代单元之间串行交替执行,共进行16次迭代处理,其中前15次迭代的垂直处理为垂直迭代单元,最后1次迭代的垂直处理为硬判决器;
在迭代的水平处理中,共有L行并行,共64个水平迭代单元同时处理,在迭代的垂直处理中,共有L列并行,共64个垂直迭代单元同时处理,在判决处理时,共有L个硬判决器并行处理;
存储单元内的数据存储块memorybank(r,c)对应随机地址发生器RAG(r,c)及随机映射矩阵的子矩阵G(r,c),并与水平数据过滤器HDF(r)连接,其中,随机映射矩阵的分块具体为:对RAG(r,c)按N/L×N/L大小进行分块,每个子矩阵标记为G(r,c),其中r表示行号,c表示列号;memorybank(r,c)对应到子矩阵G(r,c),按子矩阵元素的列号进行存储,共N/L个存储元素,每个存储块有1个单端口RAM和2个双端口RAM组成,分别标记为w、E和Q,其中w存储对应元素的权重,E存储对应元素水平迭代的结果,Q存储对应元素垂直迭代的结果;
随机地址发生器RAG的具体处理过程如下:
(a1)对G(r,c)子矩阵按行号顺序获取非零元素的列位置,得到N/L个元素的向量pos,将pos向量以ROM存储,记为RAG(r,c);
(a2)接收kc时钟周期数,获取RAG第kc个值,标记为addr;
(a3)根据addr访问Memorybank(r,c)中的第addr个存储块,并传给水平迭代单元HUP;
水平数据过滤器HDF的具体处理过程如下:
(b1)从L个Memorybank(r,c)中读取Q数据;
(b2)然后将数据过滤后,得到L组数据;
(b3)将L组数据分发到对应的L个水平迭代单元HUP(r,c),其中发送水平迭代单元HUP(r,c)的数据包含memorybank(r,c)以外的Q值,以及memorybank(r,c)的w值和RAG(r,c)的地址addr。
水平迭代处理单元HUP的具体处理过程如下:
(c1)读取一组从水平数据过滤器HDF过滤后的数据q=(q1,q2,…,qL-1)以及yi、w、σ’和随机地址发生器RAG产生的memorybank的地址addr;
(c2)以yi、w、σ’为输入,调用噪声计算模块进行噪声计算处理,得到两组长度为knum个元素,且对应比特为1和0的概率向量,分别记为z和z’;
(c3)以q=(q1,q2,…,qL-1)和w为输入,调用概率卷积计算模块,得到长度为knum个元素的概率卷积向量p;
(c4)以z和p为输入,调用近似计算模块进行近似计算处理,得到结果,记为r1;同理,以z’和p为输入,调用近似计算模块进行近似计算处理,得到结果,记为r0;
(c5)将r1减去r0作为结果,并根据地址addr将结果写回对应的memorybank的E存储单元。
垂直数据过滤器VDF的具体处理过程如下:
(d1)从L个memorybank读取E数据;
(d2)然后将数据过滤后,得到L组数据;
(d3)将L组数据分发到对应的L个垂直迭代单元VUP,其中发送到垂直迭代单元VUP(r,c)的数据不包含memorybank(r,c)的E值;
垂直迭代单元VUP的具体处理过程如下:
(e1)读取垂直数据过滤器VDF发送过来的一组数据e=(e1,e2,…,eL-1);
(e2)对L-1个e值做累加计算;
(e3)根据kv的计数,将结果写回对应的memorybank中对应Q值的存储块。
硬判决器HD的具体处理过程如下:
(f1)读取垂直数据过滤器VDF发送过来的一组值e=(e1,e2,…,eL);
(f2)对e做累加计算;
(f3)将结果做判决,得到比特向量,记为b=(b1,b2,…,bL),发送到乒乓输出模块。
步骤(c2)中噪声计算处理的具体步骤为:
(31)读取数据y、w、σ’;
(32)计算b=1的噪声概率,(k-y+w)2σ’,k从kmin到kmax,共knum个并行计算部件同时运行,得到结果向量z;同时并行计算b=0的噪声概率,(k-y)2σ’,k从kmin到kmax,共knum个并行计算部件同时运行,得到结果向量z’;
步骤(c4)中近似计算模块包括串行近似计算模块和并行近似计算模块;
串行近似计算模块进行串行近似计算处理,其具体步骤如下:
(c411)读取n个数据,x=(x1,x2,…,xn);
(c412)并行计算yi=xi-xi-1,i从2到n,y1=x1;
(c413)串行递归查表求近似,首先进行初始化,令i=n,以yi为输入,调用log(1+ex)模块,得到近似解,记为rtmp=log(1+eyi),并让i=i-1;然后串行递归,以yi+rtmp为输入,调用log(1+ex)模块,得到近似解,记为rtmp=log(1+eyi+rtmp),直至i=2结束,得到rtmp;最后将y1与rtmp相加,得到结果,标记为rs;
(c414)将rs的值返回。
并行近似计算模块进行并行近似计算处理,其具体步骤如下:
(c421)读取n个数据x=(x1,x2,…,xn);
(c422)进行第一级计算,得到有(n+1)/2个元素的结果,记为t=(t1,t2,…,t(n+1)/2),其中,ti=max(x2i-1,x2i)+log(1+exp(-|x2i-1,x2i|)),i=1、2……n/2;
(c423)采用步骤(c422)的方法,进行第二级计算,得到n/4个元素的结果;
(c424)采用步骤(c422)的方法直至做完第log(n)级计算,其中级间计算串行运行,级内计算并行运行;
(c425)将计算结果返回。
步骤(c422)的具体计算过程为:
(c4221)将x的元素两两组合;
(c4222)对每一个组合,并行求最大值max(x2i-1,x2i),得到向量v_max;
(c4223)对每一个组合,并行调用log(1+ex)模块进行运算,近似得到向量v_appr;
(c4224)将v_max和v_appr对应位置的元素相加,得到结果向量t;
所述的log(1+ex)模块的运算过程为:
(71)读取数据x;
(72)计算x的入口地址,若x大于等于0,取x的二进制串的第9位至14位的子串,左移3位,得到pos1;取x二进制串的第0位至8位的子串,右移3位,得到pos2;将pos1和pos2相加,得到查找表的入口地址pos;然后根据pos地址查标记为logexp1tbl的表;若x小于0,对x的二进制串取反加1后,得到-x的二进制串;同理,取-x的二进制串的第9位至14位的子串,左移3位,得到pos1;取-x二进制串的第0位至8位的子串,右移3位,得到pos2;将pos1和pos2相加,得到查找表的入口地址pos;然后根据pos地址查标记为logexp0tbl的表;
(73)将查表的结果返回。
所述的概率卷积计算模块的具体处理过程为:
(81)读取数据q=(q1,q2,…,q7)和w;
(82)以q为输入调用∑log(1+eqi)模块,得到v_sum;
(83)根据w值,查找对应的概率卷积表,以v_sum和q为输入,并行调用子表概率卷积计算模块,共得到ksum个元素的概率向量p。
(84)将向量p返回。
步骤(82)中∑log(1+eqi)模块的具体处理过程为:
(821)读取q=(q1,q2,…,qL-1);
(822)以qi为输入,并行调用log(1+ex)模块,并求和,得到结果v_sum;
(823)返回v_sum。
步骤(83)中子表概率卷积计算模块的具体处理过程为
(831)读取q=(q1,q2,…,qL-1)和v_sum;
(832)在概率卷积表的子表中查找第一条二进制记录,记为b=(b1,b2,…,bL-1);将bi=1的对应位置的qi相加,减去v_sum,得到结果v01;同时,将bi=1对应位置的qi相加,减v_sum,得到结果v41;
(833)读取子表第二条记录,执行与步骤(82)同样的操作,得到结果v02和v42;
(834)依次读取子表其它记录,直到结束,执行与步骤(82)同样的操作,得到结果v0=(v01,v02,…,v0n)和v4=(v41,v42,…,v4n);
(835)并行调用log(∑exi)模块,对v0和v4两个向量做近似计算,得到结果,分别记为p0和p4;
(836)将p0和p4返回。
实施例
一种面向接收端链路自适应的译码信息处理方法,通过乒乓输入模块、译码器和乒乓输出模块三个模块组成的系统进行处理实现,如图1所示,主要包含如下3个步骤:乒乓输入、迭代译码和乒乓输出三个模块,具体步骤如下:
步骤(1),乒乓输入模块如图2所示,其串行接收一维大小1×N的符号序列y,对y串并转换为二维大小L×N/L的数据y’,并存储在数据缓冲区中;根据估计的信噪比SNR,以查表的方法计算1/σ,并写到数据缓冲区中的另一位置;每间隔一定时钟周期并行读取y’和σ’,并发送给译码器;
步骤(2),如图4所示的译码器在接收到数据后,由迭代水平迭代单元和垂直迭代单元分别进行迭代处理,再由多个判决单元对数据进行硬判决,然后将判决结果并行发送给乒乓输出模块;
步骤(3),乒乓输出模块如图3所示,其并行接收译码器中判决单元输出的判决结果,转换为串行数据,并输出。
步骤1)中的乒乓输入模块包括用于数据写入的Writer单元、用于数据计算的Calculation单元、用于数据读取的Reader单元以及第一数据缓冲区buffer1和第二数据缓冲区buffer2,步骤1)的具体处理步骤为:
11)第一数据缓冲区乒乓写操作:
Writer单元将串行接收到的数据进行转换,转换成多组并行数据,存储在第一数据缓冲区中;
Calculation单元根据输入的信道信噪比,通过查表计算得到1/σ数据,并通过Writer单元写入第一数据缓冲区中;
Writer单元对第一缓冲区完成写入操作后,向Reader单元发送读使能信号;
12)第一数据缓冲区乒乓读操作:
Reader单元接收到来自Writer单元和译码器的使能信号后,从第一数据缓冲区读取数据,发送给译码器;
Reader单元读取完第一数据缓冲区的数据后,发送一个进行第二数据缓冲区乒乓写操作的使能信号给Writer单元;
13)第二数据缓冲区乒乓写操作:
Writer单元将串行接收到的数据进行转换,转换成多组并行数据,存储在第二数据缓冲区中;
Calculation单元根据输入的信道信噪比,通过查表计算得到1/σ数据,并通过Writer单元写入第二数据缓冲区中;
Writer单元对第二缓冲区完成写入操作后,向Reader单元发送读使能信号;
14)第二数据缓冲区乒乓读操作:
Reader单元接收到来自Writer单元和译码器的使能信号后,从第二数据缓冲区读取数据,发送给译码器;
Reader单元读取完第二数据缓冲区的数据后,发送一个进行第一数据缓冲区乒乓写操作的使能信号给Writer单元;
15)重复步骤11)~14),以一定周期对两个数据缓冲区间隔进行数据读写。
其中,用于查询1/σ数据的表的构造方法具体如下:首先,设定SNR范围为[-5,35]dB,以步长为0.125在SNR内取点,共得到到321个点的向量snr_vec;再对snr_vec向量进行(10-snr/20)/0.1644计算,得到sigma向量;然后对sigma向量进行倒数计算,得到sigma'向量;最终让sigma'乘以2的9次幂,然后取整转换成长度为16位的二进制串表。
步骤2)中的译码器由包含L×L个硬件模块,每个硬件模块由存储单元memorybank、随机地址发生器RAG、水平迭代单元HUP、垂直迭代单元VUP和硬判决器HD组成,上述部件之间的关系如图5所示,每个硬件模块内的存储单元通过水平数据过滤器HDF进行水平连接,通过垂直数据过滤器VDF进行垂直连接,随机地址发生器连接存储单元,水平迭代单元连接水平数据过滤器,垂直迭代单元连接垂直数据过滤器,所述的水平迭代单元内包含有用于进行迭代处理的概率卷积表;
译码器的硬件构架时序由平迭代单元和的垂直迭代单元的时钟周期数kc和kv来控制,所述的水平迭代单元和垂直迭代单元之间串行交替执行,共进行16次迭代处理,其中前15次迭代的垂直处理为垂直迭代单元,最后1次迭代的垂直处理为硬判决器;
在迭代的水平处理中,共有L行并行,共64个水平迭代单元同时处理,在迭代的垂直处理中,共有L列并行,共64个垂直迭代单元同时处理,在判决处理时,共有L个硬判决器并行处理;
存储单元内的数据存储块memorybank(r,c)对应随机地址发生器RAG(r,c)及随机映射矩阵的子矩阵G(r,c),并与水平数据过滤器HDF(r)连接,其中,随机映射矩阵的分块具体为:对RAG(r,c)按N/L×N/L大小进行分块,每个子矩阵标记为G(r,c),其中r表示行号,c表示列号;memorybank(r,c)对应到子矩阵G(r,c),按子矩阵元素的列号进行存储,共N/L个存储元素,每个存储块有1个单端口RAM和2个双端口RAM组成,分别标记为w、E和Q,其中w存储对应元素的权重,E存储对应元素水平迭代的结果,Q存储对应元素垂直迭代的结果;
随机地址发生器RAG的具体处理过程如下:
(a1)对G(r,c)子矩阵按行号顺序获取非零元素的列位置,得到N/L个元素的向量pos,将pos向量以ROM存储,记为RAG(r,c);
(a2)接收kc时钟周期数,获取RAG第kc个值,标记为addr;
(a3)根据addr访问Memorybank(r,c)中的第addr个存储块,并传给水平迭代单元HUP;
水平数据过滤器HDF的具体处理过程如下:
(b1)从L个Memorybank(r,c)中读取Q数据;
(b2)然后将数据过滤后,得到L组数据;
(b3)将L组数据分发到对应的L个水平迭代单元HUP(r,c),其中发送水平迭代单元HUP(r,c)的数据包含memorybank(r,c)以外的Q值,以及memorybank(r,c)的w值和RAG(r,c)的地址addr。
水平迭代处理单元HUP的算法原理和模块如图6和图7所示,其具体处理过程如下:
(c1)读取一组从水平数据过滤器HDF过滤后的数据q=(q1,q2,…,qL-1)以及yi、w、σ’和随机地址发生器RAG产生的memorybank的地址addr;
(c2)以yi、w、σ’为输入,调用噪声计算模块进行噪声计算处理,得到两组长度为knum个元素,且对应比特为1和0的概率向量,分别记为z和z’;
(c3)以q=(q1,q2,…,qL-1)和w为输入,调用概率卷积计算模块,得到长度为knum个元素的概率卷积向量p;
(c4)以z和p为输入,调用近似计算模块进行近似计算处理,得到结果,记为r1;同理,以z’和p为输入,调用近似计算模块进行近似计算处理,得到结果,记为r0;
(c5)将r1减去r0作为结果,并根据地址addr将结果写回对应的memorybank的E存储单元。
垂直数据过滤器VDF的模块结构如图8所示,其具体处理过程如下:
(d1)从L个memorybank读取E数据;
(d2)然后将数据过滤后,得到L组数据;
(d3)将L组数据分发到对应的L个垂直迭代单元VUP,其中发送到垂直迭代单元VUP(r,c)的数据不包含memorybank(r,c)的E值;
垂直迭代单元VUP的具体处理过程如下:
(e1)读取垂直数据过滤器VDF发送过来的一组数据e=(e1,e2,…,eL-1);
(e2)对L-1个e值做累加计算;
(e3)根据kv的计数,将结果写回对应的memorybank中对应Q值的存储块。
硬判决器HD的模块结构如图9所示,具体处理过程如下:
(f1)读取垂直数据过滤器VDF发送过来的一组值e=(e1,e2,…,eL);
(f2)对e做累加计算;
(f3)将结果做判决,得到比特向量,记为b=(b1,b2,…,bL),发送到乒乓输出模块。
步骤(c2)中噪声计算模块的模块结构如图10所示,其噪声计算处理的具体步骤为:
(31)读取数据y、w、σ’;
(32)计算b=1的噪声概率,(k-y+w)2σ’,k从kmin到kmax,共knum个并行计算部件同时运行,得到结果向量z;同时并行计算b=0的噪声概率,(k-y)2σ’,k从kmin到kmax,共knum个并行计算部件同时运行,得到结果向量z’;
步骤(c4)中近似计算模块包括如图11所示的串行近似计算模块和如图12所示的并行近似计算模块;
串行近似计算模块进行串行近似计算处理,其具体步骤如下:
(c411)读取n个数据,x=(x1,x2,…,xn);
(c412)并行计算yi=xi-xi-1,i从2到n,y1=x1;
(c413)串行递归查表求近似,首先进行初始化,令i=n,以yi为输入,调用如图13所示的log(1+ex)模块,得到近似解,记为rtmp=log(1+eyi),并让i=i-1;然后串行递归,以yi+rtmp为输入,调用log(1+ex)模块,得到近似解,记为rtmp=log(1+eyi+tmp),直至i=2结束,得到rtmp;最后将y1与rtmp相加,得到结果,标记为rs;
(c414)将rs的值返回。
并行近似计算模块进行并行近似计算处理,其具体步骤如下:
(c421)读取n个数据x=(x1,x2,…,xn);
(c422)进行第一级计算,得到有(n+1)/2个元素的结果,记为t=(t1,t2,…,t(n+1)/2),其中,ti=max(x2i-1,x2i)+log(1+exp(-|x2i-1,x2i|)),i=1、2……n/2;具体计算过程为:
(c4221)将x的元素两两组合;
(c4222)对每一个组合,并行求最大值max(x2i-1,x2i),得到向量v_max;
(c4223)对每一个组合,并行调用log(1+ex)模块进行运算,近似得到向量v_appr;
(c4224)将v_max和v_appr对应位置的元素相加,得到结果向量t;
(c423)采用步骤(c422)的方法,进行第二级计算,得到n/4个元素的结果;
(c424)采用步骤(c422)的方法直至做完第log(n)级计算,其中级间计算串行运行,级内计算并行运行;
(c425)将计算结果返回。
log(1+ex)模块的运算过程为:
(71)读取数据x;
(72)计算x的入口地址,若x大于等于0,取x的二进制串的第9位至14位的子串,左移3位,得到pos1;取x二进制串的第0位至8位的子串,右移3位,得到pos2;将pos1和pos2相加,得到查找表的入口地址pos;然后根据pos地址查标记为logexp1tbl的表;若x小于0,对x的二进制串取反加1后,得到-x的二进制串;同理,取-x的二进制串的第9位至14位的子串,左移3位,得到pos1;取-x二进制串的第0位至8位的子串,右移3位,得到pos2;将pos1和pos2相加,得到查找表的入口地址pos;然后根据pos地址查标记为logexp0tbl的表;
步骤(72)查表的具体过程为:(721),x的范围划分成4个区域,分别是(-∞,-8)、[-8,0)、[0,8)和[8,+∞);(722),在[-8,0)范围之内,以0.125为步长取点,得到64个点的向量x;(723),对每一个点计算log(1+ex),得到向量y;(724),让y乘以2的10次幂,然后取整转换成长度为16位的二进制串表。(725),在[0,8)范围之内,以0.125为步长取点,得到64个点的向量x;(726),对每一个点计算log(1+ex),得到y向量;(727),让y减去x后乘以2的10次幂,然后取整转换成长度为16位的二进制串表。
(73)将查表的结果返回。
概率卷积计算模块如图14所示,其具体处理过程为:
(81)读取数据q=(q1,q2,…,q7)和w;
(82)以q为输入调用∑log(1+eqi)模块,得到v_sum;
(83)根据w值,查找对应的概率卷积表,以v_sum和q为输入,并行调用子表概率卷积计算模块,共得到ksum个元素的概率向量p。
(84)将向量p返回。
步骤(82)中∑log(1+eqi)模块的模块结构如图15所示,其具体处理过程为:
(821)读取q=(q1,q2,…,qL-1);
(822)以qi为输入,并行调用log(1+ex)模块,并求和,得到结果v_sum;
(823)返回v_sum。
步骤(83)中子表概率卷积计算模块如图16所示,其具体处理过程为
(831)读取q=(q1,q2,…,qL-1)和v_sum;
(832)在概率卷积表的子表中查找第一条二进制记录,记为b=(b1,b2,…,bL-1);将bi=1的对应位置的qi相加,减去v_sum,得到结果v01;同时,将bi=1对应位置的qi相加,减v_sum,得到结果v41;
(833)读取子表第二条记录,执行与步骤(82)同样的操作,得到结果v02和v42;
(834)依次读取子表其它记录,直到结束,执行与步骤(82)同样的操作,得到结果v0=(v01,v02,…,v0n)和v4=(v41,v42,…,v4n);
(835)并行调用log(∑exi)模块,对v0和v4两个向量做近似计算,得到结果,分别记为p0和p4;
(836)将p0和p4返回。
以上所述仅是本发明的较佳实例,本发明所主张的权利范围并不局限于此。本发明还有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。