CN113810152B - 用于缓存无线数据的网络编码方法、装置和系统 - Google Patents
用于缓存无线数据的网络编码方法、装置和系统 Download PDFInfo
- Publication number
- CN113810152B CN113810152B CN202010529845.5A CN202010529845A CN113810152B CN 113810152 B CN113810152 B CN 113810152B CN 202010529845 A CN202010529845 A CN 202010529845A CN 113810152 B CN113810152 B CN 113810152B
- Authority
- CN
- China
- Prior art keywords
- data
- cached
- caching
- length
- data length
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000013598 vector Substances 0.000 claims abstract description 186
- 239000011159 matrix material Substances 0.000 claims abstract description 82
- 230000003139 buffering effect Effects 0.000 claims description 102
- 239000000872 buffer Substances 0.000 claims description 90
- 230000011664 signaling Effects 0.000 claims description 60
- 238000001514 detection method Methods 0.000 claims description 27
- 230000001427 coherent effect Effects 0.000 claims description 25
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 19
- 239000010931 gold Substances 0.000 claims description 19
- 229910052737 gold Inorganic materials 0.000 claims description 19
- 238000005259 measurement Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 description 40
- 238000004891 communication Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 8
- 238000007476 Maximum Likelihood Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0048—Allocation of pilot signals, i.e. of signals known to the receiver
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mobile Radio Communication Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供了一种用于缓存无线数据的网络编码方法、装置和系统,其中,用于缓存无线数据的网络编码方法包括:a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;c生成行数为所述第一数量的随机系数列向量;d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;e重复所述步骤a、b、c、d,直至满足预定的停止编码条件。根据本申请的方案,能够高效地缓存无线数据。
Description
技术领域
本申请涉及无线通信技术领域,尤其涉及一种用于缓存无线数据的网络编码方案。
背景技术
在5G(5th-Generation)移动网络中,定义了三种典型的应用场景,包括增强型移动宽带(Enhanced Mobile Broadband,eMBB)、超高可靠与低时延通信(Ultra-reliableand Low Latency Communications,URLLC)以及大规模机器类型通信(massive MachineType of Communication,mMTC),而对于eMBB和mMTC的某些特定应用业务,可能存在需要在用户设备侧本地缓存无线数据的需求。
发明内容
本申请的目的是提供一种用于缓存无线数据的网络编码方法、装置和系统。
根据本申请的一个实施例,提供一种用于缓存无线数据的网络编码方法,应用于用户设备,其中,所述方法包括:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复所述步骤a、b、c、d,直至满足预定的停止编码条件。
根据本申请的另一个实施例,还提供了一种用于辅助缓存无线数据的方法,应用于基站,其中,所述方法包括:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵与行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
根据本申请的另一个实施例,还提供了一种在用户设备中用于缓存无线数据的第一装置,其中,所述第一装置包括:
第一单元,用于根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
第二单元,用于根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
第三单元,用于生成行数为所述第一数量的随机系数列向量;
第四单元,用于通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
第五单元,用于触发所述第一单元、所述第二单元、所述第三单元、所述第四单元重复执行操作,直至满足预定的停止编码条件。
根据本申请的另一个实施例,还提供了一种用于辅助缓存无线数据的第二装置,应用于基站,其中,所述第二装置包括:
第六单元,用于接收用户设备发送的缓存控制信令;
第七单元,用于接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
第八单元,用于接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
第九单元,用于根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
根据本申请的另一个实施例,还提供了一种用户设备,其中,所述用户设备包括:
存储器,用于存储一个或多个程序;
一个或多个处理器,与所述存储器相连,
当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行如下操作:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复所述操作a、b、c、d,直至满足预定的停止编码条件。
根据本申请的另一个实施例,还提供了一种基站,其中,所述基站包括:
存储器,用于存储一个或多个程序;
一个或多个处理器,与所述存储器相连,
当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行如下操作:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
根据本申请的另一个实施例,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行如下操作:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复所述操作a、b、c、d,直至满足预定的停止编码条件。
根据本申请的另一个实施例,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行如下操作:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
与现有技术相比,本申请具有以下优点:能够将完美空时分组码用于进行网络编码缓存,用户设备侧在缓存无线数据时能够根据第一数量的平方的待缓存数据构建行数和列数均为第一数量的完美空时分组码矩阵,进而引入行数为第一数量随机系数列向量,能够通过将构建的完美空时分组码矩阵与随机系数列向量相乘进行网络编码操作,得到行数为第一数量的编码列向量,从而能够在第一数量的符号持续时间内,缓存数量为第一数量的平方的无线数据符号,且基站侧通过使用适用于完美空时分组码的相干检测算法来恢复无线数据,能够确保良好的性能,且无论在多个数据源及单个数据源的任何可能情形下,都能实现无线数据的有效缓存。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了本申请一个实施例的在用户设备中用于缓存无线数据的网络编码方法的流程示意图;
图2示出了本申请一个实施例的在基站中用于辅助缓存无线数据的方法的流程示意图;
图3示出了本申请一个实施例的在用户设备中用于缓存无线数据的第一装置的结构示意图;
图4示出了本申请一个实施例的在基站中用于辅助缓存无线数据的第二装置的结构示意图;
图5示出了可被用于实施本申请中所述的各个实施例的示例性系统。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“设备”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的程序指令来执行预定处理过程,或是由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等硬件执行预定处理过程,或是由上述二者组合来实现。
本申请各实施例的用于缓存无线数据的方案应用于无线通信系统中,可选地,应用于5G系统,或者,也可应用于现有的或以后可能出现的其他无线通信系统中,本申请对此并不作限制,本领域技术人员应能理解,任何无线通信系统中,若需要在用户设备侧缓存无线数据,均可使用本申请提出的用于缓存无线数据的网络编码方案。
本申请的技术方案主要由用户设备和基站来实现。其中,所述用户设备意指由用户侧使用的通信设备,其可以与无线通信网络中的基站进行上行链路和下行链路通信;所述用户设备包括但不限于无人机(Unmanned Aerial Vehicle,UAV)、PC机、平板电脑、智能手机、可穿戴设备。其中,所述基站意指具有双向收发器的无线电站(radiostation),其可以通过无线电信号与其所服务的蜂窝中的用户设备进行上行链路和下行链路通信,并且还可以直接或间接与其他基站通信;所述基站包括但不限于5G系统中的gNB。
本文后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本申请作进一步详细描述。
图1示出了本申请一个实施例的在用户设备中用于缓存无线数据的网络编码方法的流程示意图。根据本实施例的方法包括步骤S11、步骤S12、步骤S13、步骤S14和步骤S15。在步骤S11中,用户设备根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;在步骤S12中,用户设备根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;在步骤S13中,用户设备生成行数为所述第一数量的随机系数列向量;在步骤S14中,用户设备通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;在步骤S15中,用户设备重复所述步骤S11、步骤S12、步骤S13、步骤S14,直至满足预定的停止编码条件。
在步骤S11中,用户设备根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方。其中,所述第一数量和所述第二数量为正整数。
在一些实施例中,需要缓存数据的数据源可能有多个,也可能仅有一个,例如,无人机通过捕获不同事件或风景,获得来自多个数据源的数据,每个事件或风景对应一个数据源。在一些实施例中,若需要缓存来自多个数据源的数据,针对该多个数据源的每次缓存操作中所获取的待缓存数据可能来自该多个数据源的全部或部分数据源。在一些实施例中,针对至少一个数据源的每次缓存操作对应的第一数量是相同的,因此每次缓存操作对应的第二数量也是相同的;在另一些实施例中,针对至少一个数据源的每次缓存操作对应的第一数量可能相同,也可能不同,因此每次缓存操作对应的第二数量也可能相同或者不同。在一些实施例中,若需要缓存来自多个数据源的数据,该多个数据源中每个数据源的长度可能是相同的,也可能是不同的,可能是第一数量的倍数,也可能并非第一数量的倍数,后续实施例中将针对多个数据源时的不同情形分别进行描述;在一些实施例中,若需要缓存来自单个数据源的数据,该单个数据源的长度可能是第二数量的倍数,也可能并非是第二数量的倍数,后续实施例中将针对单个数据源时的不同情形分别进行描述。需要说明的是,第一数量和第二数量可能使用bit、byte或其他任何可行的单位。
在一些实施例中,可能在步骤S11之前确定每次缓存操作对应的第一数量,也可能在针对至少一个数据源第一次执行步骤S11时确定每次缓存操作对应的第一数量,或者也可能在针对至少一个数据源每次执行步骤S11时确定本次缓存操作对应的第一数量。在一些实施例中,第一数量可能为预定的,也可能为从多个预定数量中选择的,还可能为基于数据源的数量及数据长度来确定的。作为一个示例,针对至少一个数据源的本次缓存操作对应的第一数量为W,从该至少一个数据源中获取W2个待缓存数据。
可选地,步骤S11的实现方式包括但不限于:
1)步骤S11进一步包括步骤S111,在步骤S111中,若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据。
具体地,若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据的实现方式包括但不限于:
a)作为步骤S111的一种实现方式,若需要缓存的数据来自多个数据源且每个数据源的数据量相同,将所述多个数据源的数量确定为本次缓存操作对应的第一数量,并从所述每个数据源中分别获得第一数量的待缓存数据,其中,每次缓存操作对应的第一数量相同。
例如,需要缓存的数据来自K(K为大于1的正整数)个数据源,每个数据源的数据量相同,则将K确定为本次缓存操作对应的第一数量,并从每个数据源中分别获得K个待缓存数据,由此本次缓存操作中从该K个数据源共获取K2个待缓存数据。需要说明的是,每个数据源的数据量相同时,该数据量可能为K的倍数,也可能并非是K的倍数,若该数据量为K的倍数,则针对该K个数据源的最后一个缓存操作执行完毕,该K个数据源的所有数据都完成缓存,而若该数据量并非是K的倍数,则针对该K个数据源的最后一个缓存操作执行完毕,该K个数据源中每个数据源均有少量剩余数据,此时可直接缓存每个数据源中的剩余数据(也即无需再执行网络编码操作)。
b)作为步骤S111的另一种实现方式,若需要缓存的数据来自多个数据源,当本次缓存操作为针对所述多个数据源的第一次缓存操作时,根据所述多个数据源分别对应的数据量确定从小到大依次排列的多个数据长度以及每个数据长度的数据源数量,将所述多个数据源的数量确定为第一次缓存操作对应的第一数量,并从所述每个数据源中分别获得第一数量的待缓存数据;当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,其中,每个数据长度的排列顺序与完成编码的顺序一致。需要说明的是,该实现方式为一种多个数据源时的通用实现方式,其既适用于每个数据源的数量均不相同或者不完全相同的情形,也适用于每个数据源的数据量相同的情形。
作为一个示例,需要缓存的数据来自K(K>1)个数据源,该K个数据源中每个数据源的数据量可能相同也可能不同,在步骤S111中,判断本次缓存操是否为针对所述多个数据源的第一次缓存操作,若是第一次缓存操作,根据该K个数据源分别对应的数据量确定从小到大依次排列的m(1≤m≤K,其中,m等于1时表示每个数据源的长度相同,m=K时表示每个数据源的长度均不相同,1<m<K时表示K个数据源中有部分数据源的长度相同)个数据长度L1,L2,…,Lm(K<<L1<L2<…,Lm),且确定每个数据长度对应的数据源数量,其中,KLi表示第i(i=1,2,…,m)个数据长度对应的数据源数量,将K确定为第一次缓存操作对应的第一数量,并从每个数据源中分别获得K个待缓存数据(由此本次缓存操作共获得K2个待缓存数据);若并非第一次缓存操作,则先确定尚未完成编码的至少一个数据长度(每个数据长度的排列顺序与完成编码的顺序一致,也即,数据长度越小,越先完成编码,如,当L1完成编码之后,尚未完成编码的为L2至Lm,当L2完成编码之后,尚未完成编码的为L3至Lm,依次类推),之后根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量(例如,若尚未完成编码的为L2至Lm,则尚未完成编码的至少一个数据长度对应的数据源数量之和可表示为“K-KL1”),并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据。
需要说明的是,尚未完成编码的数据长度,是指该数据长度对应的数据源仍需要通过本申请的网络编码方案来实现缓存;已完成编码的数据长度,是指该数据长度对应的数据源不需要再执行网络编码操作,该数据长度对应的数据源中可能已没有数据,或者可能还剩余有少量数据。需要说明的是,尚未完成编码的数据长度可能为一个或多个,若尚未完成编码的数据长度为多个,则尚未完成编码的数据长度对应的数据源数量之和一定为多个,此时从尚未完成编码的各个数据源中分别获取第一数量的待缓存数据,由此本次缓存操作共获取第二数量的待缓存数据;而若尚未完成编码的数据长度为一个(如在上述示例中,仅剩Lm尚未完成编码),则此时存在两种情形,一种情形为该数据长度对应多个数据源,该情形下可采用上述实现方式a)来从剩余的多个数据源中获取第二数量的待缓存数据,另一种情形为该数据长度对应单个数据源,该情形下可采用下述实现方式2)来从剩余的单个数据源中获取第二数量的待缓存数据。
在一些实施例中,所述当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,包括:当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,若目标数据长度对应的至少一个数据源在上一次缓存操作后正好完成缓存,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据;若目标数据长度对应的至少一个数据源在上一次缓存操作后并未完成缓存,判断尚未完成缓存的目标数据长度对应的至少一个数据源中每一个数据源的未缓存数据量是否小于上一次缓存操作对应的第一数量,其中,所述目标数据长度为上一次缓存操作对应的至少一个数据长度中最小的数据长度;若是,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,其中,所述目标数据长度中的未缓存数据被直接缓存;若否,将上一次缓存操作对应的第一数量确定为本次缓存操作对应的第一数量。其中,若目标数据长度对应的至少一个数据源中每一个数据源的未缓存数据量小于上一次缓存操作对应的第一数量,确定该目标数据长度已完成编码,剩余的少量未缓存数据量将被直接缓存,本次缓存操作与上一次缓存操作针对的数据长度不同,否则,表示该目标数据长度尚未完成编码,此时继续使用上一次缓存操作对应的第一数量来获取待缓存数据。需要说明的是,可当判断到目标数据长度对应的各个数据源中的未缓存数据量小于上一次缓存操作对应的第一数量时,直接缓存目标数据长度对应的各个数据源中剩余的未缓存数据,或者,也可当满足预定的停止编码条件时,直接缓存各个数据源中剩余的未缓存数据。其中,“目标数据长度对应的至少一个数据源在上一次缓存操作后正好完成缓存”,也即,在上一次缓存操作执行完毕后,目标数据长度对应的至少一个数据源中正好没有剩余数据。
在一些实施例中,所述根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,包括:若大于所述目标数据长度的剩余数据长度的数量大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;若大于所述目标数据长度的剩余数据长度的数量等于1,判断所述剩余数据长度对应的数据源数量之和是否大于1;若大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;若等于1,确定本次缓存操作对应的第一数量,并从所述剩余数据长度对应的单个数据源中获得第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于或等于排列在最后的两个数据长度之间的差值。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量大于1,则剩余数据长度对应的数据源一定为多个,则将剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据,例如,需要缓存的5个数据源分别为D1、D2、D3、D4、D5,根据该5个数据源确定从小到大依次排列的3个数据长度L1、L2、L3(L1<L2<L3),其中,L1对应D1、D2,L2对应D3,L3对应D4、D5,上一次缓存操作对应的至少一个数据长度包括L1、L2、L3,上一次缓存操作对应的第一数量为5(即总数据源数量),在本次缓存操作中,判断目标数据长度L1(即上一次缓存操作中对应的最小数据长度)对应的数据源D1和D2中的未缓存数据量是否小于5,若是,确定大于L1的剩余数据长度(L2和L3)对应的数据源数量之和为3,将该数据源数量之和确定为本次缓存操作对应的第一数量,并从未完成编码的D3、D4、D5中分别获取3个待缓存数据,由此,共从未完成编码的数据源中获取32个待缓存数据。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量等于1,且剩余数据长度对应的数据源数量之和大于1,则说明仅剩最大数据长度尚未完成编码,且该最大数据长度对应的数据源有多个,此时将剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从剩余数据长度对应的每个数据源中获得第一数量的待缓存数据,也即相当于采用上述实现方式a)。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量等于1,且剩余数据长度对应的数据源数量之和等于1,则说明仅剩最大数据长度尚未完成编码,且该最大数据长度对应单个数据源,则确定本次缓存操作对应的第一数量(本次缓存操作对应的第一数量可能是针对单个数据源预先设定的,也可能是从多个预定数量中选择的,还可能是结合该单个数据源当前的数据量所确定的),并从该单个数据源中获得第一数量的平方的待缓存数据,也即相当于采用下文中的实现方式2),本次缓存操作中,由于该单个数据源中的剩余数据量即为排列在最后的两个数据长度之间的差值,因此,本次缓存操作对应的第二数量小于或等于排列在最后的两个数据长度之间的差值,由此才能从该单个数据源中获取第二数量的未缓存数据以进行网络编码。
2)步骤S11进一步包括步骤S112,在步骤S112中,若需要缓存的数据来自单个数据源,获得本次缓存操作对应的第一数量,并从所述单个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于所述单个数据源的数据量。
在一些实施例中,针对单个数据源的每次缓存操作所对应的第一数量是相同的,该第一数量可能是针对单个数据源预先设定的,也可能是从多个预定数量中选择的,还可能是结合该单个数据源的数据量所确定的;例如,预先设定单个数据源时使用的第一数量为2;又例如,预先设定多个预定数量,从该多个预定数量中选择一个预定数量作为第一数量,该被选择的预定数量的平方的某个倍数最接近该单个数据源的数据量。在一些实施例中,将单个数据源的数据序列视为由N个子序列构成,则从该单个数据源中获取N2个待缓存数据可视为从该N个子序列中的每个子序列去获得N个待缓存数据。
在一些实施例中,该单个数据源的数据量为第二数量的倍数,则执行“L/N2”次缓存操作之后(其中,L表示该单个数据源的数据量,N表示第一数量),该单个数据源的全部数据通过网络编码被缓存;在另一些实施例中,该单个数据源的数据量并非第二数量的倍数,则执行次缓存操作之后,该单个数据源中会剩余少量未缓存数据,剩余的少量未缓存数据将直接被缓存,其中,剩余的未缓存数据的数量可表示为“L mod N2”,mod表示模运算。
在步骤S12中,用户设备根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵。
此处首先对完美空时分组码及黄金编码作如下简要说明:现有技术中,完美空时分组码被用于点对点多天线通信系统(Point-to-point Multi-antenna System)的发射端去进行具有高速率和高可靠性的多天线无线传输。如果有M(M>=2)个发射天线,则完美空时分组码的码矩阵被构建为一个M×M的线性离散码矩阵(linear-dispersion codematrix),该线性离散码矩阵中会承载M2个信息符号,因此,在M个符号持续时间内(通过M个天线)发送了M2个信息符号,也即平均每个时隙传输M个信息符号,从而实现了很高的信息传输速率。完美空时分组码矩阵的构建需要复杂的循环可除代数(cyclic divisionalgebra)运算,但是,生成的码矩阵具有简洁的形式;对于任意给定数量(即对于任意给定的M(M>=2)的值)的多个发射天线,完美空时码的码矩阵构建在现有技术中均已完成(参见参考文献:Petros Elia,B.A.Sethuraman,and P.Vijay Kumar,“Perfect spacetimecodes for any number of antennas”,IEEE Trans.on Information Theory,vol.53,no.11,pp.3853-3868,Nov.2007.)。以下为一个示例的有2个Tx天线(即有M=2个发射天线)时的完美空时分组码(也称为黄金编码)的码矩阵:
其中,码矩阵的行表示时间索引,列表示发送天线索引(需要说明的是,也可使用码矩阵的行表示发送天线索引,列表示时间索引),四个符号si(i=1,2,3,4)来自一个QAM调制星座, ε=1+j(1-λ),j表示虚数单位(j2=-1)。完美空时分组码矩阵的构建可以使得每个天线的平均发射功率是一致的,以使用等能量的4-QAM调制星座(即QPSK调制星座)为例,在上述针对2个Tx天线的完美空时分组码(即黄金编码)的码矩阵中,每个元素的功率相同,其值为5。黄金编码已被纳入IEEE 802.16(WiMAX)标准中,用于在多天线通信系统的发射端配置2个发射天线时进行多天线无线传输。
对于一次缓存操作,该次缓存操作中所构建的完美空时分组码矩阵的行数和列数即为该次缓存操作对应的第一数量,且该完美空时分组码矩阵用于承载该次缓存操作中所获取的第二数量的待缓存数据。作为一个示例,需要缓存的数据来自K个数据源,本次缓存操作对应的第一数量为K,在步骤S11中,从每个数据源中分别获取K个待缓存数据,也即共获取了K2个待缓存数据,在步骤S12中,根据该K2个待缓存数据构建K×K的完美空时分组码矩阵,该完美空时分组码矩阵中的每一行都包含本次缓存操作中所获取的K2个待缓存数据,如第一行的第一项是从第一个数据源获取的K个待缓存数据的加权线性结合,第一行的第二项是从第二个数据源获取的K个待缓存数据的加权线性结合,以此类推,则第一行中包含本次缓存操作中所获取的K2个待缓存数据。
需要说明的是,现有技术中完美空时分组码仅被多天线发射机用于进行数据的多天线无线传输,而本申请中第一次将完美空时分组码用于缓存无线数据,通过对完美空时分组码中的列进行加权线性结合来实现网络编码缓存,由此,一方面,基于完美空时分组码的编解码特性,实现了网络编码缓存的可行性,另一方面,由于在基站侧可以利用成熟的用于完美空时分组码的相干检测算法,因此可以确保对缓存数据(经历无线传输)的恢复,具有良好的性能。
在步骤S13中,用户设备生成行数为所述第一数量的随机系数列向量。
在一些实施例中,所述随机系数列向量表示为“c=[τ1,…,τK]T”,其中,c表示随机系数列向量,τ1,…,τK表示K个随机系数,T表示矩阵转置。在一些实施例中,将随机系数列向量中的每个随机系数设置为ejθ,其中θ均匀分布在[0,2π]中。
在步骤S14中,用户设备通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量。
具体地,通过将行数和列数均为第一数量的完美空时分组码矩阵与行数为第一数量的随机系数列向量相乘来进行网络编码,得到行数为第一数量的编码列向量,该编码列向量也即完美空时分组码矩阵中列的加权线性结合,由此,能够在第一数量的符号持续时间内,缓存第二数量的待缓存数据符号的第一数量个加权线性结合。例如,需要缓存的数据来自K个数据源,本次缓存操作对应的第一数量为K,在步骤S11中,从每个数据源中分别获取K个待缓存数据,也即共获取了K2个待缓存数据,在步骤S12中,根据该K2个待缓存数据构建K×K的完美控制分组码矩阵,在步骤S13中,生成K×1的随机系数列向量,在步骤S14中,将K×K的完美控制分组码矩阵与K×1的随机系数列向量相乘,得到K×1的编码列向量,并缓存该编码列向量,由此,能够在K个符号持续时间内,缓存K2的待缓存数据符号的K个加权线性结合。
在步骤S15中,用户设备重复所述步骤S11、步骤S12、步骤S13、步骤S14,直至满足预定的停止编码条件。
在一些实施例中,所述停止编码条件包括任何用于停止针对所述至少一个数据源的网络编码缓存操作的触发条件;可选地,所述停止编码条件包括但不限于:所述至少一个数据源中的所有数据已完成缓存;每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量(若部分数据源中有剩余的未缓存数据量且另一部分数据源中没有剩余数据,该另一部分数据源可视为其未缓存数据量为0)。需要说明的是,所述至少一个数据源完成编码和完成缓存的时刻可能相同,也可能不同,当满足停止编码条件时,所述至少一个数据源可能已完成缓存,也可能剩有无需编码的少量未缓存数据,若剩有少量无需编码的未缓存数据,则当剩余的未缓存数据被直接缓存后,所述至少一个数据源完成缓存。
在一些实施例中,所述停止编码条件为每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量,所述方法还包括:直接缓存所述至少一个数据源中剩余的未缓存数据。也即,停止编码后数据源中剩余的少量数据无需进行网络编码,而仅需直接缓存。
在一些实施例中,所述方法还包括步骤S16,在步骤S16中,若需要缓存的数据来自多个数据源,将所述多个数据源划分为多组数据,其中,每组数据对应一个或两个数据源;在步骤S16之后,针对每组数据,执行步骤S11、步骤S12、步骤S13、步骤S14和步骤S15,直至该组数据完成缓存,其中,所述第一数量为2。其中,由于针对所述多组数据的每次缓存操作对应的第一数量固定为2,因此,每次缓存操作中构建2×2的完美空时分组码矩阵,通过将完美空时分组码矩阵与2×1的随机系数列向量相乘来执行网络编码操作,得到2×1的编码列向量并缓存,也即,每次缓存操作能够在2个符号持续时间内缓存4个数据符号,该编码方式也即黄金编码方式,采用黄金编码方式,能够在缓存效率和处理复杂度之间取得好的权衡。
其中,可采用多种方式将所述多个数据源划分为多组数据。例如,可优先将数据长度相同的每两个数据源划分为同一组,之后将剩余的每个数据源单独作为一组。又例如,可优先将数据长度相同的每两个数据源划分为同一组,之后将数据长度是2的倍数的每两个数据源划分为同一组,最后将剩余的每个数据源单独作为一组。
优选地,所述步骤S16包括:若需要缓存的数据来自多个数据源且所述多个数据源的数量为偶数,将所述多个数据源划分为组数据;若需要缓存的数据来自多个数据源且所述多个数据源的数量为奇数,将所述多个数据源划分为组数据;其中,K表示所述多个数据源的数量。例如,有6个数据源,则将该6个数据源划分为3组,每组有2个数据源;又例如,有7个数据源,则将该7个数据源划分为4组,其中3组有2个数据源,剩余的1组有1个数据源。基于该优选方案,能够在缓存效率和处理复杂度之间取得好的权衡。
作为一种优选方案,所述方法还包括:当满足预定发送条件时,向基站发送缓存控制信令;将已缓存的各个编码列向量按照缓存顺序依次发送至所述基站,以使基站根据所述缓存控制信令对所述各个编码列向量进行解码,得到所述至少一个数据源的数据。
其中,所述预定发送条件包括任何触发发送缓存数据的预定条件。可选地,所述预定发送条件包括但不限于:用户设备距离基站的位置在预定范围内、距离上一次发送时间的间隔达到预定时间(即定时发送)、缓存已满或将满。
在一些实施例中,所述缓存控制信令包括用于解码的关键参数,以使基站基于缓存控制信令中的关键参数对接收到编码列向量进行解码,用户设备可通过控制信道将缓存控制信令发送到基站。在一些实施例中,所述缓存控制信令包括以下至少任一项:
1)缓存模式指示信息
其中,所述缓存模式指示信息用于指示用户设备所使用的缓存模式,例如,缓存模式包括网络编码缓存模式和非网络编码缓存模式。在一些时候,需要缓存的数据量可能并不大,因此并非总需要通过网络编码进行缓存,支持不同缓存模式能够使得无线数据的缓存具备灵活性。
2)用于指示是否有多个数据源的数据源指示信息
其中,所述数据源指示信息用于指示缓存数据来自多个数据源还是单个数据源。
3)每次缓存操作对应的第一数量
在一些实施例中,若每次缓存操作对应的第一数量相同,则缓存控制信令中包括该第一数量以及用于指示第一数量不变的指示信息;在一些实施例中,若每次缓存操作对应的第一数量不完全相同,则缓存控制信令中包括按照缓存顺序依次排列的多个第一数量。
4)仅有一个数据长度时该数据长度对应的倍数指示信息
在一些实施例中,仅有一个数据长度时,若该数据长度对应的数据源数量为1,则该数据长度对应的倍数指示信息用于指示该数据长度是否为N2的倍数,N表示仅有一个数据源时的第一数量;若该数据长度对应的数据源数量大于1,则该数据长度对应的倍数指示信息用于指示该数据长度是否为K的倍数,K表示该数据长度对应的数据源数量。
5)从小到大依次排列的多个数据长度、每个数据长度的数据源数量、每个数据长度对应的倍数指示信息
其中,对于所述多个数据长度中的最小数据长度,该最小数据长度对应的倍数指示信息用于指示该最小数据长度是否为总数据源数量的倍数;对于所述多个数据长度中的最大数据长度,若该最大数据长度对应的数据源数量大于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为该最大数据长度对应的数据源数量的倍数,若该最大数据长度对应的数据源数量等于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为N2的倍数,N表示仅剩该最大数据长度未完成编码时所确定的第一数量;对于所述多个数据长度中除最小数据长度和最大数据长度以外的每个数据长度,该数据长度对应的倍数指示信息用于指示该数据长度与排列在前的相邻数据长度之间的差值是否为大于等于该数据长度的至少一个数据长度对应的数据源数量之和的倍数。
6)用于指示是否总是使用黄金编码方式的编码方式指示信息
在一些实施例中,当编码方式指示信息用于指示总是使用黄金编码方式时,每次缓存操作对应的第一数量一定为2,此时缓存控制信令中可不包含上述第3)项。
7)总是使用黄金编码的方式所对应的组索引、每组数据对应的数据长度、每组数据对应的数据长度所对应的倍数指示信息
其中,若一组数据包括两个数据源且仅对应一个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该组数据对应的数据长度是否为2的倍数;若一组数据包括两个数据源且对应两个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该两个数据长度中较小的数据长度是否为2的倍数以及该两个数据长度之间的差值是否为4的倍数;若一组数据仅包括单个数据源,该组数据的数据长度所对应的倍数指示信息用于指示该单个数据源的数据长度是否为4的倍数。
其中,每组数据对应的数据长度可能为1个或者2个,若一组数据包括2个数据源且该2个数据源的数据长度不同,则该组数据对应2个数据长度,若一组数据包括2个数据源且该2个数据源的数据长度相同,则该组数据对应1个数据长度,若一组数据包括1个数据源,则该组数据对应1个数据长度。
需要说明的是,上述缓存控制信令仅为举例,在实际应用场景中,缓存控制信令可能包含上述部分参数或全部参数,也可能包含其他参数,例如,缓存控制信令中可包括各个数据源的数据量,以使基站基于各个数据源的数据量来计算用于解码的一些关键参数。
在一些实施例中,用户设备在向基站发送每个编码列向量之前,将原始参考信号与行数为第一数量(该编码列向量对应的第一数量)的随机系数列向量相乘得到用于无线信道测量的参考信号,并将所述参考信号发送至基站,以使基站根据接收到的参考信号来估计等效信道系数,并在接收到该编码列向量后,根据接收到缓存控制信令以及估计得到的等效信道系数,并基于适用于完美空时分组码的相干检测算法,对该编码列向量进行解码。
以下以示例形式来说明本申请在不同情形下可能的网络编码缓存方案:
示例一:
假设需要缓存的数据来自K个数据源,每个数据源的数据量均为L0,则将K确定为本次缓存操作对应的第一数量;首先开始执行第一次缓存操作,从每个数据源中分别获得K个待缓存数据,以获取K2个待缓存数据,根据该K2个待缓存数据构建K×K的完美控制分组码矩阵S,之后,生成K×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到K×1的编码列向量并缓存,从而在K个符号持续时间内缓存该K2个待缓存数据符号,之后当判断不满足停止编码条件时,开始第二次缓存操作,由此类推,直至满足停止编码条件。
需要说明的是,若L0为K的倍数,则执行“L0/K”次缓存操作后,满足停止编码条件,此时每个数据源中的数据全部被缓存;若L0并非K的倍数,则执行次缓存操作之后,满足停止编码条件,此时每个数据源中会剩余“L0 mod K”的少量未缓存数据,则将剩余的少量未缓存数据直接缓存,其中,mod表示模运算。
该示例一适用于多个数据源且每个数据源的数据量相同的情况。基于该示例,用户设备向基站发送的缓存控制信令包括但不限于以下参数:用于指示采用网络编码缓存模式的缓存模式指示信息、用于指示有多个数据源的数据源指示信息、K、用于指示L0是否为K的倍数的倍数指示信息(也即L0对应的倍数指示信息)。
示例二:
假设需要缓存的数据来自K个数据源,每个数据源的数据量可能相同或不同,具体步骤如下:
1)执行第一次缓存操作,先根据该K个数据源分别对应的数据量确定从小到大依次排列的m(1≤m≤K)个数据长度L1,L2,…,Lm(K<<L1<L2<…,Lm),且确定每个数据长度对应的数据源数量,其中,KLi表示第i(i=1,2,…,m)个数据长度对应的数据源数量,之后,将K确定为第一次缓存操作对应的第一数量,并从每个数据源中分别获取K个待缓存数据,根据获取的K2个待缓存数据构建K×K的完美空时分组码矩阵S,然后生成K×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到K×1的编码列向量并缓存,之后若L1对应的剩余数据量大于K,则仍将K作为第一数量,并重复执行获取待缓存数据、构建完美空时分组码矩阵S、生成随机系数向量c、得到编码列向量并缓存的操作,直至L1对应的各个数据源已完成缓存或者剩余数据小于K,L1完成编码则执行下一个步骤。
2)尚未完成编码的数据长度为L2,…,Lm,对应的尚未完成编码的数据源数量为(K-KL1)个,由此确定第一数量变为(K-KL1),从尚未完成编码的每个数据源中获取(K-KL1)个待缓存数据,构建(K-KL1)×(K-KL1)的完美空时分组码矩阵S,然后生成(K-KL1)×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到(K-KL1)×1的编码列向量并缓存,之后若L2对应的剩余数据量大于(K-KL1),则仍将(K-KL1)作为第一数量,并重复执行获取待缓存数据、构建完美空时分组码矩阵S、生成随机系数向量c、得到编码列向量并缓存的操作,直至L2对应的各个数据源已完成缓存或者剩余数据小于(K-KL1),L2完成编码则执行下一个步骤。
依次类推,直至Lm-1完成编码则执行下述第m个步骤(也即,有m个数据长度,则对应有m个步骤,而在步骤m之前,各个步骤中的网络编码缓存方式都与上述步骤2)类似,区别在于每个步骤对应的第一数量的值不同);
m)判断KLm是否大于1,若是,表示仅剩Lm未完成编码且Lm对应多个数据源,则确定第一数量为KLm,之后,从尚未完成编码的每个数据源中获取KLm个待缓存数据,构建KLm×KLm的完美空时分组码矩阵S,然后生成KLm×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到KLm×1的编码列向量并缓存,之后若Lm对应的剩余数据量大于KLm,则仍将KLm作为第一数量,并重复执行获取待缓存数据、构建完美空时分组码矩阵S、生成随机系数向量c、得到编码列向量并缓存的操作,直至Lm对应的各个数据源已完成缓存或者剩余数据小于KLm;若KLm=1,表示仅剩Lm未完成编码且Lm对应1个数据源,则确定第一数量N(Lm对应的数据源中剩余的数据量大于N2),之后,从Lm对应的数据源中获取N2个待缓存数据,构建N×N的完美空时分组码矩阵S,然后生成N×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到N×1的编码列向量并缓存,之后若Lm对应的数据源中的剩余数据量仍大于N2,则仍将N作为第一数量,并重复执行获取待缓存数据、构建完美空时分组码矩阵S、生成随机系数向量c、得到编码列向量并缓存的操作,直至Lm对应的数据源已完成缓存或者剩余数据小于N2。
需要说明的是,该示例中,需要考虑每个数据长度是否满足“成倍数”的关系,若全部满足,也即表示L1为K的倍数、L2-L1为(K-KL1)的倍数、L3-L2为(K-KL1-KL2)的倍数、…、L(m-1)-L(m-2)为(K-KL1-KL2-...-KL(m-2))的倍数,Lm-L(m-1)为KLm(KLm=K-KL1-KL2-...-KL(m-1))的倍数(若KLm>1),Lm-L(m-1)是N2的倍数(若KLm=1)。若每个数据长度均满足“成倍数”的关系,则每个数据源完成编码时不会有剩余数据,否则会剩余少量数据,而剩余的少量数据将会直接缓存。
该示例二适用于多个数据源的通用情况。基于该示例,用户设备向基站发送的缓存控制信令包括但不限于以下参数:用于指示采用网络编码缓存模式的缓存模式指示信息、用于指示有多个数据源的数据源指示信息、每次缓存操作对应的第一数量(在一些示例中,当KLm>1时,发送(K,K-KL1,…,K-KL1-KL2-...-KL(m-2),K-KL1-KL2-...-KL(m-1));当KLm=1时,发送(K,K-KL1,…,K-KL1-KL2-...-KL(m-2),N))、(L1,L2,…,Lm)、(KL1,KL2,…,KLm)、以及每个数据长度对应的倍数指示信息,其中,一个数据长度对应的倍数指示信息用于指示该数据长度是否满足“成倍数”的关系,如L1对应的倍数指示信息用于指示L1是否为K的倍数、L2对应的倍数指示信息用于指示(L2-L1)是否为(K-KL1)的倍数、L3对应的倍数指示信息用于指示(L3-L2)为是否(K-KL1-KL2)的倍数、…、Lm-1对应的倍数指示信息用于指示(L(m-1)-L(m-2))是否为(K-KL1-KL2-...-KL(m-2))的倍数,Lm对应的倍数指示信息用于指示(Lm-L(m-1))是否为KLm的倍数(若KLm>1)或者(Lm-L(m-1))是否为N2的倍数(若KLm=1)。
示例三:
假设需要缓存的数据来自单个数据源,该单个数据源的数据量为L,则先确定第一数量N(N<<L),首先开始执行第一次缓存操作,从该单个数据源中获取N2个待缓存数据,根据该N2个待缓存数据构建N×N的完美控制分组码矩阵S,之后,生成N×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到N×1的编码列向量并缓存,从而在N个符号持续时间内缓存该N2个待缓存数据符号,之后当判断不满足停止编码条件时,开始第二次缓存操作,由此类推,直至满足停止编码条件。
需要说明的是,若L为N2的倍数,则执行“L/N2”次缓存操作后,满足停止编码条件,此时该数据源中的数据全部被缓存;若L并非N2的倍数,则执行次缓存操作之后,满足停止编码条件,此时该数据源中会剩余“L mod N2”的少量未缓存数据,则将剩余的少量未缓存数据直接缓存。
该示例三适用于单个数据源的情况。基于该示例,用户设备向基站发送的缓存控制信令包括但不限于以下参数:用于指示采用网络编码缓存模式的缓存模式指示信息、用于指示有单个数据源的数据源指示信息、N、用于指示L是否为N2的倍数的倍数指示信息(也即L对应的倍数指示信息)。
示例四:
假设需要缓存的数据来自K个数据源,将该K个数据源划分为多组数据,其中,若K为偶数,将该K个数据源划分为组,每组有2个数据源,若K为奇数,将该K个数据源划分为组,其中的组有2个数据源,剩下1组只有1个数据源。若一组数据中有2个数据源,则针对该组数据的网络编码方案如下:开始第一次缓存操作,从每个数据源中获取2个数据,并根据总共获取的4个数据构建2×2的完美控制分组码矩阵S,之后,生成2×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到2×1的编码列向量并缓存,从而在2个符号持续时间内缓存4个数据符号,之后当判断不满足停止编码条件时,开始第二次缓存操作,由此类推,直至该组数据满足停止编码条件。而若一组数据中仅有1个数据源,则针对该组数据的网络编码缓存方案如下:开始第一次缓存操作,从该单个数据源中获取4个数据,根据该4个数据构建2×2的完美控制分组码矩阵S,之后,生成2×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到2×1的编码列向量并缓存,从而在2个符号持续时间内缓存该4个数据符号,之后当判断不满足停止编码条件时,开始第二次缓存操作,由此类推,直至满足停止编码条件。
需要说明的是,若一组数据有2个数据源且该2个数据源的数据量相同,则该组数据的网络编码缓存方式与示例一相同,此时需要考虑该2个数据源的数据量是否为2的倍数,若是,则满足停止编码条件时该组数据全部被缓存,否则,满足停止编码条件时每个数据源中会剩余1个数据,则需将剩余的1个数据直接缓存;若一组数据有2个数据源且该2个数据源的数据量不同,则需要考虑该两个数据长度中较小的数据长度是否为2的倍数以及该两个数据长度之间的差值是否为4的倍数,若满足倍数关系,满足停止编码条件时该组数据全部完成缓存,否则,满足停止编码条件时,较小的数据长度对应的数据源会剩余1个数据,和/或较大的数据长度对应的数据源会剩余少量(小于4个)数据,则需将剩余的数据直接缓存;若一组数据有1个数据源,则需要考虑该数据源的数据量是否为4的倍数,若是,满足停止编码条件时该组数据全部完成缓存,否则,满足停止编码条件时会剩余少量(小于4个)数据,则需将剩余的数据直接缓存。
该示例四为多个数据源时采用黄金编码方式的情形。基于该示例,用户设备向基站发送的缓存控制信令包括但不限于以下参数:用于指示采用网络编码缓存模式的缓存模式指示信息、用于指示有多个数据源的数据源指示信息、用于指示总是使用黄金编码方式的编码方式指示信息、组索引、每组数据对应的数据长度、每组数据对应的数据长度所对应的倍数指示信息。
示例五:
假设需要缓存的数据来自单个数据源,开始第一次缓存操作,从该单个数据源中获取4个数据,根据该4个数据构建2×2的完美控制分组码矩阵S,之后,生成2×1的随机系数向量c,通过将S与c相乘来执行网络编码操作,得到2×1的编码列向量并缓存,从而在2个符号持续时间内缓存该4个数据符号,之后当判断不满足停止编码条件时,开始第二次缓存操作,由此类推,直至满足停止编码条件。
该示例五中需要考虑该数据源的数据量是否为4的倍数,若是,满足停止编码条件时该组数据全部完成缓存,否则,满足停止编码条件时会剩余少量(小于4个)数据,则需将剩余的数据直接缓存。
该示例五为单个数据源时采用黄金编码方式的情形。基于该示例,用户设备向基站发送的缓存控制信令包括但不限于以下参数:用于指示采用网络编码缓存模式的缓存模式指示信息、用于指示有单个数据源的数据源指示信息、用于指示总是使用黄金编码方式的编码方式指示信息、该数据源对应的数据长度、该数据长度对应的倍数指示信息(用于指示该数据长度是否为4的倍数)。
基于上述几个示例,本领域技术人员应能理解,第一数量的值越大,缓存效率越高,但相应地,基站解码时的计算复杂性也较高,而黄金编码方式能够在缓存效率和处理复杂度之间取得更好的权衡。以上几个示例仅为举例,在实际应用中,可基于实际需求来确定采用的网络编码缓存方案。
图2示出了本申请一个实施例的在基站中用于辅助缓存无线数据的方法的流程示意图。根据本实施例的方法包括步骤S21、步骤S22、步骤S23和步骤S24。在步骤S21中,基站接收用户设备发送的缓存控制信令;在步骤S22中,基站接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;在步骤S23中,基站接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵与行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;在步骤S24中,基站根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
在步骤S21中,基站接收用户设备发送的缓存控制信令。
具体地,基站接收用户设备通过控制信道发送的缓存控制信令。其中,所述缓存控制信令已在前述实施例中予以详述,在此不再赘述。
在步骤S22中,基站接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的。以中低成本的用户设备用单个天线进行信号发送的情况为例,所述参考信号是由原始参考信号与行数为第一数量的随机系数列向量相乘得到的;对于基站侧的任一给定的接收天线,所述等效信道系数是由相应的原始的单天线传输信道系数与所述随机系数列向量相乘得到的数目为第一数量的多个系数,其可以被看作是由数目为第一数量的多个虚拟天线所致的多天线传输信道系数。
在步骤S23中,基站接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵与行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方。
在步骤S24中,基站根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
在一些实施例中,用户设备可能装备有1个Tx天线(如mMTC设备的典型配置为1个Tx天线),也可能装备有多个Tx天线(如较高成本的无人机可能装备有2个Tx天线)。作为一个示例,假设用户设备Vi装备1个Tx天线,当Vi将K×1的编码列向量传输到其服务基站gNB时,在一般的准静态传播环境下(即瞬时信道系数的值在一个无线帧的传输时间里基本保持不变、每隔一个无线帧才发生独立变化),用于从Vi传输到gNB的瞬时信道系数可以表示为βVi,gNB,进一步地,将cβVi,gNB=[τ1×βVi,gNB,…,τK×βVi,gNB]T记为ζVi,ζVi是K×1的列向量(K为第一数量),代表从Vi到gNB的等效信道系数,将z记为接收侧的复数加性高斯白噪声(Additive White Gaussian Noise,AWGN),则在gNB上,可以将K个连续的符号持续时间上的接收信号向量(记为ΨVi)表示为:
ΨVi=ScβVi,gNB+z=SζVi+z
基于上述公式可以看出,通过引入随机系数列向量c,从装备1个Tx天线的用户设备Vi到gNB的传输等同于用户设备Vi用K个虚拟天线在K个等效信道上的传输,因此,在Vi的服务gNB处,通过估计等效信道系数ζVi,可使用任何适用于完美空时分组码的相干检测算法来进行解码。
若用户设备配备了2个Tx天线,则对于对延迟不敏感的应用服务,建议使用可靠性增强的传输方法来传输缓存数据,例如,使用Tx天线选择方案来选择一个Tx进行传输(由此可以实现选择分集)或使用基于发射分集的2Tx MIMO(Multiple-Input Multiple-Output,多输入多输出)传输(例如使用最典型的Alamouti码)。对于用户设备使用Alamouti码进行2Tx MIMO传输的情况,在基站侧先使用针对Alamouti码的最大似然判决算法,去获得每个被传输的、在经过网络编码后被缓存的码符号的软判决变量,然后,可以很容易地将第一数量的连续传输的、在经过网络编码后被缓存的码符号的软判决变量公式化为如上述公式所示的信号表达式,然后,信号检测的后续处理可以遵循上文针对1个Tx天线的情况的描述。
在一些实施例中,适用于完美空时分组码的相干检测算法包括但不限于:最佳的最大似然(Maximum Likelihood,ML)解码器、次佳的球形解码器(Sphere Decoder)和最小均方误差(Minimum Mean Squared Error,MMSE)解码器。本申请对基站侧采用的相干检测算法并不作限制,其他现有的或以后出现的适用于完美空时分组码的相干检测算法也应包含在本申请的保护范围内。
图3示出了本申请一个实施例的在用户设备中用于缓存无线数据的第一装置的结构示意图。该第一装置1包括第一单元11、第二单元12、第三单元13、第四单元14以及第五单元15。
第一单元11用于根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方。其中,所述第一数量和所述第二数量为正整数。
在一些实施例中,需要缓存数据的数据源可能有多个,也可能仅有一个,例如,无人机通过捕获不同事件或风景,获得来自多个数据源的数据,每个事件或风景对应一个数据源。在一些实施例中,若需要缓存来自多个数据源的数据,针对该多个数据源的每次缓存操作中所获取的待缓存数据可能来自该多个数据源的全部或部分数据源。在一些实施例中,针对至少一个数据源的每次缓存操作对应的第一数量是相同的,因此每次缓存操作对应的第二数量也是相同的;在另一些实施例中,针对至少一个数据源的每次缓存操作对应的第一数量可能相同,也可能不同,因此每次缓存操作对应的第二数量也可能相同或者不同。在一些实施例中,若需要缓存来自多个数据源的数据,该多个数据源中每个数据源的长度可能是相同的,也可能是不同的,可能是第一数量的倍数,也可能并非第一数量的倍数,后续实施例中将针对多个数据源时的不同情形分别进行描述;在一些实施例中,若需要缓存来自单个数据源的数据,该单个数据源的长度可能是第二数量的倍数,也可能并非是第二数量的倍数,后续实施例中将针对单个数据源时的不同情形分别进行描述。需要说明的是,第一数量和第二数量可能使用bit、byte或其他任何可行的单位。
在一些实施例中,可能在第一单元11执行操作之前确定每次缓存操作对应的第一数量,也可能在针对至少一个数据源第一次触发第一单元11执行操作时确定每次缓存操作对应的第一数量,或者也可能在针对至少一个数据源每次触发第一单元11执行操作时确定本次缓存操作对应的第一数量。在一些实施例中,第一数量可能为预定的,也可能为从多个预定数量中选择的,还可能为基于数据源的数量及数据长度来确定的。作为一个示例,针对至少一个数据源的本次缓存操作对应的第一数量为W,从该至少一个数据源中获取W2个待缓存数据。
可选地,第一单元11的实现方式包括但不限于:
1)第一单元11进一步包括第一模块(图未示),第一模块用于若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据。
具体地,若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据的实现方式包括但不限于:
a)作为第一模块的一种实现方式,若需要缓存的数据来自多个数据源且每个数据源的数据量相同,将所述多个数据源的数量确定为本次缓存操作对应的第一数量,并从所述每个数据源中分别获得第一数量的待缓存数据,其中,每次缓存操作对应的第一数量相同。
例如,需要缓存的数据来自K(K为大于1的正整数)个数据源,每个数据源的数据量相同,则将K确定为本次缓存操作对应的第一数量,并从每个数据源中分别获得K个待缓存数据,由此本次缓存操作中从该K个数据源共获取K2个待缓存数据。需要说明的是,每个数据源的数据量相同时,该数据量可能为K的倍数,也可能并非是K的倍数,若该数据量为K的倍数,则针对该K个数据源的最后一个缓存操作执行完毕,该K个数据源的所有数据都完成缓存,而若该数据量并非是K的倍数,则针对该K个数据源的最后一个缓存操作执行完毕,该K个数据源中每个数据源均有少量剩余数据,此时可直接缓存每个数据源中的剩余数据(也即无需再执行网络编码操作)。
b)作为第一模块的另一种实现方式,若需要缓存的数据来自多个数据源,当本次缓存操作为针对所述多个数据源的第一次缓存操作时,根据所述多个数据源分别对应的数据量确定从小到大依次排列的多个数据长度以及每个数据长度的数据源数量,将所述多个数据源的数量确定为第一次缓存操作对应的第一数量,并从所述每个数据源中分别获得第一数量的待缓存数据;当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,其中,每个数据长度的排列顺序与完成编码的顺序一致。需要说明的是,该实现方式为一种多个数据源时的通用实现方式,其既适用于每个数据源的数量均不相同或者不完全相同的情形,也适用于每个数据源的数据量相同的情形。
作为一个示例,需要缓存的数据来自K(K>1)个数据源,该K个数据源中每个数据源的数据量可能相同也可能不同,第一模块判断本次缓存操是否为针对所述多个数据源的第一次缓存操作,若是第一次缓存操作,根据该K个数据源分别对应的数据量确定从小到大依次排列的m(1≤m≤K,其中,m等于1时表示每个数据源的长度相同,m=K时表示每个数据源的长度均不相同,1<m<K时表示K个数据源中有部分数据源的长度相同)个数据长度L1,L2,…,Lm(K<<L1<L2<…,Lm),且确定每个数据长度对应的数据源数量,其中,KLi表示第i(i=1,2,…,m)个数据长度对应的数据源数量,将K确定为第一次缓存操作对应的第一数量,并从每个数据源中分别获得K个待缓存数据(由此本次缓存操作共获得K2个待缓存数据);若并非第一次缓存操作,则先确定尚未完成编码的至少一个数据长度(每个数据长度的排列顺序与完成编码的顺序一致,也即,数据长度越小,越先完成编码,如,当L1完成编码之后,尚未完成编码的为L2至Lm,当L2完成编码之后,尚未完成编码的为L3至Lm,依次类推),之后根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量(例如,若尚未完成编码的为L2至Lm,则尚未完成编码的至少一个数据长度对应的数据源数量之和可表示为“K-KL1”),并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据。
需要说明的是,尚未完成编码的数据长度,是指该数据长度对应的数据源仍需要通过本申请的网络编码方案来实现缓存;已完成编码的数据长度,是指该数据长度对应的数据源不需要再执行网络编码操作,该数据长度对应的数据源中可能已没有数据,或者可能还剩余有少量数据。需要说明的是,尚未完成编码的数据长度可能为一个或多个,若尚未完成编码的数据长度为多个,则尚未完成编码的数据长度对应的数据源数量之和一定为多个,此时从尚未完成编码的各个数据源中分别获取第一数量的待缓存数据,由此本次缓存操作共获取第二数量的待缓存数据;而若尚未完成编码的数据长度为一个(如在上述示例中,仅剩Lm尚未完成编码),则此时存在两种情形,一种情形为该数据长度对应多个数据源,该情形下可采用上述实现方式a)来从剩余的多个数据源中获取第二数量的待缓存数据,另一种情形为该数据长度对应单个数据源,该情形下可采用下述实现方式2)来从剩余的单个数据源中获取第二数量的待缓存数据。
在一些实施例中,所述当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,包括:当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,若目标数据长度对应的至少一个数据源在上一次缓存操作后正好完成缓存,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据;若目标数据长度对应的至少一个数据源在上一次缓存操作后并未完成缓存,判断尚未完成缓存的目标数据长度对应的至少一个数据源中每一个数据源的未缓存数据量是否小于上一次缓存操作对应的第一数量,其中,所述目标数据长度为上一次缓存操作对应的至少一个数据长度中最小的数据长度;若是,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,其中,所述目标数据长度中的未缓存数据被直接缓存;若否,将上一次缓存操作对应的第一数量确定为本次缓存操作对应的第一数量。其中,若目标数据长度对应的至少一个数据源中每一个数据源的未缓存数据量小于上一次缓存操作对应的第一数量,确定该目标数据长度已完成编码,剩余的少量未缓存数据量将被直接缓存,本次缓存操作与上一次缓存操作针对的数据长度不同,否则,表示该目标数据长度尚未完成编码,此时继续使用上一次缓存操作对应的第一数量来获取待缓存数据。需要说明的是,可当判断到目标数据长度对应的各个数据源中的未缓存数据量小于上一次缓存操作对应的第一数量时,直接缓存目标数据长度对应的各个数据源中剩余的未缓存数据,或者,也可当满足预定的停止编码条件时,直接缓存各个数据源中剩余的未缓存数据。其中,“目标数据长度对应的至少一个数据源在上一次缓存操作后正好完成缓存”,也即,在上一次缓存操作执行完毕后,目标数据长度对应的至少一个数据源中正好没有剩余数据。
在一些实施例中,所述根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,包括:若大于所述目标数据长度的剩余数据长度的数量大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;若大于所述目标数据长度的剩余数据长度的数量等于1,判断所述剩余数据长度对应的数据源数量之和是否大于1;若大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;若等于1,确定本次缓存操作对应的第一数量,并从所述剩余数据长度对应的单个数据源中获得第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于或等于排列在最后的两个数据长度之间的差值。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量大于1,则剩余数据长度对应的数据源一定为多个,则将剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据,例如,需要缓存的5个数据源分别为D1、D2、D3、D4、D5,根据该5个数据源确定从小到大依次排列的3个数据长度L1、L2、L3(L1<L2<L3),其中,L1对应D1、D2,L2对应D3,L3对应D4、D5,上一次缓存操作对应的至少一个数据长度包括L1、L2、L3,上一次缓存操作对应的第一数量为5(即总数据源数量),在本次缓存操作中,判断目标数据长度L1(即上一次缓存操作中对应的最小数据长度)对应的数据源D1和D2中的未缓存数据量是否小于5,若是,确定大于L1的剩余数据长度(L2和L3)对应的数据源数量之和为3,将该数据源数量之和确定为本次缓存操作对应的第一数量,并从未完成编码的D3、D4、D5中分别获取3个待缓存数据,由此,共从未完成编码的数据源中获取32个待缓存数据。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量等于1,且剩余数据长度对应的数据源数量之和大于1,则说明仅剩最大数据长度尚未完成编码,且该最大数据长度对应的数据源有多个,此时将剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从剩余数据长度对应的每个数据源中获得第一数量的待缓存数据,也即相当于采用上述实现方式a)。
在一些实施例中,若大于所述目标数据长度的剩余数据长度的数量等于1,且剩余数据长度对应的数据源数量之和等于1,则说明仅剩最大数据长度尚未完成编码,且该最大数据长度对应单个数据源,则确定本次缓存操作对应的第一数量(本次缓存操作对应的第一数量可能是针对单个数据源预先设定的,也可能是从多个预定数量中选择的,还可能是结合该单个数据源当前的数据量所确定的),并从该单个数据源中获得第一数量的平方的待缓存数据,也即相当于采用下文中的实现方式2),本次缓存操作中,由于该单个数据源中的剩余数据量即为排列在最后的两个数据长度之间的差值,因此,本次缓存操作对应的第二数量小于或等于排列在最后的两个数据长度之间的差值,由此才能从该单个数据源中获取第二数量的未缓存数据以进行网络编码。
2)第一单元11进一步包括第二模块(图未示),第二模块用于若需要缓存的数据来自单个数据源,获得本次缓存操作对应的第一数量,并从所述单个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于所述单个数据源的数据量。
在一些实施例中,针对单个数据源的每次缓存操作所对应的第一数量是相同的,该第一数量可能是针对单个数据源预先设定的,也可能是从多个预定数量中选择的,还可能是结合该单个数据源的数据量所确定的;例如,预先设定单个数据源时使用的第一数量为2;又例如,预先设定多个预定数量,从该多个预定数量中选择一个预定数量作为第一数量,该被选择的预定数量的平方的某个倍数最接近该单个数据源的数据量。在一些实施例中,将单个数据源的数据序列视为由N个子序列构成,则从该单个数据源中获取N2个待缓存数据可视为从该N个子序列中的每个子序列去获得N个待缓存数据。
在一些实施例中,该单个数据源的数据量为第二数量的倍数,则执行“L/N2”次缓存操作之后(其中,L表示该单个数据源的数据量,N表示第一数量),该单个数据源的全部数据通过网络编码被缓存;在另一些实施例中,该单个数据源的数据量并非第二数量的倍数,则执行次缓存操作之后,该单个数据源中会剩余少量未缓存数据,剩余的少量未缓存数据将直接被缓存,其中,剩余的未缓存数据的数量可表示为“L mod N2”,mod表示模运算。
第二单元12用于根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵。
前述实施例中已对完美空时分组码及黄金编码作简要说明,在此不再赘述。
对于一次缓存操作,该次缓存操作中所构建的完美空时分组码矩阵的行数和列数即为该次缓存操作对应的第一数量,且该完美空时分组码矩阵用于承载该次缓存操作中所获取的第二数量的待缓存数据。作为一个示例,需要缓存的数据来自K个数据源,本次缓存操作对应的第一数量为K,第一单元11从每个数据源中分别获取K个待缓存数据,也即共获取了K2个待缓存数据,第二单元12根据该K2个待缓存数据构建K×K的完美空时分组码矩阵,该完美空时分组码矩阵中的每一行都包含本次缓存操作中所获取的K2个待缓存数据,如第一行的第一项是从第一个数据源获取的K个待缓存数据的加权线性结合,第一行的第二项是从第二个数据源获取的K个待缓存数据的加权线性结合,以此类推,则第一行中包含本次缓存操作中所获取的K2个待缓存数据。
需要说明的是,现有技术中完美空时分组码仅被多天线发射机用于进行数据的多天线无线传输,而本申请中第一次将完美空时分组码用于缓存无线数据,通过对完美空时分组码中的列进行加权线性结合来实现网络编码缓存,由此,一方面,基于完美空时分组码的编解码特性,实现了网络编码缓存的可行性,另一方面,由于在基站侧可以利用成熟的用于完美空时分组码的相干检测算法,因此可以确保对缓存数据(经历无线传输)的恢复,具有良好的性能。
第三单元13用于生成行数为所述第一数量的随机系数列向量。
在一些实施例中,所述随机系数列向量表示为“c=[τ1,…,τK]T”,其中,c表示随机系数列向量,τ1,…,τK表示K个随机系数,T表示矩阵转置。在一些实施例中,将随机系数列向量中的每个随机系数设置为ejθ,其中θ均匀分布在[0,2π]中。
第四单元14通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量。
具体地,通过将行数和列数均为第一数量的完美空时分组码矩阵与行数为第一数量的随机系数列向量相乘来进行网络编码,得到行数为第一数量的编码列向量,该编码列向量也即完美空时分组码矩阵中列的加权线性结合,由此,能够在第一数量的符号持续时间内,缓存第二数量的待缓存数据符号的第一数量个加权线性结合。例如,需要缓存的数据来自K个数据源,本次缓存操作对应的第一数量为K,第一单元11从每个数据源中分别获取K个待缓存数据,也即共获取了K2个待缓存数据,第二单元12根据该K2个待缓存数据构建K×K的完美控制分组码矩阵,第三单元13生成K×1的随机系数列向量,第四单元14将K×K的完美控制分组码矩阵与K×1的随机系数列向量相乘,得到K×1的编码列向量,并缓存该编码列向量,由此,能够在K个符号持续时间内,缓存K2的待缓存数据符号的K个加权线性结合。
第五单元15用于触发第一单元11、第二单元12、第三单元13、第四单元14重复执行操作,直至满足预定的停止编码条件。
在一些实施例中,所述停止编码条件包括任何用于停止针对所述至少一个数据源的网络编码缓存操作的触发条件;可选地,所述停止编码条件包括但不限于:所述至少一个数据源中的所有数据已完成缓存;每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量(若部分数据源中有剩余的未缓存数据量且另一部分数据源中没有剩余数据,该另一部分数据源可视为其未缓存数据量为0)。需要说明的是,所述至少一个数据源完成编码和完成缓存的时刻可能相同,也可能不同,当满足停止编码条件时,所述至少一个数据源可能已完成缓存,也可能剩有无需编码的少量未缓存数据,若剩有少量无需编码的未缓存数据,则当剩余的未缓存数据被直接缓存后,所述至少一个数据源完成缓存。
在一些实施例中,所述停止编码条件为每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量,所述方法还包括:直接缓存所述至少一个数据源中剩余的未缓存数据。也即,停止编码后数据源中剩余的少量数据无需进行网络编码,而仅需直接缓存。
在一些实施例中,该第一装置1还包括第三模块(图未示),第三模块用于若需要缓存的数据来自多个数据源,将所述多个数据源划分为多组数据,其中,每组数据对应一个或两个数据源;在第三模块执行操作之后,针对每组数据,触发第一单元11、第二单元12、第三单元13、第四单元14、第五单元15执行操作,直至该组数据完成缓存,其中,所述第一数量为2。其中,由于针对所述多组数据的每次缓存操作对应的第一数量固定为2,因此,每次缓存操作中构建2×2的完美空时分组码矩阵,通过将完美空时分组码矩阵与2×1的随机系数列向量相乘来执行网络编码操作,得到2×1的编码列向量并缓存,也即,每次缓存操作能够在2个符号持续时间内缓存4个数据符号,该编码方式也即黄金编码方式,采用黄金编码方式,能够在缓存效率和处理复杂度之间取得好的权衡。
其中,可采用多种方式将所述多个数据源划分为多组数据。例如,可优先将数据长度相同的每两个数据源划分为同一组,之后将剩余的每个数据源单独作为一组。又例如,可优先将数据长度相同的每两个数据源划分为同一组,之后将数据长度是2的倍数的每两个数据源划分为同一组,最后将剩余的每个数据源单独作为一组。
优选地,第三模块用于:若需要缓存的数据来自多个数据源且所述多个数据源的数量为偶数,将所述多个数据源划分为组数据;若需要缓存的数据来自多个数据源且所述多个数据源的数量为奇数,将所述多个数据源划分为组数据;其中,K表示所述多个数据源的数量。例如,有6个数据源,则将该6个数据源划分为3组,每组有2个数据源;又例如,有7个数据源,则将该7个数据源划分为4组,其中3组有2个数据源,剩余的1组有1个数据源。基于该优选方案,能够在缓存效率和处理复杂度之间取得好的权衡。
作为一种优选方案,该第一装置1还包括:用于当满足预定发送条件时,向基站发送缓存控制信令的装置;用于将已缓存的各个编码列向量按照缓存顺序依次发送至所述基站,以使基站根据所述缓存控制信令对所述各个编码列向量进行解码,得到所述至少一个数据源的数据的装置。
其中,所述预定发送条件包括任何触发发送缓存数据的预定条件。可选地,所述预定发送条件包括但不限于:用户设备距离基站的位置在预定范围内、距离上一次发送时间的间隔达到预定时间(即定时发送)、缓存已满或将满。
在一些实施例中,所述缓存控制信令包括用于解码的关键参数,以使基站基于缓存控制信令中的关键参数对接收到编码列向量进行解码,用户设备可通过控制信道将缓存控制信令发送到基站。在一些实施例中,所述缓存控制信令包括以下至少任一项:
1)缓存模式指示信息
其中,所述缓存模式指示信息用于指示用户设备所使用的缓存模式,例如,缓存模式包括网络编码缓存模式和非网络编码缓存模式。在一些时候,需要缓存的数据量可能并不大,因此并非总需要通过网络编码进行缓存,支持不同缓存模式能够使得无线数据的缓存具备灵活性。
2)用于指示是否有多个数据源的数据源指示信息
其中,所述数据源指示信息用于指示缓存数据来自多个数据源还是单个数据源。
3)每次缓存操作对应的第一数量
在一些实施例中,若每次缓存操作对应的第一数量相同,则缓存控制信令中包括该第一数量以及用于指示第一数量不变的指示信息;在一些实施例中,若每次缓存操作对应的第一数量不完全相同,则缓存控制信令中包括按照缓存顺序依次排列的多个第一数量。
4)仅有一个数据长度时该数据长度对应的倍数指示信息
在一些实施例中,仅有一个数据长度时,若该数据长度对应的数据源数量为1,则该数据长度对应的倍数指示信息用于指示该数据长度是否为N2的倍数,N表示仅有一个数据源时的第一数量;若该数据长度对应的数据源数量大于1,则该数据长度对应的倍数指示信息用于指示该数据长度是否为K的倍数,K表示该数据长度对应的数据源数量。
5)从小到大依次排列的多个数据长度、每个数据长度的数据源数量、每个数据长度对应的倍数指示信息
其中,对于所述多个数据长度中的最小数据长度,该最小数据长度对应的倍数指示信息用于指示该最小数据长度是否为总数据源数量的倍数;对于所述多个数据长度中的最大数据长度,若该最大数据长度对应的数据源数量大于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为该最大数据长度对应的数据源数量的倍数,若该最大数据长度对应的数据源数量等于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为N2的倍数,N表示仅剩该最大数据长度未完成编码时所确定的第一数量;对于所述多个数据长度中除最小数据长度和最大数据长度以外的每个数据长度,该数据长度对应的倍数指示信息用于指示该数据长度与排列在前的相邻数据长度之间的差值是否为大于等于该数据长度的至少一个数据长度对应的数据源数量之和的倍数。
6)用于指示是否总是使用黄金编码方式的编码方式指示信息
在一些实施例中,当编码方式指示信息用于指示总是使用黄金编码方式时,每次缓存操作对应的第一数量一定为2,此时缓存控制信令中可不包含上述第3)项。
7)总是使用黄金编码的方式所对应的组索引、每组数据对应的数据长度、每组数据对应的数据长度所对应的倍数指示信息
其中,若一组数据包括两个数据源且仅对应一个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该组数据对应的数据长度是否为2的倍数;若一组数据包括两个数据源且对应两个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该两个数据长度中较小的数据长度是否为2的倍数以及该两个数据长度之间的差值是否为4的倍数;若一组数据仅包括单个数据源,该组数据的数据长度所对应的倍数指示信息用于指示该单个数据源的数据长度是否为4的倍数。
其中,每组数据对应的数据长度可能为1个或者2个,若一组数据包括2个数据源且该2个数据源的数据长度不同,则该组数据对应2个数据长度,若一组数据包括2个数据源且该2个数据源的数据长度相同,则该组数据对应1个数据长度,若一组数据包括1个数据源,则该组数据对应1个数据长度。
需要说明的是,上述缓存控制信令仅为举例,在实际应用场景中,缓存控制信令可能包含上述部分参数或全部参数,也可能包含其他参数,例如,缓存控制信令中可包括各个数据源的数据量,以使基站基于各个数据源的数据量来计算用于解码的一些关键参数。
在一些实施例中,在向基站发送每个编码列向量之前,第一装置1将原始参考信号与行数为第一数量(该编码列向量对应的第一数量)的随机系数列向量相乘得到用于无线信道测量的参考信号,并将所述参考信号发送至基站,以使基站根据接收到的参考信号来估计等效信道系数,并在接收到该编码列向量后,根据接收到缓存控制信令以及估计得到的等效信道系数,并基于适用于完美空时分组码的相干检测算法,对该编码列向量进行解码。
图4示出了本申请一个实施例的在基站中用于辅助缓存无线数据的第二装置的结构示意图。该第二装置2包括第六单元21、第七单元22、第八单元23以及第九单元24。
第六单元21用于接收用户设备发送的缓存控制信令。
具体地,基站接收用户设备通过控制信道发送的缓存控制信令。其中,所述缓存控制信令已在前述实施例中予以详述,在此不再赘述。
第七单元22用于接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的。以中低成本的用户设备用单个天线进行信号发送的情况为例,所述参考信号是由原始参考信号与行数为第一数量的随机系数列向量相乘得到的;对于基站侧的任一给定的接收天线,所述等效信道系数是由相应的原始的单天线传输信道系数与所述随机系数列向量相乘得到的数目为第一数量的多个系数,其可以被看作是由数目为第一数量的多个虚拟天线所致的多天线传输信道系数。
第八单元23用于接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵与行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方。
第九单元24用于根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
在一些实施例中,用户设备可能装备有1个Tx天线(如mMTC设备的典型配置为1个Tx天线),也可能装备有多个Tx天线(如较高成本的无人机可能装备有2个Tx天线)。作为一个示例,假设用户设备Vi装备1个Tx天线,当Vi将K×1的编码列向量传输到其服务基站gNB时,在一般的准静态传播环境下(即瞬时信道系数的值在一个无线帧的传输时间里基本保持不变、每隔一个无线帧才发生独立变化),用于从Vi传输到gNB的瞬时信道系数可以表示为βVi,gNB,进一步地,将cβVi,gNB=[τ1×βVi,gNB,…,τK×βVi,gNB]T记为ζVi,ζVi是K×1的列向量(K为第一数量),代表从Vi到gNB的等效信道系数,将z记为接收侧的复数加性高斯白噪声(Additive White Gaussian Noise,AWGN),则在gNB上,可以将K个连续的符号持续时间上的接收信号向量(记为ΨVi)表示为:
ΨVi=ScβVi,gNB+z=SζVi+z
基于上述公式可以看出,通过引入随机系数列向量c,从装备1个Tx天线的用户设备Vi到gNB的传输等同于用户设备Vi用K个虚拟天线在K个等效信道上的传输,因此,在Vi的服务gNB处,通过估计等效信道系数ζVi,可使用任何适用于完美空时分组码的相干检测算法来进行解码。
若用户设备配备了2个Tx天线,则对于对延迟不敏感的应用服务,建议使用可靠性增强的传输方法来传输缓存数据,例如,使用Tx天线选择方案来选择一个Tx进行传输(由此可以实现选择分集)或使用基于发射分集的2Tx MIMO(Multiple-Input Multiple-Output,多输入多输出)传输(例如使用最典型的Alamouti码)。对于用户设备使用Alamouti码进行2Tx MIMO传输的情况,在基站侧先使用针对Alamouti码的最大似然判决算法,去获得每个被传输的、在经过网络编码后被缓存的码符号的软判决变量,然后,可以很容易地将第一数量的连续传输的、在经过网络编码后被缓存的码符号的软判决变量公式化为如上述公式所示的信号表达式,然后,信号检测的后续处理可以遵循上文针对1个Tx天线的情况的描述。
在一些实施例中,适用于完美空时分组码的相干检测算法包括但不限于:最佳的最大似然(Maximum Likelihood,ML)解码器、次佳的球形解码器(Sphere Decoder)和最小均方误差(Minimum Mean Squared Error,MMSE)解码器。本申请对基站侧采用的相干检测算法并不作限制,其他现有的或以后出现的适用于完美空时分组码的相干检测算法也应包含在本申请的保护范围内。
本申请发现,在无线通信系统中,对于某些应用服务(如5G中对于eMBB和mMTC的某些特定应用服务),可能存在需要在用户设备侧本地缓存无线数据的需求。作为eMBB场景中的一个示例,当无人机充当5G UE进行超高清但对延迟不敏感的视频捕获时,为了节省能源,当无人机捕获到某些视频时并不会立即将捕获到的数据发送到为其服务的gNB,而是会对其捕获的数据进行本地缓存,并在该UAV中的存储单元的缓存空间已满或将满时将缓存数据传输到为其服务的gNB;作为mMTC场景中的一个示例,当大量的mMTC设备用于对大型区域进行环境监控时,某些mMTC设备会被选为“领导”设备,每个领导设备需执行如下操作:i)借助设备到设备(Device-to-Device,D2D)通信,缓存相邻mMTC设备收集的环境信息;ii)当其存储单元的缓存空间已满或将满时,将缓存数据传输到为其服务的gNB。然而,用户设备侧的存储单元的缓存空间非常有限,而要缓存的数据量(来自一个或多个数据源)可能较大,因此,亟需设计一个高效的方案来缓存相应的无线数据。
现有技术中针对多个数据源的有效缓存方案通常是使用理论上典型的基于XOR(即异或运算)的网络编码,但是,由于XOR操作的特性,为了确保解码操作成功,这些现有方案实际上采用了一种很不切实际的玩具模型,其需符合以下条件:1)如果每个XOR编码数据项是通过来自K个数据源的原始数据项编码得到的,则XOR编码数据的接收方的数量必须大于或等于K;2)一个数据源的每个期望接收方必须知道另外K-1个数据源的原始数据项。显然,上述模型是不切实际的,且也不适用于5G的eMBB和mMTC场景(这些场景中数据的接收方仅有一个,即为用户设备服务的基站)。此外,现有技术中并没有针对单个数据源使用网络编码来进行有效缓存的方案。
根据本申请的方案,能够将完美空时分组码用于进行网络编码缓存,用户设备侧在缓存无线数据时能够根据第一数量的平方的待缓存数据构建行数和列数均为第一数量的完美空时分组码矩阵,进而引入行数为第一数量随机系数列向量,能够通过将构建的完美空时分组码矩阵与随机系数列向量相乘进行网络编码操作,得到行数为第一数量的编码列向量,从而能够在第一数量的符号持续时间内,缓存数量为第一数量的平方的无线数据符号,且基站侧通过使用适用于完美空时分组码的相干检测算法来恢复无线数据,能够确保良好的性能,且无论在多个数据源及单个数据源的任何可能情形下,都能实现无线数据的有效缓存。
图5示出了可被用于实施本申请中所述的各个实施例的示例性系统。在一些实施例中,系统1000能够作为本申请实施例中的任意一个处理设备。在一些实施例中,系统1000可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备1020)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器1005)。
对于一个实施例,系统控制模块1010可包括任意适当的接口控制器,以向(一个或多个)处理器1005中的至少一个和/或与系统控制模块1010通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块1010可包括存储器控制器模块1030,以向系统存储器1015提供接口。存储器控制器模块1030可以是硬件模块、软件模块和/或固件模块。
系统存储器1015可被用于例如为系统1000加载和存储数据和/或指令。对于一个实施例,系统存储器1015可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器1015可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块1010可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备1020及(一个或多个)通信接口1025提供接口。
例如,NVM/存储设备1020可被用于存储数据和/或指令。NVM/存储设备1020可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1020可包括在物理上作为系统1000被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备1020可通过网络经由(一个或多个)通信接口1025进行访问。
(一个或多个)通信接口1025可为系统1000提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统1000可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器(例如,存储器控制器模块1030)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1005中的至少一个可与系统控制模块1010的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统1000可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统1000可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统1000包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
本申请还提供了一种用户设备,其中,所述用户设备包括:存储器,用于存储一个或多个程序;一个或多个处理器,与所述存储器相连,当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行本申请所述的用于缓存无线数据的网络编码方法。
本申请还提供了一种基站,其中,所述基站包括:存储器,用于存储一个或多个程序;一个或多个处理器,与所述存储器相连,当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行本申请所述的用于辅助缓存无线数据的方法。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行本申请所述的用于缓存无线数据的网络编码方法。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行本申请所述的用于辅助缓存无线数据的方法。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被设备执行时,使得所述设备执行本申请所述的用于缓存无线数据的网络编码方法。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被设备执行时,使得所述设备执行本申请所述的用于辅助缓存无线数据的方法。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (20)
1.一种用于缓存无线数据的网络编码方法,应用于用户设备,其中,所述方法包括:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第一数量和所述第二数量为正整数;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复步骤a、b、c、d,直至满足预定的停止编码条件。
2.根据权利要求1所述的方法,其中,步骤a包括:
若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据。
3.根据权利要求2所述的方法,其中,所述若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据,包括:
若需要缓存的数据来自多个数据源且每个数据源的数据量相同,将所述多个数据源的数量确定为本次缓存操作对应的第一数量,并从所述每个数据源中分别获取第一数量的待缓存数据,其中,每次缓存操作对应的第一数量相同。
4.根据权利要求2所述的方法,其中,所述若需要缓存的数据来自多个数据源,根据针对所述多个数据源的本次缓存操作对应的第一数量,从所述多个数据源中的至少一个数据源中获取第二数量的待缓存数据,包括:
若需要缓存的数据来自多个数据源,当本次缓存操作为针对所述多个数据源的第一次缓存操作时,根据所述多个数据源分别对应的数据量确定从小到大依次排列的多个数据长度以及每个数据长度的数据源数量,将所述多个数据源的数量确定为第一次缓存操作对应的第一数量,并从每个数据源中分别获取第一数量的待缓存数据;
当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,其中,每个数据长度的排列顺序与完成编码的顺序一致。
5.根据权利要求4所述的方法,其中,所述当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,根据尚未完成编码的至少一个数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从所述至少一个数据长度对应的数据源中获取第二数量的待缓存数据,包括:
当本次缓存操作并非针对所述多个数据源的第一次缓存操作时,若目标数据长度对应的至少一个数据源在上一次缓存操作后正好完成缓存,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据;若目标数据长度对应的至少一个数据源在上一次缓存操作后并未完成缓存,判断尚未完成缓存的目标数据长度对应的至少一个数据源中每一个数据源的未缓存数据量是否小于上一次缓存操作对应的第一数量,其中,所述目标数据长度为上一次缓存操作对应的至少一个数据长度中最小的数据长度;
若是,根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,其中,所述目标数据长度中的未缓存数据被直接缓存;
若否,将上一次缓存操作对应的第一数量确定为本次缓存操作对应的第一数量。
6.根据权利要求5所述的方法,其中,所述根据大于所述目标数据长度的剩余数据长度对应的数据源数量之和确定本次缓存操作对应的第一数量,并从大于所述目标数据长度的剩余数据长度对应的数据源中获取第二数量的待缓存数据,包括:
若大于所述目标数据长度的剩余数据长度的数量大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;
若大于所述目标数据长度的剩余数据长度的数量等于1,判断所述剩余数据长度对应的数据源数量之和是否大于1;若大于1,将所述剩余数据长度对应的数据源数量之和确定为本次缓存操作对应的第一数量,并从所述剩余数据长度对应的每个数据源中获得第一数量的待缓存数据;若等于1,确定本次缓存操作对应的第一数量,并从所述剩余数据长度对应的单个数据源中获得第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于或等于排列在最后的两个数据长度之间的差值。
7.根据权利要求1所述的方法,其中,步骤a包括:
若需要缓存的数据来自单个数据源,获得本次缓存操作对应的第一数量,并从所述单个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方,所述第二数量小于所述单个数据源的数据量。
8.根据权利要求1所述的方法,其中,所述方法还包括:
f若需要缓存的数据来自多个数据源,将所述多个数据源划分为多组数据,其中,每组数据对应一个或两个数据源;
其中,在步骤f之后,针对每组数据,执行步骤a、b、c、d、e,直至该组数据完成缓存,其中,所述第一数量为2。
10.根据权利要求1至9中任一项所述的方法,其中,所述停止编码条件包括以下至少任一项:
所述至少一个数据源中的所有数据已完成缓存;
每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量。
11.根据权利要求10所述的方法,其中,所述停止编码条件为每个数据源中的未缓存数据量小于本次缓存操作对应的第一数量,所述方法还包括:
直接缓存所述至少一个数据源中剩余的未缓存数据。
12.根据权利要求1所述的方法,其中,所述方法还包括:
当满足预定发送条件时,向基站发送缓存控制信令;
将已缓存的各个编码列向量按照缓存顺序依次发送至所述基站,以使基站根据所述缓存控制信令对所述各个编码列向量进行解码,得到所述至少一个数据源的数据。
13.根据权利要求12所述的方法,其中,所述缓存控制信令包括以下至少任一项:
缓存模式指示信息;
用于指示是否有多个数据源的数据源指示信息;
每次缓存操作对应的第一数量;
仅有一个数据长度时该数据长度对应的倍数指示信息;
从小到大依次排列的多个数据长度、每个数据长度的数据源数量、每个数据长度对应的倍数指示信息;其中,对于所述多个数据长度中的最小数据长度,该最小数据长度对应的倍数指示信息用于指示该最小数据长度是否为总数据源数量的倍数;对于所述多个数据长度中的最大数据长度,若该最大数据长度对应的数据源数量大于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为该最大数据长度对应的数据源数量的倍数,若该最大数据长度对应的数据源数量等于1,其倍数指示信息用于指示该最大数据长度与排列在前的相邻数据长度之间的差值是否为N2的倍数,N表示仅剩该最大数据长度未完成编码时所确定的第一数量;对于所述多个数据长度中除最小数据长度和最大数据长度以外的每个数据长度,该数据长度对应的倍数指示信息用于指示该数据长度与排列在前的相邻数据长度之间的差值是否为大于等于该数据长度的至少一个数据长度对应的数据源数量之和的倍数;
用于指示是否总是使用黄金编码方式的编码方式指示信息;
总是使用黄金编码的方式所对应的组索引、每组数据对应的数据长度、每组数据对应的数据长度所对应的倍数指示信息;其中,若一组数据包括两个数据源且仅对应一个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该组数据对应的数据长度是否为2的倍数;若一组数据包括两个数据源且对应两个数据长度,该组数据对应的数据长度所对应的倍数指示信息用于指示该两个数据长度中较小的数据长度是否为2的倍数以及该两个数据长度之间的差值是否为4的倍数;若一组数据仅包括单个数据源,该组数据的数据长度所对应的倍数指示信息用于指示该单个数据源的数据长度是否为4的倍数。
14.一种用于辅助缓存无线数据的方法,应用于基站,其中,所述方法包括:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵与行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
15.一种在用户设备中用于缓存无线数据的第一装置,其中,所述第一装置包括:
第一单元,用于根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
第二单元,用于根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
第三单元,用于生成行数为所述第一数量的随机系数列向量;
第四单元,用于通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
第五单元,用于触发所述第一单元、所述第二单元、所述第三单元、所述第四单元重复执行操作,直至满足预定的停止编码条件。
16.一种用于辅助缓存无线数据的第二装置,应用于基站,其中,所述第二装置包括:
第六单元,用于接收用户设备发送的缓存控制信令;
第七单元,用于接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
第八单元,用于接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
第九单元,用于根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
17.一种用户设备,其中,所述用户设备包括:
存储器,用于存储一个或多个程序;
一个或多个处理器,与所述存储器相连,
当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行如下操作:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复所述操作a、b、c、d,直至满足预定的停止编码条件。
18.一种基站,其中,所述基站包括:
存储器,用于存储一个或多个程序;
一个或多个处理器,与所述存储器相连,
当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器执行如下操作:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
19.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行如下操作:
a根据针对至少一个数据源的本次缓存操作对应的第一数量,从所述至少一个数据源中获取第二数量的待缓存数据,其中,所述第二数量为所述第一数量的平方;
b根据所述待缓存数据,构建行数和列数均为所述第一数量的完美空时分组码矩阵;
c生成行数为所述第一数量的随机系数列向量;
d通过将所述完美空时分组码矩阵与所述随机系数列向量相乘来执行网络编码操作,得到行数为所述第一数量的编码列向量,并缓存该编码列向量;
e重复所述操作a、b、c、d,直至满足预定的停止编码条件。
20.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序可被处理器执行如下操作:
接收用户设备发送的缓存控制信令;
接收所述用户设备发送的用于无线信道测量的参考信号,并根据所述参考信号估计得到等效信道系数,其中,所述参考信号是所述用户设备通过将原始参考信号与行数为第一数量的随机系数列向量相乘得到的;
接收用户设备发送的针对至少一个数据源所缓存的至少一个编码列向量,其中,每个编码列向量是由所述用户设备通过将根据第二数量的待缓存数据构建的完美空时分组码矩阵以及行数为所述第一数量的随机系数列向量相乘来执行网络编码操作得到的,所述第二数量为所述第一数量的平方;
根据所述缓存控制信令和所述等效信道系数,并基于适用于完美空时分组码的相干检测算法,对所述至少一个编码列向量进行解码,得到所述至少一个数据源中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529845.5A CN113810152B (zh) | 2020-06-11 | 2020-06-11 | 用于缓存无线数据的网络编码方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529845.5A CN113810152B (zh) | 2020-06-11 | 2020-06-11 | 用于缓存无线数据的网络编码方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113810152A CN113810152A (zh) | 2021-12-17 |
CN113810152B true CN113810152B (zh) | 2023-06-13 |
Family
ID=78891941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010529845.5A Active CN113810152B (zh) | 2020-06-11 | 2020-06-11 | 用于缓存无线数据的网络编码方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113810152B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208465B (zh) * | 2022-07-20 | 2023-07-21 | 中国科学院长春光学精密机械与物理研究所 | 基于异步时延估算方法的激光通信系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631002B (zh) * | 2009-08-12 | 2012-11-07 | 北京交通大学 | 一种无需信道信息的mimo空时编解码系统与方法 |
CN102035630B (zh) * | 2010-12-30 | 2012-11-28 | 浙江大学 | 一种适用于任意天线数量的线性弥散空时编码方法 |
EP3089391B1 (en) * | 2015-04-30 | 2021-05-26 | Institut Mines-Télécom | Space-time coding for communication systems |
CN108880644B (zh) * | 2017-07-26 | 2019-06-11 | 华为技术有限公司 | 用于数据传输的方法、装置和系统 |
CN110753398B (zh) * | 2018-07-24 | 2022-03-01 | 上海朗帛通信技术有限公司 | 一种被用于无线通信的用户设备、基站中的方法和装置 |
-
2020
- 2020-06-11 CN CN202010529845.5A patent/CN113810152B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113810152A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109921882B (zh) | 一种基于深度学习的mimo解码方法、装置及存储介质 | |
Ji et al. | Sparse vector coding for ultra reliable and low latency communications | |
JP5705138B2 (ja) | ネットワークコーディングされた無線中継通信のための非コヒーレント時空間トレリス符号化変調 | |
US9071406B2 (en) | Apparatus and method using matrix network coding | |
US10931400B2 (en) | Decoding method and apparatus in wireless communication system | |
CN101569112A (zh) | 无线通信模式切换装置和方法 | |
CN109075799A (zh) | 极化Polar码的编译码方法及装置 | |
RU2658901C1 (ru) | Способ, аппарат и устройство для обработки данных | |
KR20170102173A (ko) | 데이터 전송 방법 및 디바이스 | |
KR20180081671A (ko) | 서브-블록 디코딩 데이터 신호를 위한 방법 및 장치 | |
KR20170077843A (ko) | 재순서화된 서브블록 디코딩 | |
CN106464337B (zh) | 传输数据的方法、装置和设备 | |
CN108352918B (zh) | 接收器、多个发射器、从多个发射器接收用户数据的方法以及发送用户数据的方法 | |
CN113810152B (zh) | 用于缓存无线数据的网络编码方法、装置和系统 | |
CN107370533B (zh) | 一种用于进行模拟csi反馈的方法、装置和系统 | |
EP2479915A1 (en) | Method and device for generating pre-coding matrix codebook | |
CN108365916B (zh) | 子块解码数据信号的方法和设备 | |
GB2447675A (en) | Incremental signal processing for subcarriers in a channel of a communication system | |
TWI455405B (zh) | 使用簡單線性解碼複雜性之多重傳輸的全速率、全多樣性空間時間區塊碼技術 | |
WO2006095873A1 (ja) | Mimo検出制御装置およびmimo検出制御方法 | |
CN115811381B (zh) | 网络通信方法、网络通信装置、电子设备及存储介质 | |
CN112073096B (zh) | 一种基于极化变换的mimo传输系统的信号发送、接收方法和装置 | |
CN103188525B (zh) | 一种视频传输、接收方法及装置 | |
CN111525980B (zh) | 译码方法及装置 | |
KR101632074B1 (ko) | 다중 안테나 시스템에서의 임베디드 비트열 전송을 위한 최적화 전송 장치 및 전송 방법 |
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 |