一种基于准循环矩阵两级查找表的RCM编码器和编码方法与流程

文档序号:16244762发布日期:2018-12-11 23:28阅读:579来源:国知局
一种基于准循环矩阵两级查找表的RCM编码器和编码方法与流程

本发明属于传输速率自适应编码技术领域,更具体地,涉及一种基于准循环矩阵两级查找表的rcm编码方法。

背景技术

传输速率自适应技术根据当前信道的实时状态改变数据传输速率,从而使无线通信系统实现高效、可靠的信息传输。盲速率自适应技术可以克服amc(adaptivemodulationandcoding,amc)依赖于实时准确的信道估计和只能实现阶梯式速率调整的问题,在无需准确信道估计的条件下实现无缝速率的平滑调整。盲速率自适应技术的基本原理是:发送端对信息序列编码,不断生成并发送无速率编码符号,接收端根据接收的符号尝试解码。如果解码失败,则会接收到更多的编码符号后继续解码,直到解码成功或者达到最大的编码符号数量为止。信道条件越好,成功解码所需的符号数越少,从而传输效率越高;反之,传输效率越低。速率兼容调制rcm是一种盲速率自适应技术,相对于其他盲速率自适应技术,其频谱效率更高,解码复杂度低,适用的信道范围广,发送端实现简单等特点,具有较好的应用前景。

rcm的编码过程中是一个大小为m×n的准循环稀疏编码矩阵乘以长度为n信息序列,得到m个rcm符号。当m、n比较大时,编码矩阵的完全存储将会占用大量存储资源,且编码电路采用乘法器和加法器实现时,会降低编码电路吞吐率,导致编码吞吐率较低,难以满足高速编码的要求。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于准循环矩阵两级查找表的rcm编码方法,其目的在于准循环矩阵g、第一级查找表、多个模加器、多个选择器、拼接器和第二级查找表,通过第一级查找表查找编码矩阵,通过第二级查找表查找编码符号,由此提高传统rcm编码的吞吐率,且大幅度降低了存储空间的寻求。

为实现上述目的,本发明提供了一种基于准循环矩阵两级查找表的rcm编码器,所述编码器包括准循环矩阵g、第一级查找表、多个模加器、多个选择器、拼接器和第二级查找表,其中:

所述准循环矩阵g,由m×n个矩阵g组成,矩阵g大小为k×k,其中m×k=m,n×k=n,矩阵gα,β(1≤α≤m,1≤β≤n)是由单位矩阵向右循环移位pα,β位后乘随机权重值wα,β∈w得到,且wα,β1≠wα,β2(1≤α≤m,1≤β1≤n,1≤β2≤n);

所述第一级查找表,包含n个rom,n个rom分别存放n个权重值在矩阵首行中的列序号,权重集w中第l个权重值wl在矩阵首行中的列序号为top[l];用于根据准循环矩阵g的行序号i,求取第一级查找表的地址lut1_addr,从地址中读取各个权重值在矩阵首行中的列序号top[l];

所述模加器,数量为n,用于由top[l]求取各个权重值在矩阵所有行中的列序号colnum[l];

所述选择器,数量为n,用于从输入的信息序列b中选择第colnum[l]个比特bcolnum[l];

所述拼接器,用于将各个bcolnum[l]按照l=1,…,n的顺序进行拼接组成n个比特的二进制数data;

所述第二级查找表,包含一个rom,rom存放内容其中,al=lut2_addr[l];所述第二级查找表的地址lut2_addr=data;用于根据地址lut2_addr读取得到rcm编码符号si的值。

进一步地,所述第一级查找表的每个rom的字数为m,字长为c=logn个bit。

进一步地,第二级查找表中rom的字数为2n,字长为个bit。

进一步地,所述第一级查找表的地址

进一步地,所述模加器中列序号colnum[l]具体为:

colnum[l]=col>(top[l]/k+1)×k?col-k:col,

其中,col=top[l]+(i-1)%k。

另一方面,本发明还实现了一种基于准循环矩阵两级查找表的rcm编码方法,所述方法包括:

(1)构造准循环矩阵g,并按照准循环矩阵的结构构造第一级查找表和第二级查找表;

所述准循环矩阵g由m×n个矩阵g组成,矩阵g大小为k×k,其中m×k=m,n×k=n,矩阵gα,β(1≤α≤m,1≤β≤n)是由单位矩阵向右循环移位pα,β位后乘随机权重值wα,β∈w得到,且wα,β1≠wα,β2(1≤α≤m,1≤β1≤n,1≤β2≤n);

所述第一级查找表的地址为lut1_addr,包含n个rom,n个rom分别存放n个权重值在矩阵首行中的列序号,权重集w中第l个权重值wl在矩阵首行中的列序号为top[l];

所述第二级查找表的地址为lut2_addr,包含一个rom,rom存放内容其中,al=lut2_addr[l];

(2)根据准循环矩阵g的行序号i,求取第一级查找表的地址lut1_addr,从地址中读取各个权重值在矩阵首行中的列序号top[l];

(3)由top[l]求取各个权重值在矩阵所有行中的列序号colnum[l];

(4)从输入的信息序列b中选择第colnum[l]个比特bcolnum[l],将各个bcolnum[l]按照l=1,…,n的顺序进行拼接组成n个比特的二进制数data;

(5)第二级查找表的地址lut2_addr=data,rcm编码符号si的值即为读取地址lut2_addr中内容;

(6)若i=max,则结束;否则i=i+1并返回步骤(2);其中max表示所需的rcm编码符号数量。

进一步地,所述步骤(1)中第一级查找表的每个rom的字数为m,字长为c=logn个bit。

进一步地,所述步骤(1)中第二级查找表中rom的字数为2n,字长为个bit。

进一步地,所述步骤(2)中第一级查找表的地址

进一步地,所述步骤(3)中列序号colnum[l]为:

colnum[l]=col>(top[l]/k+1)×k?col-k:col

其中,col=top[l]+(i-1)%k。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:

本发明提出的基于准循环矩阵的两级查找表的rcm编码器由大小为m×c的第一级查找表、大小为2n×d的第二级查找表、n个选择器和极少量的模加运算单元组成完成,极大地降低编码器电路的实现复杂度。且该rcm编码器可以通过采用多级寄存器实现流水线的工作方式,每级电路的复杂度也得到大幅度降低,从而每个rcm符号的编码只需要一个时钟周期即可完成,其编码速率可达到系统时钟速率,满足高速编码的要求。

附图说明

图1是本发明中准循环矩阵的结构图;

图2是本发明中准循环矩阵的构造示意图;

图3是本发明中第一级查找表的实现结构图;

图4是本发明中第二级查找表的实现结构图;

图5是本发明中rcm的编码器结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

对于长度为n的信息比特向量b,其编码得到rcm编码符号向量s的过程如式所示:

s=g·b

式中g是大小为m×n的稀疏编码矩阵,每行有n个非零元素值,且这些非零元素选自一个大小为n的权重集w。

第i个rcm符号si的取值,由编码矩阵第i行的权重值和与权重值相对应位置的信息比特决定:

式中wl为权重取值,是信息比特向量中与第i行权值wl对应的比特值。

为了节省编解码器的存储空间,简化编解码器的电路设计,g采用准循环结构。如图1所示,矩阵g由m×n个元素g组成,每个g都是大小为k×k的循环移位加权矩阵,其中m×k=m,n×k=n;g中矩阵gα,β(1≤α≤m,1≤β≤n)是由单位矩阵向右循环移位pα,β位后乘以某个随机的权重值wα,β∈w得到,且wα,β1≠wα,β2(1≤α≤m,1≤β1≤n,1≤β2≤n)。

图2给出了一个m×n=30×30的准循环编码矩阵的结构示例,它是由m×n=5×5个循环移位加权矩阵构成,每个循环移位加权矩阵的大小为k×k=6×6。图2中左边矩阵g的每个元素代表一个循环移位加权矩阵g,元素值的大小表示单位加权矩阵向右循环移位的位数pα,β;右边矩阵给出了一个具体的元素g3,5,其循环移位值p3,5=2,权重为w3,5。

图3为rcm编码矩阵查找表,即第一级查找表。该查找表使用n个rom分别存放n个权重值的列序号。其中,roml存储wl的列序号。由于g是准循环矩阵,所以roml只需存储图1中权值为wl的矩阵g中首行非零元素的列序号top[l],其他行的列序号可以通过模加计算得到。

同时,矩阵g有m行,每个rom需要存储m=m/k个列序号,所以可以算出每个rom的字数是m。列序号的最大值为n,需要c=logn个bit表示权重值在g中的列序号,即每个rom的宽度是c。所以,第一级查找表的大小为m×c。

图4为rcm编码符号查找表,即第二级查找表,该查找表使用一个rom实现。该rom的地址lut2_addr的位宽为n,与权重集w的大小相等,所以其字数为2n。rom中每个存储单元存放的内容symbol与该存储单元的地址有关,可由下式计算得出。

其中,a是rom的地址lut2_addr,al表示该存储单元的地址的第l位,即al=lut2_addr[l]。每个symbol需要占用个bit存储,所以第二级查找表的大小为2n×d。

基于以上两级查找表,图5给出了rcm编码器的结构框图。下面以第i个rcm符号为例,介绍编码器的基本工作原理,具体步骤如下:

通过运算得到第一级查找表的地址lut1_addr,进而得到各个权重值ω的首行列序号top[l]。其中,第一级查找表的n个rom共用一个访问地址,表示对i/k向下取整;

将top[l]进行模加运算,计算过程如下式所示:

col=top[l]+(i-1)%k

colnum[l]=col>(top[l]/k+1)×k?col-k:col

得到第i行中各权重值的列序号colnum[l];

将colnum[l]作为选择器的输入端,从输入的信息序列b中选择信息序列中第colnum[l]个比特bcolnum[l],n个选择器共选择出n个bit,将它们按照bcolnum[l](l=1,…,n)的顺序进行拼接运算成n个比特的二进制数;

把拼接好的二进制数作为第二级查找表的访问地址lut2_addr,此时的地址就是信息序列中的与权重值对应的比特值,所以得到rcm符号si,从而完成一个rcm的编码;

重复以上步骤,直到产生所需的编码符号的个数或者达到最大编码符号的数量。

以上内容本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1