Examples described herein include sliding window methods for calculating frequency-localized weights for adaptive beamformers. A window of subcarriers may be used to calculate a cross-correlation vector, inverse covariance matrix, or other components used in a weight calculation for a particular subcarrier. In some examples, a next window of subcarriers may include additional subcarriers, and may not include other subcarriers. The previously-calculated cross-correlation vector, inverse covariance matrix, or other components may be updated in accordance with updates and downdates associated with the added and removed subcarriers. The updated components may be used to generate weights for a subcarrier in the next window.
|
15. A method comprising:
receiving data streams at a plurality of antennas in a range of subcarrier frequencies;
at a beamformer, for each subcarrier frequency in the range of subcarrier frequencies, calculating for each subcarrier of the range of subcarrier frequencies, a respective plurality of weights:
utilizing a window of subcarrier frequencies centered at a particular subcarrier; and
calculating an inverse covariance matrix for the particular subcarrier based on a previously-calculated covariance matrix for a different window of subcarrier frequencies incorporating a different subcarrier of the window of subcarrier frequencies; and
at the beamformer provide the respective plurality of weights for the particular subcarrier.
1. A receiver comprising:
a processor coupled to memory;
a plurality of antennas in communication with the processor, the plurality of antennas configured to receive data streams in a frequency band spanning multiple subcarrier frequencies; and
a beamformer coupled to the plurality of antennas and in communication with the processor, the beamformer configured to receive the data streams, the beamformer comprising a weight processor configured to calculate, for each subcarrier of the frequency band, a respective plurality of weights used to generate signals for transmission by or combine the signals received at respective ones of the plurality of antennas;
wherein the weight processor is configured to calculate weights for a particular subcarrier at least in part by:
utilizing a window of subcarrier frequencies centered at the particular subcarrier; and
calculating an inverse covariance matrix for the particular subcarrier based on a previously-calculated inverse covariance matrix for a different window of subcarrier frequencies incorporating a different subcarrier of the window of subcarrier frequencies; and
wherein the weight processor is further configured to provide the respective plurality of weights for the particular subcarrier.
2. The receiver of
3. The receiver of
calculating a least squares solution for the particular subcarrier using the inverse covariance matrix to provide the respective plurality of weights for the particular subcarrier.
4. The receiver of
5. The receiver of
6. The receiver of
7. The receiver of
8. The receiver of
sliding, to the window of subcarrier frequencies, from the different window of subcarrier frequencies by a subcarrier to incorporate the different subcarrier of the window of subcarrier frequencies.
9. The receiver of
10. The receiver of
11. The receiver of
12. The receiver of
13. The receiver of
14. The receiver of
16. The method of
17. The method of
calculating a least squares solution for the particular subcarrier using the inverse covariance matrix to provide the respective plurality of weights for the particular subcarrier.
18. The method of
sliding, to the window of subcarrier frequencies, from the different window of subcarrier frequencies by a subcarrier to incorporate the different subcarrier of the window of subcarrier frequencies.
19. The method of
20. The method of
identifying a subband to include subcarrier frequencies with training data based on a time-bandwidth product of the subcarrier frequencies centered at the particular subcarrier; and
centering the window of subcarrier frequencies based on the subband including the subcarrier frequencies with the training data.
21. The method of
22. The method of
calculating an orthogonal frequency division multiplexing (OFDM) Fast Fourier Transform (FFT) for each data stream to generate a corresponding representation of the data stream in a frequency domain; and
providing the corresponding representation of the data stream in the frequency domain to a respective input of the beamformer.
23. The method of
24. The method of
receiving additional data streams; and
applying respective pluralities of weights for each respective subcarrier to each additional data stream.
25. The method of
calculating the inverse covariance matrix for the particular subcarrier using a linear transformation of the data streams, such that the data streams comprise an identity spatial covariance matrix of dimension K, where K is a number of antennas of the plurality of antennas.
|
Examples of wireless communication systems are described herein, for example, wireless systems in wide-area networks (WANs) utilized in cellular and wireless internet services. Examples of systems and methods are described herein that may utilize spatial processing algorithms to achieve higher spectral efficiency and enable more efficient handling of frequency-selective wireless channels.
Today's wireless wide-area networks (WANs), e.g., as utilized for cellular and wireless internet services, suffer from data capacity shortages due to the proliferation of data-hungry devices such as smart phones, tablets, and notebooks. The number of devices accessing wireless networks, and their demand for ever greater data transfer speeds and broadband network capacities, are growing at exponential rates. These data demands are causing severe congestion in the limited radio frequency (RF) bands allocated for such services. In addition, new fixed wireless networks are coming to market as lower-cost and faster-deploying alternatives to fiber-based residential and enterprise broadband services, further compounding these capacity shortages and further saturating existing wireless RF bands.
While integrated circuit technology continues to advance and computing speeds to grow at exponential rates in accordance with Moore's law, the fundamental radio resource limitation arising from spectrum saturation is impeding further capacity improvements in today's wireless networks. As a result, many companies are focusing attention on the under-utilized millimeter-wave (mm-Wave) bands at radio frequencies of 24 GHz and above (e.g., the 60-GHz band). The large amount of untapped spectrum available in these higher bands appears on the surface as a potential remedy for the capacity crunch, especially as recent advances in silicon technology are making radio transceivers in those bands increasingly cost-effective. However, their poor propagation characteristics and higher attenuation factors above 6 GHz are making it difficult to use these bands for wireless access networks, as they require much higher tower densities per unit area than traditional cellular bands.
In parallel, many modern wireless systems have adopted multi-antenna radio architectures, e.g., antenna arrays, and associated spatial multiplexing methods in an effort to secure the needed capacity increases. Their goal is to exploit the spatial diversity afforded by antenna arrays to achieve a capacity multiplier and/or cell densification through extensive frequency reuse. Such spatial processing systems are referred to variously as adaptive arrays, beamforming, multiple-input-multiple-output (MIMO) spatial multiplexing, and space-time-adaptive processing (STAP), to name a few.
Among currently deployed spatial processing methods, the MIMO multiplexing class is most common. MIMO spatial multiplexing is usually implemented using a time-division duplex (TDD) protocol that transmits multiple, independent data streams on various antenna elements during a node's transmit cycle, while the receiving node uses channel sounding information to invert the propagation channel connecting the two node arrays, thus separating and recovering the transmitted streams at the receiving end. (While frequency-division duplexing (FDD) MIMO protocols are also possible, TDD enables more efficient channel sounding procedures.) A drawback of MIMO spatial multiplexing is that it may be susceptible to interference from uncooperative emitters, in so far as such emitters are not designed to participate in the MIMO channel sounding protocols critical to achieving MIMO frequency reuse through channel inversion. A more fundamental drawback of MIMO spatial multiplexing is that it is heavily dependent on channel propagation characteristics for successful operation. For example, most outdoor channels, where most of the capacity crunch is taking place, fall short of the rich multipath diversity needed to support low-noise channel inversion and deliver the capacity improvements promised by MIMO. Accordingly, MIMO spatial multiplexing has proliferated primarily for indoor local-area network (LAN) applications, especially in Wi-Fi product offerings, where outside (uncooperative) signals are attenuated by walls, and the richer indoor multipath channels often support significant MIMO capacity multipliers, e.g., factors of 2 to 4 and sometimes greater.
Certain details are set forth herein to provide an understanding of described embodiments of technology. However, other examples may be practiced without various of these particular details. In some instances, well-known circuits, control signals, timing protocols, and/or software operations have not been shown in detail in order to avoid unnecessarily obscuring the described embodiments. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here.
In contrast to more traditional MIMO spatial multiplexing methods based on channel inversion, the largely untapped domain of STAP processing is a more effective spatial processing technology for outdoor wireless WAN applications, offering an alternative solution to alleviate the capacity crunch through multiple-access (e.g., multiple-link) frequency reuse without requiring multipath channels for its operation. A subclass of STAP processing, adaptive beamforming, is of particular interest in this regard, as it adapts spatial filters, e.g., antenna array beamformers, to explicitly attenuate interfering signals while maximizing gain on desired signals. This technology, referred to herein as STAP beamforming, can be used to provide extensive frequency reuse to the point of dense in-cell spectrum sharing, such as supporting multiple point-to-multipoint (PtMP) links in a single cell or sector using the same frequencies, regardless of multipath levels, and without causing significant interference among the co-channel links. The STAP beamformer achieves this interference attenuation by forming spatial response-pattern dips, called spatial nulls, in the directions-of-arrival of all interfering rays arriving at the receiving antenna array. Accordingly, STAP beamforming can significantly increase frequency reuse factors in the crowded lower frequency bands in some examples, readily providing large wireless WAN capacity multipliers (e.g., 6× or more) in outdoor WAN channels. Moreover, these STAP beamforming benefits may be independent of frequency band, applying equally to lower and higher frequency bands including the mm-Wave bands.
The capacity gains of STAP beamforming are not dependent on multipath, exploiting instead the angular diversity of arriving RF propagation rays on the antenna array. Moreover, when multipath is present, STAP beamforming is able to exploit it to even greater benefit if the adaptive beamformer is designed properly. The greatest frequency-reuse gains of STAP processing may generally be realized by employing STAP beamformers in a retro-directive TDD arrangement, wherein the beamformer is adapted during the receive cycle as an interference-nulling receiver, and used during the subsequent transmit cycle as an interference-minimizing transmitter that focuses maximum radiation on the intended receiving node and away from unintended nodes. For example, retro-directive operation may be used to enable the earlier-mentioned PtMP cell topology.
The use of antenna arrays and spatial processing in a wireless system requires extended payload transmission protocols to inject training data at regular intervals, in order to maintain the spatial solution (e.g., the STAP beamformer) in ever-changing real-world environments. Most non-spatial communication signals already include various maintenance waveforms in the form of preambles, midambles, pilot tones, pilot codes, synchronization bursts, etc., all of which rob from payload capacity. These are normally transmitted repetitively in a recurrent protocol called a frame format. To these a spatially-equipped wireless system may need to add spatial (e.g., beamformer) training data, further compounding capacity losses if not designed judiciously. The STAP solution is renewed on each recurrence of the training data and applied as a fixed solution (e.g., as a fixed STAP beamformer) during the intervening payload section of the frame. While the existing maintenance waveforms may be exploitable to assist in spatial training, thereby reducing spatial training losses, the core tradeoff is to find ways to minimize the amount of additional spatial training data required. For efficient implementation the spatial training data may be incorporated into a fixed segment within the frame, with the frame sized in turn so that the training data, referred to as the training sequence, recurs at regular time-intervals as required to maintain the spatial solution.
In theory, the maximum payload capacity that can be sustained by a STAP system utilizing adaptive beamforming increases with the number of antennas. However, the amount of training data and related processing required to adapt the beamformer also grows with the number of antennas. The amount of processing required to compute a STAP beamforming solution can be either cubic or quadratic in the number of antennas in theory, depending on the desired accuracy of the STAP solution. Comparably, the amount of training data required, expressed as the required time-bandwidth product (TBP) of the training data, grows linearly with the number of antennas. As a rule of thumb, the training TBP of an adaptive beamformer, expressed as a number of training samples, should be at least 4N samples for an N-element antenna array. While the former computing costs will continue to decrease with the advancement of silicon technology, the latter training TBP, which displaces valuable payload data and reduces the effective data (e.g., payload) throughput of the system, is a fundamental system cost that is independent of silicon technology.
Training overhead, defined as losses in system payload capacity and spectral efficiency due to the need to train and maintain the STAP beamformers, is generally proportional to the product of the training TBP (for a single training instance or training sequence), and the required frequency such training/retraining operations. The latter is dictated by channel dynamics. If the wireless channel is static, the system can train the STAP beamformer a single time and continue thenceforth to use it indefinitely into the future. In this idealized case the training overhead would be essentially zero, having negligible impact on system and network payload capacity. In practice, however, RF channels are time-varying, and interfering links come and go. The average time in which the channel remains relatively static is known as the coherence time. The ratio of the training TBP to the coherence time represents the training overhead required to maintain the STAP solution. This overhead can reduce payload capacity by significant percentages, e.g., 10% to 30% or more in typical wireless applications. This overhead can be reduced somewhat by using the actual payload for training, in addition to known pilot symbols, but this also comes with drawbacks, including performance degradations, added latency, and risk of capture by an interfering signal.
While STAP beamforming may provide frequency reuse benefits independently of multipath, it must be designed to contend with the multipath variants that occur in outdoor environments. Outdoor multipath may be nearly absent in line-of-sight (LOS) network conditions, but more commonly it occurs in forms that can be problematic. In particular, outdoor multipath presents greater multipath ray delays than indoor multipath. The longer delays create a multipath channel that varies rapidly in frequency relative to the wireless system bandwidth. For MIMO spatial multiplexing methods, these frequency variations may further hamper the inversion of a channel that defies a unified characterization across the signal bandwidth. For STAP beamforming, the frequency variations may cause misadjustment problems, e.g., a failure to fully converge the solution, hence admitting excessive amounts of noise and residual interference into the beamformer output.
Some methods of STAP beamforming attempt to address these outdoor multipath problems by partitioning the system bandwidth into smaller, contiguous frequency intervals called subbands, small enough that channel variations become negligible over the subband, e.g., the subband channel appears “flat” in frequency. Separate STAP beamformers are then applied to these subbands, producing subband-localized solutions having deeper convergence and greater accuracy than a wideband solution in some examples. While the subband approach may work to restore beamformer convergence, it comes at the cost of a proportional increase in beamformer training time, and consequent payload capacity losses, as the reduction in bandwidth embodied by a subband must be compensated by an equal-factor increase in training time in order to meet the required beamformer training TBP. Wireless WAN geometries may attempt to manage this limitation by using larger than ideal subbands, trading off capacity losses due to the incomplete convergence this yields, against losses due to the additional training overhead that would be required by smaller subbands.
Examples of advanced STAP beamforming described herein may significantly improve that trade space, by generating frequency-localized beamforming solutions using frequency-domain formulations that simultaneously minimize beamformer training overhead in some examples. These advanced STAP beamformers are adapted in the frequency domain, e.g., on the bins of a fast Fourier transform (FFT), as a means to achieve the desired frequency localization characteristics, in one example by using frequency interpolation of practical-sized subbands in lieu of going to smaller-sized subbands. Additional examples are shown wherein frequency localized beamforming is achieved through recursive exponential and sliding window methods applied to FFT bins. While the advanced STAP beamformers are described herein as applied to systems employing orthogonal frequency division multiplexing (OFDM) modulation, they apply equally to systems utilizing any form of modulation, including for example the extensive class of single-carrier modulations. For such non-OFDM modulations, the OFDM subcarriers defined in the following represent generic bins of an FFT applied to the array data streams, from which the advanced STAP beamformer would be computed, and from which the post-beamforming time-domain data would be recovered via standard inverse FFT practice, e.g., the use of FFT block overlap-and-add or overlap-and-save methods. Accordingly, although examples are described herein with reference to subcarriers, the term subcarriers is to be understood herein to generally refer to frequency bins. In some examples, subcarriers may be implemented using subcarriers in OFDM schemes or other modulation schemes. However, in other examples, subcarriers may be implemented using generally any frequency bins.
Many modern wireless systems (e.g. Wi-Fi, WIMAX, LTE, SG-NR) have adopted OFDM and/or OFDM multiple-access (OFDMA) as a communication standard. Under OFDM the frequency domain is divided into a set of equally spaced subcarriers, and the time domain is divided into equally spaced symbols as shown in
STAP beamforming as employed herein refers to a STAP method of processing received antenna array data after the latter have been down-converted to baseband and digitized as complex baseband data streams (e.g., multiple down-converters and/or digitizers may be used to provide digitized baseband data streams). The STAP beamformer may be viewed as compartmentalized into a weight calculator and a linear combiner. The STAP beamformer weights, as generated by the weight calculator, are applied to the linear combiner, which combines signals as received on the various elements of an antenna array to achieve spatial selectivity. Spatial selectivity may be used to enhance the detection and extraction of signals from complex RF environments, to enhance the signal to interference plus noise ratio (SINR), to overcome multipath distortion, and/or to remove detrimental interference via interference cancellation (IC). The weights may be derived and/or adapted by a variety of methods, some of which are described herein. The goal of the STAP beamformer is to provide optimal or near optimal system performance at each frequency domain subcarrier in each time-domain OFDM symbol.
The optimum weights are a function of the channel response(s) of all signals arriving at the array, which in turn is a function of the environment. If the channel varies rapidly in both domains (e.g., time and frequency), then the optimal solution will also vary rapidly in both domains, and the same computation/optimization will need to be repeated many times across the time/frequency grid shown in
The variation in the frequency domain is a consequence of multipath (e.g., the signal bouncing among different objects in the environment) leading to different copies of the same signal arriving at the destination at different delays. The relative delay between the different copies arriving at the receiver/destination creates variations in the frequency response of the channel. The larger the delay spread between the different paths traversed by the signal, the more rapid the variation in the frequency domain (see
If the rate and range of frequency variation are large, an optimal solution may differ from one subcarrier to the next, as shown in
To deal with this issue, the frequency band of interest may be broken into smaller subbands as shown in
As a first consideration, the overall computational complexity will scale linearly with the number of subbands, because the computation must be repeated for each subband independently. In addition, the required beamformer training TBP requirement must be met in as few OFDM training symbols as possible, to conserve the maximum possible number of OFDM symbols for payload conveyance. Accordingly, each subband must be wide enough to contain a sufficient number of subcarrier samples to adequately train the beamformer. If the subband is too narrow in bandwidth, then additional training symbols (time) will be required in order to supply the total number of samples required to meet the training TBP requirement. These additional training symbols would subtract from payload capacity. Another key consideration is that the deviation from ideal performance may become worse toward subband edges, e.g., as depicted in
A number of STAP beamforming algorithms may be used as a basic element in the efficient STAP beamforming methods to be described herein. For example, a least-squares (LS) solution may be used to calculate a STAP solution (e.g., weights used by a STAP beamformer), taking the form
Xw?s (1)
where X is an M×N matrix (M≥N to ensure a unique solution) containing the M-sample training data sequence as received on a given system node N-element (antenna) array along with other interfering signals and noise, w is the beamforming weight vector (N×1) to be generated, and s is the training sequence, a vector (M×1) of known training data. The rows of matrix X and elements of vector s may represent time-domain samples or frequency-domain (FFT bin) samples with equivalent results, although in the present context FFT bins are intended, in which case the matrix X rows and vector s elements may correspond to the set of subcarrier bins spanning a given subband for one or more training symbols. In accordance with adaptive beamformer training TBP requirements, the number of training samples should meet the minimum requirement that M≥4N. If multiple training symbols are used, e.g., in order to meet training TBP requirements, the rows of matrix X and training sequence s may be arranged as abutted training symbol time-domain or frequency-domain samples, or as such samples interleaved in any other ordering, provided it is consistently applied to each. In detail, assuming that hi is the N×1 vector representing the channel response from transmitter (stream) i onto the receiving array, and that si is the M×1 training data transmitted by stream i, then X will be an M×N data matrix described by the sum over all such transmitters
X=Σ(i)sihiT+V (2)
where V is an M×N matrix containing any non-network interference plus noise. Accordingly, the matrix X may contain all the signals received (desired, interference, and noise) at the antenna array for which stream i is intended. (More than one such stream i may be intended, for example, if (2) is describing a base node in a wireless network with multiple remote nodes, or if it is describing either node in a network utilizing multi-stream links, in which case the methods described herein will step through the streams i and process each independently as the intended stream.) In general such a weight computation may be repeated separately for each subband and each frame. Using a least-squares optimization criterion for stream i, the STAP beamformer weights solution wopt can be written as:
wopt=warg maxε(w)=warg max∥e(w)∥2=warg max∥Xw−s∥2 (3)
where e is the error vector, and ε is squared magnitude of the error, both of which are functions of w. The error criterion is minimized by projecting s onto the column-space of X
wopt=(XHX)−1(XHS);y=Xwopt. (4)
The copy vector y produced as above is a least-squares estimate of the training sequence s. This solution is derived from the orthogonality principle, which states that for the square magnitude of the error ε to be minimized, the error vector e must be orthogonal to the estimate y=ŝ
eHŝ=0. (5)
The term XHX in (4) is referred to as the covariance matrix Rxx=XHX, and XHs as the cross-correlation vector rxs=XHs. The optimum least-squares solution can be written in terms of Rx and rxs as
wopt=Rxx−1rxs. (6)
While the STAP beamformer weights wopt possess certain optimality properties (e.g., least-squares) for estimation of the training sequence s as received in the training portion of the frame, it is also effective when applied to the payload sections of the frame, providing interference mitigation and SINR maximization performance similar to that exhibited when applied to the training sequence data. While the strict optimality properties may be lost outside the training data, those losses may be negligible as a practical matter if certain conditions are met. As a general rule, use of a training sequence four times larger than the number of antennas on the array, fulfilling the condition M≥4N, is adequate to achieve negligible losses relative to the intended least-squares (or other criterion) property.
Equation 6 may be referred to as the Normal equation or the Wiener solution. In concept, a direct solution to a least-squares problem of dimension M×N involves four steps. First, the matrix Rxx=XHX of dimension N×N is computed. This step utilizes O(MN2) complex operations. Next, the matrix Rxx−1 of dimension N×N is computed. This step utilizes O(N3) complex operations. Third, rxs=XHs of dimension N×1 is computed, utilizing O(MN) complex operations). Finally, wopt=Rxx−1rxs of dimension N×1 is computed, utilizing O(N2) complex operations. Summing these, the computational complexity is O(MN2+N3)+O(N3) (assuming M=O(N)). The first two steps can be shared among all streams sharing the same receive array, as the matrix X is the same for all streams. Only O(N2) steps, which are stream-dependent, may require repetition for each stream. Therefore, the total computational complexity for computing the optimum beamforming vectors for all streams sharing the array may in fact be O(N3).
Alternative implementations of the least-squares solution utilizing QR-decomposition and Modified Gram-Schmidt Orthogonalization (MGSO) may provide improved numerical stability. The improved numerical stability may be achieved by performing all the numerical operations in the signal (voltage) domain, as opposed to the power domain embodied in (4). Both QR-decomposition and MGSO may keep the intermediate computations in the signal domain by avoiding an explicit formation of Rxx.
The least-squares STAP beamformer solution of (6) and its variants (e.g., a minimum mean-squared error solution, denoted as MMSE) may be solved using direct matrix inversion (DMI) or DMI-based algorithms. As the name implies, a DMI approach first calculates the covariance matrix Rxx over all training data, then directly inverts the result using a standard matrix inversion algorithm. These algorithms share the property that the bulk of processing required to solve for the beamforming weights vector is performed after an entire training data set has been collected. As such, they may be referred to as batch-mode algorithms. Alternatively, (6) can be solved recursively, giving rise to another class of algorithms that generate a recursive least-squares (RLS) solution. While RLS may not provide actual computational reduction over DMI (complexity is still generally on the order O(N3)), it has the advantage that it may process new data incrementally as they arrive, e.g., as soon as a new row of matrix X arrives, all of Rxx, Rxx−1, rxs, w may be updated to incorporate the new training data. Each such individual training data update consumes O(N2) complex operations. While the update of Rxx[n] and rxs[n] with x[n] (the nth row of X) may be accomplished via straightforward calculations in O(N2) operations, the update of Rxx−1[n] is obtained through a recursion formula called the Woodbury matrix identity,
Rxx−1[n]=(Rxx[n−1]+x[n]x[n]H)−1==Rxx−1[n−1]−Rxx−1[n−1]x[n]xH[n]Rxx−1[n−1]/(1+xH[n]Rxx−1[n−1]x[n]). (7)
Equation 7, also known as the matrix inversion lemma, allows Rxx−1[n] to be computed from Rxx−1[n−1] and x[n] without having to perform an actual matrix inversion. Equation 7 may be implemented with only O(N2) complex operations.
Several variants of RLS are possible, some based on exponentially-weighted-averaging, and others based on sliding windows. The exponentially weighted average uses a positive real parameter 0<≤1, called the forgetting factor, which is used to reduce the impact of old data on the weight estimate. When the forgetting factor is incorporated, the update equation for Rxx−1[n] assumes the form
Rxx−1[n]=(Rxx[n−1]+x[n]x[n]H)−1=
−1Rxx−1[n−1]−
−2Rxx−1[n−1]x[n]xH[n]Rxx−1[n−1]/(1+
−1xH[n]Rxx−1[n−1]x[n]). (8)
The forgetting factor may be used for tracking variations in the channel if a sliding window is not used. There are also recursive versions of the MGSO implementation of DMI, known as RMGSO, that may provide enhanced numerical stability.
A straightforward means to implement STAP beamforming in the frequency domain is to divide the band into smaller subbands of Sb subcarriers and solve the least-squares problem for each subband independently. This may be done for example with any of the outlined DMI-based or RLS-based algorithms. We refer to this as a rudimentary, or baseline, subbanding approach. Such an approach divides full signal bandwidth into K subbands and produces K separate beamformers, by solving K separate least-squares problems of size M×N independently. Therefore, the overall computational complexity may be described as O(KN3). This approach is attractive for its simplicity, and because it is easily parallelized across subbands, due to the fact that subbands are processed independently and do not share any data. The value of Sb dictates the minimum number C of training symbols needed to achieve the required training TBP for the beamformer, as C=4N/Sb, demonstrating the growth in training symbols with decreasing subband size. However, this baseline subbanding approach does not make maximum use of the training data, because it does not take advantage of the continuous nature of the frequency response of the wireless channel, particularly across the edges of the subbands. Hence each subband solution is suboptimal, especially for subcarriers at subband edges. For example, consider a subband size of Sb subcarriers, such that subcarriers 0 to Sb−1 are grouped into the first subband, subcarriers from Sb to 2Sb−1 are grouped into the second subband, and so forth. A shortcoming is evident in the fact that subcarrier Sb is closest to subcarrier Sb−1 in terms of channel response, and yet it is not included in the beamformer weight calculation for subcarrier Sb−1. Hence, the performance of the STAP beamformer is best at the center of each subband, and starts to deteriorate toward subband edges. As a result, excess spatial degrees-of-freedom (DOF) are consumed by the STAP solution to achieve a flat response over the subband at the expense of interference cancelation, degrading the maximum overall achievable capacity of the system.
Accordingly, new techniques that make better use of the available training data and training TBP are needed, both to overcome performance degradations at subband edges, and to achieve deeper convergence at subband centers. It is desired that these techniques be parallelizable and have small computational and memory requirements.
Examples described herein to achieve improved performance over the baseline subbanding approach may be referred to as Weighted Overlap Beamform and Add (WOBA) methods. These WOBA methods may be applied to frequency-domain samples, e.g., FFT bins or subcarriers, to accomplish frequency-localized beamfoming solutions. WOBA processing may take a variety of forms to accomplish greater frequency localization of the beamforming solution, hence closer adherence to the frequency-continuous theoretical solution, than the above-described baseline subbanding approach. An example WOBA method includes applying identical frequency-domain localizing operations to received training data and the known training sequence, such that there is minimal loss in their mutual information. Accordingly, while both data and training sequence may be deliberately distorted (e.g., by a weighting function) so as to achieve a desired frequency-localization objective, the identical nature of the distortion of these two inputs to the beamformer calculation (4) or (6) may render the distortion transparent to that equation, hence preventing the introduction of distortion-induced convergence losses that might otherwise occur (e.g., if their distortions differed). Examples of WOBA methods described herein include a subband-interpolating method, a recursive exponential averaging method, and a sliding-window method.
An example of a subband-interpolating WOBA method uses twice the number of subbands as the baseline subbanding approach, but in a fixed frequency-overlapping arrangement that retains the same Sb-subcarrier subband width as the baseline approach. For example, adjacent subbands may be overlapped such that the distance between adjacent subband centers is └Sb/2┘ subcarriers, where └x┘ denotes rounding down to the largest integer less than or equal to x. As a convenience it may be assumed that each subband contains an even number of subcarriers, so that Sb is an even number, although this is not a requirement. The least-squares beamformer training problem for each subband may then be solved independently, much like the baseline subbanding approach, but with a specialized modification. For example, training data subcarriers in each subband may first be multiplied by a tapered symmetric window (e.g., a triangular, Hamming, or Hanning window), yielding from the original received subband data matrix X a windowed subband data matrix {tilde over (X)} that places reduced weighting on subcarriers that are farther away from subband centers, as
{tilde over (X)}=GX (9)
where G is a diagonal matrix of real, positive subband windowing weights
G=diag(g1,g2, . . . ,gN) (10)
with the symmetry property that gN=g1, gN-1=g2, . . . , and descending weights as distance increases from subband center, that is, g1<g2< . . . <g└N/2┘. In addition, the known training sequence subcarrier values may be similarly multiplied by the same subband window function, yielding from the original known-waveform subband training sequence s a windowed subband training sequence {tilde over (s)} as
{tilde over (s)}=Gs. (11)
The identical windowing of the received subband data {tilde over (X)} and the known-waveform subband training sequence {tilde over (s)} prevents least-squares (or other adaptive algorithm) convergence losses that may otherwise be caused by a mismatch between waveform {tilde over (s)} and its presence in {tilde over (X)}. The STAP beamformer weight vector vi for a given WOBA subband i has the same form as the baseline subbanding approach in (4), simply replacing X and s in (4) with their windowed versions, as
vi=({tilde over (X)}H{tilde over (X)})−1({tilde over (X)}H{tilde over (s)}). (12)
The solution (12) represents a windowed least-squares (WLS) beamformer training solution to the original LS problem described by (4) or equivalently (6), where the subband weighting function is provided by the windowing weights gi. The reduced weighting of training data subcarriers toward subband edges deepens WOBA subband beamformer convergence in frequency-varying channels by centrally localizing the solution, producing a narrower effective weighted-bandwidth subband. A non-windowed variant, yielding a basic least-squares beamformer solution, may be achieved by utilizing a rectangular window, e.g., a window having no amplitude roll-off to either side of subband center, in which case g1=g2= . . . =gN=1. The WLS solution may be implemented using any DMI or RLS-based method applied to the windowed subband data {tilde over (X)}.
In the event that multiple training symbols are in use to meet the training TBP requirement, the subband windowing matrix G may be applied to each training symbol's array data and training sequence in accordance with (9) and (11), after which the windowed data matrices and training sequence vectors are each may be merged in consistent indexing fashion to produce a respective joined inputs to equation (12). The order of indexing has no effect on the resultant beamformer weights, hence simple abutting of the respective windowed data matrices and training sequence vectors as inputs to (12) suffices as a straightforward method in some examples.
After the WOBA beamformer has been generated in the training sequence portion of the frame according to (12), processing proceeds to the payload section of the frame. Let vi be the LS or WLS WOBA beamformer weights obtained for subband i, referred to henceforth as the intermediate weight vector for subband i. Then the beamforming weight vector wj for payload subcarrier j that lies in overlapping subbands i and i+1 is generated as a convex linear combination of intermediate weight vectors vi and vt+1 as
wj=(1−α)vi+αvi+1 (13)
where
where dji is the distance (e.g., a number of subcarriers) between subcarrier j and the center of subband i. The beamformer weight vector wj is then applied to the non-windowed subcarrier j array data for all payload symbols in the frame. Accordingly, the WOBA beamforming solution (13) performs a pointwise frequency interpolation between adjacent subbands at each subcarrier, thereby better approximating the desired continuous theoretical STAP solution across frequency than the baseline subbanding approach.
An example subband-interpolating WOBA embodiment utilizes a triangular training window complementary to the interpolation function (13), in which the window weightings gk are given by
where dctr,k is the distance (e.g., a number of subcarriers) of subcarrier k from the center of the subband to which the window is being applied. More generally, the WOBA windowing function may be any apodization function, including (as non-limiting examples) triangular, polynomial, Gaussian, uniform, Hamming, Hanning, Blackman, sine/cosine, Welch, and Nuttal. Some such choices may produce a frequency-domain amplitude ripple with a period equal to the subband size, whereas others, such as triangular-window WOBA in (15), may not.
The two subbands at the band lower and upper edges may receive special handling in some examples. The absence of a neighboring subband at either edge deprives the outer subcarriers (those within Sb/2 or fewer subcarriers from the edge) of a combinable adjacent-subband weight vector. As a result, the weight interpolation formula (14) cannot be applied without incurring an increasing downward bias in the beamformer output with decreasing distance from the band edge. A straightforward processing to prevent or reduce these band-edge biases is to force the value of α in (14) to α=0 for these outer subcarriers, thus forcing the use of the outer-subband weights vi without modification for beamforming such subcarriers.
The additional implementation cost of this WOBA example may be roughly a doubling in computation and memory requirements in some examples, relative to the baseline (non-WOBA) subbanding approach (e.g., twice the number of subbands requires twice the number of least-squares problems). Parallelization of WOBA may be as straightforward as for the baseline subbanding approach.
Some examples of WOBA may utilize recursive exponential averaging to achieve frequency localization and continuity objectives. A recursive exponential averaging WOBA example may place greater beamformer training weighting on training subcarriers near a given subcarrier, and exponentially decaying weighting on more distant training subcarriers in accordance with their distance away from that given subcarrier. A recursive exponential averaging WOBA method may not utilize the concept of subbands, but rather may start at one end of the full operating band, and proceed in single-subcarrier steps across the band to the opposite end. It should be noted that this method, unlike some examples of subband-interpolating methods and sliding-window methods described herein, may not place symmetrical training weighting on subcarriers to either side of a given subcarrier. Rather examples of this method may place increased (e.g., maximum) training weight on a current subcarrier, and exponentially decaying training weight on previous subcarriers as they slide into the past.
An example implementation of a recursive exponential averaging WOBA method utilizes a parameter referred to as a forgetting factor or forget factor. The forgetting factor may be a positive real parameter 0<≤1. A forgetting factor is selected based on the expected rate of frequency variation of the channel. A larger value may be used for low rates of variation (e.g., small changes from one subcarrier to the next), whereas a smaller value may be used for high rates of variation. If Sb subcarriers of averaging are desired (e.g., corresponding to an effective subband size of Sb), then
should be set to a value of
=(CSb−1)/(CSb+1), (16)
where C is the number of training symbols in use. As with other beamformers, the value of Sb above may dictate the minimum number C of training symbols used to achieve the required training TBP for the beamformer, which is given by C=4N/Sb. The update to rxs[j−1] is generated at the jth subcarrier by stepping through the training symbols for that subcarrier, as
b[0]=rxs[j−1]
b[c]=b[c−1]+xj
rxs[j]=b[C] (17)
where jc indexes the jth subcarrier of training symbol c, sj
B−1[0]=Rxx−1[j−1]
B−1[c]=FRLS,{B−1[c−1],xj
Rxx−1[j]=B−1[C] (18)
where FRLS,{B−1,x} is the exponential averaging RLS equation (8) for input inverse covariance matrix B−1 and data vector x. The training symbols are assumed numbered in the order received, in which case (18) places more weight on the later-arriving, hence more current, training symbols. The terms rxs[j] and Rxx−1[j] as produced by (17) and (18) may then be substituted into (6) to produce the beamforming weight vector wj for subcarrier j. The beamformer weight vector wj may then be applied to the subcarrier j array data for all payload symbols in the frame.
A forward-backward extension to recursive exponential averaging WOBA methods may be implemented in some examples. Examples utilizing the forward-backward extension may in some examples achieve symmetrical training weighting on subcarriers to either side of a given subcarrier. As the name implies, this method may execute two recursive exponential averaging WOBA passes on the training symbols, one starting at a lower end of a processing band and proceeding in the direction of increasing frequency to produce forward-pass beamforming weights wj,forward, and the other starting at an upper end of the processing band and proceeding in the direction of decreasing frequency to produce backward-pass beamforming weights wj,backward. Then beamforming weights are generated for each subcarrier j by combining the beamforming weights obtained in both bpassed. For example, a simple averaging of these passes may be used, as given by
wj=(wj,forward+wj,backward)/2. (19)
The beamformer weight vector wj is then applied to the subcarrier j array data for all payload symbols in the frame. It should be noted that this beamformer weight-averaging solution may not be mathematically equivalent to computing the terms rxs[j] and Rxx−1[j] and resultant wj over an equivalent symmetric or two-tailed exponential weighting function centered on each j in the fashion of a sliding training window, examples of which are described herein. However the approximation presented in (19) may be effective in many applications, as it may rarely depart significantly from the latter solution, and in itself represents a valid criterion for beamformer adaptation. An advantage to both basic and forward-backward recursive exponential averaging WOBA methods is that they may be less computationally intensive than other WOBA methods described herein, such as examples utilizing a sliding training window.
Some examples of WOBA methods may utilize a sliding window (e.g., a sliding training window). The window may be an Sb-subcarrier sliding subband, which may be used in lieu of fixed subbands described herein. Accordingly, similar frequency localization and continuity objectives of per-subcarrier beamformer weights may be achieved. Example methods utilizing a sliding window may begin at either band-edge, and an initial inverse covariance matrix Rxx−1[jo] and initial cross-correlation vector rxs(jo) may be generated over Sb subcarriers using a DMI, RLS, or RMGSO, or other method as desired, and substituted into equation (6) to obtain an initial beamformer weight vector wj
In executing the above described method, the total number of arithmetic operations may increase by a factor of Sb relative to the baseline (e.g., non-WOBA) subbanding approach. This extra factor can be reduced by using a recursive algorithm such as recursive least squares (e.g., RLS, see equation (7)) or RMGSO. In either case, the recursive algorithm would implement a rectangular sliding window (e.g., all gi=1), with a window size of CSb, where C is the number of training symbols. For the case of multiple training symbols C>1, the weights for subcarrier j may be computed using (6) after first performing the following C incremental subcarrier additions and subtractions to each term Rxx−1 and rxs. At each sliding step of the window both terms Rxx−1 and rxs may be down-dated to remove the contribution from the exiting subcarrier of each training symbol, and then updated to assimilate the newly entering subcarrier of each training symbol. The combined update and down-date to rxs is given at the jth sliding step by
rxs[j]=rxs[j−1]+XenteringHsentering−XexitingHsexiting, (20)
where sentering and sexiting are respective new-subcarrier and exiting-subcarrier training sequence values, complex scalar if C=1, or C-vectors when multiple training symbols are involved (C>1), and Xentering and Xexiting are respective new-subcarrier and exiting-subcarrier training data vectors (if C=1) or matrices (if C>1). The additive and subtractive terms in (16) are referred to as updates and down-dates, respectively. Comparably, for each training symbol, the Rxx−1[j−1] term is first down-dated for exiting-subcarrier training data vectors and then updated for entering-subcarrier training data vectors using respective recursive rank-1 down-dates (−) and updates
(+) as
D−1[0]=Rxx−1[j−1]
D−1[c]=(−){D−1[c−1],xC−c+1,exitng},c=1, . . . ,C
U−1[0]=D−1[1]
U−1[c]=(+){U−1[c−1],xc,entering},c=1, . . . ,C
Rxx−1[j]=U−1[C] (21)
to yield the step j inverse covariance matrix Rxx−1[j], where xc,entering and xc,exiting are respective new-subcarrier and exiting-subcarrier training data vectors for training symbol c. In the above, the down-date process may be executed in the reverse of the order in which the training symbols were originally entered into the sliding window Sb subcarriers into the past. Down-date function (−) and update function
(+) may represent respective rank-1 down-dates and updates of RLS, RMGSO, or any other method of recursive matrix inversion. The terms rxs[j] and Rxx−1[j] as produced by (20) and (21) may then be substituted into (6) to produce the beamforming weight vector wj for subcarrier j. The beamformer weight vector wj is then applied to the subcarrier j array data for all payload symbols in the frame.
The memory and computational requirements of such a recursive sliding-window beamformer training method based on an RLS, RMGSO, or similar recursion may be evaluated as follows. Memory is used to retain past versions of Rxx−1[j] going back Sb subcarriers into the past, corresponding at each step j to a set of C N×N matrices (Rxx−1[j](1), . . . , Rxx−1[j](c)), one for each of C training symbols, for a total of CSb such matrices. These C inverse covariance matrices support the RLS, RMGSO, or similar recursive down-date required at each step j. Similarly, the set of Sb past C×N training data matrices Xj support the RLS (or RMGSO) down-date. Computationally and theoretically, the cost of down-dating and updating at each step j is O(N2) for Rxx−1[j] and O(N) for rxs(j). The theoretical computational cost of the beamformer wj calculation (6) at each step j is O(N2). Hence, the total theoretical computational complexity of such a recursive sliding-window implementation across a subband-size set of subcarriers is O(MN2), similar to the baseline (non-WOBA) subbanding approach.
Examples described herein may provide frequency-localized beamformer weights. Frequency or subband localization generally refers to a beamforming solution which may be particular to (e.g., calculated for use at) a particular frequency and/or frequency range (such as a subband). In some examples, systems and methods described herein provide a different beamformer (e.g., different beamformer weights) at each subcarrier and/or group of subcarriers. A subcarrier generally refers to a frequency unit (e.g., a minimum frequency unit), such as a single frequency-domain sample or FFT bin. A subband may include multiple subcarrier, for example, a subband may include a number of subcarriers over which a channel may be considered flat. The channel may be considered flat over a set of subcarriers when utilizing a same beamforming weight vector for the set of subcarriers provides adequate performance.
Considering as an example the calculation of weights for the subcarrier 712, an update to a cross-correlation vector (e.g., rxs) may be calculated for the subcarrier 712. The update to the cross-correlation vector may be calculated using a weighted contribution from the subcarrier 710. For example, the cross-correlation vector calculated or otherwise obtained for use with the subcarrier 710 may be weighted (e.g., using a forgetting factor described herein) and used to obtain the updated cross-correlation vector for the subcarrier 712 (e.g., in accordance with Equation 17 described herein). Additionally or instead, an inverse covariance matrix (e.g., Rxx−1) may be calculated for use in determining weights for the subcarrier 712. The inverse covariance matrix may be calculated as an update to the inverse covariance matrix calculated for a previous subcarrier (e.g., for subcarrier 710). The inverse covariance matrix for the subcarrier 710 may be weighted (e.g. in accordance with a forgetting factor described herein) and used to generate the updated covariance matrix for the subcarrier 712. Note that a similar process may be performed for each subcarrier—e.g., the process is recursive. In this manner, when calculating weights for the subcarrier 714, weighted contributions of the cross-correlation vector and/or covariance matrix calculated for the subcarrier 712 may be used. As described, those components as calculated for the subcarrier 712 themselves utilized weighted contributions from components calculated for the subcarrier 710. Accordingly, by weighting a component (e.g., a cross-correlation vector and/or an inverse covariance matrix) associated with the subcarrier 712 by a forgetting factor, it may include a weighted contribution from the subcarrier 710 weighted by a square of the forgetting factor. Of course, the components used for the subcarrier 710 may have been calculated in an analogous manner (e.g., based on a weighted contribution from the subcarrier 708), and accordingly, the components calculated for the subcarrier 714 may include a contribution from the subcarrier 708 weighted by a cube of the forget factor.
Once a cross-correlation vector and/or an inverse covariance matrix have been calculated for a particular subcarrier, they may be used to calculate a solution for the subcarrier (e.g., weights for the subcarrier). For example, Equation (6) may be used to obtain the weights from the inverse covariance matrix and/or cross-correlation vector calculated for a particular subcarrier.
While seven subcarriers are shown by way of example in
In some examples a forward and backward method may be used. For example, weights may be calculated for the subcarrier 712 as described above, utilizing contributions from solutions for subcarriers having lower frequencies. In addition, weights may also be calculated for the subcarrier 712 by a process which traverses the subcarriers in an opposite direction of that depicted by the axis 718. For example, weights may be calculated for the subcarrier 712 using weighted contributions from calculations for the subcarriers 716 and 718. For example, an updated cross-correlation vector may be calculated for the subcarrier 712 using the cross-correlation vector calculated for the subcarrier 716 weighted by the forgetting factor, which may in turn have utilized the cross-correlation vector calculated for the subcarrier 718 weighted by the forgetting factor. Similarly, an updated inverse covariance matrix may be calculated for the subcarrier 712 using the inverse covariance matrix calculated for the subcarrier 716 weighted by the forgetting factor, which may in turn have utilized the inverse covariance matrix calculated for the subcarrier 718 weighted by the forgetting factor. Weights for the subcarrier 712 may be calculated using the updated cross-correlation vector and updated inverse covariance matrix. In this manner, one set of weights (e.g., a forward set of estimated weights) may be calculated for the subcarrier based on traversing the subcarriers in a first direction (e.g., increasing in frequency). Another set of weights (e.g., a backward set of estimated weights) may be calculated for the subcarrier based on traversing the subcarriers in a second direction (e.g., decreasing in frequency). The two sets of weights may be combined to yield a final set of weights. Generally, any combination may be used, including averaging, weighted averaging, summing and/or normalizing. Additionally, while sequential traversing has been described (e.g., subcarrier solutions may be calculated based on weighted contributions from an adjacent subcarrier), contributions from non-sequential subcarriers may be used in some examples. For example, contributions from every other subcarrier and/or every third subcarrier may be used in some examples.
To perform a sliding window method, weights and/or components used to calculate weights may be calculated at an initial window position, such as the position of window 824 of
Weights for a next subcarrier may be calculated using a different window position (e.g., window 826). In some examples, an inverse covariance matrix and/or cross-correlation vector may be generated over the subcarriers in the window 826 in an analogous manner as described for the window 824. The cross-correlation vector and inverse covariance matrix may be used to obtain weights, e.g., using equation (6). Those weights may be the weights for certain of the subcarriers in that window position (e.g., the center subcarrier, subcarrier 810).
In some examples, weights for a next subcarrier may be calculated by updating a previously-calculated cross-correlation vector and/or inverse covariance matrix. For example, a recursive algorithm, such as RLS, may be used. For example, an updated cross-correlation vector may be calculated for the window 826 based on the cross-correlation vector for the window 824 (see, e.g., Equation 20). The cross-correlation vector may be updated by adding a contribution for the entering subcarrier and subtracting a contribution for the leaving subcarrier. The entering subcarrier may be a subcarrier included in the current window position but absent from the previous window position. The leaving subcarrier may be a subcarrier present in the previous window position but absent from the current window position. In an analogous manner, an updated inverse covariance matrix may be calculated for the window 826 based on the inverse covariance matrix for the window 824 (see, e.g., Equation 21). The inverse covariance matrix may be updated using recursive updates associated with the entering subcarrier(s) and recursive down-dates associated with the existing subcarrier(s). The updated cross-correlation vector and updated inverse covariance matrix may be used to generate weights associated with one or more subcarriers in the new window position (e.g., for subcarrier 810 in window 826 of
Examples of systems described herein, such as system 600 of
Examples of systems described herein include transceivers (e.g., wireless communication transceivers), such as transceiver 614, transceiver 616, and transceiver 618 of
Examples of transceivers may be coupled to antennas. For example, transceiver 614 is depicted coupled to antenna 602 and antenna 604. Transceiver 616 of
The system 600 may include one antenna and/or may include multiple antennas—e.g., the system 600 may be a multiple antenna system, otherwise referred to as a multiple-input multiple-output (MIMO) system. In this manner, any number of antennas may be provided in systems described herein, such as 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 32, 64, 128, 256, or other number of antennas. Multiple antennas provided in a system (e.g., in a mobile communication device) may be referred to as an antenna array. The antenna array may be local to one device (e.g., the antennas may be provided in a same device), or the antenna array may be distributed in some examples. For example, the antennas shown in
Examples of systems described herein may include a beamforming network (e.g., one or more beamformers), such as beamforming network 622 of
Beamforming networks described herein and utilized in devices and/or systems herein may include one or more weight processors, such as weight processor 620 of
Examples of systems described herein include one or more baseband radios, such as baseband radio 624 and baseband radio 626 of
Examples of systems described herein may include a hub or switch, such as switch 628 of
Examples of weight processors described herein may calculate weights using Weighted Overlap Beamform and Add (WOBA) techniques. For example, the weight processor 620 may calculate intermediate weights for multiple overlapping subbands of a frequency range. The subbands may include a number of subcarriers over which a frequency response of a channel may be flat (e.g., may be considered to be or processed as if flat) in some examples. Overlapping subbands may have one or more subcarriers in common. For example, overlapping subbands in examples described herein may have 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or another number of subcarriers in common. A particular subcarrier may be included in multiple sub-bands, such as two subbands (e.g., see
Accordingly, intermediate weights may be calculated for each subband within a frequency range. In some examples, some efficiencies may be obtained in calculating intermediate weights for adjacent and/or near subbands, for example, calculating intermediate weights for a given subband (e.g., calculating a LS or WLS solution) using an inverse covariance calculation previously calculated for an adjacent subband. The previously-calculated inverse covariance calculation may be modified using one or more subcarriers of the present subband.
To calculate final weights for a particular subcarrier, the weight processor 620 may calculate a weighted combination of the intermediate weights for the subbands including the particular subcarrier. The weighted combination may be, for example, a weighted sum. Weighting the intermediate weights may be implemented by multiplying the intermediate weights by an overlap factor. The overlap factor used to weight intermediate weights of a subband for a particular subcarrier may be based on (e.g., may be proportional to and/or set by) a distance between a center of the subband and the particular subcarrier. In some examples, the overlap factor may be based on the distance between the center of the respective overlapping subband and the particular subcarrier and a number of subcarriers in the respective overlapping subband. In this manner, intermediate weights calculated for subbands where the particular subcarrier is at or near the center of the subband may be weighted more significantly in a combination than intermediate weights calculated for subbands where the particular subcarrier is at or near an edge of the subband.
Referring back to
Examples of weight processors described herein may calculate weights using recursive methods, such as recursive exponential methods where a forgetting factor may be used. For example, the weight processor may calculate a component used to generate weights for a particular subcarrier using contributions from multiple other subcarriers. The contributions from multiple other subcarriers may be contributions from components use to generate weights for those subcarriers. The components may refer, for example, to a cross-correlation vector and/or an inverse covariance matrix. Contributions from the other subcarriers may be weighted in accordance with a distance of the subcarrier from the present subcarrier for which weights are being calculated. In some examples, contributions from an adjacent subcarrier may be weighted by a forgetting factor. Contributions of other subcarriers may be weighted using an exponential of the forgetting factor based on the distance of the other subcarrier. For example, contributions from a next adjacent subcarrier may be weighted by a square of a forgetting factor. Contributions from a next adjacent subcarrier may be weighted by a cube of a forgetting factor. In this manner, most significant contributions are provided by closer subcarriers (e.g., neighboring subcarriers). In some examples, the number of subcarriers used may be based on a subband (e.g., all subcarriers in a subband may be used, half or another fraction of the subcarriers in a subband may be used in some examples).
Accordingly, for example as described with reference to
In some examples, weights may be calculated for a particular subcarrier by traversing subcarriers in two different directions (e.g., forward and backward). The multiple weights calculated in this manner may be combined (e.g., averaged) to arrive at final weights. In the forward traverse, components used in the weight calculation for a particular subcarrier may be based on weighted contributions of components previously-calculated for subcarrier(s) having lower frequencies. In the backward traverse, components used in the weight calculation for a particular subcarrier may be based on weighted contributions of components previously-calculated for subcarrier(s) having higher frequencies.
Weights calculated by the weight processor may be used by beamforming network 622 of
Examples of weight processors described herein may calculate weights using sliding window methods. It is to be understood that there may be no physical window which is slid across any particular surface. Rather, the window may refer to a group of subcarriers, which may be sequential subcarriers. The group of subcarriers and their weighting may be referred to as a window. Sliding the window generally refers to identifying another group of subcarriers, typically by removing one or more subcarriers from one end of the window and adding one or more subcarriers to the other end of the window. This next group of subcarriers may then be processed as described herein. The window may be slid in increments through an entire frequency band of interest in some examples.
Accordingly, weight processors described herein may utilize a window of subcarrier frequencies. Weights may be calculated for a subcarrier within the window, such as a center subcarrier. For example, an inverse covariance matrix may be calculated for one or more subcarriers in the window based on a previously-calculated inverse covariance matrix for a different window of subcarriers (e.g., a previous window). In some examples, a cross-correlation vector may be calculated for one or more subcarriers in the window based on a previously-calculated cross-correlation vector. The inverse covariance matrix and/or the cross-correlation vector may be updated, for example, by utilizing one or more updates corresponding to subcarriers added to a window relative to the window used for the previously-calculated values, and one or more downdates corresponding to subcarriers no longer present in the widow relative to the window used for the previously-calculated values.
The inverse covariance matrix and/or the cross-correlation vector may be used to calculate the weights for one or more subcarriers in the window. In some examples, the weights may be calculated in part by calculating a least squares solution (e.g., a recursive least squares solution). In some examples, the weights, cross-correlation vector, and/or the inverse covariance matrix may be calculated using a DMI algorithm (e.g., using a QR-decomposition of the previously-calculated value or a Modified Gram-Schmidt Orthogonalization (MGSO) of the previously-calculated value).
Weights calculated by the weight processor may be used by beamforming network 622 of
From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made while remaining with the scope of the claimed technology.
Examples described herein may refer to various components as “coupled” or signals as being “provided to” or “received from” certain components. It is to be understood that in some examples the components are directly coupled one to another, while in other examples the components are coupled with intervening components dispersed between them. Similarly, signals may be provided directly to and/or received directly from the recited components without intervening components, but also may be provided to and/or received from the certain components through intervening components.
Bruzzone, Stephen P., Bakr, Omar
Patent | Priority | Assignee | Title |
11843399, | Oct 11 2019 | Tarana Wireless, Inc. | Systems and methods for calculating frequency-localized adaptive beamformer weights including calculations of inverse covariance matrices |
Patent | Priority | Assignee | Title |
10003394, | Nov 21 2007 | DIRECTV, LLC | Wireless communications systems and methods |
10778308, | Oct 11 2019 | TARANA WIRELESS, INC | Systems and methods for calculating frequency-localized adaptive beamformer weights using weighted overlapping beamform and add techniques applied to adjacent subbands |
20060012520, | |||
20070211815, | |||
20080117997, | |||
20080207270, | |||
20090323847, | |||
20100067366, | |||
20110170521, | |||
20120328033, | |||
20130010898, | |||
20130128935, | |||
20130195166, | |||
20150381259, | |||
20170245776, | |||
20180227037, | |||
20190379562, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 11 2019 | Tarana Wireless, Inc. | (assignment on the face of the patent) | / | |||
Dec 19 2019 | BAKR, OMAR | TARANA WIRELESS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051640 | /0318 | |
Dec 19 2019 | BRUZZONE, STEPHEN P | TARANA WIRELESS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 051640 | /0318 |
Date | Maintenance Fee Events |
Oct 11 2019 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Oct 30 2019 | SMAL: Entity status set to Small. |
Date | Maintenance Schedule |
Aug 31 2024 | 4 years fee payment window open |
Mar 03 2025 | 6 months grace period start (w surcharge) |
Aug 31 2025 | patent expiry (for year 4) |
Aug 31 2027 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 31 2028 | 8 years fee payment window open |
Mar 03 2029 | 6 months grace period start (w surcharge) |
Aug 31 2029 | patent expiry (for year 8) |
Aug 31 2031 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 31 2032 | 12 years fee payment window open |
Mar 03 2033 | 6 months grace period start (w surcharge) |
Aug 31 2033 | patent expiry (for year 12) |
Aug 31 2035 | 2 years to revive unintentionally abandoned end. (for year 12) |