US9270421B2 - Cooperative subspace demultiplexing in communication networks - Google Patents
Cooperative subspace demultiplexing in communication networks Download PDFInfo
- Publication number
- US9270421B2 US9270421B2 US14/164,254 US201414164254A US9270421B2 US 9270421 B2 US9270421 B2 US 9270421B2 US 201414164254 A US201414164254 A US 201414164254A US 9270421 B2 US9270421 B2 US 9270421B2
- Authority
- US
- United States
- Prior art keywords
- nodes
- subspace
- coded
- packets
- network
- 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.)
- Expired - Fee Related, expires
Links
- 238000004891 communication Methods 0.000 title claims description 58
- 239000011159 matrix material Substances 0.000 claims abstract description 164
- 230000005540 biological transmission Effects 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims description 142
- 238000012545 processing Methods 0.000 claims description 118
- 230000003044 adaptive effect Effects 0.000 claims description 22
- 238000003672 processing method Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 abstract description 15
- 108091006146 Channels Proteins 0.000 description 295
- 239000013598 vector Substances 0.000 description 133
- 230000000875 corresponding effect Effects 0.000 description 47
- 239000000543 intermediate Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 33
- 238000009826 distribution Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 19
- 230000007480 spreading Effects 0.000 description 18
- 238000003892 spreading Methods 0.000 description 18
- 238000000354 decomposition reaction Methods 0.000 description 13
- 238000011068 loading method Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 230000002596 correlated effect Effects 0.000 description 9
- 230000015654 memory Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000011049 filling Methods 0.000 description 7
- 238000005259 measurement Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000008030 elimination Effects 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000003595 spectral effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003750 conditioning effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000005562 fading Methods 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013442 quality metrics Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000005577 local transmission Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition 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/0076—Distributed coding, e.g. network coding, involving channel coding
- H04L1/0077—Cooperative coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/02—Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
- H04B7/022—Site diversity; Macro-diversity
- H04B7/026—Co-operative diversity, e.g. using fixed or mobile stations as relays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J13/00—Code division multiplex systems
- H04J13/0003—Code application, i.e. aspects relating to how codes are applied to form multiplexed channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J13/00—Code division multiplex systems
- H04J13/0007—Code type
- H04J13/004—Orthogonal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
- H04L27/2602—Signal structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/04—TPC
- H04W52/30—TPC using constraints in the total amount of available transmission power
- H04W52/34—TPC management, i.e. sharing limited amount of power among users or channels or data types, e.g. cell loading
- H04W52/346—TPC management, i.e. sharing limited amount of power among users or channels or data types, e.g. cell loading distributing total power among users or channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J13/00—Code division multiplex systems
- H04J13/10—Code generation
- H04J13/12—Generation of orthogonal codes
-
- 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
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0097—Relays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
- H04L27/2614—Peak power aspects
-
- 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/0001—Arrangements for dividing the transmission path
- H04L5/0014—Three-dimensional division
- H04L5/0016—Time-frequency-code
- H04L5/0021—Time-frequency-code in which codes are applied as a frequency-domain sequences, e.g. MC-CDMA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/04—Wireless resource allocation
- H04W72/044—Wireless resource allocation based on the type of the allocated resource
- H04W72/046—Wireless resource allocation based on the type of the allocated resource the resource being in the space domain, e.g. beams
Definitions
- Subject matter disclosed herein relates generally to data communications, and more particularly, to techniques, systems, and protocols for use in employing cooperative subspace processing when transferring data between locations.
- Limited storage of mobile devices is driving cloud services in which data and software are stored on the network.
- limited wireless bandwidth, variable reliability of the communication channels, and mobility of the client devices discourages off-site data storage and produces significant challenges to media distribution.
- Wireless communication devices e.g., smart phones and other handheld communicators, tablet computers with communication functionality, etc.
- the different network technologies may each have, for example, different delay, throughput, and reliability characteristics.
- a mobile device that is connected to a remote source node through both a cellular network (i.e., a wireless wide area network (WWAN)) and an IEEE 802.11 wireless local area network (i.e., a WLAN) may, for example, observe different usage costs and quality of service through each interface.
- WWAN wireless wide area network
- IEEE 802.11 wireless local area network i.e., a WLAN
- subspace coding generates linear combinations of original data sets for multiplexing the original data sets into subspace-coded data sets, which are transmitted over the multiple paths.
- Subspace decoding is provided for demultiplexing received subspace-coded data sets.
- multiple transmitting nodes are configured to cooperatively perform subspace coding to build the dimension spanned by the subspace of the transmitted signals.
- multiple receiving nodes are configured to cooperatively perform subspace decoding, such as to build the dimension of the subspace spanned by the received signals.
- the solution set to any homogeneous system of linear equations with n variables is a subspace in the coordinate space K n , wherein the coordinate space K n is the prototypical example of an n-dimensional vector space over a field K. Every subspace of K n can be described as the null space of some matrix.
- the dimension of the subspace in K k will be the dimension of the null set of A, the composite matrix of the n functions.
- a machine implemented method for use in transferring data from a source node to a destination node comprises selecting a plurality of original packets to transfer to a destination node; selecting a plurality of transmitting nodes to perform cooperative encoding; cooperatively encoding the original packets for generating a plurality of coded packets and a corresponding code matrix of coefficients, the coded packets and the corresponding code matrix comprising a plurality of independent equations having a plurality of independent variables in a system of linear equations, wherein the independent variables comprise the original packets; and transmitting the plurality of coded packets and corresponding code matrix to a destination node.
- the code matrix comprises a matrix of random coefficients.
- the coded packets may comprise random linear combinations of the original packets.
- the coefficients may comprise scalar and/or complex coefficients. Coding may employ sliding window and/or block codes.
- the code matrix is an invertible transform matrix, such as a block transform or a sliding window transform. For example, CI codes may be employed.
- aspects of the disclosure describe methods for ensuring that the number of independent equations is sufficient for enabling the destination node to decode the plurality of independent variables. Methods are also disclosed for ensuring the corresponding code matrix is well-conditioned.
- coding is provided to the coded packets and corresponding code vectors of the code matrix at intermediate nodes, such as by applying linear coding to the coded packets and the code vectors.
- a machine implemented method for use in processing coded packets received from a source node comprises: selecting a plurality of receiving nodes for cooperatively receiving a transmission from the source node, the plurality of receiving nodes being selected to provide a sufficient number of independent equations for decoding a plurality of original packets encoded in the transmission; collecting a plurality of coded packets and a corresponding code matrix from the receiving nodes; and decoding the packets, wherein decoding comprises calculating a solution for a system of linear equations comprising the independent equations having a plurality of independent variables, the independent equations comprising the plurality of coded packets and the corresponding code matrix, and the plurality of independent variables comprising the plurality of original packets.
- the coded packets are encoded by the source node.
- encoding is provided by transmitting signals in a multipath channel.
- selecting the transmitting and/or receiving nodes may comprise any adaptive array processing techniques.
- it is disclosed how selecting the nodes can build the rank of the code matrix and/or improve the conditioning of the code matrix. For example, as the destination node collects code vectors, it may build up the dimension of the subspace spanned by the received code vectors.
- the solution can be calculated when the number of degrees of freedom received at least equals the number of original packets. In another aspect of the disclosure, the solution may be calculated when the number of degrees of freedom received is less than the number of original packets, such as when a CI code matrix is employed for coding.
- a destination node determines whether coded packets are linearly independent, such as by performing a row-reduction operation (or other algorithms for solving systems of linear equations) on the code matrix.
- a machine implemented method for use in transferring data from a source node to a destination node comprises: selecting a plurality of original packets to transfer to the destination node; selecting a plurality of transmitting nodes to cooperatively encode the original packets for generating a plurality of coded packets and a corresponding code matrix; and providing for transmitting from each of the transmitting nodes a subset of the plurality of coded packets and corresponding code matrix, wherein at least one of the transmitting nodes has a rank that is insufficient for decoding the plurality of coded packets.
- cooperative encoding is configured to ensure that the code matrix has sufficient rank and is sufficiently well-conditioned to enable the destination node to decode the coded packets.
- at least one intermediate node provides additional encoding to the plurality of coded packets and corresponding code matrix. For example, additional subspace coding may be provided to the coded packets and the code vector at each intermediate node by applying linear coding to the coded packets and the code vector.
- the transmitting nodes may retransmit coded packets, such as when an acknowledgement has not been received from the destination node after a predetermined amount of time.
- new linear combinations of the original packets are transmitted, such as when retransmission occurs after a delay that at least equals the coherence time of the channel.
- a machine implemented method for use in processing coded packets received from a source node comprises: selecting a plurality of receiving nodes to cooperatively receive a plurality of linearly coded packets and a plurality of corresponding code vectors, wherein the rank of at least one of the receiving nodes is insufficient for decoding the coded packets; building up a dimension of a subspace spanned by code vectors received at the destination node by collecting the coded packets and the corresponding code vectors from the plurality of receiving nodes; and decoding the coded packets.
- the receiving nodes when they transmit their received signals to the destination node, they provide additional linear encoding to the coded packets and the corresponding code vectors.
- the destination node (and/or the receiving nodes) transmit an acknowledgement to the source node upon at least one of receiving a coded packet and decoding an original packet.
- building up the dimension of the subspace spanned by the code vectors may further comprise collecting at least one additional coded packet and corresponding code vector transmitted by the source node during a later time interval.
- the plurality of receiving nodes is configured to cooperatively receive the linearly coded packets and corresponding code vectors transmitted over a plurality of different network channels.
- the different network channels may comprise different multiple-access channels on the same network and/or channels on different networks.
- the destination node and/or the receiving nodes may employ different network technologies.
- a machine implemented method for use in processing coded packets received from a source node comprises: determining a required number of degrees of freedom for decoding a plurality of linearly coded packets received from a source node; based on the required number of degrees of freedom, selecting at least one additional receiving node for cooperatively receiving at least one coded packet and associated code vector; collecting a plurality of coded packets and associated code vectors from a plurality of cooperating receiving nodes, including the at least one additional receiving node; and decoding the plurality of coded packets.
- determining the required number of degrees of freedom comprises counting the number of collected code vectors, determining the number of collected linearly independent code vectors, and/or determining the rank of a matrix comprising the collected code vectors. Selecting additional receiving nodes and collecting coded packets and/or associated code vectors therefrom may be performed until the number of received linearly independent coded packets is at least equal to the required number of degrees of freedom.
- decoding comprises arranging the associated code vectors in a matrix, and then performing at least one matrix operation on the plurality of coded packets.
- a machine implemented method for transmitting a file between a server and a client comprises: generating a plurality of linearly coded packets from a plurality of original packets; selecting a plurality of transmitting nodes to perform cooperative subspace processing; and coordinating the plurality of transmitting nodes to increase a dimension of a subspace spanned by the linearly coded packets to provide the client with a sufficient number of linearly independent coded packets from which to retrieve the plurality of original packets.
- the plurality of transmitting nodes comprises a plurality of intermediate nodes between the server and the client, the intermediate nodes being configured to receive and retransmit the coded packets.
- a machine implemented method for transmitting data from a source node via multiple different network channels comprises: encoding a plurality of original packets for generating a plurality of linearly coded packets and corresponding code vectors for transfer to a destination node; selecting a first network channel and at least a second network channel to simultaneously employ in the transfer; and distributing a first subset of the plurality of linearly coded packets and corresponding code vectors to the first network channel and distributing a second subset of the plurality of linearly coded packets and corresponding code vectors to the at least second network channel, wherein at least one of the first subset and the second subset has a rank that is insufficient for decoding the plurality of coded packets, and wherein a sum of ranks of the first subset and the second subset is sufficient for decoding the plurality of coded packets.
- the first network channel resides on a first network and the second network channel resides on a second network that is different than the first network.
- distributing comprises network load balancing whereby a lesser number of packets is distributed to a network channel having a lesser capacity and a greater number of packets is distributed to a network channel having a greater capacity.
- aspects of the disclosure provide for coordinating a plurality of transmitting nodes to cooperatively transmit the linearly coded packets and/or coordinating a plurality of receiving nodes to cooperatively receive the linearly coded packets.
- the linearly coded packets may comprise random linearly coded packets with coefficients generated at random and/or deterministically.
- An aspect of the disclosure further comprises monitoring at least one real-time property of the first network channel and the second network channel, and encoding and/or distributing may be adjusted based on the monitoring to provide for network load balancing.
- encoding comprises selecting a plurality of transmitting nodes to build the dimension of the subspace of a transmitted signal comprising the coded packets. Similarly, a plurality of cooperating receiving nodes may be selected to build the dimension of the subspace of a received signal. In some aspects of the disclosure, encoding and distributing are performed such that the destination node needs to receive coded packets from a plurality of network channels in order to have a sufficient number of degrees of freedom to decode the coded packets.
- a machine implemented method for use in processing data to be transmitted from a source node on multiple different paths comprises: selecting a plurality of original packets for subspace coding to generate a plurality of linearly coded packets from a plurality of original packets; selecting a plurality of nodes to cooperatively perform subspace processing, whereby the plurality of nodes employs a plurality of transmission paths for transmitting the plurality of linearly coded packets and associated code vectors to a destination node, each of the plurality of transmission paths providing a linearly independent combination of the original packets to the destination node; and coordinating the plurality of nodes to produce a sufficient number of the plurality of transmission paths to enable the destination node to perform decoding to retrieve the plurality of original packets.
- the above-recited plurality of nodes comprises one or more intermediate nodes.
- the method above further comprises transmitting new linear combinations until the destination node decodes the coded packets.
- a machine implemented method for use in processing and distributing data comprises: generating a plurality of sub-space coefficients to encode a plurality of original data packets; generating a plurality of subspace-encoded data packets by employing the plurality of sub-space coefficients to produce linear combinations of the original data packets; and distributing the sub-space coefficients and the subspace-encoded data to a plurality of transmitting nodes for transmission to a destination node.
- the plurality of transmitting nodes may comprise edge servers in a content delivery network.
- the sub-space coefficients and subspace-encoded data packets may be stored on the transmitting nodes before being served to the destination node.
- a machine implemented method for use in processing and distributing data comprises: selecting a plurality of receiving nodes for cooperatively receiving a plurality of subspace-encoded data packets and corresponding subspace codes; distributing the plurality of subspace-encoded data packets and the subspace codes collected by the plurality of receiving nodes to a destination node; and decoding the subspace-encoded data packets to retrieve a plurality of original data packets encoded in the subspace-encoded data packets.
- the plurality of receiving nodes may comprise edge servers in a content delivery network.
- the sub-space coefficients and subspace-encoded data packets may be stored on the receiving nodes before being collected by the destination node.
- At least one source node is configured to transmit a plurality of original data packets; and a plurality of coding nodes are configured to output a plurality of coded packets comprising linear combinations of the original data packets.
- the coding nodes are configured to provide a sufficient number of degrees of freedom to enable a destination node to decode the coded packets.
- the coefficients of the linear combinations may be randomly chosen. A deterministic process may be employed for generating random coefficients. In some aspects, an invertible transform matrix may be employed for generating the coefficients.
- a machine implemented method for use in distributing subspace-encoded data comprises: selecting a plurality of nodes to cooperatively function as a subspace multiplexing process; separating a data set into a plurality N of original components; generating a plurality of subspace-coded components by generating at least N linear combinations of the original components; and distributing the plurality of subspace-coded components and a plurality of associated subspace code vectors to the plurality of nodes, such that at least one of the plurality of nodes has a number of coded components that is less than a number of required degrees of freedom to decode the plurality of subspace-coded components.
- the above method further comprises: at a destination node, collecting a plurality of the subspace-coded components and associated subspace code vectors from a plurality of the nodes until a sufficient number of linearly independent code vectors have been collected to decode the coded components; and decoding the subspace-coded components.
- the selected nodes are nearby a destination node in a peer-to-peer network.
- the plurality of nodes comprises end nodes in a content delivery network.
- the physical wireless channel may provide the required statistical randomness for the coding. Codes may be based on measurements of the physical wireless channel. Codes may be generated deterministically.
- coding may comprise employing a sliding coding window.
- a method for transmitting data from a source node to a destination node comprises forming linear combinations of original packets from a source node to produce subspace-coded packets, and delivering the subspace-coded packets to the destination node over one or more network paths. Based on the responsiveness of the destination node, the source node may produce new linear combinations of the original packets, and deliver the new subspace-coded packets to the destination node.
- This adaptive technique can be used to select the number of transmitting antennas and/or receiving antennas in a wireless network.
- Flow charts depicting disclosed methods comprise “processing blocks” or “steps” may represent computer software instructions or groups of instructions. Alternatively, the processing blocks or steps may represent steps performed by functionally equivalent circuits, such as a digital signal processor or an application specific integrated circuit (ASIC).
- the flow diagrams do not depict the syntax of any particular programming language. Rather, the flow diagrams illustrate the functional information one of ordinary skill in the art requires to fabricate circuits or to generate computer software to perform the processing required in accordance with the present disclosure. It should be noted that many routine program elements, such as initialization of loops and variables and the use of temporary variables are not shown. It will be appreciated by those of ordinary skill in the art that unless otherwise indicated herein, the particular sequence of steps described is illustrative only and can be varied. Unless otherwise stated, the steps described below are unordered, meaning that the steps can be performed in any convenient or desirable order.
- FIG. 1 is a diagram of a cooperative-MIMO system in which multiple cooperating nodes are employed at both the transmitter side and the receiver side of a wireless link in accordance with some aspects of the invention.
- FIG. 2 is a block diagram of cooperating receiver nodes in relation to methods, devices, and systems employed for performing cooperative-MIMO processing in aspects of the invention.
- FIG. 3 is a flowchart illustrating methods for processing coded packets received at a destination node from a source node via multiple different WWAN paths in some aspects of the invention.
- FIG. 4 is a flowchart illustrating methods for processing coded packets received at a destination node from a plurality of intermediate nodes in accordance with aspects of the invention.
- FIG. 5 is a flow diagram of a method for distributing data across a plurality of subchannels in a cooperative network according to some aspects of the invention.
- FIG. 6 is a flow diagram depicting methods for distributing data across a plurality of subchannels in a cooperative network in accordance with aspects of the invention.
- FIG. 7 is a block diagram depicting a cooperative system of nodes configured to simultaneously employ a plurality of different networks for delivering and/or receiving a data transmission in accordance with aspects of the invention.
- FIG. 8 is a block diagram of a plurality of cooperating nodes configured in accordance with aspects of the invention.
- FIGS. 9A and 9B depict software components residing on a non-transitory computer-readable memory configured to operate in accordance with aspects of the invention.
- FIG. 10 is a network diagram of a cooperative subspace processing system in accordance with an aspect of the invention.
- FIGS. 11A , 11 B, and 11 C are flow diagrams illustrating cooperative subspace multiplexing methods used in accordance with aspects of the invention.
- FIGS. 12 , 13 , and 14 are flow diagrams depicting subspace processing methods in accordance with aspects of the invention.
- FIG. 15A is a flow diagram depicting subspace processing with data interleaving across multiple network channels in accordance with an aspect of the invention.
- FIG. 15B is a flow diagram depicting a method for managing quality of service in a node in accordance with an aspect of the invention.
- FIG. 16 is a block diagram of a cooperating group of nodes employing a plurality of different code spaces for communicating in a wide area network according to aspects of the invention.
- FIGS. 17 and 18 are flow diagrams depicting coding methods configured in accordance with aspects of the invention.
- FIG. 19 shows an invertible transform matrix that may be employed for coding in some aspects of the invention.
- FIG. 20A is a constellation plot of original data values before coding.
- FIG. 20B is a constellation plot of coded data values in accordance with an aspect of the invention.
- FIG. 21A is a flowchart illustrating a method for transmitting data from a source node to a destination node via multiple different channels in accordance with an aspect of the invention.
- FIG. 21B is a flowchart illustrating a method for receiving data at a destination node via multiple different channels in accordance with an aspect of the invention.
- FIG. 22A is a flowchart illustrating a method for transmitting data from a source node to a destination node in accordance with aspects of the invention.
- FIG. 22B is a flowchart illustrating a method for receiving data at a destination node in accordance with aspects of the invention.
- FIG. 1 is a diagram illustrating one possible aspect of a cooperative-MIMO system in which multiple nodes are employed at both the transmitter side and the receiver side of a WWAN (i.e., long-haul) transmission link.
- WWAN i.e., long-haul
- a node is an active electronic device that is communicatively connected to a network via one or more connectors and is configured for sending, receiving, and/or forwarding information over a communication channel.
- a device may have multiple network connectors for a given network. For example, a device may have multiple antennas. However, a single device with multiple network connectors is a single node.
- nodes are clients, servers, or peers. A peer may sometimes serve as a client and sometimes as a server. Nodes may include super nodes, which route data for other networked devices as well as themselves.
- a first local group 110 comprises a plurality N t of transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N t .
- Each node 111 . 1 , 111 . 2 , . . . , 111 .N t may employ a WLAN (i.e., local transmissions 101 - 103 ) to broadcast its data to one or more of the other transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N t .
- the local group 110 of transmitting nodes may comprise all nodes 111 . 1 , 111 . 2 , . . . , 111 .N t that are communicatively coupled together by a WLAN.
- the nodes 111 . 1 , 111 . 2 , . . . , 111 .N t do not share their data with the other transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N t .
- the local group 110 may comprise transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N t that self organize or that are configured by a WWAN controller (not shown) to simultaneously employ the same WWAN channel (e.g., frequency band, time slot, and/or code space).
- Each transmitting node 111 . 1 , 111 . 2 , . . . , 111 .N transmits at least a respective WWAN signal 115 . 1 , 115 . 2 , . . . , 115 .M, into a WWAN channel 99 .
- one or more of the transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N may comprise a plurality of (M t ) antennas.
- the transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N may generate a number up to M t of simultaneous transmissions that exceeds the number N, of nodes.
- a second local group 120 comprises a plurality N t of receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N, that join together for cooperative reception.
- Each of the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N t receives at least a respective WWAN signal 125 . 1 , 125 . 2 , . . . , 125 .M, from the WWAN channel 99 .
- one or more of the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N r may comprise multiple antennas.
- the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N may receive a number M r of received signals that exceeds the number N r of receiving nodes.
- signals received on multiple antennas at a single node may be combined, such as may be performed for diversity combining, especially when the received signals are correlated.
- the number of spatial subchannels e.g., the effective number M r of received signals
- M r employed by the receiver array depending on whether or not received signals are diversity combined prior to spatial processing.
- One or more of the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N r may be designated as a destination node.
- the local group 120 comprises nodes 121 . 1 , 121 . 2 , . . . , 121 .N r , which are communicatively coupled together via a WLAN, and wherein node 121 . 1 and node 121 .N r communicate their received WWAN data to node 121 . 2 (which, in this case, is designated as the destination node) for further processing.
- peer-to-peer or multi-hop communications are a natural part of cooperative-MIMO processing.
- the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N may perform any of various combining techniques to provide MIMO subspace demultiplexing of the received signals, including EGC, MRC, Minimum Mean Squared Error Combining, other types of optimal combining, Successive Interference Cancellation, and other matrix-reduction/matrix diagonalization techniques. Some aspects may employ Cholesky triangularization (or other matrix decomposition approaches), overlapped subspace detection, maximum likelihood detection, and/or maximum a posteriori probability detection. Gaussian elimination, also known as row reduction, is a well-known algorithm for solving systems of linear equations.
- Gauss-Jordan elimination Using row operations to convert a matrix into reduced row echelon form is sometimes called Gauss-Jordan elimination. Some authors use the term Gaussian elimination to refer to the process until it has reached its upper triangular, or (non-reduced) row echelon form. For computational reasons, when solving systems of linear equations, it is sometimes preferable to halt row operations before the matrix is completely reduced.
- This MIMO-based system may require additional energy for local communication between the transmitting nodes 111 . 1 , 111 . 2 , . . . , 111 .N t and the receiving nodes 121 . 1 , 121 . 2 , . . . , 121 .N r , but simultaneously introduces important gains for the long-haul (i.e., WWAN) communication.
- WWAN long-haul
- nodes transmit random linear combinations of the packets they receive by virtue of a rich scattering environment.
- the dimension of the subspace spanned by the system of linear equations (such as may be indicated by H) is the number of spatial degrees of freedom.
- the receiver array may comprise fewer operable antennas than the number of spatial degrees of freedom employed by the transmitter.
- the receiver may comprise fewer than the required minimum number of antennas (M r ⁇ d), and/or some of the spatial subchannels may be correlated. In such cases, some aspects of the invention provide additional linear combinations until the receiver obtains a sufficient amount of information to perform spatial demultiplexing.
- the capacity may be computed by decomposing the vector channel into a set of parallel independent scalar Gaussian sub-channels. From basic linear algebra, every linear transformation can be represented as a composition of three operations: a rotation operation, a scaling operation, and another rotation operation.
- the diagonal elements ⁇ 1 ⁇ 2 ⁇ . . . ⁇ M (min) are the ordered singular values of matrix H, where M (min) is the smaller of M r and M t .
- the rank of H is the sum of non-zero singular values ⁇ i .
- Each value ⁇ i corresponds to an eigenmode of the channel (i.e., an eignemode corresponds to an eigen-channel, or subspace channel).
- Each non-zero eigenmode can support a data stream.
- the MIMO channel can support k subspace channels, where k is the number of non-zero eigenvalues ⁇ i .
- the channel capacity is expressed by:
- the MIMO channel provides M (min) spatial degrees of freedom.
- the rank of H is just a crude measure of channel capacity. To better characterize channel capacity, one can consider the individual values of ⁇ i , particularly, the log of the values of ⁇ i 2 , which are summed in the above capacity equation.
- the channel H since the same amount of power is transmitted in each eigenmode, the channel H whose eigenvalues are all equal has the highest capacity. More generally, the less spread out the singular values, the greater the channel capacity is.
- This relates to the condition number of the matrix H, which is the ratio: (max ⁇ i /min ⁇ i ). The matrix is said to be well-conditioned when the condition number is close to 1.
- a well-conditioned channel matrix H facilitates communication.
- one of the problems with antenna arrays employed on portable transceivers, such as cellular handsets or other wireless mobile devices is that the antennas cannot be sufficiently separated to guarantee uncorrelated spatial sub-channels, even in rich scattering environments. Therefore, aspects of the invention, when implemented in a WWAN, employ a WLAN to communicatively couple together multiple nodes and configure the nodes to cooperatively function as a MIMO system. Typically, the separation between the mobile nodes is sufficient to ensure uncorrelated spatial structure for MIMO processing.
- FIG. 2 is a block diagram that depicts a configuration of receiver nodes in relation to methods, devices, and systems employed for cooperative-MIMO processing in accordance with certain aspects of the invention.
- a local group 120 comprises a plurality N r of wireless nodes 121 . 1 - 121 .N, communicatively coupled together by a WLAN (depicted as WLAN links 105 and 107 ).
- a WLAN depicted as WLAN links 105 and 107 .
- At least one of the nodes 121 . 1 - 121 .N, (such as node 121 . 2 ) is a destination for a transmitted signal in a WWAN.
- At least one of the nodes 121 . 1 - 121 .N, that is not a destination node assists the destination in receiving WWAN signals.
- any type of WWAN transmission source may be employed, such as a conventional antenna array configured for transmitting WWAN signals, a plurality of WWAN base stations or access points, a plurality of cooperative-MIMO transmitters, and/or any type of WWAN peer-to-peer or multi-hop network. Accordingly, some aspects of the invention may employ techniques and structure referred to as Coordinated Multi-Point (CoMP) transmission and/or reception.
- CoMP Coordinated Multi-Point
- a plurality M r of WWAN signals 125 . 1 - 125 .M r are received by the N r nodes 121 . 1 - 121 .N r .
- M r N r .
- a WWAN source node (not shown) having a number of original data packets to transfer to the destination node 121 . 2 may combine the packets together into a “coded packet” that is transmitted in the WWAN.
- the rich scattering channel naturally “encodes” the packets.
- the source node encodes the packets by employing channel pre-coding.
- the source node employs an invertible transform that maps original data symbols to a pseudo-random constellation of code symbols.
- the destination node 121 . 2 receives the coded packet and may then store the packet for eventual decoding.
- the destination node 121 . 2 will typically require a particular number of coded packets before it decodes the coded packets to extract the original data packets.
- the decoding process may involve, for example, the solution of a system of linear equations having a number of independent variables (i.e., the original packets) and a number of independent equations (such as represented by the coded packets and their associated codes (e.g., code matrix)).
- the number of degrees of freedom received must typically equal or exceed the number of original packets.
- the original data packets may be recovered without requiring the number of degrees of freedom to at least equal the number of independent variables.
- the following methods described herein may be adapted to these and other special cases.
- the missing degrees of freedom may be defined as the number of unknown independent variables of a system of equations less the number of independent equations.
- each coded packet successfully received at a destination node (assuming the coded packet is linearly independent of previously received coded packets) may provide another equation for use in decoding (such as in MIMO subspace demultiplexing).
- each linearly independent combination (e.g., uncorrelated subspace) reduces the number of degrees of freedom needed for decoding by one.
- a signal r 1 received by the first node 121 . 1 can be expressed by the following linear combination:
- k typically equals the number of transmitted subspaces (e.g., spatial subchannels), M t , from a transmitter array (not shown), and ⁇ i , i denotes the i th random channel coefficient corresponding to the first node 121 . 1 .
- a signal r n r received by an n r th node (e.g., node 121 .N r ) is expressed by:
- the coefficient ⁇ n r ,i denotes the i th random channel coefficient corresponding to the n r th node 121 .N r .
- the set of receiving nodes 121 . 1 - 121 .N provides a well-conditioned channel matrix H having rank N r to the destination node 121 . 2 .
- each of the nodes 121 . 1 - 121 .N calculates its own code vector by estimating its channel coefficients ⁇ i .
- the subspace code matrix determined at the destination node 121 . 2 may be the estimated channel matrix H.
- Channel estimation may be performed by measuring known transmitted symbols, such as known training symbols, pilot tones, and the like.
- nodes may estimate a channel's impulse response. These code vectors, along with the received signals r i are coupled to the destination node, such as via a WLAN (e.g., WLAN links 105 and 107 ).
- a WLAN e.g., WLAN links 105 and 107
- the destination node 121 . 2 collects code vectors, it builds up the dimension of the subspace spanned by the received code vectors.
- the dimension of the subspace spanned by the code vectors received at any receiving node, such as the destination node 121 . 2 is also referred to as the “dimension of the node” or “rank of the node.”
- the dimension of the subspace spanned by the code vectors corresponding to a transmission from a transmitting node is also referred to as the “dimension of the node” or “rank of the node.”
- one of the functions of a network controller comprises selecting nodes in the local group 120 to cooperatively transmit and/or receive WWAN signals.
- Adaptive array processing may be coordinated by the network controller, such as to perform “antenna selection” in which the nodes 121 . 1 - 121 .N, are selected based on their channel conditions to provide a sufficiently well-conditioned channel matrix H having sufficient rank to demultiplex (i.e., decode) the transmitted signals x i .
- adaptive array processing may comprise adapting the selection of nodes 121 .
- N r ⁇ M t uncorrelated subchannels i.e., a sufficient number of independent linear combinations of the transmitted signals x i to permit the receiver to demultiplex the signals x.
- the destination node 121 . 2 can recover all the messages x i successfully.
- the destination node 121 . 2 decodes the received signals r i .
- the destination node 121 . 2 may begin a decoding process by constructing an estimated channel matrix H. Since the component channel vectors may be determined by measuring known transmissions (e.g., pilots, training signals, other known transmitted signals, etc.), the cooperative-MIMO system may include relays that simply forward received signals (e.g., signals r 1 and r n r ) to the destination node 121 . 2 .
- node 121 . 1 relays its received WWAN signal r 1 to the destination node 121 . 2 via WLAN link 105 .
- a relay channel such as the WLAN channel, may produce linear combinations of r 1 :
- ⁇ j denotes a j th subchannel coefficient of a number J 12 of subchannels in the WLAN link 105 .
- r′ 1 is also a linear combination of the x i values with an effective code vector:
- the effective code vector values ⁇ i may equal the ⁇ 1,i values scaled by a constant ⁇ .
- the destination node 121 . 2 does not need to know the values of ⁇ and ⁇ . Rather, in some aspects of the invention, the node 121 . 2 directly estimates the effective channel values, ⁇ . In some aspects of the invention, the node 121 . 1 relays the unequalized signal r 1 , which comprises unequalized known transmissions (e.g., pilots, known symbols, etc.) in addition to unequalized data portions. In some aspects, the node 121 . 1 does not need to estimate its WWAN channel coefficients. Upon receiving the unequalized known transmissions, the destination node 121 . 1 calculates an effective channel vector (i.e., ⁇ values). This effective channel vector may then be used with other estimated channel vectors to construct the estimated cooperative-MIMO channel matrix, H, prior to decoding.
- an effective channel vector i.e., ⁇ values
- the node 121 . 1 estimates its WWAN channel and transmits those estimates in the WLAN link 105 .
- the node 121 . 1 may employ its estimated WWAN channel coefficients as weights on pilot tones, or it may otherwise synthesize “distortions” on known transmission signals based on its WWAN channel estimates.
- any WLAN distortions are imparted onto the synthesized distortions. Then the node 121 . 2 calculates the aggregate (i.e., effective) channel vector.
- the cooperative-MIMO protocol employed in aspects of the invention does not depend on the underlying communication model.
- the protocol can be applied to any environment where multiple messages are to be simultaneously demultiplexed over a bandwidth-limited environment.
- FIG. 3 is a flowchart illustrating a method for use in processing coded packets received at a destination node from a source node via multiple different WWAN paths in accordance with an aspect of the invention.
- the method comprises receiving coded packets at a receiver via multiple transmission paths 301 .
- the receiver also receives one or more code vectors 302 corresponding to the codes that encode the packets.
- the number of degrees of freedom required to decode the message are determined in step 303 .
- a plurality of receiver nodes are selected to provide the required number of degrees of freedom in step 304 .
- the coded packets comprise random linear combinations of original packets that are input to at least one transmitting node (not shown).
- this random coding may be achieved by transmitting the original packets in a scattering-rich channel.
- other techniques can be employed to achieve this random coding, including, but not limited to, employing coding at the transmitter (not shown), such as channel precoding based on estimates of a random channel.
- the coding employed at the transmitter (not shown) may employ an invertible transform, such as a CI transform, which may include block transforms and/or sliding transforms.
- the multiple transmission paths may comprise a plurality of WWAN subchannels, such as the WWAN subchannels described above.
- the multiple transmission paths may comprise non-WWAN transmission paths, such as WLAN paths 105 and 107 , and/or waveguide (i.e., wired) transmission paths.
- the multiple transmission paths comprise parallel transmission paths employed by different networks (i.e., network channels).
- the steps of receiving the coded packets 301 and receiving the code vectors 302 may be performed simultaneously, as the coded vectors may be transmitted with the coded packets.
- the channel is employed for encoding the transmitted packets
- pilot tones and/or other known transmitted signals may provide information about the channel, and, thus, the codes.
- the receiver may perform channel estimation to determine (i.e., receive) the code vectors.
- receiver may include one or more of the receiving nodes 121 . 1 - 121 .N, communicatively coupled together in the local group 120 .
- the receiver may comprise a destination node, such as node 121 . 2 and/or one or more intermediate nodes, such as nodes 121 . 1 and 121 .N r .
- a receiver may denote the collection of receiving nodes 121 . 1 - 121 .N r .
- intermediate nodes in the transmission path(s) may provide encode the packets.
- intermediate nodes may convey code vectors to the receiver.
- the intermediate nodes modify the coding of the transmissions they receive, as well as the corresponding code vectors.
- the intermediate nodes may provide linear coding to linearly coded transmissions they receive such that the aggregate coding seen by the destination node is also a linear combination of the original data packets.
- Intermediate nodes may convey channel estimates to other nodes in the transmission path, either directly (such as by transmitting those estimates as data), or indirectly, such as by imparting the channel estimate values on pilot signals and/or other known transmission signals used for channel estimation.
- linear coding applied to a transmission encapsulates (i.e., masks) the network address in the packet header.
- this problem is remedied by appending a “message address” and header. Acknowledgements are returned upon receiving either or both the encapsulating message and the individual “network” packets.
- the message may be retransmitted until an acknowledgement is received from the destination node or after a predetermined number of retransmissions.
- the message address may be changed as the message propagates (e.g., hops) through the network. This is described in the '854 application with respect to each peer providing its own linear coding to the packets it receives before forwarding the packets.
- steps 301 and 302 may comprise transmitting an acknowledgement in response to receiving each coded combination of packets and/or upon decoding the original packets.
- One method for determining if receiver nodes are uncorrelated comprises determining if their received signals are linearly independent. For example, a Gaussian-Jordan elimination operation (or similar process) may be performed on a coefficient matrix associated with received packets. If a packet from a receiving node is not linearly independent with respect to other received packets, the packet may be discarded (or diversity combined with correlated packets). The network controller may proceed to look for new coded packets, such as by selecting another receiving node, thus building the dimension of the subspace spanned by the set of received coded packets.
- a destination node in a cooperative-MIMO system determines that it has an insufficient number of degrees of freedom to decode a received coded message 303 .
- selecting an additional receiver node 304 comprises receiving from at least one additional receiver node at least one linearly independent combination of original packets. New coded packets may be added until the destination node can decode the coded message.
- selecting 304 may be performed by the destination node, at least one other receiver node functioning as a network controller, or by the WWAN.
- the transmitter if an acknowledgement is not returned to the transmitter after a predetermined amount of time, then the transmitter retransmits the message. If the interval between transmissions is at least equal to the channel coherence time, then the retransmitted messages provide additional degrees of freedom at the receiver. Thus, a step of retransmitting the message with a different linear combination of original data packets (not shown) may be performed instead of, or in addition to step 304 .
- decoding 305 may be performed.
- FIG. 4 is a flowchart illustrating a method for use in processing coded packets received at a destination node from a plurality of intermediate nodes in accordance with an aspect of the invention.
- the method comprises collecting code vectors from at least one peer 401 .
- the collected code vectors may be arranged as a matrix 402 .
- a processing step 403 determines if a dimension of the matrix (e.g., the number of collected code vectors) is equal to a predetermined number (e.g., the number of degrees of freedom required to decode the packets).
- the method calls for repeating 413 the collecting step 401 , the arranging step 402 , and the processing step 403 until the dimension of the matrix equals the predetermined number. Then the original data packets are decoded 404 using the collection of code vectors in the matrix.
- information about the code vectors may be transmitted with the coded packets.
- transmissions in a wireless network typically include known control information (such as pilot tones, training sequences, etc.) that can be used for channel estimation.
- Generating the code matrix 402 may comprise estimating a MIMO channel matrix H. Comparing the matrix dimension 403 may comprise determining the rank of H, determining the number of code vectors, or determining the number of linearly independent code vectors.
- interference cancellation (such as matrix inversion and/or various forms of adaptive filtering) may be employed by one or more MIMO combiners to separate the signals.
- the elements in matrix H are scalars.
- some aspects of the invention that provide for generating linear combinations of the data may provide for generating scalar coefficients.
- pre-coding or spatial multiplexing based on the matrix H performed on the transmit side of a link may comprise generating linear combinations of signals in which the signal values are multiplied by scalar coefficients.
- Simultaneously transmitting multiple signals in a flat-fading environment can produce linear combinations in which the signals are scaled by scalar coefficients.
- Spatial demultiplexing performed on the receive side of the link may employ the scalar matrix H values, and, thus, comprise generating linear combinations of the received signals.
- the diagonal elements of D indicate the channel gain for each of the independent MIMO channels.
- other eigenvalue-decomposition approaches such as singular value decomposition, may be employed.
- the data vector s is transformed by an effective channel response represented by the diagonal matrix D.
- D an effective channel response represented by the diagonal matrix D.
- N s non-interfering subchannels, wherein each subchannel i has a power gain of ⁇ i 2 and a noise power of ⁇ 2 ⁇ i .
- Subchannels with higher SNR are able to support higher information flows.
- bit loading assigns bits to subchannels based on subchannel quality, which means that it allows more bits to be transmitted in higher-quality (i.e., higher-capacity) subchannels and fewer bits to be transmitted in lower-quality subchannels.
- eigenmode decomposition may be performed for each frequency bin f n .
- the channel-response matrix H can cause inter-symbol interference between spread data symbols, even in a SISO arrangement. Accordingly, the eigenmode decomposition technique described above is applicable to multicarrier spreading and despreading.
- eigenmode decomposition may be applied across two or more dimensions (e.g., both spatial and frequency dimensions). In another embodiment of the invention, eigenmode decomposition may be applied across a single dimension (e.g., spatial or frequency dimensions).
- multicarrier spreading codes for example, orthogonal codes for data multiplexing in a given multiple-access channel
- water-filling can be used to adapt individual node transmission powers such that channels with higher SNRs are provided with correspondingly greater portions of the total transmit power.
- a transmission channel as defined herein, may include a spatial sub-space channel, a space-frequency channel, or some other channel defined by a set of orthogonalizing properties.
- water filling may be used at a physically connected (i.e., wired) antenna array.
- the transmit power allocated to a particular transmission channel may be determined by some predetermined channel-quality measurement, such as SNR, SINR, BER, packet error rate, frame error rate, probability of error, etc.
- channel-quality measurement such as SNR, SINR, BER, packet error rate, frame error rate, probability of error, etc.
- different or additional criteria may be employed with respect to power allocation, including, but not limited to, wireless terminal battery life, load balancing, spatial reuse, power-control instructions, and near-far interference.
- the aggregate spectral efficiency for the N s N f transmission channels is expressed by:
- the modulation and channel coding for each transmission channel may be adapted with respect to the corresponding SNR.
- transmission channels may be grouped with respect to their data-carrying capability. Thus, groups of transmission channels may share common modulation/coding characteristics.
- transmission channels having particular SNRs may be used for particular communication needs. For example, voice communications may be allocated to channels having low SNRs, and thus, low data-carrying capabilities.
- transmission channels that fail to achieve a predetermined threshold SNR may be eliminated.
- water filling is employed such that the total transmission power is distributed over a plurality of selected transmission channels such that the received SNR is approximately equal for all of the selected channels.
- An aspect of the invention may employ reliability assessment for determining required processing and virtual-array size (e.g., the number of active nodes functioning as WWAN receiver elements). Received bits or symbols that have low reliability may require more processing. Bits or symbols with high reliability may be processed with fewer elements (e.g., nodes) or provided with lower processing requirements. More information typically needs to be combined for data streams having less reliability and less information may need to be combined for data streams having more reliability. Also, nodes with good channel quality may share more information via the WLAN than nodes with poor channel quality. Optimization algorithms, such as water-filling algorithms may be employed in the reliability domain.
- FIG. 5 is a flow diagram depicting a method of distributing data across a plurality of subchannels in a cooperative network, such as a communication network wherein at least a portion of the network employs multiple inputs and multiple outputs associated with a link between a server (i.e., a source node) and a client (i.e., a destination node).
- a server i.e., a source node
- a client i.e., a destination node
- disclosures in ⁇ 107 and '829 relating to adaptive array processing, bit loading, soft handoff, antenna switching, antenna selection, and simultaneously employing multiple network channels (including channels from different WANs) are pertinent to methods and devices associated with FIG. 5 .
- a client-server system comprises a server coupled to a client through at least one communication link. Portions of the link may include at least one WWAN channel.
- a plurality of network channels are established 501 for transmitting a data block (e.g., a file, one or more data packets, etc.) from the server to the client.
- the plurality of network channels may comprise a plurality of spatial subchannels in a cooperative-MIMO system, such as depicted in FIG. 1 .
- the network channels may comprise multiple WANs, such as depicted in FIG. 1J of the '107 application.
- step 501 comprises establishing a plurality of spatial subchannels in a WWAN, a number of transmitting antennas M t and a number of receiving antennas M r may be determined.
- a plurality of nodes may be employed at the transmitting side and/or at the receiving side in a wireless network.
- Step 501 may further comprise selecting which antennas are employed.
- Such antenna selection may be part of adaptive-array (e.g., smart antenna) processing performed by either or both the client and the server, and/or by one or more intermediate nodes in the link.
- antenna selection may comprise node selection in a cooperative-MIMO system.
- each sub-flow comprises a portion of the data to be transmitted.
- the sub-flows are established by determining amounts of data (e.g., number of packets) to be allocated to each of a plurality of channels and distributing the allocated amounts to the channels. Each channel may be provided with a predetermined number of packets to transmit in a particular unit time.
- the channel quality of each subspace may be determined (such as by employing any of the eigenmode processes described above), followed by a bit-loading process.
- Various adaptive antenna array techniques may be employed. The basic idea is to use channel information to adaptively vary the transmission scheme. This adaptation may comprise varying the number of spatial subchannels and the sub-flow rate of each subchannel in a precoded spatial multiplexing system.
- a water-filling process such as described above, may be employed for bit loading. For example, as a higher-quality subchannel is allocated more power, this increases the subchannel's SNR, which allows larger modulation constellations, higher coding rates, etc. to be employed. A higher-quality subchannel may also have fewer retransmissions.
- step 502 may be performed concurrently with step 501 , or it may follow step 501 .
- Step 503 assigns an identifier to the aggregate signal.
- the identifier may comprise a WWAN identifier (e.g., WWAN-access information) that distinguishes WWAN messages from each other.
- WWAN-access information typically identifies a particular destination node to which the message is addressed.
- the WWAN-access information may comprise channel-access information for a WWAN channel to which the destination node is assigned.
- the WWAN identifier may comprise a network address.
- the '854 application discloses a message address appended to a message encoded to encapsulate an aggregation of linearly encoded packets in which the network addresses of the individual component packets are hidden by the encapsulation.
- a receiving node may acknowledge receipt of the encapsulating message and/or receipt of the component (i.e., original) packets once they have been decoded.
- step 504 linear combinations of the component packets are generated. These linear combinations are distributed across the previously determined sub-flows based on the amounts of data (e.g., number of packets) allocated to each sub-flow in step 502 . When the linear combinations are transmitted, they are provided with the identifier provided in step 503 .
- step 504 comprises sub-space coding that employs an invertible transform.
- step 504 comprises coordinating a plurality of transmitting nodes to cooperatively transmit the original data packets.
- Step 504 may comprise antenna selection and/or node selection at the transmitting side, such as to produce an m ⁇ m channel matrix H with rank m in which the m subchannels are sufficiently decorrelated from each other.
- step 504 comprises coordinating a plurality of receiving nodes to receive the transmitted signals.
- Step 504 may comprise antenna selection and/or node selection at the receiving side, such as to produce an n ⁇ n channel matrix H with rank n in which the n subchannels are sufficiently decorrelated from each other.
- pre-coding applied to the original data on the transmitting side produces linear combinations of the original data packets.
- Each “encoded” packet transmitted by a transmitting antenna comprises a random superposition of the original packets, wherein the randomness is provided by estimations of the random scattering channel.
- aspects of the invention comprise either or both coordinating a plurality of transmitting nodes to cooperatively transmit the linear combinations of original packets and coordinating a plurality of receiving nodes to cooperatively receive the transmitted signals.
- the linear combinations can be generated at random or deterministically involving all or any subset of the original packets.
- the coding strategy may affect the decoding complexity at the receiver.
- a particularly efficient coding method is to form linear combinations of packets using a CI transform, which is explained below.
- the receiver In order to decode the received coded packets, the receiver needs a predetermined number of linearly independent combinations of the original packets, denoted as degrees of freedom. The effects of losing coded packets can be mitigated by providing for redundant transmissions across the subspaces. Similarly, a failure to return an acknowledgement for the original packets can naturally cause retransmission of the coded packets until the receiver can decode the encoded packets and acknowledge receipt of the original packets.
- FIG. 6 is a flow diagram depicting a method of distributing data across a plurality of subchannels in a cooperative network, such as a network in which a plurality of transmitting nodes, a plurality of intermediate nodes, and/or a plurality of receiving nodes cooperatively function together to perform subspace processing.
- a cooperative network such as a network in which a plurality of transmitting nodes, a plurality of intermediate nodes, and/or a plurality of receiving nodes cooperatively function together to perform subspace processing.
- Step 601 comprises determining a plurality of linear combinations of original packets to transmit from at least one source node to at least one destination node. For example, packets in a transmit queue may partitioned into sets, each set comprising a plurality of packets. In one aspect of the invention, the number of packets in each set equals the number of transmitted subchannels. In another aspect of the invention, responsive to feedback from one or more receiving nodes, the number of packets in each set equals the number of received subchannels. In one aspect, the linear combinations comprise coding provided to the original packets by one or more transmitting nodes. In another aspect, step 601 comprises which packets are transmitted simultaneously into a multipath channel, and the channel produces random linear combinations of the transmitted packets.
- Step 602 comprises selecting a plurality of nodes to cooperatively perform subspace processing.
- a plurality of transmitting nodes is selected by a source node to transmit the linear combinations. For example, each transmitting node may transmit a different linear combination. In some aspects, each transmitting node may generate a different linear combination of original packets.
- a plurality of intermediate nodes is selected to cooperatively perform subspace processing. For example, intermediate nodes may combine signals they receive and then transmit those linear combinations. Intermediate nodes may share signals with each other before forwarding their received signals.
- a plurality of receiving nodes is selected to cooperatively perform subspace processing. For example, a destination node may select one or more receiving nodes to provide a requisite number of independent linear combinations so the destination node can decode the received signals to recover the original packets.
- Step 603 comprises transmitting the linear combinations.
- step 603 comprises employing multiple transmission paths for transmitting original packets and/or coded packets, wherein the multiple transmission paths provide for mixing the transmitted signals.
- intermediate nodes that have multiple simultaneous inputs may combine the input signals.
- step 603 may employ transmission paths from a plurality of networks. In such aspects, transmitting 603 may employ similar bit-loading and/or water-filling techniques employed for subspaces, as described above.
- step 603 may be repeated until the destination node acknowledges receipt of the original packets.
- the destination node will ordinarily not be able to return acknowledgements for the original packets until after it decodes its received signals.
- the ordinary retransmission process may generate new linear combinations 604 until the destination node can return an acknowledgement.
- new linear combinations will be generated if the retransmission is delayed by an amount equal to or greater than the channel coherence time.
- new linear combinations will typically be generated if the transmission channel is changed in other ways, such as if a different set of transmitting nodes, intermediate nodes, and/or receiving nodes is (are) employed.
- new linear combinations can be generated if new precoding values are selected.
- FIG. 7 is a block diagram depicting a cooperative system of nodes configured to simultaneously employ a plurality of different WWAN connections, such as to deliver a data stream or data file to (or from) a destination (source) node.
- a local group 710 of nodes 701 - 706 employs connections to a plurality of different WWANs 716 , 717 , and 719 to transfer data to or from one of the nodes 701 - 706 .
- the destination (or source node), i.e., one of the nodes 701 - 706 may simultaneously employ a plurality of WWAN user channels, including at least one of the user channels allocated to at least one of the other nodes 701 - 706 , to transmit and/or receive data.
- one or more nodes depicted in the figures may comprise an edge of a content delivery network.
- an edge server may comprise one or more of the WWAN terminals 716 , 717 , and 719 .
- one or more of the nodes 701 - 706 may be configured to perform edge-server functions.
- a source or destination node may employ one or WANs to which it does not have direct access, but that one of the cooperating nodes 701 - 706 in the group 710 may access.
- node 701 is shown with a communication to an IEEE 802.16 access-point terminal 716 in an IEEE 802.16 network
- node 102 is shown with access capabilities to a 3G-cellular terminal 719
- node 703 has connectivity to an IEEE 802.11 access point 717 .
- Connectivity between the nodes 701 - 706 such as via WLAN links 709 , enables any of the nodes 701 - 706 in the group 710 to access any of the plurality of WAN (802.16, 3G, and 802.11) services.
- a WAN-access controller (not shown), which may take the form of software residing on a physical device, such as one or more nodes 701 - 706 , may be provided for managing access to the WAN services, including partitioning information flows across multiple WAN services, user channels within those WAN services, and/or subspace channels. Such access may be performed with respect to a combination of technical rules and business rules.
- WAN access is typically managed using technical rules, such as network load balancing.
- network load balancing may comprise balancing traffic across two or more WAN links. This capability can balance network sessions, such as Web, email, streaming media, etc., over multiple connections in order to spread out the amount of bandwidth used by each node 701 - 706 , thus increasing the total amount of bandwidth available.
- WAN access can also be influenced by business rules, such as employing cost/service ratios when determining whether and how to different WAN services.
- the WAN-access controller (not shown) can anticipate the economic cost of particular WAN services to the user, as well as user communication needs, when assigning WAN access to individual nodes 701 - 706 .
- a destination or source node 701 - 706 may provide the WAN-access controller (not shown) with a cost tolerance, which can be updated relative to the type of communication link desired.
- high-priority communication needs (such as particular voice communications or bidding on an online auction) may include permissions to access more expensive WAN services in order to ensure better reliability.
- WAN-access algorithms may include optimization techniques, including stochastic search algorithms (like multi-objective genetic algorithms).
- Multi-objective optimization are well known in the art, such as described in E. Zitzler and L. Thiele, “Multi objective evolutionary algorithms: A comparative case study and the strength pareto approach,” IEEE Tran. on Evol. Comput., vol. 3, no. 4, November 1999, pp. 257-271 and J. D. Schaffer, “Multiple objective optimization with vector evaluated genetic algorithms,” Proceedings of 1st International Conference on Genetic Algorithms, 1991, pp. 93-100, both of which are incorporated by reference.
- Some aspects of the invention may employ the multiple WANs depicted in FIG. 7 to perform subspace processing, as described throughout this disclosure.
- a first node e.g., one of the nodes 701 - 706
- a second node such as a server (not shown)
- WAN access may comprise multiple different routes or paths that data packets can traverse between the first and second nodes.
- some of the different routes may involve different network technologies.
- a first path between the first and second nodes may comprise a WiFi-based network (i.e., based on the IEEE 802.11 family of wireless networking standards), such as depicted by the path to the 802.11 access point 717 .
- a second path may comprise a 4G cellular network, such as a Long term Evolution (LTE) based cellular network or an 802.16 WiMax network, depicted by the path to the 802.16 access-point terminal 716 .
- LTE Long term Evolution
- WiMax 802.16 WiMax network
- Nodes 701 - 706 configured to cooperatively perform subspace processing in a MIMO system can also enable the first node (i.e., one of the nodes 701 - 706 ) to access WAN services that it would otherwise not be able to access.
- Some aspects of the invention employ multiple different network technologies to support a single data transfer operation (or a single connection) between communication nodes.
- the use of multiple different network technologies associated with multiple different communication paths to support a single data transfer operation or other function may be referred to as “heterogeneous networking.”
- cooperative subspace processing such as subspace coding and/or subspace decoding, may employ heterogeneous networking.
- FIG. 8 is a block diagram of a plurality M of transmitting nodes 806 . 1 - 806 .M configured in accordance with aspects of the invention.
- a data source 800 is coupled to a sub-space coder, such as a MIMO processor 802 .
- the nodes 806 . 1 - 806 .M are in close proximity to each other and are communicatively coupled together, such as by a WLAN 899 .
- the MIMO processor 802 provides sub-space coding to the data.
- Sub-space coding may comprise spreading codes and/or channel codes, such as block channel codes, which spreads each data symbol over multiple code symbols (i.e., coded data symbols).
- the resulting coded data is then grouped by the MIMO processor 802 and distributed to the plurality of nodes 806 . 1 - 806 .M, which may comprise wireless terminals (denoted as WTs) configured to communicate in a WWAN.
- WTs wireless terminals
- each node 806 . 1 - 806 .M comprises a WLAN interface 807 . 1 - 807 .M configured to receive and/or transmit coded data from/to the MIMO processor 802 .
- the MIMO processor 802 may comprise one or more of the nodes 806 . 1 - 806 .M.
- the MIMO processor 802 may reside in one of the nodes 806 . 1 - 806 .M that is a source node.
- each of the nodes 806 . 1 - 806 .M is configured to transmit signals into a WWAN, and, thus, each comprises a modulator 808 . 1 - 808 .M and a WWAN interface 809 . 1 - 809 .M.
- Modulation may include channel coding.
- modulation 808 . 1 - 808 .M comprises employs WWAN channel weights, such as may be used for sub-space processing.
- the channel weights may be provided by the MIMO processor 802 .
- the MIMO processor 802 couples coded data symbols and sub-space codes to the each of the nodes 806 . 1 - 806 .M.
- FIG. 9A illustrates software components residing on a non-transitory computer-readable memory 950 .
- a subspace coding source-code segment 951 is configured to generate a plurality of sub-space coefficients to encode a plurality of original data packets.
- the subspace coding source-code segment 951 is configured to accept as input at least one of a set of information inputs, including data signals (e.g., original data packets), training signals (e.g., known symbols), WWAN channel estimates, and WWAN-control information.
- the subspace coding source-code segment 951 is configured to provide as output at least one of a set of signals, including coefficients for subspace coding and subspace-encoded data.
- a distribution source code segment 952 is provided for distributing the coefficients for subspace coding and the subspace-encoded data received from source-code segment 951 to a plurality of nodes.
- the distribution source code segment 952 may optionally function to couple at least one of a set of information inputs to the source-code segment 951 , including data packets from other nodes.
- FIG. 9B illustrates software components of a receiver residing on a non-transient computer-readable memory 960 .
- a subspace code source-code segment 961 is configured to acquire subspace code coefficients from a plurality of cooperating receiving nodes. These coefficients are subsequently used to decode received subspace-coded data.
- the source-code segment 961 may estimate subspace coefficients from measurements of the propagation channel. For example, pilot tones and/or other control information in a received signal may convey code vectors that encode the original packets.
- the subspace coefficients may comprise space-frequency codes (e.g., subcarrier/antenna array weight vectors) and/or space-time codes (e.g., weighted Rake taps).
- the subspace code source-code segment 961 is configured to accept at least one of a set of inputs, including signals that convey code vectors (including received signals in which known symbol values are scaled by subspace code coefficients), coded data, channel estimates, and WWAN-control information.
- the subspace code source-code segment 961 is configured to provide as output at least one of a set of information signals, including subspace coefficients, encoded data packets (such as to be distributed to one or more nodes), combined data packets (e.g., data packets received from a plurality of nodes and then combined, wherein the data received may comprise encoded data), and estimates of original data packets after decoding.
- a distribution source code segment 962 is provided for distributing at least one of a set of signals, including subspace coefficients (used for subspace coding and/or decoding), encoded data packets, combined data packets, and estimates of original data packets following decoding.
- the distribution source code segment 1962 may optionally function to couple at least one of a set of information inputs to the source-code segment 961 , including data packets received by other WTs, training signals (including code vectors) received by other nodes, channel estimates (either of both locally estimated and received from other nodes), WWAN-control information, code vectors (including decoding values) received from at least one other node, and decoded data received from at least one other node. Accordingly, the source code segment 1962 may select which WTs to receive information from to cooperatively perform subspace demultiplexing.
- computer-readable memory is meant to include more than one memory residing on more than one node.
- aspects of the invention described herein may employ subspace processing methods (including software implementations) and apparatus implementations employing cooperative antenna arrays in a WWAN. While in some aspects of the invention, nodes in a cooperating group share the same WWAN access, other aspects of the invention provide for nodes with access to different WWANs. In some aspects, one or more nodes may have access to a plurality of WWANs and WWAN services. In some cases, one or more nodes may not be able to directly access any WWAN.
- FIG. 10 is a network diagram of a cooperative subspace processing system in accordance with aspects of the invention. For example, some aspects described with reference to FIG. 1 are depicted in FIG. 10 .
- a method for transmitting data from at least one source node, such as node 131 . 2 , to at least one destination node, such as node 141 . 2 may comprise employing one or more coding nodes, such as nodes 131 . 1 , 131 .N t , 141 . 1 , and 141 .N r .
- coding nodes on the transmitting side e.g., nodes 131 . 1 and 131 .N t ) are employed.
- coding nodes on the receiving side e.g., nodes 141 . 1 and 141 .N r
- coding nodes at both sides e.g., a transmitting group 130 and a receiving group 140
- nodes 131 . 1 , 131 .N t , 141 . 1 , and 141 .N r may employ intermediate nodes (not shown) in the communication link.
- the source node 131 . 2 is communicatively coupled to a plurality N t of transmitting nodes 131 . 1 and 131 .N t .
- the nodes 131 . 1 - 131 .N t may comprise a local group 130 communicatively coupled together via WLAN links 151 - 153 .
- a plurality of data packets at the source node 131 . 2 are coupled to one or more of the other nodes (e.g., nodes 131 . 1 and 131 .N t ) in the group 130 for transmission to a receiving group 140 that includes the destination node.
- N t may transmit signals into a scattering-rich WWAN channel (such as depicted by the channel 99 in FIG. 1 ).
- An equivalent network path model for the scattering-rich channel is depicted by network links 117 . 1 , 117 .N ⁇ 1, 119 . 1 , and 119 .N ⁇ 1.
- N t and N r are equal (denoted by the value N).
- N Another simplification that characterizes this particular aspect is that there are no network paths directly from the source node 131 . 2 to the receiving group 140 , and there are no network paths from the transmitting group 130 that go directly to the destination node 141 . 2 .
- the communication scheme may include network paths directly from the source node 131 . 2 to the receiving group 140 and/or network paths from the transmitting group 130 directly to the destination node 141 . 2 .
- the destination node 141 . 2 may be communicatively coupled to other nodes (e.g., nodes 141 . 1 and 141 .N r ) in the receiving group 140 .
- a WLAN (depicted by WLAN links 155 and 157 ) may couple the destination node 141 . 2 to other receiving nodes 141 . 1 and 141 .N r , such as to assist the destination node 141 . 2 in subspace de-multiplexing (i.e., decoding) linear combinations of the signals transmitted from the transmitting group 130 .
- the receiving node 141 . 1 receives a linear combination of transmitted signals from network paths 117 . 1 and 119 . 1 originating at nodes 131 . 1 and 131 .N t , respectively.
- the receiving node 141 .N receives a linear combination of transmitted signals from network paths 117 .N ⁇ 1 and 119 .N ⁇ 1 transmitted by nodes 131 . 1 and 131 .N t , respectively.
- the resulting aggregate signal i.e., superposition
- the transmitted signals typically referred to as interfering signals.
- subspace demultiplexing i.e., subspace decoding
- subspace decoding may be employed to separate the interfering signals at the receiver. This requires the linear combinations of signals received at nodes 141 . 1 and 141 .N, to be linearly independent (i.e., uncorrelated).
- the linear combinations may comprise scalar and/or complex coefficients.
- the randomness of a scattering-rich WWAN channel encodes the transmitted signal such that the coefficients of the linear combinations are random.
- subspace multiplexing is performed by the transmitting group 130 , which may comprise precoding and/or other subspace coding.
- the transmitting group 130 may employ an invertible transform to spread data packets across multiple subcarriers and/or subspaces.
- Such invertible transforms may include CI transforms, as will be discussed below.
- a CI transform maps a set of data points with discrete values into a pseudo-random (i.e., statistically random) set of coded data points.
- the coding nodes 131 . 1 , 131 .N t , 141 . 1 , and/or 141 .N are selected to build up the dimension of the subspace spanned by the received coded signals.
- the transmitting nodes 131 . 1 and 131 .N t may be selected to ensure a set of uncorrelated subchannels (e.g., spatially separated nodes 131 . 1 and 131 .N t are selected, or the nodes 131 . 1 and 131 .N t may be provided with different antenna polarizations or directivity).
- the receiving nodes 141 may be provided with different antenna polarizations or directivity.
- coding nodes may include intermediate nodes (not shown) in the transmission path. The intermediate nodes may be selected to provide sufficient degrees of freedom at the receiving group 140 .
- a network comprises one or more source nodes, one or more destination nodes, and one or more coding nodes.
- the source nodes are configured to transmit a plurality of original data packets.
- the coding nodes are configured to output linear combinations of the original data packets wherein coefficients of the linear combinations are randomly chosen.
- the coding nodes are selected to provide a sufficient number of degrees of freedom to enable the one or more destination nodes to decode the linear combinations.
- a vector of subspace coefficients accompanies the linear combinations.
- pilot tones and/or other control data
- Precoding coefficients may be distributed to the transmitting nodes (e.g., nodes 131 . 1 and 131 .N) along with coded data.
- Channel estimates used for decoding may be conveyed by the receiving nodes 141 . 1 and 141 .N, to the destination node 141 . 2 along with received linear combinations.
- signals are relayed through the network.
- the channel of each relay link i.e., hop
- the naturally occurring linear combinations produced on each relay link are applied to the data payload and the pilot signals in an OFDM signal.
- the values of the received pilot tones in an OFDM signal may constitute the vector of coefficients.
- overhead signals such as known sequences used for synchronization and/or known values used for other control purposes, sometimes reside in packet headers. Measurements of these control values at a receiver may constitute the vector of coefficients.
- the linear combinations applied to the vector of coefficients are the same as the linear combinations applied to the data.
- FIG. 11A is a flow diagram illustrating a method for performing cooperative subspace multiplexing in accordance with some aspects of the invention.
- a plurality of transmitting nodes is selected to receive a plurality of subspace-coded components 1101 .
- a data set (e.g., a data file) is separated into a plurality N of original components 1102 , where N equals a number of required degrees of freedom to decode the subspace-coded components.
- the number N may be determined based on the number of transmitting nodes to which the subspace-coded components will be distributed.
- An optional step may comprise determining a number of the coded components to be distributed to each transmitting node (such as may be determined by each node's storage capacity, processing capability, and/or its number of uncorrelated transmitting antennas).
- the subspace-coded components are produced 1103 by generating at least N random linear combination of the original components.
- the coded components and any associated code vectors are distributed to the selected transmitting nodes 1104 such that at least one of the selected transmitting nodes has a number of coded components that is less than the number of required degrees of freedom.
- the selected transmitting nodes store the coded components and any associated code vectors before transmitting this data.
- the selected transmitting nodes comprise edge nodes of a content delivery network.
- selecting the transmitting nodes 1101 comprises selecting one or more nodes nearby a source node in a peer-to-peer network. If a selected node can transmit a unique linear combination of the original data components (relative to the other selected nodes), then that node builds up the dimension of the subspace spanned by the transmitted coded signals until the dimension of the subspace equals the number of the original components. Therefore, in some aspects of the invention, if there are N original components (e.g., step 1102 ) to be transmitted simultaneously, then at least N coded components comprising unique linear combinations of the original components are generated (e.g., step 1103 ), such that the transmission subspace is provided with a dimension of at least N.
- N original components e.g., step 1102
- the dimension of the transmission subspace is greater than the dimension of the subspace spanned by the coded signals (e.g., in a WWAN, if the number of transmitting antennas is greater than the number of original data components), then there is at least one unused dimension in the transmission subspace. This can be regarded as redundancy in the transmission, and, in a wireless network, it may serve to increase gain.
- selecting the transmitting nodes 1101 comprises selecting one or more nodes nearby a destination node in a peer-to-peer network. If each selected node receives a unique linear combination of the original data components and then retransmits its received data to the destination node, then each selected node builds up the dimension of the subspace spanned by the coded signals received at the destination node until the dimension of the subspace equals the number of the original components. In a wireless network, any additional linear combinations of the original data components may be used to increase gain.
- selecting the transmitting nodes 1101 comprises selecting one or more intermediate nodes of the communication path(s) in a peer-to-peer network.
- the source node, the transmitting nodes, and/or the channel may encode the original components 1103 .
- the source node and/or the transmitting nodes may provide subspace coding, such as precoding, to the original data components.
- Nodes in between the source node and the destination node may provide subspace coding, such as by combining received signals and then retransmitting the combined signals.
- Signals that are transmitted in a wireless channel are typically received by more than one receiver. Thus, if the channel is characterized by rich scattering, then the linear combinations received by different receivers are more likely to be independent.
- selected transmitting nodes nearby the destination node employed for receiving signals may forward the received coded signals to the destination node for decoding.
- FIG. 11B is a flow diagram illustrating a method for performing cooperative subspace multiplexing in accordance with some aspects of the invention.
- the method comprises receiving at a node in a peer to peer network, at least one of a set of subspace-coded components 1111 comprising a linear combination of original data components characterized by a number of degrees of freedom required to decode the set of subspace-coded components.
- the method further comprises receiving at said node, at least one code vector associated with the at least one subspace-coded component 1112 ; and storing at said node, the subspace coded component(s) and the code vector(s) 1113 to provide a stored set, the stored set having a number of the subspace coded component(s) that is less than the required number degrees of freedom.
- the method may optionally comprise transmitting the subspace-coded component(s) and the code vector(s) from the node to a destination node 1114 , which collects a sufficient number of the subspace-coded components and code vectors to decode the coded components.
- the destination node may collect the code vectors, which are then used to construct a code matrix. When the rank of the matrix equals the number of original components, then matrix operations employing the collection of code vectors can decode the subspace-coded components.
- nodes that store the coded components and the code vectors comprise edge servers in a content delivery network.
- a Cooperative-MIMO system configured to operate in a WWAN efficiently stores data in a distributed manner. For example, multiple components (i.e., original components) of a data set (e.g., a data file) may be transmitted in parallel (i.e., at the same time in the same channel). Each antenna of a receiver receives a single coded piece, which comprises a linear combination of the transmitted components.
- a cooperative-MIMO receiver a plurality of nodes may be configured to cooperatively process received signals. A node with more than one antenna may receive more than one coded piece. For example, if the antennas (specifically, their channels) are not correlated, then each antenna receives a unique linear combinations of the original components. Signals that are correlated may simply be combined, which may provide certain diversity benefits.
- the number of original components in step 1102 is related to the number of spatial subchannels.
- the number of original components may be less than or equal to the number of uncorrelated spatial subchannels, the number of transmit antennas, and/or the number of receive antennas.
- higher-quality subchannels e.g., those associated with greater eigenvalues
- multiple coded components may be allocated to a single subchannel.
- the number of wireless nodes selected to store components may depend on a number of factors, including (but not limited to) the total number of transmit antennas, the number of antennas on each node, the quality of subspace channels, network topology, the number of nodes near the destination node, etc.
- step 1103 may comprise determining a random combination of original components to store at a particular node.
- the physical wireless channel provides the required statistical randomness for the coding, since temporal and spatial variations of the channel are random.
- Channel reciprocity i.e., radio waves propagating in both directions of a radio link between a pair of transceivers experience the same multipath channel distortions at the same time and frequency
- each transceiver may estimate the common channel from known control signals (such as pilot tones in an OFDM signal) received from the other transceiver.
- the code vector can be determined from channel estimation.
- each node's channel(s) may determine what combination(s) of components it receives.
- a central controller is not required to maintain a state of the contents of all the nodes and differentiate between the nodes.
- a selected node may not know exactly what the other selected nodes have stored. For example, each node can estimate its own channel, from which it derives information about the linear combination(s) that it receives. However, if the node's channel is not correlated with any other node's channel, the node cannot directly estimate channels employed by the other nodes. Thus, the node does not know what linear combinations other nodes receive unless that information is shared by the other nodes.
- the selected nodes do not coordinate for storing components. Rather, a destination node or a WLAN controller accesses the selected nodes to download the linear combinations and channel estimates (e.g., subspace weights) until a sufficient amount of information is obtained to decode the coded components. The destination node completes its download once it has enough information to recover the original components of the data set.
- a destination node or a WLAN controller accesses the selected nodes to download the linear combinations and channel estimates (e.g., subspace weights) until a sufficient amount of information is obtained to decode the coded components.
- the destination node completes its download once it has enough information to recover the original components of the data set.
- FIG. 11C is a diagram depicting processing methods and processing devices in accordance with aspects of the invention.
- a file is partitioned into a plurality of original components in processing block 1121 .
- Each original component may comprise one or more data packets.
- each of a plurality of nodes in a peer-to-peer network is assigned to receive one or more of the original components and/or subspace-coded versions of the components.
- processing block 1123 subspace-coded components and the associated subspace code vectors are generated. The components and, optionally, their subspace code vectors are distributed to the assigned nodes (from block 1122 ) 1124 .
- the nodes assigned to receive the components may be selected based on their locations in the network.
- nodes that are nearby a source node are selected as transmitting nodes.
- nodes nearby the destination node are selected as receiving nodes. Since these so-called receiving nodes convey their received signals to the destination node, they may be referred to as transmitting nodes.
- intermediate nodes are selected to the components.
- the number of components assigned to each peer may be related to a combination of various factors, including (but not limited to) the bandwidth to the peer (which may include subchannel quality and the number of subschannels), the bandwidth from the peer to the destination node, and the peer's storage and/or processing capability.
- code vectors may be generated from channel measurements. For example, pilot tones and/or other known signals accompanying a data transmission may be used to estimate the channel. When coding comprises the effects of scattering, then the code vector may comprise channel estimates. When precoding is performed, and the precoding is based on channel measurements, then a receiver may employ channel estimates to estimate the precoding values. In some aspects, handshaking between two peers may be employed to determine code vectors. For example, such handshaking is commonly used to ensure key match by two parties employing the randomness in the channel for key generation. In other aspects, a transmitter may employ a code matrix based on an invertible transform, such as a CI transform.
- an invertible transform such as a CI transform.
- each coded component r n r received at an n r th node may be expressed by
- the coefficient ⁇ n r ,i denotes the i th random coefficient corresponding to the n r th assigned node
- x i is the i th original component.
- signals distributed to an assigned node comprise transmitted original components that are linearly coded by the communication channel.
- the source node may comprise an antenna array for transmitting the original components to the assigned nodes.
- the transmitters and receivers are selected to provide uncorrelated subchannels.
- block 1124 may precede block 1123 .
- the coefficients ⁇ n r ,i may comprise subspace antenna array weights, such as precoding weights, distributed to the assigned nodes.
- the assigned nodes may then apply the weights to the original components and/or previously coded components to generate coded components.
- the subspace code vector and the coded components are generated ( 1123 ) by scattering in the channel after the original components (and/or previously coded components) are distributed ( 1124 ) to the assigned nodes.
- the coded components and/or original components are stored at their assigned nodes, which do not transmit the data until directed to do so.
- the recipient(s) of the transmitted data may comprise other coding nodes and/or the destination node.
- Processing blocks 1131 - 1133 depict a method for decoding the file that was encoded and distributed to a plurality of nodes, such as in the manner described with respect to processing blocks 1121 - 1124 .
- code vectors are collected from at least one peer. The coded components may also be collected in this step 1131 , or in a subsequent step 1132 and/or 1133 .
- processing block 1132 a determination is made if a sufficient number of linearly independent code vectors have been collected to decode the coded components. If a sufficient number of code vectors have been collected, then decoding is performed (i.e., processing block 1133 ). If not, then more code vectors may be selected (e.g., control returns to block 1131 ).
- processing block 1132 may provide for assembling the collected code vectors as a matrix.
- Processing block 1132 may be configured to determine how well-conditioned the matrix is. For example, the eigenmodes may be evaluated, which may comprise calculating the corresponding eigenvalues. If the matrix is sufficiently well-conditioned, then decoding 1133 is performed. In some aspects of the invention, a requirement for what constitutes well-conditioned may depend on the SNR of the received signals. Thus, block 1132 may provide for measuring SNR (or some similar measure of link quality), determining a threshold of what constitutes a well-conditioned matrix (e.g., threshold eigenvalues), and then determining if the matrix is sufficiently well-conditioned to decode the subspace-coded components.
- SNR or some similar measure of link quality
- block 1132 may discard one or more highly correlated code vectors (and the associated coded component(s), if relevant), or combine at least some of the correlated code vectors. Then control passes back to block 1131 , whereby one or more additional code vector(s) are collected.
- block 1131 comprises adaptive array processing to dynamically select (and/or de-select) transmitting and/or receiving antennas, such as to increase the rank and/or improve the conditioning of the channel matrix, H.
- Such array processing may comprise changing the number N of simultaneously transmitted original components.
- adaptive array processing may comprise dynamically selecting and/or de-selecting peers (transmitting nodes and/or receiving nodes) employed to perform cooperative subspace processing.
- Adaptive array processing may include changing the antenna array weights at the transmitting and/or receiving array, such as to change the rank and/or improve the subspace channels.
- block 1131 may provide for selecting code vectors (and, thus, coded components) from new nodes.
- the packets upon failure of the destination node (or its cooperative receiving nodes) to acknowledge transmitted packets, the packets are retransmitted.
- the source node may adapt the subspace processing provided to the transmitted signals (such as by providing adaptive array processing). If a wireless channel is employed in the link, and the delay between transmission and retransmission is equal to or greater than the wireless channel's coherence time, then new linear combinations of the original components are generated.
- block 1131 may collect new code vectors from the same nodes, which are then processed with previously received code vectors in block 1132 .
- FIG. 12 is a diagram depicting processing methods and processing devices in accordance with aspects of the invention.
- a method of transmitting data from a source node to a destination node comprises forming linear combinations of original packets from a source node to produce subspace-coded packets (processing block 1201 ), and delivering the subspace-coded packets to the destination node over one or more network paths (processing block 1202 ).
- the destination node transmits feedback (such as acknowledgements) back to the source node (processing block 1203 ).
- the source node Based on the responsiveness of the destination node (which includes a failure to respond), the source node causes new linear combinations of the original packets to be formed (processing block 1204 ) to generate new subspace-coded packets, and delivers the new subspace-coded packets to the destination node (processing block 1205 ).
- a cooperative-MIMO system whereby cooperating nodes are configured to perform subspace processing, such as subspace multiplexing (e.g., on the transmitting side of a link) and/or subspace demultiplexing (e.g., on the receiving side of a link).
- the processing block 1201 may perform array processing, such as selecting antennas of a fixed array and/or nodes of a cooperative-MIMO array to transmit signals in a wireless channel.
- the block 1201 may select subspace antenna weights for encoding the transmitted signals.
- parallel transmissions in a multipath channel produce random combinations of the transmitted signals.
- precoding applied to the transmitted signals may be selected such that propagation in the multipath channel provides at least some degree of decoding. In such aspects, the channel (and, thus, processing block 1202 ) does not encode the transmitted signals.
- block 1203 comprises providing acknowledgements from the destination node to the source node upon receipt of a container packet (i.e., coded packet, which effectively encapsulates the original packets) and/or upon decoding the encapsulated packets (i.e., the original packets), such as described in the '854 application, which is incorporated by reference in its entirety.
- feedback from the destination node may comprise control signals (e.g., pilot tones), which are employed by the source node for channel estimation, and, subsequently, encoding the original packets.
- adaptive array processing performed by at least the source node relies on feedback from the destination node, such as to select an appropriate subspace dimension and/or optimize the subspace channels.
- adaptive array processing at the transmit side of the link may reselect the transmitting nodes, add new nodes, and/or adapt precoding and/or antenna array weights. This generates new subspace codes, thus providing new linear combinations of the original packets.
- block 1204 may comprise performing adaptive array processing at the receive side of the link. At the receive side, cooperating receiver nodes may be reselected and/or added.
- the antenna array weights and/or other subspace coding weights at the receive side may be adapted.
- adaptive array processing in a cooperative network may comprise adapting the degrees of freedom spanned by the subspace signals.
- the receiver may convey to the transmitter how many degrees of freedom it has received and/or is capable of receiving. This technique can be used to select the number of transmitting antennas (M t ) and/or receiving antennas (M r ) in a cooperative-MIMO system. Similarly, communicating information about degrees of freedom in either or both directions in a link can be used to select transmitting and/or receiving nodes in a cooperative-MIMO system.
- the source node may respond to feedback (including the absence thereof) from the destination node by transmitting new linear combinations of the original packets.
- the network links 117 . 1 , 117 .N ⁇ 1, 119 . 1 , and 119 .N ⁇ 1 depicted in FIG. 10 may comprise two or more different WANs.
- FIG. 13 is a diagram depicting processing methods in accordance with aspects of the invention.
- a communication device comprises at least a first WAN interface configured for communicating in a first WAN, and has access to a second WAN interface configured for communicating in a second WAN, the first WAN being different than the second WAN.
- a network controller (such as a processor) manages data transfer between the communication device and a destination node using multiple different network routes, such as the first WAN and the second WAN.
- the network controller may be configured to perform the steps shown in FIG. 13 .
- the network controller produces a plurality of original packets 1301 to be transferred to the destination node.
- a plurality of subspace-coded packets is generated 1302 from the original packets by employing subspace coding to linearly combine the original data packets.
- the coded packets are distributed across the plurality of different WANs to the destination node 1303 .
- additional subspace coding may be provided to the coded packets while they are en-route to the destination node 1304 .
- the number of original packets is selected to be less than or equal to the total dimension of the subspace between the source and destination nodes.
- the total dimension of the subspace may equal the sum of subspaces in each of the different WANs.
- the total dimension of the subspace may be used to select subspace codes.
- the dimensions of subspaces in one or more of the different networks may be used to select subspace codes.
- first subspace code(s) corresponding to a first WAN may encode a first set of packets
- second subspace code(s) corresponding to a second WAN may encode a second set of packets.
- a universal code(s) may be employed for encoding values transmitted over both first and second WANs. In such an aspect, one or more receivers at the destination would perform WWAN-specific subspace decoding and universal subspace decoding.
- step 1302 comprises generating subspace codes corresponding with the subspace coded packets.
- the subspace codes may be distributed with the coded packets.
- step 1302 and/or 1303 comprises selecting at least one set of transmitting nodes, coding nodes, and/or receiving nodes to cooperatively perform subspace coding. Such selection(s) may depend on the dimension of the codes (and the coded packets). In some aspects of the invention, the selection(s) may be based on adaptive array processing algorithms, which may adapt either or both the number of nodes and the subspace codes based on the degrees of freedom at the receiver.
- the transmission rate may be desirable to decrease the transmission rate, such as by removing one or more low-quality subchannels, adapting the coding to increase the processing gain, or otherwise introducing more redundancy in the transmitted information.
- subspace codes are generated at the destination node.
- subspace codes are generated by a plurality of transmitting nodes communicatively coupled to the source node.
- subspace codes are generated by transmitting a plurality of known signals from a transmitting array through a scattering-rich channel to a receiving array.
- a MIMO processor coupled to a receiving array is configured to produce subspace codes.
- Subspace codes may be produced and/or modified by intermediate nodes in a link between the source node and the destination node.
- FIG. 14 is a diagram depicting processing methods in accordance with aspects of the invention.
- a method for transmitting a file between a server and a client through one or more network paths comprises generating a plurality of linearly coded packets from a plurality of original packets 1401 , and performing cooperative subspace processing to increase a dimension of a subspace spanned by the linearly coded packets 1402 .
- the linearly coded packets are sent to the client 1403 , which, upon reception of at least one of the coded packets, provides feedback to the server 1404 . Based on the feedback, new linearly coded packets may be transmitted to the client 1405 .
- the linearly coded packets are generated 1401 as linear combinations of the original packets. If a scattering channel is employed (directly or indirectly) for generating coefficients of the linear combinations, then such linear combinations may be random. In other aspects, a deterministic process may be employed for generating the coefficients. The deterministic process may employ an invertible transform characterized by a mapping of original data packets into a set of pseudo-random coded packets.
- cooperative subspace processing is performed by a plurality of nodes to build the dimension of the subspace spanned by the linearly coded packets.
- the plurality of nodes may cooperate to produce parallel (i.e., simultaneously transmitted) transmissions of the coded packets.
- the plurality of nodes is selected to receive a plurality of coded packets (e.g., precoded packets) from the server (e.g., a source node) and then simultaneously transmit the coded packets to the client (e.g., a destination node).
- the plurality of nodes is selected to receive the original packets and then encode the original packets to produce the coded packets before coordinating a simultaneous transmission of the coded packets to the client.
- the plurality of nodes comprises multiple transmitting nodes selected to transmit original packets and/or coded packets into a multipath channel, which linearly encodes the transmitted packets.
- the plurality of nodes comprises one or more intermediate nodes between the server and the client, the intermediate node(s) configured to receive and retransmit the coded packets. Intermediate nodes may optionally provide additional linear coding to the packets they receive.
- the plurality of nodes comprises one or more receiving nodes communicatively coupled to the client and configured to cooperatively receive transmitted coded packets and forward the received packets to the client.
- the receiving node(s) are selected to build the dimension of the subspace of signals received by the client.
- processing blocks 1401 and 1402 may be combined.
- the processing block 1403 comprises sending the linearly coded packets to the client over a plurality of different networks.
- packets to be transmitted are distributed over the different network paths.
- Subspace multiplexing e.g., coding
- subspace de-multiplexing e.g., decoding
- interleaving the linearly coded packets to the client over a plurality of different networks may comprise network load balancing (e.g., bit loading) the multiple channels employed in the link, such as distributing more packets to channels able to support higher bandwidth and fewer packets to channels that support relatively lower bandwidth.
- these channels may comprise channels on different networks (e.g., WANs), such as channels employed by block 1403 .
- the client may provide feedback. For example, the client may transmit an acknowledgement to the server upon retrieving each of the original packets after decoding the received coded packets.
- the coded packets encapsulate the original packets, thus concealing header information in the original packets.
- the coded packets may comprise their own headers and employ different protocols than those used with the original packets.
- Different acknowledgement protocols may be employed depending on the message layer (i.e., original packet, and coded (or encapsulating) packet).
- TCP may be employed for the original packet
- the acknowledgement mechanism employed with the coded packets may be similar to mechanisms employed to coordinate adaptive antenna array processing.
- latency can severely impede TCP.
- the receiver, or even the transmitter may automatically send acknowledgements for each transmission, thus, effectively short-circuiting the TCP mechanism.
- any of the adaptive array mechanisms employed in MIMO may be used as a substitute control protocol.
- the server may transmit at least one new linearly coded packet to the client. For example, absence of an acknowledgement after a predetermined amount of time may trigger retransmission of the coded packet(s).
- network load balancing may be employed for distributing data loads across different network channels. For example, when data is to be interleaved over multiple channels (e.g., subchannels and/or network channels, including network channels in different networks), bit loading may be employed for loading more data into higher-bandwidth channels and less data into lower-bandwidth channels. In related discussions, more error correction (such as lower code rates) may be employed in lower-quality channels, which essentially reduces the amount of information transmitted in those channels. With respect to subchannels, more data may be loaded on subchannels with higher eigenvalues, such as discussed above. Various techniques for distributing data over multiple channels with respect to the effective channel bandwidth are described throughout the '107 application, which is incorporated by reference in its entirety. Similarly, reliability assessments of all the individual channels (which may be based on BER, SNR, and/or other qualitative measures of a channel) may provide a basis for allocating processing resources, such as the number of nodes employed to perform subspace processing.
- FIG. 15A is a diagram depicting processing methods in accordance with aspects of the invention.
- a method is provided to manage data interleaving in a communication network that simultaneously employs multiple network channels to transmit data from a source node to a destination node.
- a network channel may comprise a user channel separated from other user channels by at least one of the following multiple-access schemes: frequency division multiple access (e.g., OFDMA), time division multiple access (TDMA), and code division multiple access (e.g., CDMA).
- OFDMA frequency division multiple access
- TDMA time division multiple access
- CDMA code division multiple access
- a first CDMA channel may be encoded with a first Walsh code
- a second CDMA channel may be encoded with a second Walsh code, wherein the first and second Walsh codes are orthogonal to each other.
- the user channels are also referred to as physical channels. If the first and second Walsh codes are orthogonal, then the first user channel is a network channel, and the second user channel is a different network channel.
- the multiple network channels may comprise a plurality of different networks, such as depicted in FIG. 7 .
- multiple network channels are established 1501 to provide a connection from a single source node to each of at least one destination node.
- At least one real-time property of each network channel is monitored 1502 .
- Subspace processing is performed to interleave data across the network channels 1503 .
- network load balancing e.g., bit loading, or interleaving
- processing block 1501 may employ multiple network technologies (e.g., different WANs) to simultaneously transmit data from a source node to a destination node.
- the processing block 1501 interleaves data across different non-interfering user channels.
- At least one channel quality parameter is measured and/or determined for each of the network channels. For example, BER, probability of error, SNR, and/or any other quality metric may be determined.
- subspace processing may comprise subspace coding to spread data across the non-interfering network channels.
- one or more of the network channels may comprise a plurality of subspaces.
- the subspace-coded data is distributed across the network channels such that the destination node needs to receive coded data from a plurality of the network channels in order to have a sufficient number of degrees of freedom to decode the received data.
- subspace processing 1503 comprises de-multiplexing the received subspace-coded data.
- subspace processing 1503 comprises employing a plurality of transmitting nodes to cooperatively perform subspace processing, such as described above. In such aspects, selecting the cooperating transmit nodes may effectively build the dimension of the subspace of the transmitted signal. In some aspects of the invention, subspace processing 1503 comprises employing a plurality of receiving nodes to cooperatively perform subspace processing, such as described above. In such aspects, selecting the cooperating receiving nodes may effectively build the dimension of the subspace of the received signal. In some aspects of the invention, a local group of cooperating nodes may provide a source and/or destination node with access to network interfaces, and, thus, network channels that it would otherwise not have.
- multiple network channels may be employed for transmitting data from a single source node to a single destination node.
- a source node e.g., one of the nodes 701 - 706 shown in FIG. 7
- networks 716 , 717 , and 719 e.g., networks 716 , 717 , and 719
- one of the nodes 701 - 706 may employ the multiple network channels for receiving a data stream from a remote source.
- the servers in the networks 716 , 717 , and 719 are not required to coordinate with each other to manage data flows on the network channels to/from any of the nodes 701 - 706 . Rather, each node (e.g., any of the nodes 701 - 706 ) having a WAN interface manages its own connection(s) with its respective network(s) (e.g., networks 716 , 717 , and 719 ).
- the source/destination node amongst the nodes 701 - 706 , or one of the nodes 701 - 706 configured to function as a network controller manages data flow across the network channels. Such management may comprise selecting and/or adapting data interleaving (e.g., bit loading, network load balancing) across the network channels. Channels that can support higher data rates may be allocated more coded data than channels that support only lower data rates.
- FIG. 15B is a diagram depicting processing methods in accordance with aspects of the invention.
- a method is provided to manage quality of service in a node, such as a mobile wireless device.
- an application service connection is established 1511 between an application processor and a remote device through a wireless communication network.
- a transceiver monitors at least one real-time property 1512 of a radio frequency access link between the mobile wireless device and the wireless communication network.
- the transceiver provides the application processor with updated values of the monitored at least one real time property 1513 of the radio frequency access link.
- the application processor adjusts packet data generation in response to the updated values 1514 to manage a quality of service property of the application service connection.
- establishing the connection 1511 comprises employing a plurality of nodes to establish a plurality of network channels and/or subchannels.
- the real-time property that is monitored 1512 may comprise a channel estimate, a data rate, a BER, an SNR, and/or any other link-quality metric.
- processing block 1514 may comprise adaptive array processing, which is sometimes performed in coordination with monitoring link quality 1512 .
- processing block 1514 may comprise performing network load balancing (e.g., bit loading across network channels) when multiple network channels are employed, and/or bit loading across subchannels when multiple subchannels are employed.
- block 1514 may comprise adjusting subspace coding. If the node is a receiving node (e.g., a destination node), the receiver may adjust the rate over each network channel by the way it responds to receiving packets. For example, sending acknowledgements (or failing to send acknowledgements) can change the data rates. This can also affect the coding and redundancy of the data transmissions.
- a receiving node e.g., a destination node
- the receiver may adjust the rate over each network channel by the way it responds to receiving packets. For example, sending acknowledgements (or failing to send acknowledgements) can change the data rates. This can also affect the coding and redundancy of the data transmissions.
- FIG. 16 is a block diagram depicting communications between a WWAN node 1619 and a cooperating group of nodes 1610 (such as a plurality of wireless terminal nodes 1601 - 1603 ) employing a plurality of different, yet complementary, code spaces c 1 , c 2 , and c 3 .
- the term complementary means that the coded transmissions corresponding to the code spaces c 1 , c 2 , and c 3 can sum to produce at least one predetermined WWAN coded data sequence. This may be a weighted sum (i.e., a random linear combination), such as due to the given channel 99 conditions.
- a predetermined WWAN coded data sequence may employ a code that would ordinarily (in view of the prior art) be employed in whole. That is, it would not ordinarily be partitioned into sub-codes to be transmitted by different transmitters or received by different receivers.
- the code spaces c 1 , c 2 , and c 3 correspond to direct-sequence codes, such as may be used to provide for spreading and/or multiple access.
- a superposition of signals transmitted across the code spaces c 1 , c 2 , and c 3 may provide at least one predetermined WWAN coded data sequence received by at least one WWAN node 1619 .
- a superposition of signals received by nodes 1601 - 1603 and mapped onto the code spaces c 1 , c 2 , and c 3 may provide at least one predetermined WWAN coded data sequence that would ordinarily (in view of the prior art) be intended for a single node 1601 - 1603 .
- Some aspects of the invention may provide for channel corrections (e.g., pre-distortion and/or receiver-side channel compensation) by either or both the cooperating group 1610 and the WWAN node 1619 . Accordingly, the code spaces c 1 , C 2 , and C 3 may be adapted to account for channel conditions.
- channel corrections e.g., pre-distortion and/or receiver-side channel compensation
- the code spaces c 1 , c 2 , and c 3 may correspond to direct-sequence codes having predetermined spectral characteristics. It is well known that different time-domain data sequences may be characterized by different spectral distributions. Some aspects of the invention may provide for selecting complementary codes c 1 , c 2 , and c 3 having predetermined spectral characteristics with respect to WWAN channel conditions affecting the links between the nodes 1601 - 1603 and the WWAN node 1619 . Thus, in some aspects, the codes c 1 , c 2 , and c 3 may be selected according to the same criteria employed for selecting OFDM subcarriers.
- a direct-sequence code may comprise a pseudo random noise code, such as is known in the art.
- Pseudo-random noise is a deterministic set of values or signals that satisfies one or more tests for statistical randomness.
- a direct sequence code may comprise an orthogonal code, such as a Walsh code, such as is known in the art.
- Direct sequence is a type of signaling in which each data symbol is modulated (or otherwise impressed) onto (or represented by) a sequence of code symbols. Thus, information about each data symbol resides on a plurality of coded data symbols. In this respect, each data symbol is “spread” across multiple code symbols, and the resulting coded data symbols are transmitted in sequence. Furthermore, each coded data symbol may contain information about a plurality of data symbols.
- a receiver that receives the sequence of coded data symbols may decode the received signals if it knows the direct-sequence code and if a sufficient number of the coded data symbols are received.
- M t code spaces c 1 , c 2 , . . . , c Mt comprise M t linear combinations of up to M t data symbols
- the coded transmissions provide a sufficient number of degrees of freedom for decoding the data symbols.
- the code spaces c 1 , c 2 , . . . , c Mt may indicate codes produced by an invertible transform.
- decoding produces a certain amount of inter-symbol interference that can be corrected.
- CI codes may be employed, such as described in U.S. Patent Application Publication No. 20040086027, which is incorporated by reference in its entirety.
- the '107 application incorporates by reference U.S. Patent Application Publication Nos. 20040086027 and 20030147655, which are hereby incorporated by reference in their entireties.
- CI codes may comprise either or both block-type codes and sliding transform codes.
- Block codes often uniformly distribute inter-symbol interference due to each data symbol across all the other data symbols encoded by the block code, whereas sliding transform codes may non-uniformly distribute inter-symbol interference of each data symbol across the other symbols in the sliding transform window.
- transmitting a sequence of symbols into a multipath channel produces a sliding transform of those symbols.
- a random channel produces a random sliding transform.
- some paths are longer (and, thus, introduce more delay) than other paths.
- Inter-symbol interference occurs when earlier-transmitted symbols arrive at a receiver at the same time that later-transmitted symbols are received.
- the length of this sliding transform window equals the delay spread of the channel.
- the coding window may be the number of resolvable multipath delays.
- a time-domain receiver typically employs a Rake receiver having a number of taps.
- the number of Rake taps in an efficient receiver may equal the number of resolvable delays.
- the coding window may be increased by employing a larger number of transmitters and/or receivers. Increasing the coding window may comprise increasing the number of transmit and/or receive directions.
- the angle of the transmitted and/or received signals may be increased. In multipath environments, paths received at higher angles relative to line-of-sight (i.e., zero incidence) between a transmitter and receiver often have greater delays than paths received closer to the line-of-sight.
- a sliding window transform is synthesized by a transmitter, such as by deliberately time-offsetting signals transmitted from antennas of an array.
- one or more of a node's transmissions may be provided with time-varying complex weights (e.g., amplitudes and/or phases), such as described in S. A. Zekavat, C. R. Nassar and S. Shattil, “Combined Directionality and Transmit Diversity via Smart Antenna Spatial Sweeping,” proceedings of 38 th Annual Allerton Conference on Communication, Control, and Computing, University of Illinois in Urbana - Champaign , pp. 203-211, Urbana-Champaign, Ill., USA, October 2000, S. A.
- a Rake receiver performs sliding-transform processing.
- C i k is the Direct Sequence spreading signal
- G represents processing gain
- T c is the chip duration
- T b is the bit duration
- g T c (t), g T b (t), and g T ⁇ (t) represent the chip, bit, and transmitted pulse shapes, respectively.
- a plurality M of nodes linked together by a WLAN comprises elements of an M-element antenna array capable of receiving K transmission channels.
- the received signal at the array is:
- ⁇ right arrow over (V) ⁇ ( ⁇ ) is an array-response vector
- K is the number of received transmission channels
- L k is the number of distinct fading paths corresponding to the k th user
- ⁇ l k is the fade amplitude associated with path l and user k
- S the desired signal
- ISI inter-symbol interference
- IXI cross interference (i.e., multiple-access interference)
- ⁇ is the AWGN contribution.
- the nodes may be adapted to perform either or both time-domain (e.g., Rake) or frequency-domain processing as part of a receiver operation.
- Signals received by a plurality of nodes may be combined with respect to any combining technique, including EGC, MRC, Minimum Mean Squared Error Combining, other types of optimal combining, Successive Interference Cancellation, and other matrix-reduction/matrix diagonalization techniques.
- Successive Interference Cancellation may be particularly useful for decoding signals encoded with a sliding transform.
- FIG. 17 is a diagram depicting processing methods in accordance with aspects of the invention.
- a method is provided in which a transmitting node determines a linear combination of original packets to transmit 1701 , transmits the linear combination of packets across a network using a sliding window protocol 1702 , and receives an acknowledgement when a receiving node receives the linear combination of packets 1703 .
- the process of transmitting 1702 and/or a process of receiving the transmitted linear combination comprises at least one of the transmitting node and the receiving node enlisting at least one cooperating node to increase the dimension of the subspace spanned by the linear combination.
- the at least one cooperating node may increase the rank of the coding matrix generated at the receiver and/or may improve the conditioning of the matrix.
- the receiving node retrieves coding coefficients (i.e., at least one code vector) from the linear combination of packets 1704 .
- the receiver may produce a code matrix from the coding coefficients.
- the coding coefficients (which may be appended to a code matrix) are employed in a decoding process for decoding the received linear combinations 1705 . Since the coding comprises a sliding transform, decoding 1705 may comprise successive interference cancellation, or some other matrix-reduction process.
- a communication device comprises a first network interface unit configured for communication in a first network, a second network interface unit configured for communication in a second network that is different from the first network, and at least one processor to manage data transfer between the communication device and a destination node using multiple different channels.
- first coded packets are generated by linearly combining original data packets 1801 .
- Coding 1801 may employ subspace codes and/or codes derived from an invertible transform, such as a CI code matrix.
- the first coded packets are distributed to multiple different channels 1802 , such as different network channels and/or different subchannels, for transmission to a destination node.
- Second coded packets are generated within the different channels 1803 , such as by linearly combining first coded packets distributed to the channels, and/or by employing codes derived from an invertible transform, such as a CI code matrix.
- intermediate nodes in a multi-hop path may perform second coding 1803 , and/or the destination node may provide second coding 1803 when combining signals received from its local group.
- the at least one processor is configured to generate first coded packets by linearly combining original data packets within a sliding coding window.
- a first of the multiple different channels is associated with the first network interface unit and a second of the multiple different channels is associated with the second network interface unit.
- the first and second network interface units reside on different nodes that are communicatively coupled together (such as by a WLAN) and configured to cooperatively process the first coded packets.
- aspects of the invention may employ CI coding for direct sequence coding, spread-OFDM coding, and/or coding across subspaces, such as described throughout the '854 application, which is incorporated by reference in its entirety.
- the transmission bandwidth is partitioned into a plurality N (which typically equals 2 raised to some integer power) of orthogonal subcarrier frequencies.
- DFT inverse discrete Fourier transform
- S is a spread-OFDM code matrix
- b is the transmitted symbol vector.
- the inverse DFT typically employs an over-sampling factor, so its dimension is K ⁇ N (where K>N is the number of time-domain samples per OFDM symbol block), whereas the dimension of the spread-OFDM code matrix is N ⁇ N.
- a cyclic prefix in OFDM changes the Toeplitz-like channel matrix into a circulant matrix.
- each spread symbol comprises a linear combination of the data vector's b values, if a spread symbol is lost during transmission, that loss is mitigated because it is effectively distributed across all the data values of b.
- spreading permits accurate estimation of a received signal despite substantial losses, even before error-correction coding is employed.
- this type of spreading permits a receiver to decode a transmission without requiring all of the spread symbols. For example, a receiver may accurately decode N data values by employing M ⁇ N spread symbols.
- the spread symbols employ predetermined linear relationships between the data symbols of b
- techniques typically employed in multi-user detection such as, but not limited to, successive interference cancellation and mixed-decision symbol estimation
- orthogonality of the spreading codes is not required if the spreading coefficients are known at the receiver. Rather, the code spaces processed by the receiver may simply need to be sufficiently de-correlated from each other to estimate the data symbols b.
- This implementation of the invertible transform matrix S takes the form of direct-sequence coding.
- FIG. 19 illustrates an invertible transform matrix that may be employed in some aspects of the invention.
- the invertible transform matrix S is an N ⁇ N matrix.
- Each row (e.g., row 1901 ) of the matrix S multiplies original data vector b (which comprises N values) to produce a coded data symbol x i .
- each coded data symbol x i comprises a linear combination of the original data symbols b, wherein the coefficients of the linear combination are values of the invertible transform matrix S.
- a decoding vector s i comprising an i th row or column of a decoding matrix may be used to multiply the vector of coded data symbols x to produce an inner product, from which the estimated value ⁇ circumflex over (b) ⁇ l is derived.
- the vector s i may be regarded as corresponding to an i th subspace of the decoding matrix. Since the inner product requires vectors of equal length, if the number of coded data symbols x is deficient relative to the rank of the decoding matrix, then the decoding vector s i may be reduced accordingly.
- a j th value s ij of the decoding vector s i corresponding to a j th missing coded data symbol x i may be omitted from the vector s i before the multiplication.
- the decoding vector S i functions as a matched filter.
- the corresponding decoding matrix may comprise the complex conjugate of the matrix S.
- other aspect of the invention may employ different types of invertible CI matrices, including scalar code matrices and other complex code matrices. Gauss-Jordan elimination can be used to determine whether a given matrix is invertible and to find the inverse.
- An alternative is LU decomposition, which generates upper and lower triangular matrices, which are easier to invert.
- the first element of each matrix row multiplies the first data symbol b 0 of the data vector b.
- all the values in the first column 1910 equal one.
- the corresponding decoding vector s 0 also has all of its values equal to one, so to retrieve the first data symbol b 0 , all the coded data symbols ⁇ x 0 , x 1 , . . . , x N ⁇ 1 ⁇ are summed. This can be regarded as a “baseband” matched filter.
- 19 is that data mapped to this baseband subspace can be retrieved regardless of the order in which the coded data symbols ⁇ x o , x 1 , . . . , x N ⁇ 1 ⁇ are summed.
- certain control information may be included in packets that are encoded to this subspace.
- a decoding matrix may be included in the baseband subspace.
- information relating to the order and/or identity of the coded data symbols may be included in the baseband subspace.
- a decoding vector may effectively map its corresponding subspace to baseband so the information in the other subspaces cancels out.
- the decoding process may comprise an inner product of the coded data packets with one or more vectors of decoding coefficients.
- information about the intended order of the coded data (such as may be used for decoding) may be included in the baseband subspace such that the coded data can be arranged correctly if it is received out of order.
- information in the baseband subspace may be used to identify missing coded data such that decoding can be adapted accordingly. For example, in one aspect, values of the decoding vector(s) may be removed with respect to which coded data is missing.
- Some advantages of employing these types of CI codes are that information can be decoded using fast transforms, such as processes that employ fast Fourier transforms, the codes can have any code length, and information can be re-encoded by intermediate nodes without requiring decoding.
- intermediate nodes participate in the coding process. For example, intermediates nodes may combine received packets and generate new packets. The encoded packets encapsulate the original packets, thus, sequence numbers and other control information in the original packets can remain concealed until they are decoded. Decoding only requires that a specified number of the coded packets be received. The order in which those packets are received is inconsequential.
- the destination node needs only to assemble a sufficient number of received packets in order to decode the flow. Since the code is either already known at the receiver or it is conveyed in the baseband subspace, the packets are interchangeable and the arrival order is irrelevant. No scheduling or route coordination is necessary at the source. Such advantages are particularly relevant in cloud networks.
- F ⁇ 1 is a K ⁇ N inverse DFT (where K>N is the number of time-domain samples per OFDM symbol block)
- S is an N ⁇ N spread-OFDM code matrix.
- the vector of coding coefficients that multiply OFDM subcarriers constitute a random linear mapping of the data vector b, as will be described with respect to FIGS. 20A and 20B .
- FIG. 20A is a constellation plot of original data values b, which clearly have a 64-QAM structure. In conventional OFDM, these data values would ordinarily modulate the OFDM subcarriers.
- FIG. 20B is a constellation plot of subcarrier coefficients produced by employing a CI code matrix, such as the code matrix depicted in FIG. 19 .
- the coded symbols comprise linear combinations of the original data determined by the invertible CI transform matrix.
- the constellation plot in FIG. 20B is a Gaussian distribution that is statistically random.
- the aforementioned subcarrier coefficients may instead be employed as coefficients in random linear combinations of the original data values.
- the coefficients may be derived from an invertible transform matrix (such as a CI matrix) and information about the original data symbols.
- Decoding may employ an iterative process for estimating the original data.
- FIG. 21A is a flowchart illustrating a method for transmitting data from a source node to a destination node via multiple different channels in accordance with an aspect of the invention.
- the multiple different channels may be associated with different communication technologies.
- First coded data packets are generated by combining original data packets using an invertible transform, such as a CI transform 2101 .
- the first coded packets may be generated using a block and/or sliding CI transform by forming a linear combination of the original packets currently within a coding window.
- coded data may be generated by multiplying a vector of original data with a CI code matrix.
- each coded data packet comprises a different linear combination of the original data packets, and, thus, constitutes a degree of freedom.
- a sliding transform is employed, as each new original packet is added to the coding window, an oldest original packet in the window may be shifted out.
- a new first coded packet may be generated for each new original packet added to the coding window.
- the size of the first coding window may be fixed or variable.
- the multiple different channels may be monitored 2102 to identify one or more channels to insert a new first coded packet at a particular time. This monitoring process may continue until all of the data has been successfully transferred to and decoded at the destination node.
- one or more first coded packets may be distributed to the identified channel 2103 . Different first coded packets may be injected into different channels using the above-described technique. For example, in one aspect of the invention, a first coded packet is transmitted on a first channel and at least a second coded packet is transmitted on at least a second channel, wherein the first coded packet and the at least second coded packet together are necessary to provide a sufficient number of degrees of freedom to decode the original packet.
- one or more second coded packets may be generated 2104 by linearly combining the first coded packets that currently reside within a corresponding second coding window using an invertible transform, such as a CI transform.
- CI coefficients may comprise statistically random coefficients may be used to perform the linear combination.
- FIG. 21B is a flowchart illustrating a method for receiving data at a destination node via multiple different channels in accordance with an aspect of the invention.
- the destination node may send an acknowledgement message to the source node 2111 .
- the destination node determines if a sufficient number of coded packets have been received to allow the receiver to decode the packets 2112 . If an invertible transform is employed for coding, a sufficient number of coded packets may be less than the number of original packets. Packets may need to be retransmitted until a sufficient number of packets are received.
- the coding may be adapted (e.g., the coding window may be adjusted, the code rate may be adjusted, etc.) based on feedback from the destination node.
- the receiver may send an acknowledgement for each original packet received 2113 .
- FIG. 22A is a flowchart illustrating a method for employing an invertible transform, such as CI coding, for distributing data from a source node to be received by a destination node via multiple routes through at least one network.
- the method comprises selecting a set of original data, such as original data packets, for encoding 2201 .
- the selected data is encoded using an invertible transform 2202 , such as a CI transform.
- a multiple distribution nodes are selected to distribute the coded data 2203 , and the coded packets are distributed to the selected nodes 2204 .
- Selecting the original data 2201 may comprise partitioning the data into a predetermined number of data sections, such as packets or other data sets, wherein the predetermined number may comprise the dimension of the invertible transform used for coding.
- the predetermined number may comprise the length of a coding window employed, such as when a sliding CI transform is employed.
- the predetermined number may be related to a number of distribution nodes to which the coded data will be distributed 2203 , the storage capability of each distribution node, network conditions (e.g., traffic load, latency, bandwidth, link quality, etc.) in the vicinity of each node, demand for the original data, and/or other factors that can affect the flow and timely delivery of the original data to one or more clients.
- the predetermined number may be related to a number of network paths or channels used for delivering data to the destination node.
- Coding 2202 may comprise employing a block transform or a sliding transform, or some combination thereof.
- the coded packets and the corresponding code matrix comprise a plurality of independent equations having a plurality of independent variables in a system of linear equations, wherein the independent variables comprise the original packets.
- control information may be encoded into the baseband subspace of the coded data.
- the control information may help a receiver identify individual coded packets such that if a coded packet is lost, decoding can be adapted accordingly.
- the control information may identify a preferred sequence of the coded packets, so a receiver can correctly arrange received packets such as to facilitate decoding of the non-baseband subspaces.
- Selecting the distribution nodes 2203 may comprise selecting nodes that are nearby the destination node.
- the distribution nodes may comprise edge servers in a content delivery network. In some aspects, the selection of distribution nodes 2203 may be based on anticipated and/or actual demand for the original data.
- the distribution nodes may be selected 2203 to best serve requesting clients, such as to offload network loads from the network backbone to the network edges, reduce latency when serving data to the clients, and/or reduce distribution costs for content providers. In peer-to-peer networks, some of the clients may be selected as distribution nodes. For example, a client requesting the original data may be directed to retain a set of coded packets containing the original data such that the client may serve other clients requesting the same original data.
- Distributing the coded packets to the distribution nodes 2204 may comprise determining how much data to store on each node. In one aspect, distributing may first comprise determining storage capability of each candidate distribution node. Distributing 2204 may comprise calculating a cost per unit flow on each link, and/or determining link capacity, link traffic, and/or other factors affecting how data is distributed. Distributing 2204 may comprise determining demand topology in a network, such as to determine how much and where coded data is distributed.
- distributing 2204 comprises providing each of a plurality of the distribution nodes with a number of coded components that is less than a number of required degrees of freedom to decode the coded components.
- a destination node can acquire a sufficient number of the coded components to perform decoding by collecting coded components from more than one distribution node. This can reduce the amount of data stored on each distribution node while still being able to serve the clients.
- distributing 2204 may comprise determining a network demand topology to use for calculating which coded packets to distribute to which nodes in a manner that serves the requesting client(s) while reducing network traffic and storage requirement on the distribution nodes.
- distributing 2204 may be based on network bandwidth, latency, link quality, and/or other link metrics pertaining to each of a plurality of channels employed by the distribution nodes serving a client.
- FIG. 22B is a flowchart illustrating a method for employing an invertible transform, such as CI coding, for receiving data from a plurality of routes through at least one network.
- the method comprises a destination node selecting a plurality of distribution nodes from which to receive coded packets 2211 , collecting the coded packets from the selected distribution nodes 2212 , and determining if a sufficient number of unique coded packets have been collected to decode the packets 2213 . If the destination node determines that a sufficient number of degrees of freedom are available with respect to the collected packets, then it performs decoding 2214 . Otherwise, control returns to processing block 2211 , and at least one more distribution node is selected. In some aspects, one of the distribution nodes may request additional coded packets (not shown), such as from other distribution nodes and/or a source node.
- the nodes are selected 2211 to provide a sufficient number of coded packets (e.g., which, along with their respective code matrix, represent linearly independent equations) for decoding the original packets (e.g., unknown variables).
- the invertible transform matrix is known at the receiver, so the coding matrix is not transmitted to the distribution nodes. However, information about the relation of each coded packet to the coding matrix may be provided to the distribution nodes and transmitted to the destination node.
- decoding 2214 comprises calculating a solution for a system of linear equations comprising the independent equations and their independent variables.
- the independent equations comprise the coded packets and the corresponding invertible transform matrix
- the independent variables comprise the plurality of original packets.
- distributing data on network routes may be performed in a manner that achieves one or more cost objectives, including cost objectives related to combinations of technical and business objectives.
- cost objectives including cost objectives related to combinations of technical and business objectives.
- Such aspects of the invention may be applied to communication systems in which multiple different networks are simultaneously employed for transmitting data from a source to a destination.
- a method of providing minimum-cost routing comprises modeling a network between a source node and a destination node as a trellis graph, wherein each state node of the trellis corresponds to a network node, and each transition between states corresponds to a communication link between network nodes.
- a cost is associated with each link, and then a path is calculated through the trellis that minimizes the total cost for routing data between the source and destination nodes.
- the cost for each link may be based on various combinations of factors, including link capacity, available storage at each node, network traffic loads, link latency, quality of service, etc.
- coding is part of the routing operation, and it may directly affect the cost associated with the links.
- the cost for each link may be updated, and then the process is repeated for the next data set (e.g., coded packet). This process may be repeated for a plurality of coded packets, such as to determine an optimal number of coded packets, code rate, code matrix, and/or other coding parameters prior to encoding and routing the coded data.
- the computerized device may include a memory system, a processor, communications interface in an interconnection mechanism connecting these components.
- the memory system may be encoded with a process that provides the coding techniques as explained herein that, when performed (e.g. when executing) on the processor, operates as explained herein within the computerized device to perform methods and operations explained herein as aspects of the invention.
- a computer program product is one aspect that has a non-transient computer-readable medium including computer program logic encoded thereon that when performed in a computerized device provides associated operations providing the functions explained herein.
- the computer program logic when executed on at least one processor with a computing system, causes the processor to perform the operations (e.g., the methods) indicated herein as aspects of the invention.
- Such aspects are typically provided as software, code and/or other data structures arranged or encoded on a non-transient computer readable medium such as an optical medium (e.g., CD-ROM), floppy or hard disk or other a medium such as firmware or microcode in one or more ROM or RAM or PROM chips or as an Application Specific Integrated Circuit (ASIC) or as downloadable software images in one or more modules, shared libraries, etc.
- the software or firmware or other such configurations can be installed onto a computerized device to cause one or more processors in the computerized device to perform the techniques explained herein.
- Software processes that operate in a collection of computerized devices, such as in a group of data communications devices or other entities can also provide a system in accordance with aspects of the invention. The system can be distributed between many software processes on several data communications devices, or all processes could run on a small set of dedicated computers, or on one computer alone.
- the illustrative system and method aspects is presented as comprising individual functional blocks.
- the functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software.
- the functions of one or more blocks may be provided by a single shared processor or multiple processors.
- Illustrative aspects may comprise microprocessor and/or digital signal processor (DSP) hardware, read-only memory (ROM) for storing software performing the operations discussed below, and random access memory (RAM) for storing results.
- DSP digital signal processor
- ROM read-only memory
- RAM random access memory
- VLSI Very large scale integration
- FPGA field-programmable gate array
- ASIC application specific integrated circuit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
y=Hx+w,
where y is a vector of length Mr of baseband data symbols received by the receiver array having Mr antennas, x is a vector of length Mt of transmitted baseband data symbols from the transmitter array having Mt antennas, H is the Mr×Mr WWAN channel matrix, and w is a vector of length Mr of white Gaussian noise.
H=UΛV*,
where U and V are unitary matrices, and Λ is an Mr×Mt rectangular matrix whose diagonal elements are non-negative real numbers and whose off-diagonal elements are zero. The diagonal elements λ1≧λ2≧ . . . λM (min) are the ordered singular values of matrix H, where M(min) is the smaller of Mr and Mt.
where P is the total transmit power of the transmitter array, N0 is the noise power, so the signal-to-noise ratio is SNR=P/N0, and k is the number of non-zero eigenvalues λi which is the number of spatial degrees of freedom per second per hertz. This is equal to the rank of matrix H. If H has full rank, the MIMO channel provides M(min) spatial degrees of freedom. However, the rank of H is just a crude measure of channel capacity. To better characterize channel capacity, one can consider the individual values of λi, particularly, the log of the values of λi 2, which are summed in the above capacity equation.
where k typically equals the number of transmitted subspaces (e.g., spatial subchannels), Mt, from a transmitter array (not shown), and αi, i denotes the ith random channel coefficient corresponding to the first node 121.1. The set of coefficients α1,i, i={1, . . . , k} may be regarded as the subspace code, or subspace code vector.
where the coefficient αn
where βj denotes a jth subchannel coefficient of a number J12 of subchannels in the
y=Hx+n
where the received signal, y, is a vector with Mr terms {yi, i=1, . . . , Mr} corresponding to signals received by Mr receiver elements (i.e., receiving nodes 121.1-121.N); x represents the transmitted signal, which is a vector having Mt terms {xi, i=1, . . . , Mt} corresponding to signals transmitted by Mt transmitter elements (i.e., transmitting nodes 111.1-111.N); H is an Mr×Mt channel-response matrix that characterizes the complex gains (i.e., transfer function, or spatial gain distribution) from the Mt transmission elements to the Mr receive elements; and n represents AWGN having zero mean and zero variance.
R=EDE H R
where E is an Mt×Mt unitary matrix with columns corresponding to the eigenvectors ei of R, and D is an Mt×Mt diagonal matrix wherein the diagonal elements are eigenvalues λi of R. The diagonal elements of D indicate the channel gain for each of the independent MIMO channels. Alternatively, other eigenvalue-decomposition approaches, such as singular value decomposition, may be employed.
ŝ=E H H H y=E H H H HEs+E H H H n=Ds+{circumflex over (n)}
where {circumflex over (n)} is AWGN having a mean vector of 0 and a covariance matrix of Λn=σ2D.
where L={1, . . . , Ns} signifies the available spatial sub-spaces and K={1, . . . , Nf} represents the available sub-carrier frequencies fn. The received SNR (expressed by ψj(k)) for each transmission channel is expressed by:
for j={1, . . . , Ns} and k={1, . . . , Nf}
where the coefficient αn
where
Ci k is the Direct Sequence spreading signal, G represents processing gain, Tc is the chip duration, Tb is the bit duration, and gT
where {right arrow over (V)}(θ) is an array-response vector, K is the number of received transmission channels, Lk is the number of distinct fading paths corresponding to the kth user, αl k is the fade amplitude associated with path l and user k, φl k=U[0,2π] represents the associated fade phase, τl k is the path time-delay (which occurs below a predetermined duration threshold Tmax), and θl k denotes angle of arrival. The array response vector {right arrow over (V)}(θ) is expressed by:
{right arrow over (V)}(θ)=[1e −πd
where dm is the antenna separation, and λ is the wavelength corresponding to carrier frequency fc.
z l j [n]=W H(θl k)∫+(n−1)T
where W(θl k) is the weighting vector of the beamforming system. zl k[n] can be expressed by four components:
z l k [n]=S i j [n]+ISI i j [n]+IXI i j [n]+ν i j [n]
where S is the desired signal, ISI is inter-symbol interference, IXI is cross interference (i.e., multiple-access interference), and ν is the AWGN contribution. These components can be expressed as follows:
where WH(θl j){right arrow over (V)}(θl j) represents the spatial correlation, φl h and τl j are the random phase and time delay for the jth user's lth path, G is the processing gain, and Rjj and Rkj are the partial auto-correlation and cross-correlation of the direct sequence code(s):
R kj(τ)=∫τ T a k(t)a j(t−τ)dt
which can be processed by a decision processor. In this case, the BER is given by:
P e=∫0 ∞ Q(2r o)f(r o |
where
H=F −1ΛH F,
wherein ΛH is a diagonal matrix whose diagonal elements correspond to the first column of the circulant channel matrix H.
r=F −1ΛH FF −1 Sb,
which is
r=F −1ΛH Sb.
y=Λ H Sb.
r=F −1ΛH FF −1(ΛC F)b,
which can be written as
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/164,254 US9270421B2 (en) | 2002-05-14 | 2014-01-27 | Cooperative subspace demultiplexing in communication networks |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/145,854 US20080095121A1 (en) | 2002-05-14 | 2002-05-14 | Carrier interferometry networks |
US59818704P | 2004-08-02 | 2004-08-02 | |
US11/187,107 US8670390B2 (en) | 2000-11-22 | 2005-07-22 | Cooperative beam-forming in wireless networks |
US14/164,254 US9270421B2 (en) | 2002-05-14 | 2014-01-27 | Cooperative subspace demultiplexing in communication networks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/187,107 Continuation-In-Part US8670390B2 (en) | 2000-11-22 | 2005-07-22 | Cooperative beam-forming in wireless networks |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140140189A1 US20140140189A1 (en) | 2014-05-22 |
US9270421B2 true US9270421B2 (en) | 2016-02-23 |
Family
ID=50727829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/164,254 Expired - Fee Related US9270421B2 (en) | 2002-05-14 | 2014-01-27 | Cooperative subspace demultiplexing in communication networks |
Country Status (1)
Country | Link |
---|---|
US (1) | US9270421B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9936352B2 (en) * | 2015-02-02 | 2018-04-03 | Qualcomm, Incorporated | Techniques for estimating distance between wireless communication devices |
CN109660320A (en) * | 2019-01-17 | 2019-04-19 | 北京航空航天大学 | Network end-to-end Error Control transmission method, device and electronic equipment |
US11064363B2 (en) | 2016-10-11 | 2021-07-13 | Whitefox Defense Technologies, Inc. | Systems and methods for cyber-physical vehicle management, detection and control |
US11134380B2 (en) | 2016-10-11 | 2021-09-28 | Whitefox Defense Technologies, Inc. | Systems and methods for cyber-physical vehicle management, detection and control |
US11558743B2 (en) | 2018-09-05 | 2023-01-17 | Whitefox Defense Technologies, Inc. | Integrated secure device manager systems and methods for cyber-physical vehicles |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2867303C (en) | 2006-02-28 | 2015-07-14 | Helvetia Ip Ag | Methods and apparatus for overlapping mimo antenna physical sectors |
US8064913B2 (en) * | 2007-03-21 | 2011-11-22 | Wi-Lan Inc. | Methods and apparatus for identifying subscriber station mobility |
US9369255B2 (en) * | 2012-10-18 | 2016-06-14 | Massachusetts Institute Of Technology | Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network |
US10374710B2 (en) | 2014-04-04 | 2019-08-06 | Nxgen Partners Ip, Llc | Re-generation and re-transmission of millimeter waves for building penetration |
US11245486B2 (en) | 2014-10-13 | 2022-02-08 | Nxgen Partners Ip, Llc | Application of orbital angular momentum to Fiber, FSO and RF |
US11956035B2 (en) | 2014-10-13 | 2024-04-09 | Nxgen Partners Ip, Llc | System and method for combining MIMO and mode-division multiplexing |
US9998187B2 (en) * | 2014-10-13 | 2018-06-12 | Nxgen Partners Ip, Llc | System and method for combining MIMO and mode-division multiplexing |
WO2016061736A1 (en) * | 2014-10-20 | 2016-04-28 | 华为技术有限公司 | Cooperative locating method and wireless terminal |
US10726353B2 (en) | 2015-08-03 | 2020-07-28 | Nxgen Partners Ip, Llc | Quantum mechanical framework for interaction of OAM with matter and applications in solid states, biosciences and quantum computing |
CN106453460B (en) * | 2015-08-12 | 2021-01-08 | 腾讯科技(深圳)有限公司 | File distribution method, device and system |
WO2017041233A1 (en) * | 2015-09-08 | 2017-03-16 | 广东超算数据安全技术有限公司 | Encoding and storage node repairing method for functional-repair regenerating code |
CN108156658B (en) * | 2016-12-06 | 2021-05-14 | 华为技术有限公司 | Positioning method based on cooperative node, node to be positioned and cooperative node |
US10439287B2 (en) * | 2017-12-21 | 2019-10-08 | Nxgen Partners Ip, Llc | Full duplex using OAM |
CN108062419B (en) * | 2018-01-06 | 2021-04-20 | 深圳市网心科技有限公司 | File storage method, electronic equipment, system and medium |
US11202335B2 (en) | 2019-02-22 | 2021-12-14 | Nxgen Partners Ip, Llc | Combined tunneling and network management system |
US10771076B1 (en) | 2019-03-27 | 2020-09-08 | Rohde & Schwarz Gmbh & Co. Kg | Measuring device, calibration method and measuring method with jitter compensation |
US11152991B2 (en) | 2020-01-23 | 2021-10-19 | Nxgen Partners Ip, Llc | Hybrid digital-analog mmwave repeater/relay with full duplex |
Citations (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4550402A (en) | 1983-12-22 | 1985-10-29 | Ford Motor Company | Data communication system |
US4700341A (en) | 1985-10-30 | 1987-10-13 | Racal Data Communications Inc. | Stochastic time division multiplexing |
US5412648A (en) | 1992-12-25 | 1995-05-02 | Nec Corporation | Packet switching system for forwarding packets from input buffers using idle/busy status of output buffers |
US5630154A (en) * | 1994-10-11 | 1997-05-13 | Hughes Aircraft Company | Programmable systolic array system arranged in a found arrangement for passing data through programmable number of cells in a time interleaved manner |
US5704013A (en) * | 1994-09-16 | 1997-12-30 | Sony Corporation | Map determination method and apparatus |
US5793759A (en) * | 1995-08-25 | 1998-08-11 | Terayon Corporation | Apparatus and method for digital data transmission over video cable using orthogonal cyclic codes |
US5940379A (en) | 1997-07-23 | 1999-08-17 | Motorola, Inc. | Apparatus and method for using multiple spreading codes for data transmission in a satellite communication system |
US5943332A (en) | 1996-12-31 | 1999-08-24 | Lucent Technologies Inc. | Method for implementing virtual private wireless telecommunications networks |
US5955992A (en) | 1998-02-12 | 1999-09-21 | Shattil; Steve J. | Frequency-shifted feedback cavity used as a phased array antenna controller and carrier interference multiple access spread-spectrum transmitter |
US6144711A (en) * | 1996-08-29 | 2000-11-07 | Cisco Systems, Inc. | Spatio-temporal processing for communication |
US6211671B1 (en) | 1994-07-22 | 2001-04-03 | Genghiscomm Corporation | Interference-cancellation system for electromagnetic receivers |
US6233248B1 (en) | 1997-10-14 | 2001-05-15 | Itt Manufacturing Enterprises, Inc. | User data protocol for internet data communications |
US6236642B1 (en) | 1997-07-17 | 2001-05-22 | Siemens Information And Communication Networks, Inc. | Apparatus and method for network resource preservation |
US6243581B1 (en) | 1998-12-11 | 2001-06-05 | Nortel Networks Limited | Method and system for seamless roaming between wireless communication networks with a mobile terminal |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6292473B1 (en) | 1995-12-08 | 2001-09-18 | Motient Services Inc. | Mobile communications terminal for satellite communications system |
US6320897B1 (en) | 1996-10-03 | 2001-11-20 | Wi-Lan Inc. | Multicode spread spectrum communications system |
US20020034191A1 (en) | 1998-02-12 | 2002-03-21 | Shattil Steve J. | Method and apparatus for transmitting and receiving signals having a carrier interferometry architecture |
US20020051433A1 (en) * | 1999-12-23 | 2002-05-02 | Institut National De La Recherche Scientifique | Interference suppression in CDMA systems |
WO2002037771A2 (en) | 2000-11-03 | 2002-05-10 | Telefonaktiebolaget L M Ericsson (Publ) | Systems using mobile terminals having short link radios |
US6389034B1 (en) | 1998-09-04 | 2002-05-14 | Nortel Networks Limited | System for providing stream based and packet based services |
US20020118727A1 (en) * | 2000-05-25 | 2002-08-29 | Samsung Electronics Co., Ltd | Apparatus and method for transmission diversity using more than two antennas |
US20020118781A1 (en) * | 2000-12-29 | 2002-08-29 | Thomas Timothy A. | Method and device for multiple input/multiple output transmit and receive weights for equal-rate data streams |
US20020127978A1 (en) * | 2001-01-30 | 2002-09-12 | Koninklijke Philips Electronics N.V. | Radio communication system |
US20020137472A1 (en) | 2001-01-23 | 2002-09-26 | Quinn Liam B. | Wireless antenna switching system |
US20020181509A1 (en) | 2001-04-24 | 2002-12-05 | Mody Apurva N. | Time and frequency synchronization in multi-input, multi-output (MIMO) systems |
US6507319B2 (en) | 2000-08-31 | 2003-01-14 | Raytheon Company | Mechanically steerable array antenna |
US20030026222A1 (en) | 2001-08-02 | 2003-02-06 | Kotzin Michael D. | Method and apparatus for aggregation of wireless resources of proximal wireless units to facilitate diversity signal combining |
US6532224B1 (en) | 1999-05-10 | 2003-03-11 | Ericsson, Inc. | Method, systems, and terminals for assigning control channel time slots for group and individual pages |
US20030072380A1 (en) * | 2001-10-11 | 2003-04-17 | Agere Systems Guardian Corp. | Method and apparatus for cross-talk mitigation through joint multiuser adaptive pre-coding |
US6567482B1 (en) | 1999-03-05 | 2003-05-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for efficient synchronization in spread spectrum communications |
US20030133469A1 (en) | 2002-01-12 | 2003-07-17 | Brockmann Ronald A. | Transmission protection for communications networks having stations operating with different modulation formats |
US20030154262A1 (en) | 2002-01-02 | 2003-08-14 | Kaiser William J. | Autonomous tracking wireless imaging sensor network |
US20030206527A1 (en) | 1995-10-02 | 2003-11-06 | Telefonaktiebolaget Lm Ericsson | Transmitting data between multiple computer processors |
US6650645B2 (en) | 1999-05-28 | 2003-11-18 | Network Equipment Technologies, Inc. | Bi-modal control system and method for partitioning a shared output buffer in a connection-oriented network connections device |
US6662024B2 (en) | 2001-05-16 | 2003-12-09 | Qualcomm Incorporated | Method and apparatus for allocating downlink resources in a multiple-input multiple-output (MIMO) communication system |
US6665521B1 (en) | 2000-08-17 | 2003-12-16 | Motorola, Inc. | Method and apparatus for cooperative diversity |
US6674999B2 (en) | 2001-03-16 | 2004-01-06 | Skyworks Solutions, Inc | Dynamically varying linearity system for an RF front-end of a communication device |
US6704794B1 (en) | 2000-03-03 | 2004-03-09 | Nokia Intelligent Edge Routers Inc. | Cell reassembly for packet based networks |
US6728295B1 (en) | 1999-06-30 | 2004-04-27 | University Of Hong Kong | Code division multiple access communication system using overlapping spread sequences |
US6778514B1 (en) * | 2000-05-31 | 2004-08-17 | Cadence Design Systems, Inc. | Subspace combination of multisensor output signals |
US6785513B1 (en) | 2001-04-05 | 2004-08-31 | Cowave Networks, Inc. | Method and system for clustered wireless networks |
US20040223476A1 (en) | 2002-11-04 | 2004-11-11 | Bobby Jose | Signal communication coordination |
US6832251B1 (en) | 1999-10-06 | 2004-12-14 | Sensoria Corporation | Method and apparatus for distributed signal processing among internetworked wireless integrated network sensors (WINS) |
US6907270B1 (en) * | 2000-10-23 | 2005-06-14 | Qualcomm Inc. | Method and apparatus for reduced rank channel estimation in a communications system |
US20050198199A1 (en) | 2000-10-27 | 2005-09-08 | Dowling Eric M. | Federated multiprotocol communication |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
US20050265275A1 (en) | 2004-05-07 | 2005-12-01 | Howard Steven J | Continuous beamforming for a MIMO-OFDM system |
US6980768B2 (en) | 2001-09-25 | 2005-12-27 | Qwest Communications International, Inc. | Spread spectrum signal distribution throughout a building |
US20050286476A1 (en) | 2004-06-04 | 2005-12-29 | Crosswy William C | Portable computing device for wireless communications and method of operation |
US6982968B1 (en) | 2000-09-29 | 2006-01-03 | Arraycomm, Inc. | Non-directional transmitting from a wireless data base station having a smart antenna system |
US6996076B1 (en) | 2001-03-29 | 2006-02-07 | Sonus Networks, Inc. | System and method to internetwork wireless telecommunication networks |
US7057555B2 (en) | 2002-11-27 | 2006-06-06 | Cisco Technology, Inc. | Wireless LAN with distributed access points for space management |
US20060120477A1 (en) * | 2004-12-07 | 2006-06-08 | Adaptix, Inc. | Cooperative MIMO in multicell wireless networks |
US7076168B1 (en) | 1998-02-12 | 2006-07-11 | Aquity, Llc | Method and apparatus for using multicarrier interferometry to enhance optical fiber communications |
US7149211B2 (en) | 2000-03-02 | 2006-12-12 | Agere Systems Inc. | Virtual reassembly system and method of operation thereof |
US7155255B2 (en) | 2001-10-25 | 2006-12-26 | Motorola, Inc. | Communication equipment, transcoder device and method for processing frames associated with a plurality of wireless protocols |
US7194766B2 (en) | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US7283799B2 (en) | 1997-05-23 | 2007-10-16 | Lot 41 Acquisition Foundation, Llc | Cancellation system for frequency reuse in microwave communications |
US7286604B2 (en) | 2003-05-27 | 2007-10-23 | Aquity Llc | Carrier interferometry coding and multicarrier processing |
US7317750B2 (en) | 2002-10-31 | 2008-01-08 | Lot 41 Acquisition Foundation, Llc | Orthogonal superposition coding for direct-sequence communications |
US7391804B2 (en) | 2000-04-04 | 2008-06-24 | Lot 41 Acquisition Foundation, Llc | Spread spectrum communication method and system using diversity correlation and multi-user detection |
US7406261B2 (en) | 1999-11-02 | 2008-07-29 | Lot 41 Acquisition Foundation, Llc | Unified multi-carrier framework for multiple-access technologies |
US7418043B2 (en) | 2000-07-19 | 2008-08-26 | Lot 41 Acquisition Foundation, Llc | Software adaptable high performance multicarrier transmission protocol |
US7508798B2 (en) | 2002-12-16 | 2009-03-24 | Nortel Networks Limited | Virtual mimo communication system |
US7593449B2 (en) | 1998-02-12 | 2009-09-22 | Steve Shattil | Multicarrier sub-layer for direct sequence channel and multiple-access coding |
US7594010B2 (en) | 2001-06-28 | 2009-09-22 | King's London College | Virtual antenna array |
US7606137B2 (en) | 1993-07-23 | 2009-10-20 | Shattil Steven J | Cancellation systems for multicarrier transceiver arrays |
US7787514B2 (en) | 1998-02-12 | 2010-08-31 | Lot 41 Acquisition Foundation, Llc | Carrier interferometry coding with applications to cellular and local area networks |
US20110041021A1 (en) * | 2009-08-14 | 2011-02-17 | Sharp Laboratories Of America, Inc. | Transmission of different redundancy versions on different degrees of freedom |
US8396153B1 (en) * | 2004-12-07 | 2013-03-12 | Adaptix, Inc. | Cooperative MIMO in multicell wireless networks |
US8780830B2 (en) * | 2009-01-23 | 2014-07-15 | Nokia Corporation | Interference suppression during device-to-device communications |
-
2014
- 2014-01-27 US US14/164,254 patent/US9270421B2/en not_active Expired - Fee Related
Patent Citations (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4550402A (en) | 1983-12-22 | 1985-10-29 | Ford Motor Company | Data communication system |
US4700341A (en) | 1985-10-30 | 1987-10-13 | Racal Data Communications Inc. | Stochastic time division multiplexing |
US5412648A (en) | 1992-12-25 | 1995-05-02 | Nec Corporation | Packet switching system for forwarding packets from input buffers using idle/busy status of output buffers |
US7606137B2 (en) | 1993-07-23 | 2009-10-20 | Shattil Steven J | Cancellation systems for multicarrier transceiver arrays |
US6211671B1 (en) | 1994-07-22 | 2001-04-03 | Genghiscomm Corporation | Interference-cancellation system for electromagnetic receivers |
US5704013A (en) * | 1994-09-16 | 1997-12-30 | Sony Corporation | Map determination method and apparatus |
US5630154A (en) * | 1994-10-11 | 1997-05-13 | Hughes Aircraft Company | Programmable systolic array system arranged in a found arrangement for passing data through programmable number of cells in a time interleaved manner |
US5793759A (en) * | 1995-08-25 | 1998-08-11 | Terayon Corporation | Apparatus and method for digital data transmission over video cable using orthogonal cyclic codes |
US20030206527A1 (en) | 1995-10-02 | 2003-11-06 | Telefonaktiebolaget Lm Ericsson | Transmitting data between multiple computer processors |
US6292473B1 (en) | 1995-12-08 | 2001-09-18 | Motient Services Inc. | Mobile communications terminal for satellite communications system |
US6144711A (en) * | 1996-08-29 | 2000-11-07 | Cisco Systems, Inc. | Spatio-temporal processing for communication |
US6320897B1 (en) | 1996-10-03 | 2001-11-20 | Wi-Lan Inc. | Multicode spread spectrum communications system |
US5943332A (en) | 1996-12-31 | 1999-08-24 | Lucent Technologies Inc. | Method for implementing virtual private wireless telecommunications networks |
US7283799B2 (en) | 1997-05-23 | 2007-10-16 | Lot 41 Acquisition Foundation, Llc | Cancellation system for frequency reuse in microwave communications |
US6236642B1 (en) | 1997-07-17 | 2001-05-22 | Siemens Information And Communication Networks, Inc. | Apparatus and method for network resource preservation |
US5940379A (en) | 1997-07-23 | 1999-08-17 | Motorola, Inc. | Apparatus and method for using multiple spreading codes for data transmission in a satellite communication system |
US7031309B1 (en) | 1997-10-14 | 2006-04-18 | Itt Manufacturing Enterprises, Inc. | User data protocol for internet data communications |
US6233248B1 (en) | 1997-10-14 | 2001-05-15 | Itt Manufacturing Enterprises, Inc. | User data protocol for internet data communications |
US7010048B1 (en) | 1998-02-12 | 2006-03-07 | Aqvity, Llc | Multiple access method and system |
US7787514B2 (en) | 1998-02-12 | 2010-08-31 | Lot 41 Acquisition Foundation, Llc | Carrier interferometry coding with applications to cellular and local area networks |
US5955992A (en) | 1998-02-12 | 1999-09-21 | Shattil; Steve J. | Frequency-shifted feedback cavity used as a phased array antenna controller and carrier interference multiple access spread-spectrum transmitter |
US7593449B2 (en) | 1998-02-12 | 2009-09-22 | Steve Shattil | Multicarrier sub-layer for direct sequence channel and multiple-access coding |
US20020034191A1 (en) | 1998-02-12 | 2002-03-21 | Shattil Steve J. | Method and apparatus for transmitting and receiving signals having a carrier interferometry architecture |
US7076168B1 (en) | 1998-02-12 | 2006-07-11 | Aquity, Llc | Method and apparatus for using multicarrier interferometry to enhance optical fiber communications |
US6686879B2 (en) | 1998-02-12 | 2004-02-03 | Genghiscomm, Llc | Method and apparatus for transmitting and receiving signals having a carrier interferometry architecture |
US6389034B1 (en) | 1998-09-04 | 2002-05-14 | Nortel Networks Limited | System for providing stream based and packet based services |
US6266702B1 (en) | 1998-09-28 | 2001-07-24 | Raytheon Company | Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data |
US6243581B1 (en) | 1998-12-11 | 2001-06-05 | Nortel Networks Limited | Method and system for seamless roaming between wireless communication networks with a mobile terminal |
US6567482B1 (en) | 1999-03-05 | 2003-05-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for efficient synchronization in spread spectrum communications |
US6532224B1 (en) | 1999-05-10 | 2003-03-11 | Ericsson, Inc. | Method, systems, and terminals for assigning control channel time slots for group and individual pages |
US6650645B2 (en) | 1999-05-28 | 2003-11-18 | Network Equipment Technologies, Inc. | Bi-modal control system and method for partitioning a shared output buffer in a connection-oriented network connections device |
US6728295B1 (en) | 1999-06-30 | 2004-04-27 | University Of Hong Kong | Code division multiple access communication system using overlapping spread sequences |
US6832251B1 (en) | 1999-10-06 | 2004-12-14 | Sensoria Corporation | Method and apparatus for distributed signal processing among internetworked wireless integrated network sensors (WINS) |
US7406261B2 (en) | 1999-11-02 | 2008-07-29 | Lot 41 Acquisition Foundation, Llc | Unified multi-carrier framework for multiple-access technologies |
US20020051433A1 (en) * | 1999-12-23 | 2002-05-02 | Institut National De La Recherche Scientifique | Interference suppression in CDMA systems |
US7149211B2 (en) | 2000-03-02 | 2006-12-12 | Agere Systems Inc. | Virtual reassembly system and method of operation thereof |
US6704794B1 (en) | 2000-03-03 | 2004-03-09 | Nokia Intelligent Edge Routers Inc. | Cell reassembly for packet based networks |
US7391804B2 (en) | 2000-04-04 | 2008-06-24 | Lot 41 Acquisition Foundation, Llc | Spread spectrum communication method and system using diversity correlation and multi-user detection |
US20020118727A1 (en) * | 2000-05-25 | 2002-08-29 | Samsung Electronics Co., Ltd | Apparatus and method for transmission diversity using more than two antennas |
US6778514B1 (en) * | 2000-05-31 | 2004-08-17 | Cadence Design Systems, Inc. | Subspace combination of multisensor output signals |
US7418043B2 (en) | 2000-07-19 | 2008-08-26 | Lot 41 Acquisition Foundation, Llc | Software adaptable high performance multicarrier transmission protocol |
US6665521B1 (en) | 2000-08-17 | 2003-12-16 | Motorola, Inc. | Method and apparatus for cooperative diversity |
US6507319B2 (en) | 2000-08-31 | 2003-01-14 | Raytheon Company | Mechanically steerable array antenna |
US6982968B1 (en) | 2000-09-29 | 2006-01-03 | Arraycomm, Inc. | Non-directional transmitting from a wireless data base station having a smart antenna system |
US6907270B1 (en) * | 2000-10-23 | 2005-06-14 | Qualcomm Inc. | Method and apparatus for reduced rank channel estimation in a communications system |
US20050198199A1 (en) | 2000-10-27 | 2005-09-08 | Dowling Eric M. | Federated multiprotocol communication |
WO2002037771A2 (en) | 2000-11-03 | 2002-05-10 | Telefonaktiebolaget L M Ericsson (Publ) | Systems using mobile terminals having short link radios |
US20020118781A1 (en) * | 2000-12-29 | 2002-08-29 | Thomas Timothy A. | Method and device for multiple input/multiple output transmit and receive weights for equal-rate data streams |
US20020137472A1 (en) | 2001-01-23 | 2002-09-26 | Quinn Liam B. | Wireless antenna switching system |
US20020127978A1 (en) * | 2001-01-30 | 2002-09-12 | Koninklijke Philips Electronics N.V. | Radio communication system |
US6674999B2 (en) | 2001-03-16 | 2004-01-06 | Skyworks Solutions, Inc | Dynamically varying linearity system for an RF front-end of a communication device |
US6996076B1 (en) | 2001-03-29 | 2006-02-07 | Sonus Networks, Inc. | System and method to internetwork wireless telecommunication networks |
US6785513B1 (en) | 2001-04-05 | 2004-08-31 | Cowave Networks, Inc. | Method and system for clustered wireless networks |
US20020181509A1 (en) | 2001-04-24 | 2002-12-05 | Mody Apurva N. | Time and frequency synchronization in multi-input, multi-output (MIMO) systems |
US6944168B2 (en) | 2001-05-04 | 2005-09-13 | Slt Logic Llc | System and method for providing transformation of multi-protocol packets in a data stream |
US6662024B2 (en) | 2001-05-16 | 2003-12-09 | Qualcomm Incorporated | Method and apparatus for allocating downlink resources in a multiple-input multiple-output (MIMO) communication system |
US7194766B2 (en) | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US7594010B2 (en) | 2001-06-28 | 2009-09-22 | King's London College | Virtual antenna array |
US20030026222A1 (en) | 2001-08-02 | 2003-02-06 | Kotzin Michael D. | Method and apparatus for aggregation of wireless resources of proximal wireless units to facilitate diversity signal combining |
US6980768B2 (en) | 2001-09-25 | 2005-12-27 | Qwest Communications International, Inc. | Spread spectrum signal distribution throughout a building |
US20030072380A1 (en) * | 2001-10-11 | 2003-04-17 | Agere Systems Guardian Corp. | Method and apparatus for cross-talk mitigation through joint multiuser adaptive pre-coding |
US7155255B2 (en) | 2001-10-25 | 2006-12-26 | Motorola, Inc. | Communication equipment, transcoder device and method for processing frames associated with a plurality of wireless protocols |
US20030154262A1 (en) | 2002-01-02 | 2003-08-14 | Kaiser William J. | Autonomous tracking wireless imaging sensor network |
US20030133469A1 (en) | 2002-01-12 | 2003-07-17 | Brockmann Ronald A. | Transmission protection for communications networks having stations operating with different modulation formats |
US7317750B2 (en) | 2002-10-31 | 2008-01-08 | Lot 41 Acquisition Foundation, Llc | Orthogonal superposition coding for direct-sequence communications |
US20040223476A1 (en) | 2002-11-04 | 2004-11-11 | Bobby Jose | Signal communication coordination |
US7057555B2 (en) | 2002-11-27 | 2006-06-06 | Cisco Technology, Inc. | Wireless LAN with distributed access points for space management |
US7508798B2 (en) | 2002-12-16 | 2009-03-24 | Nortel Networks Limited | Virtual mimo communication system |
US7286604B2 (en) | 2003-05-27 | 2007-10-23 | Aquity Llc | Carrier interferometry coding and multicarrier processing |
US20050265275A1 (en) | 2004-05-07 | 2005-12-01 | Howard Steven J | Continuous beamforming for a MIMO-OFDM system |
US20050286476A1 (en) | 2004-06-04 | 2005-12-29 | Crosswy William C | Portable computing device for wireless communications and method of operation |
US20060120477A1 (en) * | 2004-12-07 | 2006-06-08 | Adaptix, Inc. | Cooperative MIMO in multicell wireless networks |
US8396153B1 (en) * | 2004-12-07 | 2013-03-12 | Adaptix, Inc. | Cooperative MIMO in multicell wireless networks |
US8780830B2 (en) * | 2009-01-23 | 2014-07-15 | Nokia Corporation | Interference suppression during device-to-device communications |
US20110041021A1 (en) * | 2009-08-14 | 2011-02-17 | Sharp Laboratories Of America, Inc. | Transmission of different redundancy versions on different degrees of freedom |
Non-Patent Citations (23)
Title |
---|
Final Office Action dated Feb. 25, 2009 from corresponding U.S. Appl. No. 11/187,107. |
Final Office Action dated Feb. 28, 2012 from corresponding U.S. Appl. No. 12/545,572. |
Final Office Action dated Jan. 2, 2014 from corresponding U.S. Appl. No. 12/545,572. |
G. Barriac, et al. Distributed Beamforming for Information Transfer in Sensor Networks, Apr. 26-27, 2004, Berkeley, CA, ACM 1-58113-6/04/0004. |
Non-Final Office Action dated Apr. 27, 2006 from corresponding U.S. Appl. No. 10/145,854. |
Non-Final Office Action dated Apr. 8, 2008 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Apr. 9, 2007 from corresponding U.S. Appl. No. 10/145,854. |
Non-Final Office Action dated Jan. 4, 2012 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Jul. 25, 2013 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Jun. 6, 2013 from corresponding U.S. Appl. No. 12/545,572. |
Non-Final Office Action dated Mar. 30, 2011 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated May 25, 2010 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Nov. 2, 2009 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Nov. 27, 2006 from corresponding U.S. Appl. No. 10/145,854. |
Non-Final Office Action dated Oct. 14, 2011 from corresponding U.S. Appl. No. 12/545,572. |
Non-Final Office Action dated Oct. 18, 2010 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Oct. 4, 2012 from corresponding U.S. Appl. No. 11/187,107. |
Non-Final Office Action dated Oct. 5, 2012 from corresponding U.S. Appl. No. 12/545,572. |
Non-Final Office Action dated Sep. 9, 2008 from corresponding U.S. Appl. No. 10/145,854. |
Notice of Allowance dated Apr. 14, 2014 from corresponding U.S. Appl. No. 12/545,572. |
Notice of Allowance dated Feb. 25, 2009 from corresponding U.S. Appl. No. 10/145,854. |
Notice of Allowance dated Nov. 20, 2013 from corresponding U.S. Appl. No. 11/187,107. |
Y. Tang and M.C. Valenti, "Coded transmit macrodiversity: Block space-time codes over distributed antennas," in Proc. IEEE Vehicular Tech. Conf (VTC), Rhodes, Greece, May 2001, pp. 1435-1438. |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9936352B2 (en) * | 2015-02-02 | 2018-04-03 | Qualcomm, Incorporated | Techniques for estimating distance between wireless communication devices |
US11064363B2 (en) | 2016-10-11 | 2021-07-13 | Whitefox Defense Technologies, Inc. | Systems and methods for cyber-physical vehicle management, detection and control |
US11134380B2 (en) | 2016-10-11 | 2021-09-28 | Whitefox Defense Technologies, Inc. | Systems and methods for cyber-physical vehicle management, detection and control |
US11558743B2 (en) | 2018-09-05 | 2023-01-17 | Whitefox Defense Technologies, Inc. | Integrated secure device manager systems and methods for cyber-physical vehicles |
US12022289B2 (en) | 2018-09-05 | 2024-06-25 | Whitefox Defense Technologies, Inc. | Integrated secure device manager systems and methods for cyber-physical vehicles |
CN109660320A (en) * | 2019-01-17 | 2019-04-19 | 北京航空航天大学 | Network end-to-end Error Control transmission method, device and electronic equipment |
CN109660320B (en) * | 2019-01-17 | 2020-09-01 | 北京航空航天大学 | Network end-to-end error control transmission method and device and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
US20140140189A1 (en) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10587369B1 (en) | Cooperative subspace multiplexing | |
US9225471B2 (en) | Cooperative subspace multiplexing in communication networks | |
US9270421B2 (en) | Cooperative subspace demultiplexing in communication networks | |
US8942082B2 (en) | Cooperative subspace multiplexing in content delivery networks | |
US10840978B2 (en) | Cooperative wireless networks | |
US9136931B2 (en) | Cooperative wireless networks | |
WO2007000742A2 (en) | Adaptive modulation for cooperative coded systems | |
US11184037B1 (en) | Demodulating and decoding carrier interferometry signals | |
US11552737B1 (en) | Cooperative MIMO | |
Jemmali | Performance evaluation and analysis of MIMO schemes in LTE networks environment | |
US12095529B2 (en) | Spread-OFDM receiver | |
Gómez-Cuba et al. | Full-stack hybrid beamforming in mmWave 5G networks | |
Zaeri Amirani | Performance trade-off analysis in bidirectional network beamforming. | |
El Moutaouakkil | Spectrum-efficient cognitive MIMO relaying: a practical design perspective | |
Ge et al. | Relay selection in distributed transmission based on the Golden Code in wireless networks | |
AlMaeeni | Exact Performance Analysis of Cooperative Non-Coherent Detection under Symmetric and Asymmetric Fading | |
Sánchez González | Cooperative communications with real-world constraints | |
Thilagam | Studies On Some Physical Layer Mechanisms In Cooperative Wireless Systems | |
Diameh | The optimization of multiple antenna broadband wireless communications. A study of propagation, space-time coding and spatial envelope correlation in Multiple Input, Multiple Output radio systems | |
Kim et al. | Study of system throughput and fairness issues in cooperative transmissions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
AS | Assignment |
Owner name: GENGHISCOMM HOLDINGS, LLC, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHATTIL, STEVE J;REEL/FRAME:037092/0653 Effective date: 20151119 |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: GENGHISCOMM HOLDINGS, LLC, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEPARTMENT 13, INC.;REEL/FRAME:059709/0683 Effective date: 20211104 Owner name: GENGHISCOMM HOLDINGS, LLC, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SHATTIL, STEVE J;REEL/FRAME:059310/0087 Effective date: 20211104 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20240223 |