CN114051701B - 用于机器学习辅助预编码的设备和方法 - Google Patents

用于机器学习辅助预编码的设备和方法 Download PDF

Info

Publication number
CN114051701B
CN114051701B CN202080048329.9A CN202080048329A CN114051701B CN 114051701 B CN114051701 B CN 114051701B CN 202080048329 A CN202080048329 A CN 202080048329A CN 114051701 B CN114051701 B CN 114051701B
Authority
CN
China
Prior art keywords
radius
sphere
algorithm
function
search
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
Application number
CN202080048329.9A
Other languages
English (en)
Other versions
CN114051701A (zh
Inventor
G·雷卡亚
A·阿斯科利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut Mines Telecom IMT
Original Assignee
Institut Mines Telecom IMT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institut Mines Telecom IMT filed Critical Institut Mines Telecom IMT
Publication of CN114051701A publication Critical patent/CN114051701A/zh
Application granted granted Critical
Publication of CN114051701B publication Critical patent/CN114051701B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/0413MIMO systems
    • H04B7/0452Multi-user MIMO systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/0413MIMO systems
    • H04B7/0456Selection of precoding matrices or codebooks, e.g. using matrices antenna weighting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • H04L1/0618Space-time coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0212Channel estimation of impulse response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03343Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L2025/03433Arrangements for removing intersymbol interference characterised by equaliser structure
    • H04L2025/03439Fixed structures
    • H04L2025/03445Time domain
    • H04L2025/03458Lattice
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L2025/03433Arrangements for removing intersymbol interference characterised by equaliser structure
    • H04L2025/03439Fixed structures
    • H04L2025/03445Time domain
    • H04L2025/03464Neural networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

一种对信息符号向量进行预编码的预编码器(200)。预编码器(200)包括:‑半径确定单元(201),其被配置为确定搜索球半径,搜索球半径的确定包括将机器学习算法应用于依赖于信息符号向量和预定义预编码矩阵的输入数据;‑球编码单元(203),其被配置为通过应用基于球搜索的顺序算法根据在球体区域内找到的网格点来确定扰动向量,球体区域将搜索球半径作为半径,以及‑预编码单元(205),其被配置为使用扰动向量和预编码矩阵对信息符号向量进行预编码。

Description

用于机器学习辅助预编码的设备和方法
技术领域
本发明总体上涉及数字通信,并且具体地,涉及用于对数据信号进行预编码的方法和设备。
背景技术
开发了多输入多输出(MIMO)技术以增加系统容量并提供更好的链路可靠性。MIMO系统利用空间和时间维度来在多个时隙上使用大量发送和/或接收天线对更多数据符号进行编码和复用。因此,可以增强基于MIMO的通信系统的容量、范围和可靠性。MIMO技术的这些关键潜在优势使其成为例如应用于局域网和广域网的许多有线通信系统、无线通信系统和光学通信系统的理想选择。
MIMO系统的一个主要挑战是适应实时服务和应用对数据速率不断增长的需求。另一挑战涉及收发器设备处的信号处理的复杂度和能耗。
预编码(也称为“发送波束成形”)是一种多用户信号处理技术,其利用由多个发送天线提供的空间自由度同时为多天线无线通信系统中的多个用户提供服务。
在MIMO点对点系统中,预编码使得能够从具有独立且适当的权重的发送天线发送多个数据流,从而使接收器输出端处的链路吞吐量最大化。
在多用户MIMO系统(也称为分布式MIMO系统)中,多天线发送器根据空分多址(SDMA)技术与多个接收器进行通信。预编码使得能够基于发送器处的信道知识分离用户数据流和预消除干扰,使得一个或更多个目标函数(例如,吞吐量最大化、公平性最大化)在一个或更多个约束(例如,总发送功率约束、每天线发送功率约束)下得到满足。存在不同的预编码技术来解决不同约束下的不同目标函数。
预编码技术可以分组为两个类别:线性和非线性。当信号处理过程只涉及线性运算并参考线性发送滤波器时,实现线性预编码。示例性线性预编码技术包括:
-“T.Lo,Maximum ratio transmission,IEEE Transactions onCommunications,vol.47,no.10,pp.1458–1461,1999”中公开的最大比率传输(MRT);
-“M.Joham,W.Utschick,and J.Nossek,Linear transmit processing in MIMOcommunications systems,IEEE Transactions on Signal Processing,vol.53,no.8,pp.2700–2712,2005”中公开的迫零(ZF)预编码,
-“E. and E.Jorswieck,Optimal Resource Allocation inCoordinated Multi-Cell Systems,Foundations and Trends in Communications andInformation Theory,vol.9,no.2-3,pp.113-381,2013”中公开的最小均方误差(MMSE)预编码,以及
-“M.Joham,W.Utschick,and J.Nossek,Linear transmit processing in MIMOcommunications systems,IEEE Transactions on Signal Processing,vol.53,no.8,pp.2700–2712,2005”中公开的发送Wiener预编码。
线性预编码技术需要合理的计算复杂度。然而,它们提供了次优的性能。例如,MRT仅在预期用户/接收器处最大化信号增益,并且仅在噪声有限的系统(在这些系统中,与噪声相比,用户间干扰可以忽略不计)中接近最佳。
ZF预编码完全消除多用户干扰的能力使其可用于高信噪比情况,但会损失一些信号增益。然而,ZF预编码在噪声有限的情况下远非最佳。另外,使用ZF预编码,使用信道矩阵的伪逆矩阵对发送向量进行预滤波,这需要高传输功率,特别是当信道矩阵是病态的时。
非线性预编码基于“H.Weingarten,Y.Steinberg,and S.Shamai,The capacityregion of the Gaussian multiple-input multiple-output broadcast channelArchived 2012-10-23 at the Wayback Machine,IEEE Transactions on InformationTheory,vol.52,no.9,pp.3936–3964,2006”中公开的脏纸编码的概念。脏纸编码表明,如果可以对发送信号应用最佳预编码方案,则可以在不损失无线电资源的情况下减去发送器处的任何已知干扰。在这样的编码方案中,只有发送器需要知道干扰,而发送器和接收器需要完整的信道状态信息以实现加权和容量。示例性非线性预编码技术包括:
-“M.Costa,Writing on dirty paper,IEEE Transactions on InformationTheory,vol.29,no.3,pp.439–441,1983”中公开的Costa预编码;
-“M.Tomlinson,New automatic equalizer employing modulo arithmetic,Electronics Letters,vol.7,no.5,pp.138–139,1971”中公开的Tomlinson-Harashima预编码(THP),以及
-“B.M.Hochwald,C.B.Peel,and A.L.Swindlehurst,A vector-perturbationtechnique for near-capacity multiantenna multi-user communication-Part II:Perturbation,IEEE Transactions on Communications,vol.53,no.1,pp.537–544,2005”中公开的向量置换技术。
通过经由非线性模运算限制发送功率,THP实现了比线性预编码策略更好的性能。向量扰动技术使得能够通过扰动发送向量来进一步降低发送功率,其中使用“B.Hochwald,C.Peel,and L.Swindlehurst,“A vector-perturbation technique for near-capacitymultiantenna multiuser communication-Part II:Perturbation,”IEEE Transactionson Communications,vol.53,no.3,pp.537-544,Mar.2005”中公开的球编码器(sphereencoder)来找到最佳扰动向量。
虽然球编码器实现了全分集阶数和良好的性能,但它需要随着天线数量的增加呈指数增长的高计算复杂度。
为了克服球编码器的随机复杂度,已经开发了球编码器实现方式。“J.Z.Zhangand K.J.Kim,“Near-capacity MIMO multiuser precoding with QRD-M algorithm,”inProceedings of IEEE ACSSC,pages 1498-1502,November 2005”中提出了称为M算法编码器的示例性实现方式。M算法编码器是基于将各个编码树级别的候选者数量减少至M个候选者的。M算法编码器实现了与球编码器相同的性能,但它仍然需要很高的复杂度。
“M.Mohaisen and K.Chang,Fixed-complexity sphere encoder for multi-user MIMO systems,in Journal of Communications and Networks,vol.13,no.1,pp.63-69,Feb.2011”中提出了另一示例性实现方式。该实现方式是基于实现M算法的最佳分集阶数的固定复杂度的球解码器的。然而,该实现方式表现出误比特率性能下降。
因此需要针对多天线系统开发最佳性能和低复杂度的预编码设备和方法。
发明内容
为了解决这些问题和其它问题,提供了一种对信息符号向量进行预编码的预编码器,所述预编码器包括:
-半径确定单元,所述半径确定单元被配置为确定搜索球半径,所述搜索球半径的所述确定包括将机器学习算法应用于依赖于所述信息符号向量和预定义预编码矩阵的输入数据;
-球编码单元,所述球编码单元被配置为通过应用基于球搜索的顺序算法根据在球体区域内找到的网格点(lattice point)来确定扰动向量,所述球体区域将所述搜索球半径作为半径,以及
-预编码单元,所述预编码单元被配置为使用所述扰动向量和预编码矩阵对所述信息符号向量进行预编码。
根据一些实施方式,所述半径确定单元可以被配置为应用半径更新函数的一次或更多次迭代来更新当前半径,直到满足终止条件为止,所述当前半径最初被设定为初始半径,所述半径更新函数的各次迭代包括:
-将所述机器学习算法应用于从所述信息符号向量、从所述预定义预编码矩阵以及从所述当前半径获得的输入数据,这提供了与当前半径相关联的当前预测网格点数量;
-将所述当前预测网格点数量与给定阈值进行比较;
-如果所述当前预测网格点数量严格大于所述给定阈值,则更新所述当前半径,所述当前半径通过将线性函数应用于所述当前半径来更新;
所述终止条件与所述当前预测网格点数量相关,所述半径确定单元被配置为响应于所述终止条件的满足,将所述搜索球半径设定为所述当前半径。
根据一些实施方式,如果所述当前预测网格点数量小于或等于所述给定阈值,则可以满足所述终止条件。
根据一些实施方式,所述线性函数可以具有等于1/2的斜率参数和等于0的截距参数。
根据一些实施方式,所述机器学习算法可以是在包括支持向量机、线性回归、逻辑回归、朴素贝叶斯、线性判别分析、决策树、k-最近邻算法、神经网络和相似性学习的组中选择的监督式机器学习算法。
根据一些实施方式,所述监督式机器学习算法可以是包括输入层、一个或更多个隐藏层和输出层的多层深度神经网络,各个层包括多个计算节点,所述多层深度神经网络与模型参数和激活函数相关联,所述激活函数在所述一个或更多个隐藏层的所述多个计算节点当中的至少一个计算节点中实现。
根据一些实施方式,所述激活函数可以是在包括线性激活函数、sigmoid函数、Relu函数、Tanh、softmax函数和CUBE函数的组中选择的。
根据一些实施方式,所述半径确定单元可以被配置为在训练阶段期间从接收到的训练数据预先确定所述模型参数,所述半径确定单元被配置为根据所述训练数据和期望网格点数量集合确定多个训练数据集合,各个期望网格点数量与所述多个训练数据集合中的一个训练数据集合相关联,所述训练阶段包括以下步骤的两次或更多次迭代:
-使用所述多个训练数据当中的一个训练数据集合作为输入来处理所述深度神经网络(300),其提供与该训练数据集合相关联的中间网格点数量;
-根据与该训练数据集合相关联的所述期望网格点数量和所述中间网格点数量确定损失函数,以及
-通过根据所述损失函数的最小化应用优化算法来确定经更新的模型参数。
根据一些实施方式,所述优化算法可以是在包括Adadelta优化算法、Adagrad优化算法、自适应矩估计算法、Nesterov加速梯度算法、Nesterov加速自适应矩估计算法、RMSprop算法、随机梯度优化算法和自适应学习速率优化算法的组中选择的。
根据一些实施方式,所述损失函数可以是在包括均方误差函数和指数对数似然函数的组中选择的。
根据一些实施方式,所述半径确定单元可以被配置为预先应用列表球解码算法或列表球边界栈解码算法,以根据所述搜索球半径并根据所述信道矩阵来确定所述期望网格点数量。
根据一些实施方式,所述半径确定单元可以被配置为将所述半径更新函数的所述迭代次数确定为所述初始半径、所述给定阈值和所述预定义预编码矩阵的行列式的函数。
根据一些实施方式,所述基于球搜索的顺序算法可以是从包括球解码器和球边界球解码器的组中选择的。
还提供了一种实现根据任何前述特征的预编码器的发送器,所述发送器配备有多个天线并且被配置为将所述信息符号向量发送至多用户多输入多输出系统中的多个接收器。
还提供了一种对信息符号向量进行预编码的方法,所述方法包括:
-确定搜索球半径,所述搜索球半径的所述确定包括将机器学习算法应用于依赖于所述信息符号向量和预定义预编码矩阵的输入数据;
-通过应用基于球搜索的顺序算法根据在球体区域内找到的网格点来确定扰动向量,所述球体区域将所述搜索球半径作为半径,以及
-使用所述扰动向量和预编码矩阵对所述信息符号向量进行预编码。
有利地,本发明的实施方式提供了有效的球半径设计和控制技术,其允许降低基于球编码器的向量扰动预编码技术的复杂度而不损害预编码误差性能。
有利地,本发明的实施方式提供了需要降低的计算复杂度和减少的处理时间的高效非线性预编码技术。
本领域技术人员在审查附图和详细描述后将清楚本发明的另外的优点。
附图说明
包含在本说明书中并构成本说明书的一部分的附图例示了本发明的各种实施方式。
图1是本发明在多天线通信系统中的示例性应用的示意图。
图2是例示了根据本发明的一些实施方式的考虑了球编码的预编码器的框图。
图3例示了根据本发明的一些实施方式的使用深度神经网络的机器学习算法的示意图。
图4是例示了根据本发明的一些实施方式的预编码方法的流程图。
图5是例示了根据本发明的一些实施方式的搜索半径确定的方法的流程图。
图6是描绘了根据本发明的一些实施方式的训练深度神经网络的方法的流程图。
图7例示了根据本发明的一些实施方式的表示作为使用球编码器和智能球编码器获得的信噪比的函数的误比特率性能的图。
图8例示了根据本发明的一些实施方式的表示作为使用球编码器和智能球编码器获得的信噪比的函数的以微秒为单位的处理时间的图。
具体实施方式
本发明的实施方式提供了用于以降低的计算复杂度对通信系统中通过传输信道从多天线发送器发送至多个接收器的信息符号向量进行预编码的设备、方法和计算机程序。具体地,本发明的实施方式提供了用于基于实现高效球半径设计技术的球编码器的低复杂度和最佳性能向量置换预编码的方法、设备和计算机程序产品。根据本发明的实施方式的球半径设计技术使得能够以降低的复杂度和缩短的处理时间来确定球编码器的最佳预编码向量。根据本发明的实施方式的搜索球半径的设计和控制依赖于机器学习技术。
为便于理解本发明的实施方式,所使用的一些定义和符号如下:
Λ指的是在欧几里得空间上构建的n维网格,并表示欧几里得空间/>的加性离散子组。网格Λ由/>的n个线性无关向量v1,...,vn跨越,并根据下式由整数线性组合的集合给出:
网格生成器矩阵指的是包括实值分量/>的实值矩阵。属于网格Λ的网格点u是n维向量/>其可以根据下式写成网格生成器矩阵W的函数:
m(.)=||.||2将欧几里得度量(也称为“欧几里得距离”)定义为欧几里得空间中两个点之间的距离。
r0表示初始球半径(也称为“初始半径”)。
rs表示在球编码器算法中使用的搜索球半径。
D(K,θk=1,...,K,σ)指的是由输入层、包括一个或更多个隐藏层的K≥2个层、输出层以及彼此连接的人工神经元(下文称为“节点”或“计算节点”)组成的多层深度神经网络。层数K表示深度神经网络的深度,并且各层中的节点数表示深度神经网络的宽度。N(k)表示第k层的宽度,并且对应于第k层中的计算节点的数量。
多层深度神经网络与表示为θk=1,...,K的模型参数和表示为σ的激活函数相关联。激活函数σ指的是定义多层深度神经网络的隐藏层中的神经元的输出的计算非线性函数。模型参数θk=1,...,K包括参数θk(其中,k=1,...,K)的集合,第k集合表示与多层深度神经网络的第k层(对应于隐藏层或输出层)相关联的层参数的集合,所述层参数包括:
-第一层参数,表示为表示包括实值系数的权重矩阵,各个系数表示与属于第k层的节点与属于第k-1层的节点之间的连接相关联的权重值;
-第二层参数,表示为表示与第k层相关联的偏置值向量。
L表示损失函数,并且指的是用于在深度神经网络的训练处理期间对估计值(也称为“中间值”)与期望值之间的损失(也称为“误差”或“成本”)进行估计的数学函数。
优化器(以下称为“优化算法”或“梯度下降优化算法”)指的是用于在训练阶段期间更新深度神经网络的参数的优化算法。
纪元(epoch)指的是训练数据在训练阶段传递通过深度神经网络的次数。
小批量(mini-batch)指的是从训练数据中提取并在训练阶段的迭代中使用的训练数据的子集。小批量的大小指的是各个划分的小批量中训练数据样本的数量。
梯度下降算法的学习速率(也称为“步长”)指的是与梯度的幅度相乘的标量值。
本发明的实施方式提供了用于以降低的复杂度和最佳预编码性能对多天线系统中的信息符号向量进行预编码的设备、方法和计算机程序产品。
本发明的实施方式可以在多天线系统中实现,以对从多天线发送器传送至多个接收器的信息符号向量进行预编码,各个接收器配备有一个或更多个天线。这种多天线通信系统称为多用户MIMO系统或分布式MIMO系统。
多用户MIMO系统用于各种应用中的数据传输,包括但不限于无线电通信(例如,LTE、高级LTE和5G)、物联网通信(例如,车辆到一切通信)、局域网通信(例如,无线自组织通信)、例如在下一5G无线电通信中支持的大规模MIMO。
图1是根据一些实施方式的本发明的针对无线通信系统100的示例性应用的框图。通信系统100可以包括发送器设备101(以下称为“发送器”),其被配置为通过传输信道将数据发送至多个(N个)接收器设备103-1至103-N(以下称为“接收器”)。发送器101可以实现预编码器1015,以对发送至一个或更多个接收器103-1至103-N的信息符号向量进行预编码。通信系统100中的数据传输可以对应于下行链路通信场景,在此期间,发送器101被配置为同时为多个接收器103-1至103-N提供服务。发送器101可以是被配置为在无线环境中工作以为多个用户提供服务的任何设备。例如,发送器101可以是基站、中继站、蜂窝网络中的eNode B、局域网或自组织网络中的接入点或在无线环境中工作的任何其它接口设备。发送器101可以是固定的或移动的。接收器可以是任何固定或移动设备,其被配置为在无线网络中工作并对由发送器101传送的符号进行解码。示例性接收器设备包括但不限于移动电话、计算机、膝上型计算机、平板电脑、无人机和IoT设备。
发送器101可以配备有两个或更多个发送天线M,并且接收器103-1至103-N中的各个接收器可以配备有一个或更多个接收天线,发送天线的数量M大于或等于接收器的数量N。
根据一些实施方式,通信系统100可以单独地或组合地使用任何多址技术,诸如时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)和空分多址(SDMA)。
传输信道可以是任何线性加性高斯白噪声(AWGN)信道或使用单载波或多载波调制格式(诸如OFDM(正交频分复用)和FBMC(滤波器组多载波))以减轻频率-选择性、干扰和延迟的多径信道。
仅出于例示的目的,将参考容纳配备有M≥2个发送天线的发送器101和N≤M个接收器103-1至103-N(各个接收器配备有用于对由发送器101发送的预期信息符号进行解码的单个天线)的无线多用户MIMO系统进行以下描述。然而,本领域技术人员将容易理解本发明的实施方式适用于涉及多个天线接收器的多用户MIMO系统。
因此,发送器101可以在由信道矩阵表示的有噪声的无线多用户信道上接收数据向量,该数据向量包括去往多个接收器103-1至103-N中的各个接收器的数据。
本发明的实施方式提供了用于在多用户MIMO系统中对数据进行预编码的高效设备和方法。因此,发送器101可以包括:
-信道编码器1011,该信道编码器实现一个或更多个前向纠错(FEC)码,诸如线性分组码、卷积码、极性码、低密度奇偶校验(LDPC)码等;
-调制器1013,该调制器实现诸如正交幅度调制(QAM)的调制方案以传送经调制的信息符号制向量,以及
-预编码器1015,该预编码器被配置为确定将在传输信道上发送至多个接收器103-1至103-N的经预编码的信息符号向量。
发送器101可以被配置为使用FEC编码器1011对作为信息位流的接收数据进行编码,该FEC编码器1011实现例如线性分组码、卷积码、LDPC码或极性码。然后可以使用调制器1013将经编码的二进制信号调制成符号向量sc。可以实现不同的调制方案,诸如具有2q个符号或状态的2q-QAM或2q-PSK。经调制的向量sc可以是复值向量,其包括k个复值符号s1,s2,...,sK,其中每符号q个位。
信息符号sj的平均功率为Es,并且可以写成以下形式:
sj=R(sj)+iI(sj) (3)
在式(3)中,i表示复数,使得i2=-1并且R(.)和I(.)运算符分别输出输入值的实部和虚部。
当使用诸如2q-QAM的调制格式时,2q个符号或状态表示整数字段Z[i]的子集。对应的星座由表示不同状态或符号的2q个点组成。另外,在方波调制的情况下,信息符号的实部和虚部属于同一有限字母表A=[-(q-1),(q-1)]。调制方案的最小距离dmin表示星座中两个相邻点之间的欧几里得距离,并且在这种示例中等于2。
根据图1所示的一些实施方式,发送器101可以使用V-BLAST空间复用来在不同发送天线上对经预编码的信息符号进行复用,而不在时间维度上执行编码。
在其它实施方式(图1中未例示)中,发送器101可以实现空时编码,以将经预编码的信息符号编码成码字,该码字在对应于所使用的时空编码方案的时间维度的多个时隙期间在不同天线上发送。
可以使用多载波调制技术(例如,使用OFDM或FBMC调制器)将经预编码的信息符号向量从时域变换到频域,并在发送天线上扩展。在可选的滤波、变频和放大之后,可以从发送天线发送信号。
本发明的实施方式依赖于在发送器处使用向量扰动预编码技术。因此,预编码器1015可以被配置为执行N个复值符号向量sc的复数到实数变换,以获得由表示(其中n=2N)的实值信息符号向量,实值信息符号向量包括在向量sc中包括的原始复值信息符号的实部和虚部。在例如使用2q-QAM调制的实施方式中,向量s=(s1,s2,...,sn)t的分量属于相同的有限字母表A=[-(q-1),(q-1)]。
使用向量扰动预编码,预编码器1015可以被配置为使用表示为τt的缩放置换向量和表示为P的预定义预编码矩阵将信息符号向量s预编码为表示为sp的经预编码的信息符号向量,其中τ是取决于调制方案的整数缩放因子并且t=(t1,t2,...,tn)t是包括n个整数值的整数值扰动向量。扰动向量可以写成并且经预编码的信息符号向量可以表示为:
sp=P(s+τt) (4)
根据一些实施方式,缩放因子可以由下式给出:
在式(5)中,cmax表示具有最大幅度的星座点的绝对值。
根据一些实施方式,预编码器1015可以被配置为执行信息符号向量的向量扰动,从而降低发送功率。因此,预编码器1015可以被配置为根据经预编码的信息符号向量的发送功率的最小化来确定最佳向量扰动t,使得:
预编码器1015可以被配置为根据P=QR对预定义预编码矩阵进行QR分解,其中为正交矩阵,并且/>为上三角矩阵。上三角矩阵指的是预定义预编码矩阵。上三角矩阵的分量由Rij表示,其中i,j=1,...,n。给定矩阵R的上三角形式,寻找最佳扰动向量的优化问题可以等价表示为:
式(7)中寻找最佳扰动向量的优化问题相应地表示为整数网格搜索,该整数网格搜索求解整数值扰动向量,该整数值扰动向量将由下式给出的欧几里德度量最小化:
树表示可以与优化问题相关联,树表示是包括多个节点、级别、分支和路径的图数据结构。更具体地,树包括n个级别,其中各个级别包括多个节点。
树中的节点对应于分量sj+τtj的不同可能值。
级别以相反的顺序对应于向量s中信息符号的等级,使得位于树的第一级别中的节点对应于符号向量s的最后分量,第二级别对应于倒数第二的分量,依此类推。通过写出向量s=(s1,s2,...,sn)t,在树中位于级别k处的节点对应于分量sn-k+1+τtn-k+1的可能值。位于树的最后级别中的节点称为叶节点,并且对应于第一分量s1+τt1的可能值。
分支从称为“根节点”的虚拟节点和位于两个连续级别中的链接节点出发。表示为(si+1+τti+1,si+τti)的分支对应于位于连续级别n-i和n-i+1中的两个节点si+1+τti+1与si+τti之间的连接。
各个分支都与成本函数(以下也称为“局部度量”或“局部欧几里德距离”)相关联。与分支(si+1+τti+1,si+τti)相关的成本函数可以定义为:
树中的各个节点都可以与度量相关联。使用分支的局部度量的定义,与树中给定节点相关联的度量可以视为构成从根节点至该给定节点的路径的不同分支的局部度量的总和。因此,与位于级别k的节点sk+τtk相关联的度量可以表示为:
从根节点至叶节点的路径对应于向量s+τt的可能值。
根据树表示,可以通过使用顺序算法执行树搜索来等效地求解优化问题。优化问题的解对应于树中导致最低度量的路径。
树搜索的计算复杂度与树搜索期间的访问节点的数量(这取决于各个级别的节点数量和解码树的总级别数)成比例。
为了减少检查节点的数量并因此降低预编码复杂度,本发明的实施方式提供了基于基于球搜索的顺序算法的预编码方法和设备,所述基于球搜索的顺序算法通过针对树的各个级别施加搜索区间来减少树搜索期间的访问节点的数量。在探索具有最低度量的路径时,仅检查属于这些搜索区间的节点。
更具体地,根据本发明的实施方式,预编码器1015实现球编码器(SE)方法,以确定用于数据预编码的最佳扰动向量。球编码器依赖于在以原点为中心并以搜索球半径rs为半径的球体区域内搜索最佳扰动向量。因此,寻找最佳扰动向量的优化问题可以等价地表示为:
从搜索球半径rs出发,基于球搜索的顺序算法在球体区域内搜索与向量s+τt的可能值中的一者相关联的第一网格点。在找到网格点后,搜索球半径的值被更新为与在对应于向量s+τt的球体区域/>中找到的网格点相关联的累积度量值。这种球约束搜索和半径更新迭代地执行,直到在树中找到对应于最小累积度量的路径为止。
网格点搜索阶段的复杂度很大程度上取决于搜索球半径rs的选择。本发明的实施方式提供了用于确定搜索球半径rs的高效设备和方法,该搜索球半径rs使得能够在不牺牲最佳性能的情况下降低树搜索阶段的复杂度。
图2是例示了根据本发明的一些实施方式的预编码器200的结构的框图,其中使用机器学习技术来有效地设计被认为寻找最佳扰动向量的搜索球半径。因此,预编码器200可以包括被配置为确定搜索球半径rs的半径确定单元201,搜索球半径的确定包括将机器学习算法应用于依赖于预定义预编码矩阵R、整数缩放因子τ以及信息符号向量s=(s1,s2,...,sn)t的输入数据。
预编码器200还可以包括球编码单元203,该球编码单元203被配置为根据在以原点为中心并以由球半径确定单元201确定的搜索球半径rs为半径的球体区域内找到的网格点来确定优化问题/>的扰动向量t的解。
预编码器205还可以包括预编码单元205,该预编码单元205被配置为使用扰动向量整数缩放因子τ和预编码矩阵P对信息符号向量进行预编码使得经预编码的信息符号向量由sp=P(s+τt)给出。
根据一些实施方式,半径确定单元201可以被配置为通过应用半径更新函数的一次或更多次迭代(迭代次数Niter≥1)来更新当前半径直到满足停止条件(也称为“终止条件”)为止来根据迭代处理确定搜索球半径rs。对应于第i次迭代的当前半径由表示(其中i=1,...,Niter)。因此,在i=1的第一次迭代时,半径确定单元201可以被配置为初始地将当前半径设定为初始半径r0,使得/>在初始化当前半径之后,半径确定单元201可以被配置为在半径更新函数的Niter次迭代期间迭代地更新当前半径,针对i=1,...,Niter的半径更新函数的每第i次迭代包括:
-将机器学习算法应用于从信息符号向量s、预定义预编码矩阵R和当前半径获得的输入数据,这提供了与当前半径/>相关联的网格点数量的当前预测/>(也称为“当前预测网格点数量”);
-将网格点数量的当前预测与由Nth表示的给定阈值进行比较;
-如果网格点数量的当前预测严格大于给定阈值(即,如果/>),则更新当前半径/>半径确定单元201被配置为通过将线性函数f(.)应用于当前半径来更新当前半径/>因此,首先更新迭代的索引,使得i=i+1,然后更新当前球半径,使得
如果网格点数量的当前预测小于或等于给定阈值Nth,则满足终止条件。一旦满足终止条件,半径确定单元201就可以被配置为将搜索球半径rs设定为与满足使得的停止条件的网格点的当前预测数量/>相关联的最后更新的当前半径这意味着半径确定单元201响应于终止条件的满足而将搜索球半径设定为当前半径。
根据一些实施方式,线性函数可以具有等于1/2的斜率参数和等于0的截距参数,这对应于通过将当前半径除以二(即,)来更新当前半径。
在半径更新函数的每次迭代i=1,...,Niter,半径确定单元201可以被配置为处理机器学习算法,以确定与落在以原点为中心且球半径为当前半径的球体区域内的网格点的预测数量相对应的预测网格点数量/>在半径更新函数的每次迭代i=1,...,Niter,机器学习算法以表示为/>的输入向量为输入,该输入向量包括信息符号向量s的n个分量、当前半径/>和上三角矩阵R中的n2个分量。
根据一些实施方式,半径确定单元201可以被配置为随机确定初始半径r0
根据一些实施方式,半径确定单元201可以被配置为通过利用将给定阈值Nth与上三角矩阵R(其是网格的生成矩阵ΛR)的行列式相关的计数函数来确定半径更新函数的迭代次数Niter,计数函数由下式给出:
rth表示包含等于阈值Nth的数量的网格点的球体的半径,det(ΛR)表示网格的生成矩阵ΛR的行列式,并且Vn表示实向量空间中单位半径球体的体积。
发明人使用计数函数并使用具有等于1/2的斜率参数和等于0的截距参数的线性函数来确定在Niter次迭代期间将初始半径连续除以2,迭代次数Niter可以根据下式表示为初始半径、给定阈值和网格的生成矩阵ΛR的行列式的函数:
通过利用将迭代次数与初始半径相关的函数,半径确定单元201可以被配置为在不执行机器学习处理的情况下将搜索半径设定为等于这种技术称为“智能球编码器”或SSE。
根据一些实施方式,可以在包括球解码器和SB栈解码器的组中选择基于球搜索的顺序算法。
根据考虑球解码器的一些实施方式,球编码单元203可以被配置为针对各个分量si+τti定义表示为Ii=[binf,i,bsup,i]的搜索区间,根据搜索球半径rs确定搜索区间Ii的下边界binf,i和上边界b,i。球约束可以通过根据分支定界法扫描半径为rs的球体区域中的点并选择满足优化问题中表示的整形约束的网格点来递归地找到。球解码器基于深度优先树搜索策略。每次在球体/>中找到网格点,搜索球半径可以通过将搜索球半径设定为新的值来更新,该新的值等于与对应路径相关联的累积度量。可以选择具有累积度量的最后找到的网格点来确定向量s+τt。
根据考虑SB栈的一些实施方式,可以使用最佳优先树搜索来探索树中的节点。从根节点开始,探索所有子节点或子节点的子集,并针对各个探索到的子节点计算局部度量。只生成具有满足球约束和搜索区间的局部度量的节点并将该节点存储在栈中。继续搜索直到找到叶节点和对应于最小累积度量的最佳路径为止,而不进行搜索球半径的任何更新。
根据一些实施方式,机器学习算法可以是监督式机器学习算法,该监督式机器学习算法使用基于由经标记的输入-输出对的集合组成的经标记的训练数据确定的函数将输入数据映射至预测数据。示例性监督式机器学习算法包括但不限于:支持向量机(SVM)、线性回归、逻辑回归、朴素贝叶斯、线性判别分析、决策树、k-最近邻算法、神经网络和相似性学习。
在优选实施方式中,监督式机器学习算法可以是多层感知器,其是由输入层以及包括一个或更多个隐藏层和输出层组成的至少两个层(K≥2)的多层前馈人工神经网络。
参考图3,例示了由输入层301、至少一个隐藏层303和输出层305(K≥2)组成的多层深度神经网络D(K,θk=1,...,K,σ)300。输入层301、一个或更多个隐藏层303和输出层305中的各个层包括多个人工神经元或计算节点3011。
多层深度神经网络300是完全连接的。因此,一个层中的各个计算节点以某个权重连接至下一层中的每一个计算节点,即,将来自前一层的连接节点的输入与放大或衰减输入值的权重集合组合。从被配置为接收输入数据的输入层301开始,各个层的输出同时是后续层的输入。
除了输入计算节点(即,输入层中的计算节点3011)之外,被包括在一个或更多个隐藏层中的各个计算节点4011可以实现将计算节点的加权输入映射至计算节点的输出的非线性激活函数σ。
根据多层结构,深度神经网络定义了映射该映射通过K个迭代机器学习处理步骤将输入向量/>映射至表示为/>的输出向量,深度神经网络的K个层当中的第k层携带表示为/>的映射,该映射将第k层作为输入接收的输入向量/>映射至输出向量/>第k层处的映射取决于与前一层的输出向量相对应的输入向量/>以及与第k层相关联的参数的集合与第k层(除了输入层之外)相关联的映射可以表示为:
在第k层的计算节点处执行的输入权重乘积由权重矩阵W(k)与第k层作为输入处理的输入向量之间的乘积函数/>表示,然后将这些输入权重乘积求和,并将该和传递通过激活函数σ。
根据一些实施方式,激活函数可以在一个或更多个隐藏层303和输出层305的多个计算节点中的至少一个计算节点3011中实现。
根据一些实施方式,可以在隐藏层的各个节点处实现激活函数。
根据一些实施方式,可以在包括线性激活函数、sigmoid函数、Tanh、softmax函数、修正线性单元(ReLU)函数和CUBE函数的组中选择激活函数。
线性激活函数是信号不改变的恒等函数。
sigmoid函数将几乎无限范围的自变量转换为“0”至“1”之间的简单概率。它是将值作为输入并输出“0”至“1”之间的另一值的非线性函数。
tanh函数表示双曲正弦与双曲余弦之间的关系tanh(x)=sinh(x)/cosh(x)。
softmax激活泛化逻辑回归并返回互斥输出类上的概率分布。可以在深度神经网络的输出层中实现softmax激活函数。
如果神经元的输入高于给定阈值,则ReLu激活函数激活该神经元。具体地,该给定阈值可以等于零(“0”),在这种情况下,如果输入变量是负值,则ReLu激活函数输出零值,并且如果输入变量是正值,则根据恒等函数输出该输入变量。在数学上,ReLu函数可以表示为σ(x)=max(0,x)。
根据一些实施方式,半径确定单元201可以被配置为在训练阶段期间根据训练数据预先确定和更新多层深度神经网络的模型参数。半径确定单元201可以被配置为在实现确定搜索球半径rs所执行的Niter次迭代之前离线执行训练阶段。一旦确定,然后在所执行的每次迭代i=1,...,Niter时使用模型参数来更新当前半径,直到达到停止条件为止。训练阶段(也称为“学习阶段”)是全局优化问题,其被执行以按使得能够最小化预测误差的方式调整模型参数θk=1,...,K,该预测误差量化了多层深度神经网络与提供最佳预测的理想模型参数的接近程度。模型参数可以最初被设定为初始参数,初始参数例如可以是随机生成的。初始参数然后在训练阶段期间进行更新,并按使神经网络能够收敛到最佳预测的方式进行调整。
根据一些实施方式,可以使用后向传播监督式学习技术来训练多层深度神经网络,并且多层深度神经网络使用训练数据来预测未观测的数据。
后向传播技术是通过多层深度神经网络的不同层进行信息的前向传播和后向传播的迭代过程。
在前向传播阶段期间,神经网络接收训练数据,该训练数据包括训练输入值和与训练输入值相关联的期望值(也称为“标记”),当训练输入值被用作输入时,期望值对应于神经网络的期望输出。半径确定单元201在监督式机器学习技术的应用中知道期望值。神经网络将训练数据传递通过整个多层神经网络,以确定与针对训练输入值获得的预测相对应的估计值(也称为“中间值”)。训练数据以这样的方式传递:被包括在多层深度神经网络的不同层中的所有计算节点将它们的变换或计算应用至它们从先前层的计算节点接收的输入值,并将它们的输出值发送至随后层的计算节点。当数据已经跨过所有层并且所有计算节点已经进行了它们的计算时,输出层交付与训练数据相对应的估计值。
前向传播阶段的最后一步包括将与训练数据相关联的期望值与当训练数据作为输入传递通过神经网络时获得的估计值进行比较。该比较使得能够测量估计值相对于期望值有多好/多坏,以使估计值接近期望值从而使得预测误差(也称为“估计误差”或“成本”)接近零为目的来更新模型参数。可以使用基于梯度过程的损失函数来估计预测误差,该梯度过程在目标函数的梯度方向上更新模型参数。
前向传播阶段之后是后向传播阶段,在后向传播阶段期间,通过应用优化算法以相反的顺序逐渐调整模型参数(例如,计算节点3011的互连的权重),直到获得良好的预测并使损失函数最小化为止。
首先,所计算的预测误差从输出层开始向后传播至一个或更多个隐藏层303的直接对估计值的计算有贡献的所有计算节点3011。各个计算节点基于其对深度神经网络的输出的相对贡献接收总预测误差的一部分。逐层地重复该处理,直到深度神经网络中的所有计算节点已经接收到与它们对总预测误差的相对贡献相对应的预测误差为止。一旦预测误差向后扩展,就可以通过根据损失函数的最小化应用优化算法来更新层参数(例如,第一层参数(即,权重)和第二层参数(即,偏置))。
根据一些实施方式,半径确定单元201可以被配置为通过计算损失函数并针对整个训练数据更新模型参数来在训练阶段期间根据“批量梯度下降法”更新模型参数。
根据一些实施方式,半径确定单元201可以被配置为在训练阶段期间根据在线学习通过调整针对训练数据的各个样本的模型参数来更新模型参数。使用在线学习,针对训练数据的各个样本评估损失函数。在线学习也被称为“在线训练”和“随机梯度下降”。
根据其它实施方式,半径确定单元201可以被配置为在训练阶段期间使用小批量数据根据小批量学习(也被称为“小批量梯度下降”)从训练数据更新模型参数,大小为sb的小批量数据是sb个训练样本的子集。因此,半径确定单元201可以被配置为将训练数据划分为两个或更多个大小为sb的批量数据,各个批量包括sb个输入数据样本。输入数据然后按批量通过网络传递。针对通过神经网络传递的各个小批量数据评估损失函数,并针对各个小批量数据更新模型参数。因此,针对各个小批量数据执行前向传播和后向传播阶段,直到最后的批量为止。
根据一些实施方式,半径确定单元201可以被配置为在训练处理中将所有训练数据传递深度神经网络300通过多次(称为纪元)。可以增加纪元数,直到评估训练数据的准确度的准确度度量开始降低或继续增加(例如,当检测到潜在的过拟合(overfitting)时)为止。
表示为的接收到的训练数据可以包括表示为/>的Nbs个训练样本,所述训练样本包括依赖于训练信息符号向量s*的分量、训练上三角矩阵R*的分量和训练球半径值/>的独立训练样本。
基于监督式学习,当训练样本被用作深度神经网络的输入时,训练样本可以被标记,即,与对应于深度神经网络的输出的已知期望输出值(也被称为“目标”或“标记”)相关联。更具体地,各个样本x*,m(其中,m=1,...,Nbs)可以与落在半径为的球体区域内的网格点数量的期望值/>相关联。
根据使用小批量学习的一些实施方式,半径确定单元201可以被配置为在训练阶段期间确定(更新或调整)从接收到的训练数据中提取的小批量的模型参数。在这样的实施方式中,半径确定单元201可以被配置为将接收到的训练数据划分为表示为x(*,1),x(*,2),...,x(*,NB)的多个(NB个)训练数据集合,训练数据集合是包括来自训练数据的sb个训练示例的集合的大小为sb的小批量,即,各个小批量x(*,l)包括sb个样本x*,m,其中,m在1至Nbs之间变化。小批量x(*,l)也由Sl表示,其具有从Nbs个训练样本提取的训练样本,即,
各个小批量x(*,l)(其中l=1,...,NB)可以与如下目标值相关联:该目标值对应于当小批量数据x(*,l)用作深度神经网络的输入时,期望由该深度神经网络获得的期望网格点数量可以将训练数据集合和目标值分组为向量对,使得表示为/>的各个向量对对应于第l小批量的训练示例和目标值。
在给定训练数据和期望输出值的情况下,半径确定单元201可以被配置为执行训练处理的前向传播阶段和后向传播阶段。
基于小批量训练,训练阶段可以包括两次或更多次处理迭代。在每次处理迭代,半径确定单元201可以被配置为:
-使用多个训练集合当中的小批量x(*,l)作为输入来处理深度神经网络,这提供与小批量x(*,l)相关联的表示为的中间网格点数量。中间网格点数量/>是在多层深度神经网络的输出层处预测的;
-根据与小批量x(*,l)相关联的期望网格点数量和通过对小批量数据x(*,l)进行处理确定的中间网格点数量/>计算针对经处理的小批量x(*,l)的损失函数,该损失函数表示为/>
-通过应用优化算法,在对小批量x(*,l)进行处理之后根据损失函数的最小化来确定经更新的模型参数。更具体地,半径确定单元201可以被配置为确定与多层深度神经网络D(K,θk=1,...,K,σ)的K个层(输入层除外)中的各个层相关联的经更新的第一层参数/>和经更新的第二层参数/>第一层参数和第二层参数分别对应于与深度神经网络的神经元之间的连接相关联的权重和偏置值。
针对第一处理迭代,半径确定单元201可以被配置为确定将在训练处理的第一处理迭代的前向传播阶段期间使用的初始模型参数。更具体地,半径确定单元201可以被配置为确定与多层深度神经网络D(K,θk=1,...,K,σ)的K个层(输入层除外)中的各个层相关联的初始第一层参数和初始第二层参数/>
根据一些实施方式,半径确定单元201可以被配置为从例如遵循标准正态分布的值的随机集合中随机地确定与深度神经网络的不同层(隐藏层和输出层)相关联的初始第一层参数和初始第二层参数。
根据一些实施方式,可以在包括Adadelta优化算法、Adagrad优化算法、针对各个模型参数计算自适应学习速率的自适应矩估计算法(ADAM)、Nesterov加速梯度(NAG)算法、Nesterov加速自适应矩估计(Nadam)算法、RMSprop算法、随机梯度优化算法和自适应学习速率优化算法的组中选择用于调整模型参数并确定经更新的模型参数的优化算法。
根据一些实施方式,可以在包括用于线性回归的均方误差函数(MSE)和用于泊松回归的指数对数似然(EXPLL)函数的组中选择被考虑用来评估预测误差或损失的损失函数。
根据使用均方误差函数的一些实施方式,针对第l个小批量数据计算的损失函数可以表示为:
根据一些实施方式,半径确定单元201可以被配置为通过应用列表球解码(LSD)算法或列表球边界(spherical-bound)栈解码算法,根据球半径r和预定义预编码矩阵M预先确定与各个小批量Sl(其中l=1,...,NB)相关联的期望网格点数量列表球解码算法和列表球边界栈解码算法是用于求解最接近向量问题的基于球的解码算法。LSD输出位于给定半径的给定有界区域内的码字的列表。关于LSD实现方式的更多细节在“M.El-Khamyet al.,Reduced Complexity List Sphere Decoding for MIMO Systems,DigitalSignal Processing,Vol.25,Pages 84-92,2014”中公开。
参考图4,还提供了一种对包括经调制的复值信息符号向量sc的实部和虚部的信息符号向量进行预编码的预编码方法。该方法依赖于使用向量扰动重新编码来将信息符号向量s预编码为经预编码的信息符号向量sp
在步骤401,可以接收包括信息符号向量s、预定义预编码矩阵R、初始半径r0和给定阈值Nth的输入。
在步骤403,可以确定搜索球半径rs,搜索球半径的确定包括将机器学习算法应用于依赖于信息符号向量s、整数缩放因子τ和预定义预编码矩阵R的输入数据。
在步骤405,可以通过应用求解由给出的优化问题的基于球搜索的顺序算法根据在以原点为中心的半径为rs的球体区域/>内找到的网格点来确定扰动向量t=(t1,t2,...,tn)t
根据一些实施方式,可以在包括球解码器和SB栈解码器的组中选择基于球搜索的顺序算法。
在步骤407,可以使用在步骤405确定的扰动向量、预编码矩阵P和整数缩放因子τ将信息符号向量预编码为经预编码的信息符号向量sp,使得sp=P(s+τt)。
图5是例示了根据一些实施方式的在步骤403执行的确定搜索球半径rs的方法的流程图,其中在半径更新函数的Niter次迭代期间执行迭代处理,以更新当前半径。
在步骤501,迭代处理的迭代的索引可以被初始化为i=1并且当前半径可以被初始地设定为初始半径
可以在半径更新函数的Niter次迭代期间重复步骤503至步骤507,直到满足终止条件为止。
在步骤503,可以使用从信息符号向量s、预定义预编码矩阵R和当前半径获得的输入数据来处理机器学习算法,这提供了与当前半径/>相关联的当前预测网格点数量当前预测网格点数量/>对应于落在以原点为中心且球半径为当前半径/>的球体区域内的预测网格点数量。机器学习算法以输入向量/>为输入,该输入向量包括信息符号向量s的n个分量、当前半径/>和上三角矩阵R中的n2个分量。
在步骤505,可以将当前预测网格点数量与给定阈值Nth进行比较。
如果在步骤505确定当前预测网格点数量小于或等于给定阈值Nth,则在步骤509可以将搜索球半径rs设定为与满足步骤505的终止条件的当前预测网格点数量/>相关联的最后更新的当前半径/>
如果在步骤505确定当前预测网格点数量严格大于给定阈值(即,如果),则可以在步骤507更新当前半径。因此,可以递增迭代的索引,使得i=i+1,可以通过将线性函数f应用于当前半径来更新当前半径,并且半径更新函数的执行迭代次数可以递增一,使得Niter=Niter+1。
根据一些实施方式,线性函数可以具有等于1/2的斜率参数和等于0的截距参数,这对应于通过将当前半径除以二使得来更新当前半径。
根据一些实施方式,机器学习算法可以是在如下组中选择的监督式机器学习算法,该组包括但不限于:支持向量机(SVM)、线性回归、逻辑回归、朴素贝叶斯、线性判别分析、决策树、k-最近邻算法、神经网络和相似性学习。
在优选实施方式中,监督式机器学习算法可以是多层感知器,该多层感知器是由输入层、一个或更多个隐藏层和输出层(K≥2)组成并且与模型参数θk=1,...,K和激活函数σ相关联的多层前馈人工神经网络D(K,θk=1,...,K,σ),模型参数θk=1,...,K包括层参数集合各个层参数集合与隐藏层和输出层参数当中的层相关联并且包括第一层参数W(k)和第二层参数b(k)
根据一些实施方式,可以在包括线性激活函数、sigmoid函数、Tanh、softmax函数、修正线性单元函数和CUBE函数的组中选择激活函数。
根据机器学习算法是多层深度神经网络的一些实施方式,步骤503可以包括被执行以根据后向传播监督式训练或学习处理来确定经更新的模型参数的子步骤,所述后向传播监督式训练或学习处理在处理神经网络以在解码处理期间确定当前半径之前使用训练数据来训练多层深度神经网络。
根据一些实施方式,可以在训练处理期间根据“批量梯度下降法”通过针对整个训练数据计算损失函数并更新模型参数来更新模型参数。
根据一些实施方式,可以在训练处理期间根据在线学习通过调整针对训练数据的各个样本的模型参数并计算针对训练数据的各个样本的损失来更新模型参数。
根据其它实施方式,可以在训练处理期间根据使用小批量数据的小批量学习从训练数据更新模型参数,大小为sb的小批量数据是sb个训练样本的子集。因此,训练数据可以被划分为两个或更多个大小为sb的小批量数据,各个批量包括输入数据的sb个样本。然后输入数据以小批量通过网络传递。针对各个小批量数据评估损失函数,并针对各个小批量数据更新模型参数。
图6是描绘了根据使用小批量学习的一些实施方式的用于训练多层深度神经网络D(K,θk=1,...,K,σ)以便确定在最小化预测误差方面提供最佳预测的模型参数θk=1,...,K的方法的流程图。
在步骤601,可以接收包括Nbs个训练样本的训练数据和期望网格点数量/>各个样本x*,m(其中,m=1,...,Nbs)与落在半径为/>的球体区域内的网格点数量的期望值/>相关联。
在步骤603,训练数据可以被划分为多个(NB个)训练数据集合x(*,1),x(*,2),...,x(*,NB),各个小批量x(*,l)(其中l=1,...,NB)可以与如下目标值相关联:该目标值对应于当小批量数据x(*,l)用作深度神经网络的输入时,期望由深度神经网络获得的期望网格点数量
训练处理可以包括重复两次或更多次处理迭代直到达到训练条件为止。训练条件可以与指的是训练数据在训练阶段传递通过深度神经网络的次数的纪元的数量和/或经更新的模型参数关于由经更新的模型参数产生的预测误差的最小化的优度有关。
在步骤605,可以执行第一处理迭代,在该第一处理迭代期间,可以确定用于处理第一小批量数据的初始模型参数。更具体地,可以在步骤605确定与多层深度神经网络D(K,θk=1,...,K,σ)的K个层(输入层除外)中的各个层相关联的初始第一层参数和初始第二层参数/>
根据一些实施方式,与深度神经网络的隐藏层和输出层相关联的初始第一层参数和初始第二层参数可以从例如遵循标准正态分布的值的随机集合中随机地确定。
可以重复步骤607至步骤613,以处理小批量的数据,直到达到停止条件为止。训练处理的处理迭代由步骤609至步骤613组成,并且涉及多个训练集合x(*,l)(其中l=1,...,NB)中的小批量x(*,l)的处理。
在步骤609,可以使用多个训练集合中的小批量x(*,l)作为输入来处理多层深度神经网络,这提供与小批量x(*,l)相关联的表示为的中间网格点数量。中间网格点数量是在多层深度神经网络的输出层处预测的。
在步骤611,可以根据与小批量x(*,l)相关联的已知的期望网格点数量和通过在步骤609对小批量数据x(*,l)进行处理而确定的中间网格点数量/>针对经处理的小批量x(*,l)计算损失函数/>
在步骤613,可以通过应用优化算法,根据损失函数的最小化来确定在对小批量x(*,l)进行处理之后的经更新的模型参数。更具体地,可以在步骤613更新与多层深度神经网络D(K,θk=1,...,K,σ)的K个隐藏层和输出层中的各个层相关联的第一层参数和第二层参数/>第一层参数和第二层参数分别对应于与深度神经网络的神经元之间的连接相关联的权重和偏置值。
根据一些实施方式,可以在包括Adadelta优化算法、Adagrad优化算法、自适应矩估计算法、Nesterov加速梯度算法、Nesterov加速自适应矩估计算法、RMSprop算法、随机梯度优化算法和自适应学习速率优化算法的组中选择优化算法。
根据一些实施方式,可以在包括均方误差函数和指数对数似然函数的组中选择损失函数。
根据一些实施方式,步骤601可以包括通过应用列表球解码算法,根据球半径r和信道矩阵M确定与各个小批量Sl(其中l=1,...,NB)相关联的期望网格点数量
还提供了一种对信息符号向量s=(s1,s2,...,sn)t进行预编码的计算机程序产品。该计算机程序产品包括非暂时性计算机可读存储介质,当由处理器执行时,所述非暂时性计算机可读存储介质使处理器:
-确定搜索球半径rs,搜索球半径的确定包括将机器学习算法应用于依赖于信息符号向量s、缩放因子τ以及预定义预编码矩阵R的输入数据;
-通过应用求解由给出的优化问题的基于球搜索的顺序算法根据在以原点为中心的半径为rs的球体区域/>内找到的网格点来确定扰动向量t=(t1,t2,...,tn)t
-使用扰动向量、整数缩放因子τ和预编码矩阵P将信息符号向量预编码为经预编码的信息符号向量sp,使得sp=P(s+τt)。
本发明的各个实施方式中提供的预编码技术的性能已经在误比特率、平均处理时间和智能球编码器中的初始半径的半径更新函数的平均次数方面进行了评估。“SE”指的是根据本发明的实施方式使用深度神经网络确定搜索球半径的球编码器实现方式,“SSE”指的是在不处理机器学习算法的情况下根据将给定阈值与初始半径相关的函数确定搜索球半径的智能球编码器实现方式。考虑使用16-QAM调制的分布式8×8MIMO系统。使用由一个输入层、一个隐藏层和一个输出层组成的多层深度神经网络。
图7示出了评估作为SE和SSE信噪比的函数的误比特率(BER)性能的图。数值结果表明,所提出的SE和SSE实现方式都实现了最佳解码性能。
图8示出了评估针对考虑了不同的初始半径r0的SE和SSE实现方式获得的信噪比的平均处理时间函数的图。数值结果表明,与经典的SE实现方式相比,SSE大大减少了预编码处理时间。
本文描述的装置、方法和计算机程序产品可以通过各种手段来实现。例如,这些技术可以用硬件、软件或其组合来实现。针对硬件实现方式,预编码器200的处理元件可以例如根据纯硬件配置(例如,在具有对应存储器的一个或更多个FPGA、ASIC或VLSI集成电路中)或根据使用VLSI和数字信号处理器(DSP)两者的配置来实现。
此外,本文描述的方法可以由提供给任何类型的计算机的处理器的计算机程序指令来实现,以产生具有执行指令以实现本文指定的功能/动作的处理器的机器。这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机以特定方式工作。为此,可以将计算机程序指令加载到计算机上,以使得执行一系列操作步骤,从而产生计算机实现的处理,使得所执行的指令提供用于实现本文所指定的功能的处理。

Claims (15)

1.一种对信息符号向量进行预编码的预编码器(200),其中,所述预编码器(200)包括:
半径确定单元(201),所述半径确定单元被配置为确定搜索球半径,所述搜索球半径的所述确定包括将机器学习算法应用于依赖于所述信息符号向量和预定义预编码矩阵的输入数据;
球编码单元(203),所述球编码单元被配置为通过应用基于球搜索的顺序算法根据在球体区域内找到的网格点来确定扰动向量,所述球体区域将所述搜索球半径作为半径,以及
预编码单元(205),所述预编码单元被配置为使用所述扰动向量和预编码矩阵对所述信息符号向量进行预编码。
2.根据权利要求1所述的预编码器,其中,所述半径确定单元(201)被配置为应用半径更新函数的一次或更多次迭代来更新当前半径,直到满足终止条件为止,所述当前半径最初被设定为初始半径,所述半径更新函数的各次迭代包括:
将所述机器学习算法应用于从所述信息符号向量、从所述预定义预编码矩阵以及从所述当前半径获得的输入数据,从而提供了与当前半径相关联的当前预测网格点数量;
将所述当前预测网格点数量与给定阈值进行比较;
如果所述当前预测网格点数量严格大于所述给定阈值,则更新所述当前半径,所述当前半径是通过将线性函数应用于所述当前半径来更新的;
所述终止条件与所述当前预测网格点数量相关,所述半径确定单元(201)被配置为响应于所述终止条件的满足,将所述搜索球半径设定为所述当前半径。
3.根据权利要求2所述的预编码器,其中,如果所述当前预测网格点数量小于或等于所述给定阈值,则满足所述终止条件。
4.根据权利要求2或3所述的预编码器,其中,所述线性函数具有等于1/2的斜率参数和等于0的截距参数。
5.根据权利要求1所述的预编码器,其中,所述机器学习算法是在包括支持向量机、线性回归、逻辑回归、朴素贝叶斯、线性判别分析、决策树、k-最近邻算法、神经网络和相似性学习的组中选择的监督式机器学习算法。
6.根据权利要求5所述的预编码器,其中,所述监督式机器学习算法是包括输入层(301)、一个或更多个隐藏层(303)和输出层(305)的多层深度神经网络(300),各个层包括多个计算节点(3011),所述多层深度神经网络(300)与模型参数和激活函数相关联,所述激活函数在所述一个或更多个隐藏层的所述多个计算节点当中的至少一个计算节点(3011)中实现。
7.根据权利要求6所述的预编码器,其中,所述激活函数是在包括线性激活函数、sigmoid函数、Relu函数、Tanh、softmax函数和CUBE函数的组中选择的。
8.根据权利要求6所述的预编码器,其中,所述半径确定单元(201)被配置为在训练阶段期间根据接收到的训练数据确定所述模型参数,所述半径确定单元(201)被配置为根据所述训练数据和期望网格点数量集合确定多个训练数据集合,各个期望网格点数量与所述多个训练数据集合中的一个训练数据集合相关联,所述训练阶段包括以下步骤的两次或更多次迭代:
使用所述多个训练数据当中的一个训练数据集合作为输入来处理所述深度神经网络(300),从而提供了与该训练数据集合相关联的中间网格点数量;
根据与该训练数据集合相关联的所述期望网格点数量和所述中间网格点数量确定损失函数,以及
通过根据所述损失函数的最小化应用优化算法来确定经更新的模型参数。
9.根据权利要求8所述的预编码器,其中,所述优化算法是在包括Adadelta优化算法、Adagrad优化算法、自适应矩估计算法、Nesterov加速梯度算法、Nesterov加速自适应矩估计算法、RMSprop算法、随机梯度优化算法和自适应学习速率优化算法的组中选择的。
10.根据权利要求8所述的预编码器,其中,所述损失函数是在包括均方误差函数和指数对数似然函数的组中选择的。
11.根据权利要求8所述的预编码器,其中,所述半径确定单元(201)被配置为预先应用列表球解码算法或列表球边界栈解码算法,以根据所述搜索球半径并根据信道矩阵来确定所述期望网格点数量。
12.根据权利要求4所述的预编码器,其中,所述半径确定单元(201)被配置为将所述半径更新函数的迭代次数确定为所述初始半径、所述给定阈值和所述预定义预编码矩阵的行列式的函数。
13.根据权利要求1所述的预编码器,其中,所述基于球搜索的顺序算法是从包括球解码器和球边界球解码器的组中选择的。
14.一种实现根据前述权利要求中任一项所述的预编码器(200)的发送器(101),其中,所述发送器(101)配备有多个天线并且被配置为将所述信息符号向量发送至多用户多输入多输出系统中的多个接收器。
15.一种对信息符号向量进行预编码的方法,其中,所述方法包括:
确定(403)搜索球半径,所述搜索球半径的所述确定包括将机器学习算法应用于依赖于所述信息符号向量和预定义预编码矩阵的输入数据;
通过应用基于球搜索的顺序算法根据在球体区域内找到的网格点来确定(405)扰动向量,所述球体区域将所述搜索球半径作为半径,以及
使用所述扰动向量和预编码矩阵对所述信息符号向量进行预编码(407)。
CN202080048329.9A 2019-07-01 2020-06-23 用于机器学习辅助预编码的设备和方法 Active CN114051701B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19305887.2 2019-07-01
EP19305887.2A EP3761238A1 (en) 2019-07-01 2019-07-01 Devices and methods for machine learning assisted precoding
PCT/EP2020/067407 WO2021001202A1 (en) 2019-07-01 2020-06-23 Devices and methods for machine learning assisted precoding

Publications (2)

Publication Number Publication Date
CN114051701A CN114051701A (zh) 2022-02-15
CN114051701B true CN114051701B (zh) 2024-04-23

Family

ID=67988949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080048329.9A Active CN114051701B (zh) 2019-07-01 2020-06-23 用于机器学习辅助预编码的设备和方法

Country Status (6)

Country Link
US (1) US20220247460A1 (zh)
EP (1) EP3761238A1 (zh)
JP (1) JP2022537979A (zh)
KR (1) KR20220031624A (zh)
CN (1) CN114051701B (zh)
WO (1) WO2021001202A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625610B2 (en) * 2019-03-12 2023-04-11 Samsung Electronics Co., Ltd Multiple-input multiple-output (MIMO) detector selection using neural network
US11438038B1 (en) * 2021-02-17 2022-09-06 Qualcomm Incorporated Neural network based nonlinear MU-MIMO precoding
CN113030849B (zh) * 2021-03-04 2023-06-30 西北工业大学 一种基于自编码器与并行网络的近场源定位方法
CN113162666B (zh) * 2021-04-19 2022-04-26 北京科技大学 一种面向智慧钢铁的大规模mimo混合预编码方法及装置
CN113193896B (zh) * 2021-04-23 2022-12-09 西安交通大学 一种最大化两接收端和速率的波束成形神经网络决策方法
CN114567358B (zh) * 2022-03-03 2023-04-07 东南大学 大规模mimo鲁棒wmmse预编码器及其深度学习设计方法
GB2616469A (en) * 2022-03-11 2023-09-13 British Telecomm Precoding for beamforming

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013123196A (ja) * 2011-12-12 2013-06-20 Sharp Corp プリコーディング装置、無線送信装置、プリコーディング方法、プログラムおよび集積回路
JP6159839B1 (ja) * 2016-03-08 2017-07-05 ソフトバンク株式会社 基地局装置
EP3224964A1 (en) * 2014-11-25 2017-10-04 University of Surrey Maximizing energy efficiency in non-linear precoding using vector perturbation
JP2018050097A (ja) * 2016-09-20 2018-03-29 ソフトバンク株式会社 基地局装置、摂動ベクトル探索方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007061416A1 (en) * 2005-11-23 2007-05-31 Nokia Corporation Joint optimization of linear pre-filtering and nonlinear vector perturbation for mimo multiuser precoding
GB2458883B (en) * 2008-03-20 2010-09-29 Toshiba Res Europ Ltd Wireless communication apparatus
US8290096B2 (en) * 2008-04-14 2012-10-16 Qualcomm Incorporated Radius adaptive sphere decoding with probabilistic noise constraint
JP5804594B2 (ja) * 2011-08-05 2015-11-04 シャープ株式会社 プリコーディング装置、プリコーディング用プログラムおよび集積回路
GB201509910D0 (en) * 2015-06-08 2015-07-22 Univ Surrey Parallel processing of sphere decoders and other vector finding approaches using tree search
EP3612984A4 (en) * 2017-04-18 2021-03-24 D5A1 Llc MULTI-LEVEL MACHINE LEARNING AND RECOGNITION
WO2019183371A1 (en) * 2018-03-22 2019-09-26 Apomatix Inc. Networked computer-system management and control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013123196A (ja) * 2011-12-12 2013-06-20 Sharp Corp プリコーディング装置、無線送信装置、プリコーディング方法、プログラムおよび集積回路
EP3224964A1 (en) * 2014-11-25 2017-10-04 University of Surrey Maximizing energy efficiency in non-linear precoding using vector perturbation
JP6159839B1 (ja) * 2016-03-08 2017-07-05 ソフトバンク株式会社 基地局装置
JP2018050097A (ja) * 2016-09-20 2018-03-29 ソフトバンク株式会社 基地局装置、摂動ベクトル探索方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hongji Huang,Yi Wei Song,Jie Yang,Guan Gui,Fumiyuki Adachi.Deep-Learning-based Millimeter-Wave Massive MIMO for Hybrid Precoding.ARXIV.2019,第1-7页. *

Also Published As

Publication number Publication date
EP3761238A1 (en) 2021-01-06
KR20220031624A (ko) 2022-03-11
WO2021001202A1 (en) 2021-01-07
CN114051701A (zh) 2022-02-15
US20220247460A1 (en) 2022-08-04
JP2022537979A (ja) 2022-08-31

Similar Documents

Publication Publication Date Title
CN114051701B (zh) 用于机器学习辅助预编码的设备和方法
Mohammadkarimi et al. Deep learning-based sphere decoding
US11888655B2 (en) Devices and methods for machine learning assisted sphere decoding
CN101499840B (zh) 多入多出系统的迭代检测方法
Askri et al. DNN assisted sphere decoder
Song et al. Benchmarking end-to-end learning of MIMO physical-layer communication
CN113114313A (zh) 一种mimo-noma系统导频辅助信号检测方法、系统及存储介质
Hua et al. Signal detection in uplink pilot-assisted multi-user MIMO systems with deep learning
Kwon et al. Machine learning-based beamforming in K-user MISO interference channels
Ye et al. Bilinear convolutional auto-encoder based pilot-free end-to-end communication systems
WO2009075456A1 (en) Method for transmission interference cancellation for mu-mimo
US20230186079A1 (en) Learning an optimal precoding policy for multi-antenna communications
Wang et al. Deep Transfer Learning for Model-Driven Signal Detection in MIMO-NOMA Systems
Fu et al. Grassmannian constellation design for noncoherent MIMO systems using autoencoders
Althahab et al. A comprehensive review on various estimation techniques for multi input multi output channel
Zhu et al. Joint transceiver optimization for wireless communication PHY with convolutional neural network
Le et al. RIS-assisted MIMO communication systems: Model-based versus autoencoder approaches
Mohamed et al. Low complexity deep neural network based transmit antenna selection and signal detection in SM-MIMO system
KR101019291B1 (ko) 다중 사용자 mimo 시스템에서 고정 복잡도를 갖는 스피어 인코딩 방법
Mayouche et al. Data-driven precoded MIMO detection robust to channel estimation errors
AU2020369979B2 (en) M-MIMO receiver
Fu et al. On deep learning techniques for Noncoherent MIMO systems
Ramasamy et al. Evolutionary gravitational Neocognitron neural network based differential spatial modulation detection scheme for uplink multiple user huge MIMO systems
Bashir et al. A comparative study of heuristic algorithms: GA and UMDA in spatially multiplexed communication systems
CN116505982A (zh) 高阶调制的大规模mimo系统下的深度学习信号检测方法

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