用于低密度奇偶校验(LDPC)码偏移优化的装置和方法与流程

文档序号:21035222发布日期:2020-06-09 20:23阅读:156来源:国知局
用于低密度奇偶校验(LDPC)码偏移优化的装置和方法与流程

本申请要求在美国专利商标局于2018年12月3日提交的美国临时专利申请序列号62/774,605号和于2019年2月6日提交的美国非临时专利申请序列号16/269,190的优先权,其全部内容通过引用结合于此。

本公开总体上涉及无线通信系统,更具体地,涉及用于低密度奇偶校验(low-densityparity-check,ldpc)码的偏移优化的装置和方法。



背景技术:

ldpc码已经被采用作为第三代合作伙伴计划(3rdgenerationpartnershipproject,3gpp)新无线电(newradio,nr)标准的共享信道的信道编码方案。虽然ldpc码的和积解码实现了非常好的解码性能,但是和积解码伴随着很大的计算复杂度。最小和(min-sum)解码用低复杂度操作代替了在和积解码中使用的复杂操作,代价是性能损失。ldpc码的偏移最小和(offsetmin-sum,oms)解码是在最小和过程中添加附加项的方法,试图在保持最小和过程的相同复杂性的同时接近和积性能。然而,为每种情况寻找最佳偏移(例如,码参数、信道条件)可能需要尽全力。



技术实现要素:

根据一个实施例,一种装置包括解码器和偏移值更新器,该解码器包括第一输入、第二输入、第三输入、第四输入、和输出,其中该第一输入被配置为接收传输块,该输出被配置为提供解码码字,该偏移值更新器包括连接到解码器的输出的输入、连接到解码器的第三输入并被配置为提供更新的偏移值的第一输出、以及连接到解码器的第四输入并被配置为提供要解码的下一码字的索引的第二输出。

根据一个实施例,方法包括:由第一解码器接收多个码字、偏移值和指示多个码字中的哪个将被解码的索引;由第二解码器解码由索引指示的多个码字之一;以及由偏移值更新器更新偏移值。

附图说明

结合附图,从下面的详细描述中,本公开的某些实施例的上述和其他方面、特征和优点将变得更加明显,其中:

图1是根据一个实施例的并行bp(backpropagation,反向传播)解码器的网络拓扑的图示;

图2是根据一个实施例的并行bp解码器的层l中的最小和计算的图示;

图3是根据一个实施例的使用更新规则的并行bp解码器和梯度计算的图示;

图4是根据一个实施例的顺序bp消息流的图示;

图5是根据一个实施例的在线学习方法的流程图;

图6是根据一个实施例的渐进学习方法的流程图;

图7是根据一个实施例的反馈学习方法的流程图;

图8是根据一个实施例的在不同传输环境下用大搜索空间更新偏移值的方法的流程图;

图9是根据一个实施例的用于在线学习的装置;

图10是根据一个实施例的用于偏移值更新器的装置;

图11是根据一个实施例的用于偏移值更新器的装置;

图12是根据一个实施例的用于反馈学习的装置;和

图13是根据一个实施例的应用了本公开的装置和方法的网络环境中的电子设备的框图。

具体实施方式

以下,参考附图详细描述本公开的实施例。应该注意的是,相同的元件将由相同的附图标记表示,尽管它们在不同的附图中示出。在以下描述中,提供诸如详细配置和组件的具体细节仅仅是为了帮助全面理解本公开的实施例。因此,对于本领域技术人员显而易见的是,在不脱离本公开的范围的情况下,可以对本文描述的实施例进行各种改变和修改。此外,为了清楚和简明起见,省略了对众所周知的功能和结构的描述。下面描述的术语是考虑到本公开中的功能而定义的术语,并且可以根据用户、用户意图或习惯而不同。因此,术语的定义应该基于本说明书的内容来确定。

本公开可以具有各种修改和各种实施例,其中实施例将在下面参考附图详细描述。然而,应当理解,本公开不限于实施例,而是包括本公开范围内的所有修改、等同物和替代物。

尽管包括序数(诸如第一、第二等)的术语可以用于描述各种元件,结构元件不受这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本公开的范围的情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如本文所用,术语“和/或”包括一个或多个相关项目的任何和所有组合。

本文使用的术语仅用于描述本公开的各种实施例,而不旨在限制本公开。单数形式旨在包括复数形式,除非上下文另有明确指示。在本公开中,应当理解,术语“包括”或“具有”指示特征、数字、步骤、操作、结构元件、部件或其组合的存在,并且不排除一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合的存在或添加的可能性。

除非定义不同,否则本文使用的所有术语具有与本公开所属领域的技术人员所理解的相同的含义。诸如在常用词典中定义的术语应被解释为具有与相关领域中的上下文含义相同的含义,并且除非在本公开中明确定义,否则不应被解释为具有理想的或过分形式化的含义。

本公开涉及用于经由梯度下降过程确定最佳偏移值的装置和方法,其中梯度经由反向传播过程计算。本公开包括确定梯度计算的方法。该方法不仅为梯度计算提供了低复杂度,而且能够为不同的调度技术(诸如并行和顺序bp)进行梯度计算。此外,本公开公开了用于适应不同传输环境的方法。

此外,本公开公开了用于bp解码的偏移参数的梯度计算的方法。该方法能够计算任何调度技术下关于偏移值的解码器的误差函数的梯度。此外,本公开公开了在某些码参数和信道条件下的最佳偏移值。

此外,为了考虑传输环境具有许多可自由改变的参数的更实际的情况,本公开公开了在这种传输环境下的方法。一种方法是在线学习,其中在传输期间学习最佳偏移值。另一种方法是增加偏移值的搜索空间,以找到用于所有传输环境的最佳偏移值。

为了在特定调度方法下找到最佳偏移值,计算关于偏移的解码器的预定义误差函数的梯度,并且在减小误差函数结果的方向上改变偏移值。因此,本公开公开了计算关于偏移值的解码器的误差函数的梯度。

下面更详细地公开了使用oms方法的并行bp的误差函数和梯度计算。此外,作为示例,公开了顺序调度下的梯度计算。然而,本公开适用于任何调度技术。

图1是根据一个实施例的并行bp解码器100的网络拓扑的图示。

参考图1,假设知道关于bp解码器100输出的正确决策,bp解码器100的输出是对数似然比(log-likelihoodratios,llr),γi,其中附加节点基于输出llr和正确决策来计算误差。

图1示出了包括l个输入层、l-2个隐藏层、l个输出层和1个代价函数计算层的l+1层网络。

l是层索引,其中l=1,...,l,并且其中l为整数。

集合(n,k,m)是由数量为n的可变节点101、数量为k的信息比特和数量为m的校验节点组成的集合,其中,n、k和m每个都是整数,并且其中m=n-k。

h∈zm×n是奇偶校验矩阵,其中每当校验节点i103连接到可变节点j101时hij=1,否则为零,其中i和j每个都是整数。

λ=[λ1,λ2,...,λn]t∈rn是可变节点101的输入llr,其中t是整数。

γ=[γ1,γ2...,γn]t∈rn是可变节点101的输出llr。

c(j)是连接到可变节点j101的一组校验节点103索引,其中j=1,...,n。

v(i)是连接到校验节点i103的一组可变节点101索引,其中i=1,...,m。

是第l次迭代的第i个校验节点103上的偏移参数。

是从第i个校验节点103到第j个可变节点101的校验节点103到可变节点101(checknode103tovariablenode101,c2v)的消息。

是从第j个可变节点101到第i个校验节点103的可变节点101到校验节点103(variablenode101tochecknode103,v2c)的消息。

f(γ):rn→r是代价函数105,使得j=f(γ)。

在每次迭代中,每个校验节点103的偏移值可以不同。然而,如果偏移值在整个网络上是固定的,固定的偏移值的梯度将是从先前网络计算的各个偏移值的和。

图2是根据一个实施例的并行bp解码器的层l中的最小和计算的图示。

参考图2,示出了在层l的消息的计算,其中m201、j205和n209是可变节点,并且其中i203和k207是校验节点。

在本公开中,求得所有层(l=1,...,l)的链式法则按等式(1)应用如下:

其中并且

由于的计算由等式(2)给出如下:

其中对于x=0,sign(x)=0。

此外,对于hij=1的所有i203,j205,由等式(3)给出如下:

其中并且最后的相等来自于以下事实:因为和k∈c(j)\i207的更新规则。

对于k∈c(j)207,在等式(4)中计算如下:

其中

公式(5)中对k∈c(j)207和n∈v(k)\j209的计算如下:

其中sign′(x)是sign(x)的一般导数。

等式(6)给出了sign(x)的零导数简化计算,如下所示:

因此,第l层(l<l)的偏移值的梯度由等式(7)给出如下:

其中对于x=0,sign(x)=0,并且是可变节点索引,使得的第一和第二最小值。

对于l=l的初始条件,等式(8)如下:

以及

因此,的更新规则不会直接遵循l<l的情况,而是可以从对于hij=1的i203,j205的先前关系中计算,如以下等式(9)所示:

图3是根据一个实施例的并行bp解码器300和使用更新规则的梯度计算的图示。

参考图3,总结了bp和反向传播过程,其中j301是可变节点,并且i303是校验节点。

图4是根据一个实施例的顺序bp消息流的图示。

参考图4,梯度计算被扩展到任何调度方法,其中j401和q403是可变节点,并且其中k1405、i407和k2409是校验节点。调度方法主要由处理校验节点的顺序来定义。顺序调度用作示例。然而,本公开可以使用任何调度方法。以类似于并行bp调度的方式,顺序bp方法在图4中示出。

顺序调度逐个校验节点地处理校验节点。因此,在处理每个校验节点之后,在处理接下来的校验节点之前,处理后的消息被反馈给所有连接的可变节点,由带箭头的虚线所示。下面将更详细地描述顺序bp解码的图形解释。

每个顺序c2v更新可以是网络的l层中的每一层内的子层,其中l层中的每一层具有m个子层,该m个子层表示m个顺序c2v更新的l-迭代。

此外,第l层中的每个c2v消息具有到相关联的传入(incoming)可变节点的虚拟反馈(由带箭头的虚线指示)。

反馈c2v用于子层内的v2c更新,只要反馈c2v满足因果约束。也就是说,如果k1<i,在更新中使用而不是

等式(10)和(11)显示了迭代l中的一般更新规则,如下所示:

与并行bp解码情况相比,可以在等式(12)中修改如下:

反向传播过程的初始条件可能是唯一必须小心处理的初始条件,其中等式(13)和(14)如下:

等式(15)和(16)如下:

匹配ber(biterrorrate,误码率)和bler(blockerrorrate,误块率)的误差函数描述如下。

等式(17)是交叉熵误差函数,如下所示:

其中,ti是可被视为真正传输比特(genuinetransmittedbit)的位置处i的真实比特,并且n是码字长度,其中n是整数。

等式(18)是如下的均方误差(meansquareerror,mse)误差函数:

等式(19)是如下的p范数误差函数:

为了识别给定目的的合理代价函数,可以考虑具有偏移值的误码率(ber)性能和误块率(bler)性能。对于具有基础-图形-1(base-graph-1)的新无线电ldpc(newradioldpc,nr-ldpc)码,bler和ber与偏移值相比,可以具有0.9176的码率和16的提升因子。在这种情况下,argminoffsetber≠argminoffsetbler。

为了最小化ber,交叉熵函数和mse函数是代价函数的良好候选,而大范数代价函数诸如10范数代价函数是最小化bler的良好候选。

偏移值在具有不同初始偏移值的并行和顺序bp下表现出收敛行为。

由于可能的码参数(诸如码率)可以带来很多可能性,所以为每个码参数和信道条件确定最佳偏移值可能成为计算负担,这需要大的查找表来存储每个传输环境的最佳偏移值。

根据一个实施例,本系统和方法提供在线学习,其中可以根据学习时的环境设置在实际传输期间学习偏移值。本公开可以提供更大的搜索空间,其中偏移值在每次迭代和每个校验节点处可以不同,并且用不同的环境设置来训练偏移值,以找到适合所有情况的偏移值。

如下参考图5所述的在线学习可用于确定传输期间的最佳偏移值。在一个实施例中,诸如码参数和信道条件的传输环境可以固定足够长的时间,以使得能够在特定情况下学习(例如,nrldpc标准)。例如,在可能包含多达400个码块的nr中的一个传输块传输期间,可以在所有码块上固定码参数和信道条件。然而,学习也需要知道正确的码字。因此,接收器需要正确的码字来执行梯度计算。循环冗余校验(cyclic-redundancy-check,crc)可用于确定正确的码字。经由crc来检查解码码字的正确性。具有非常高的概率,通过crc的码字是正确的码字,并且可以用于梯度计算。下面参考图6和图7更详细地描述包括渐进学习和反馈学习的两种在线学习方法。

图5是根据一个实施例的在线学习方法的流程图。

参考图5,在501,解码器接收传输块的码块(例如,码块或码字),设置偏移值的初始值(例如,0.5),并且在线学习方法进行到503。

在503,解码器解码码块,并且在线学习方法进行到505。

在505,偏移值更新器更新偏移值,并且在线学习方法或者进行到503,用于接收的码块的附加处理,或者终止。

图6是根据一个实施例的渐进学习方法的流程图。

参考图6,在601,解码器接收传输块的码块(例如,码块或码字),计数器中的索引i被设置为1,偏移值的初始值被设置(例如,0.5),并且渐进学习方法进行到603。

在603,解码器解码具有索引i的码块,循环冗余校验器对码块i执行crc,并且渐进学习方法进行到605。

在605,该方法确定码块i是否通过循环冗余校验器中的crc。如果码块i未通过循环冗余校验器中的crc,渐进学习方法进行到607。否则,渐进学习方法进行到609。

在607,计数器递增(increment)索引i(例如,i被设置为i+1),并且渐进学习方法返回到603。

在609,该方法将码块i添加到学习批次(例如,码块i存储在存储器中),并且渐进学习方法进行到611。

在611,模函数块执行i模x,并且比较器确定i模x是否等于0,其中x是预定整数,并且其中模函数可以被称为“mod”或百分比符号“%”。如果i模x不等于0,这表示x码块未通过crc,则渐进学习方法进行到607。否则,渐进学习方法进行到613,这指示x个码块已经通过crc。解码器从初始偏移值(例如,0.5)开始,然后在渐进学习方法期间,偏移值在每x个码块被正确解码之后被更新,其中更新的偏移值可以在下一x个码块被正确解码之后被更新。基于这些结果,可以确定x的最佳值。

在613,梯度计算器计算预定误差函数的梯度,基于所计算的梯度更新偏移值,清除学习批次(例如,存储在学习批次中的码块被擦除),并且渐进学习方法或者进行到607,用于接收的码块的附加处理,或者终止。

图7是根据一个实施例的反馈学习方法的流程图。

参考图7,在701,解码器接收传输块的码块(例如,码块或码字),计数器中的索引i被设置为1,偏移值的初始值被设置(例如,0.5),并且反馈学习方法进行到703。

在703,解码器解码具有索引i的码块,循环冗余校验器对码块i执行crc,并且反馈学习方法进行到705。

在705,循环冗余校验器确定码块i是否通过crc。如果码块i未通过循环冗余校验器中的crc,则反馈学习方法进行到707。否则,反馈学习方法进行到709。

在707,该方法将索引i保存到列表f(例如,索引i存储在存储器中),并且反馈学习方法进行到711。

在709,该方法将码块i添加到学习批次(例如,码块i存储在存储器中),并且反馈学习方法进行到711。

在711,比较器确定i是否等于传输块中的码块的数量。如果i不等于传输块中码块的数量,则反馈学习方法进行到713。否则,反馈学习方法进行到715。

在713,计数器递增索引i(例如,i被设置为i+1),并且反馈学习方法返回到703。

在715,梯度计算器在预定误差函数上计算梯度,基于计算的梯度更新偏移值,并且反馈学习方法进行到717。

在717,解码器解码列表f中具有索引i的每个码块,并且反馈学习方法终止。

在反馈学习方法中,解码器使用初始偏移值(例如,0.5)解码传输块中的所有码块。然后,从所有正确解码的码块中学习更新的偏移值。然后,解码器使用新学习的偏移值重新尝试解码先前被解码失败的码块(即,未通过crc的码块)。

图8是根据一个实施例的在不同传输环境下更新大搜索空间中的偏移值的方法的流程图。

参考图8,示出了可以在所有场景中使用的更新偏移值的方法。在该方法中,通过在每次迭代中在每个校验节点处允许不同的偏移值来增加偏移搜索空间。也就是说,使用偏移值的大空间和传输环境的混合(例如,不同的码率)来更新偏移值。

在801,该方法选择传输环境(例如,码率)和初始偏移值(例如,0.5),并且该方法进行到803。

在803,码生成器根据所选择的传输环境生成ldpc码,并且该方法进行到805。

在805,该方法选择信道(例如,加性白高斯噪声(additivewhitegaussiannoise,awgn)信道),并且该方法进行到807。

在807,解码器使用bp解码对ldpc码进行解码,并且该方法进行到809。

在809,该方法将反向传播应用于ldpc码,梯度计算器计算预定误差函数的梯度,并且该方法进行到811。

在811,该方法基于由梯度计算器计算的梯度更新偏移值,并且该方法进行到813。

在813,该方法确定是否满足停止准则。如果不满足停止准则,该方法返回801。否则,该方法进行到815。

在815,使用更新的偏移值,并且该方法终止。

图9是根据实施例的用于在线学习的装置900。

参考图9,装置900包括解码器901和偏移值更新器903。

解码器901包括:用于接收传输块(例如,码块或码字)的第一输入;用于接收初始偏移值(例如,0.5)的第二输入;用于接收更新的偏移值的第三输入;用于接收将由解码器901解码的所接收的传输块的下一码块的索引的第四输入;以及输出。

偏移值更新器903包括:连接到解码器901的输出的输入;连接到解码器901的第四输入的第一输出,用于为将由解码器901解码的所接收的传输块的下一码块提供索引;以及连接到解码器901的第三输入的第二输出,用于提供将由解码器901使用的更新的偏移值以解码所接收的传输块的下一码块。

图10是根据实施例的渐进学习的图9的偏移值更新器903的装置。

参考图10,偏移值更新器903包括crc设备1003、计数器1005、存储器1007、模数设备(mod)1009和梯度计算器1011。

crc设备1003包括:输入,用于接收解码码字并确定解码码字是否通过或未通过循环冗余校验;第一输出,用于指示解码码字未通过循环冗余校验,以及第二输出,用于指示解码码字通过循环冗余校验。

计数器1005包括:第一输入,连接到crc设备1003的第一输出,以指示解码码字未通过循环冗余校验并且索引应该递增以指示要解码的下一码字;第二输入,用于接收特定数量x的解码码字已经通过循环冗余校验并且索引应该递增以指示要解码的下一码字的指示;第三输入,用于接收偏移值被更新和索引应该递增以指示要解码的下一码字的指示;以及输出,用于输出指示要解码的下一码字的递增的索引。

存储器1007包括:第一输入,连接到crc设备1003的第二输出,用于存储通过循环冗余校验的每个解码码字(例如,将通过循环冗余校验的每个解码码字添加到学习批次);第二输入,用于接收在偏移值被更新后擦除存储器的指示(例如,清除学习批次);以及输出,用于提供通过循环冗余校验的存储的解码码字(例如,提供学习批次)。

模数设备1009包括:第一输入,用于接收x,其中x是整数,x指示在偏移值被更新之前有多少解码码字必须通过循环冗余校验;第二输入,连接到crc设备1003的第二输出;第一输出,连接到计数器1005的第二输入,用于指示x个解码码字未通过循环冗余校验;以及第二输出,用于指示x个解码码字已经通过循环冗余校验。

梯度计算器1011包括:第一输入,连接到模数设备1009的第二输出,用于接收x个解码码字已经通过循环冗余校验以及梯度计算器1011将计算解码器的误差函数的梯度并且基于计算的梯度来更新偏移值的指示;第二输入,连接到存储器1007的输出,以接收通过循环冗余校验的解码码字(例如,接收学习批次);第一输出,连接到存储器1007的第二输入,用于擦除存储器1007(例如,清除学习批次);第二输出,连接到计数器1005的第三输入,用于递增指示要解码的下一码字的索引;以及第三输出,用于输出更新的偏移值。

图11是根据实施例的用于反馈学习的图9的偏移值更新器903的装置。

参考图11,偏移值更新器903包括crc设备1103、存储器1105、比较器1107、计数器1109和梯度计算器1111。

crc设备1103包括:输入,用于接收解码码字并确定解码码字是否通过或未通过循环冗余校验;第一输出,用于指示解码码字未通过循环冗余校验;以及第二输出,用于指示解码码字通过循环冗余校验。

存储器1105包括:第一输入,连接到crc设备1103的第一输出,用于存储未通过循环冗余校验的每个解码码字(例如,将未通过循环冗余校验的每个解码码字添加到失败列表或f列表);第二输入,连接到crc设备1103的第二输出,用于存储通过循环冗余校验的每个解码码字(例如,将通过循环冗余校验的每个解码码字添加到学习批次);第三输入,用于接收更新偏移值后擦除存储器的指示(例如,清除f列表和学习批次);以及输出,以提供未通过循环冗余校验的存储的解码码字(例如,提供f列表)和通过循环冗余校验的存储的解码码字(例如,提供学习批次)。

比较器1107包括:第一输入,用于接收x,其中x是指示传输块中码字数量的整数;第二输入,连接到crc设备1103的第一输出以指示解码码字未通过循环冗余校验;第三输入,连接到crc设备1103的第二输出以指示解码码字已经通过循环冗余校验;第一输出,用于指示传输块中的所有码字尚未解码;以及第二输出,用于指示传输块中的所有码字都已被解码。比较器1107将未通过循环冗余校验的解码码字的数量与通过循环冗余校验的解码码字的数量相加,并将和与x进行比较,以确定传输块中的所有码字是否都已被解码。

计数器1109包括:输入,连接到比较器1107的第一输出,用于接收传输块中并非所有码字都已解码的指示;以及输出,用于输出递增的索引以指示要解码的下一码字。计数器1109递增索引以指示要解码的下一码字。

梯度计算器1111包括:第一输入,连接到比较器1107的第二输出,用于接收传输块中的所有码字都已被解码的指示;第二输入,连接到存储器1105的输出,以接收未通过循环冗余校验的解码码字(例如,接收f列表)和通过循环冗余校验的解码码字(例如,接收学习批次);第一输出,连接到存储器1105的第三输入,用于擦除存储器1105(例如,清除f列表和学习批次);以及第二输出,用于输出将用于下一传输块的更新的偏移值和将使用更新的偏移值解码的未通过循环冗余校验的解码码字(例如,f列表)。

图12是根据实施例的用于反馈学习的装置1200。

参考图12,装置1200包括第一解码器1201、偏移值更新器1203和第二解码器1205。

第一解码器1201包括:第一输入,用于接收传输块(例如,码块或码字);第二输入,用于接收初始偏移值(例如,0.5);第三输入,用于接收更新的偏移值;第四输入,用于接收将由第一解码器1201解码的所接收的传输块的下一码块的索引;以及输出。

偏移值更新器1203包括:输入,连接到第一解码器1201的输出;第一输出,连接到第一解码器1201的第四输入,用于为将由第一解码器1201解码的所接收的传输块的下一码块提供索引;以及第二输出,连接到第一解码器1201的第三输入,用于提供将由第一解码器1201使用的更新的偏移值以解码所接收的传输块的下一码块。偏移值更新器1203可以是图11的偏移值更新器903。

第二解码器1205包括:第一输入,连接到第一解码器1201的第一输入,用于接收所接收的传输块(例如,码块或码字);第二输入,连接到偏移值更新器1203的第二输出;以及输出。

为了找到适合两种不同码率的偏移值,在训练阶段,偏移值在高码率和低码率两种不同情况下被训练。

例如,一种情况可以是以2.5db的信噪比(signaltonoiseratio,snr)从24个校验节点构造ldpc码。

例如,一种情况可以是以0.5db的snr从46个校验节点构造ldpc码。

下面的表1是当针对该情况专门训练偏移时以及当经由两种速率的混合来训练偏移时在指定snr下的bler结果的总结。

表1

上面的表1显示,如果偏移是针对输入的混合进行训练的,则情况2的结果几乎不变,而情况1的性能预计会有一些损失,但仍优于0.5的固定偏移值。因此,可以用混合的输入来更新偏移值,以便在不同的场景中使用。

为了在不同迭代中更新偏移值,可以使用大数量的迭代(例如,5或6次迭代)。

根据实施例,经由在ldpc码传输期间的在线学习,由bp解码器和相应的反向传播网络解码ldpc码的本系统和方法包括:接收包括lpdc码的码块;使用oms解码和初始偏移值执行码块的bp解码;对解码的码块执行crc;响应于解码的码块通过crc,将码块添加到一组学习块中;以及将置信反向传播(beliefbackpropagation)应用于该组学习块以通过至少计算关于偏移值的解码器的误差函数的梯度来更新偏移值,在减小误差函数的误差输出的方向上更新偏移值,并清除该组学习块。

根据另一个实施例,寻找最佳偏移值用于由bp解码器和相应的反向传播网络解码ldpc码的本系统和方法包括:接收根据传输环境生成的在信道上传输的lpdc码;使用oms解码和初始偏移值执行码块的bp解码;以及将反向传播应用于码块以通过至少计算关于偏移值的解码器的误差函数的梯度来更新偏移值,在减小误差函数的误差输出的方向上更新偏移值,对照标准评估更新的偏移值以确定更新的偏移值是否充分优化,以及响应于确定更新的偏移值充分优化,使用更新的偏移值解码之后的lpdc码。

图13是示出根据各种实施例的网络环境1400中的电子设备1301的框图。

参考图13,网络环境1400中的电子设备1301可以经由第一网络1398(例如,短程无线通信网络)与电子设备1302通信,或者经由第二网络1399(例如,远程无线通信网络)与电子设备1304或服务器1308通信。根据实施例,电子设备1301可以经由服务器1308与电子设备1304通信。根据实施例,电子设备1301可以包括处理器1320、存储器1330、输入设备1350、声音输出设备1355、显示设备1360、音频模块1370、传感器模块1376、接口1377、触觉模块1379、相机模块1380、电力管理模块1388、电池1389、通信模块1390、订户识别模块1396,或天线模块1397。在一些实施例中,电子设备1301中可以省略至少一个组件(例如,显示设备1360或相机模块1380),或者可以在电子设备1301中添加一个或多个其他组件。在一些实施例中,一些组件可以实施为单个集成电路。例如,传感器模块1376(例如指纹传感器、虹膜传感器或照度传感器)可以被实施为嵌入在显示设备1360(例如显示器)中。

处理器1320可以执行例如软件(例如程序1340)来控制与处理器1320联接的电子设备1301的至少一个其他组件(例如硬件或软件组件),并且可以执行各种数据处理或计算。根据一个实施例,作为数据处理或计算的至少一部分,处理器1320可以将从另一组件(例如,传感器模块1376或通信模块1390)接收的命令或数据加载到易失性存储器1332中,处理存储在易失性存储器1332中的命令或数据,并将结果数据存储在非易失性存储器1334中。根据实施例,处理器1320可以包括主处理器1321(例如,中央处理单元(centralprocessingunit,cpu)或应用处理器(applicationprocessor,ap))和辅助处理器1323(例如,图形处理单元(graphicsprocessingunit,gpu)、图像信号处理器(imagesignalprocessor,isp)、传感器中枢处理器或通信处理器),辅助处理器1323独立于主处理器1321或与主处理器1321结合操作。附加地或替代地,辅助处理器1323可以适于消耗比主处理器1321更少的功率,或者专用于特定的功能。辅助处理器1323可以被实施为独立于主处理器1321或者作为主处理器1321的部分。

辅助处理器1323可以在主处理器1321处于非活动(例如,睡眠)状态时代替主处理器1321或者在主处理器1321处于活动状态(例如,执行应用)时与主处理器1321一起,控制与电子设备1301的组件当中的至少一个组件(例如,显示设备1360、传感器模块1376或通信模块1390)相关的至少一些功能或状态。根据实施例,辅助处理器1323(例如,图像信号处理器或通信处理器)可以被实施为功能上与辅助处理器1323相关的另一组件(例如,相机模块1380或通信模块1390)的部分。

存储器1330可以存储由电子设备1301的至少一个组件(例如,处理器1320或传感器模块1376)使用的各种数据。各种数据可以包括例如软件(例如程序1340)和与其相关的命令的输入数据或输出数据。存储器1330可以包括易失性存储器1332或非易失性存储器1334。

程序1340可以作为软件存储在存储器1330中,并且可以包括例如操作系统(operatingsystem,os)1342、中间件1344或应用1346。

输入设备1350可以从电子设备1301的外部(例如,用户)接收要由电子设备1301的另一组件(例如,处理器1320)使用的命令或数据。输入设备1350可以包括例如麦克风、鼠标、键盘或数字笔(例如触控笔)。

声音输出设备1355可以向电子设备1301的外部输出声音信号。声音输出设备1355可以包括例如扬声器或接收器。扬声器可用于一般目的,诸如播放多媒体或播放唱片,而接收器可用于来电。根据实施例,接收器可以被实施为与扬声器分离或者作为扬声器的部分。

显示设备1360可以可视地向电子设备1301的外部(例如,用户)提供信息。显示设备1360可以包括例如显示器,全息设备,或投影仪以及控制显示器、全息设备和投影仪中相应的一个的控制电路。根据实施例,显示设备1360可以包括适于检测触摸的触摸电路,或者适于测量触摸引起的力的强度的传感器电路(例如,压力传感器)。

音频模块1370可以将声音转换成电信号,反之亦然。根据实施例,音频模块1370可以经由输入设备1350获得声音,或者经由声音输出设备1355或直接地(例如,有线)或无线地与电子设备1301联接的外部电子设备(例如,电子设备1302)的耳机来输出声音。

传感器模块1376可以检测电子设备1301的操作状态(例如,功率或温度)或电子设备1301外部的环境状态(例如,用户的状态),然后生成对应于检测到的状态的电信号或数据值。根据实施例,传感器模块1376可以包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁传感器、加速度传感器、抓握传感器、接近传感器、颜色传感器、红外(infrared,ir)传感器、生物测定传感器、温度传感器、湿度传感器或照度传感器。

接口1377可以支持用于电子设备1301与外部电子设备(例如,电子设备1302)直接地(例如,有线)或无线地联接的一个或多个指定协议。根据实施例,接口1377可以包括例如高清晰度多媒体接口(highdefinitionmultimediainterface,hdmi)、通用串行总线(universalserialbus,usb)接口、安全数字卡(securedigital,sd)接口或音频接口。

接线端子1378可以包括连接器,电子设备1301可以经由该连接器与外部电子设备(例如,电子设备1302)物理连接。根据实施例,接线端子1378可以包括例如hdmi连接器、usb连接器、sd卡连接器或音频连接器(例如耳机连接器)。

触觉模块1379可以将电信号转换成机械刺激(例如,振动或运动)或电刺激,用户可以经由他的触觉或动觉来识别这些刺激。根据实施例,触觉模块1379可以包括例如马达、压电元件或电刺激器。

相机模块1380可以捕捉静止图像或运动图像。根据实施例,相机模块1380可以包括一个或多个镜头、图像传感器、图像信号处理器或闪光灯。

电力管理模块1388可以管理供应给电子设备1301的电源。根据一个实施例,电力管理模块1388可以被实施为例如功率管理集成电路(powermanagementintegratedcircuit,pmic)的至少部分。

电池1389可以向电子设备1301的至少一个组件供电。根据实施例,电池1389可以包括例如不可充电的原电池、可再次充电的蓄电池或燃料电池。

通信模块1390可以支持在电子设备1301和外部电子设备(例如,电子设备1302、电子设备1304或服务器1308)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块1390可以包括一个或多个通信处理器,其独立于处理器1320(例如,ap)操作,并且支持直接(例如,有线)通信或无线通信。根据实施例,通信模块1390可以包括无线通信模块1392(例如,蜂窝通信模块、短程无线通信模块或全球导航卫星系统(globalnavigationsatellitesystem,gnss)通信模块)或有线通信模块1394(例如,局域网(localareanetwork,lan)通信模块或电力线通信(powerlinecommunication,plc)模块)。这些通信模块中的相应一个可以经由第一网络1398(例如,诸如bluetoothtm、无线保真(wireless-fidelity,wi-fi)直接或红外数据协会(infrareddataassociation,irda)的短程通信网络)或第二网络1399(例如,诸如蜂窝网络、互联网或计算机网络(例如,lan或广域网(wideareanetwork,wan))的远程通信网络)与外部电子设备通信。这些不同类型的通信模块可以实施为单个组件(例如,单个芯片),或者可以实施为彼此分离的多个组件(例如,多个芯片)。无线通信模块1392可以使用存储在订户识别模块1396中的订户信息(例如,国际移动订户身份(internationalmobilesubscriberidentity,imsi))来识别和认证诸如第一网络1398或第二网络1399的通信网络中的电子设备1301。

天线模块1397可以向或从电子设备1301的外部(例如,外部电子设备)发送或接收信号或功率。根据实施例,天线模块1397可以包括天线,该天线包括由形成在基板(例如,印刷电路板)中或基板上的导电材料或导电图案组成的辐射元件。根据实施例,天线模块1397可以包括多个天线。在这种情况下,例如,通信模块1390(例如,无线通信模块1392)可以从多个天线中选择适用于诸如第一网络1398或第二网络1399的通信网络中使用的通信方案的至少一个天线。信号或功率然后可以经由所选择的至少一个天线在通信模块1390和外部电子设备之间发送或接收。根据实施例,除辐射元件之外的另一组件(例如,射频集成电路(radiofrequencyintegratedcircuit,rfic))可以另外形成为天线模块1397的部分。

至少一些上述组件可以相互联接,并且经由外围设备间通信方案(例如,总线、通用输入和输出(generalpurposeinputandoutput,gpio)、串行外围设备接口(serialperipheralinterface,spi)或移动工业处理器接口(mobileindustryprocessorinterface,mipi))在它们之间通信信号(例如,命令或数据)。

根据实施例,命令或数据可以经由与第二网络1399联接的服务器1308在电子设备1301和外部电子设备1304之间传输或接收。电子设备1302和1304中的每一个可以是与电子设备1301相同类型或不同类型的设备。根据实施例,要在电子设备1301处执行的所有或一些操作可以在外部电子设备1302、1304或1308中的一个或多个处执行。例如,如果电子设备1301应该自动或者响应于来自用户或另一设备的请求执行功能或服务,该电子设备1301代替或者除了执行功能或服务之外,可以请求一个或多个外部电子设备执行该功能或服务的至少部分。接收请求的一个或多个外部电子设备可以执行所请求的功能或服务的至少部分,或者与请求相关的附加功能或附加服务,并且将执行的结果传送到电子设备1301。无论是否进一步处理该结果,电子设备1301可以提供结果作为对请求的答复的至少部分。为此,例如,可以使用云计算、分布式计算或客户机-服务器计算技术。

根据各种实施例的电子设备可以是各种类型的电子设备之一。电子设备可以包括例如便携式通信设备(例如智能手机)、计算机设备、便携式多媒体设备、便携式医疗设备、相机、可穿戴设备或家用电器。根据本公开的实施例,电子设备不限于上述那些。

应当理解,本公开的各种实施例和其中使用的术语并不旨在将这里阐述的技术特征限制于特定实施例,而是包括相应的实施例的各种变化、等同物或替换。关于附图的描述,相似的附图标记可以用来指代相似或相关的元件。应当理解,对应于一个项目的名词的单数形式可以包括一个或多个事物,除非相关上下文清楚地另有指示。本文所用的这样的短语“a或b”,“a和b中的至少一个”,“a或b中的至少一个”,“a,b,或c”,“a、b和c中的至少一个”和“a、b或c中的至少一个”中的每一个可以包括在短语中相应的一个短语中一起列举的项目中的任何一个或所有可能的组合。如本文所使用的,诸如“第一”和“第二”的术语可以用于简单地将相应的组件彼此区分开来,并且不在其他方面(例如,重要性或顺序)限制组件。应当理解,如果元件(例如,第一元件)被称为“与…联接”、“联接到”、“与…连接”或“连接到”另一个元件(例如,第二元件),带有或不带有术语“可操作地”或“通信地”,这意味着该元件可以直接地(例如,有线)、无线地或经由第三元件与另一个元件耦合。

如本文所使用的,术语“模块”可以包括以硬件、软件或固件实施的单元,并且可以与其他术语互换使用,例如,“逻辑”、“逻辑块”、“部件”或“电路”。模块可以是适于执行一个或多个功能的单个整体组件,或其最小单元或部分。例如,根据实施例,模块可以以专用集成电路(application-specificintegratedcircuit,asic)的形式实施。

本文阐述的各种实施例可以实施为软件(例如,程序1340),包括存储在机器(例如,电子设备1301)可读的存储介质(例如,内部存储器1336或外部存储器1338)中的一个或多个指令。例如,机器的处理器1320(例如,电子设备1301)可以调用存储在存储介质中的一个或多个指令中的至少一个,并且在处理器的控制下使用或不使用一个或多个其他组件来执行该指令。这允许机器根据所调用的至少一个指令来操作以执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或由解释器可执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。其中,术语“非暂时性”简单地意味着存储介质是有形设备,并且不包括信号(例如电磁波),但是该术语不区分数据半永久性地存储在存储介质中的位置和数据临时存储在存储介质中的位置。

根据实施例,根据本公开各种实施例的方法可以被包括并提供在计算机程序产品中。计算机程序产品可以作为产品在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(compactdiscreadonlymemory,cd-rom))的形式分发,或者经由应用商店(例如,playstoretm)在线分发(例如,下载或上传),或者直接在两个用户设备(例如,智能电话)之间分发。如果在线分发,计算机程序产品的至少部分可以临时生成或者至少临时存储在机器可读存储介质中,诸如制造商服务器的存储器、应用商店的服务器或者中继服务器。

根据各种实施例,上述组件的每个组件(例如,模块或程序)可以包括单个实体或多个实体。根据各种实施例,可以省略一个或多个上述组件,或者可以添加一个或多个其他组件。可选地或附加地,多个组件(例如,模块或程序)可以集成到单个组件中。在这种情况下,根据各种实施例,集成组件仍然可以以与它们在集成之前由多个组件中的相应一个执行相同或相似的方式来执行多个组件中的每一个的一个或多个功能。根据各种实施例,由模块、程序或另一组件执行的操作可以顺序地、并行地、重复地或启发式地执行,或者一个或多个操作可以以不同的顺序执行或省略,或者可以添加一个或多个其他操作。

尽管在本公开的详细描述中已经描述了本公开的某些实施例,但是在不脱离本公开的范围的情况下,可以以各种形式修改本公开。因此,本公开的范围不应仅基于所描述的实施例来确定,而是基于所附权利要求及其等同物来确定。

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