Fast rate adaptation for Wi-Fi devices

By transmitting both communication and channel check packets and adjusting data rates based on statistical power estimates, the method addresses the challenge of adapting to fast channel variations, ensuring high throughput and quality in wireless communication systems.

DE102019205805B4Active Publication Date: 2025-05-28NXP USA
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102019205805
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-04-24
Filing Date
2019-04-24
Publication Date
2025-05-28
Estimated Expiration
2039-04-24

AI Technical Summary

Technical Problem

Existing wireless communication systems face challenges in efficiently adjusting data rates to accommodate fast and severe channel variations, especially under conditions like movement of devices, multipath fading, and interference, which can lead to unstable communication quality.

Method used

The method involves transmitting both communication packets and channel check packets over a wireless channel. Statistical powers of these packets are estimated, and based on these estimates, the communication data rate is adjusted for subsequent time intervals, allowing for dynamic rate adaptation to optimize channel conditions.

Benefits of technology

This approach enables efficient and rapid adaptation of communication data rates, effectively maintaining high throughput and quality of communication even under fluctuating channel conditions, thereby improving overall communication system performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for rate adaptation in a communication device, the method comprising: during a time interval, transmitting over a wireless channel to a peer communication device both (i) communication packets carrying user data at a communication data rate and (ii) channel probe packets for probing channel conditions at a channel probe data rate derived from the communication data rate; Estimating a first statistical power of the communication packets over the time interval and a second statistical power of the channel probe packets; and Setting the communication data rate for a subsequent time interval based on at least one of the first statistical performance and / or the second statistical performance.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Patent Application 62 / 662,072, filed April 24, 2018, the disclosure of which is incorporated herein by reference. AREA OF REVELATION

[0002] The present disclosure relates generally to wireless communications, and more particularly to methods and systems for speed adaptation in communications devices. BACKGROUND

[0003] Various techniques have been proposed to adapt the data rate of a wireless communication link in a wireless local area network (WLAN). For example, Kamerman and Monteban describe a rate adaptation algorithm called Automatic Rate Fallback (ARF) in "WaveLAN-II®: A High-Performance Wireless LAN for the Unlicensed Band," Bell Labs Technical Journal, Summer 1997, pages 118-133. An improvement on ARF, called Adaptive ARF (AARF), is described by Lacage et al. in "IEEE 802.11 Rate Adaptation: A Practical Approach," HAL Archives, HAL Id: inria-00070784, May 19, 2006.

[0004] Pavon and Choi describe a link adaptation algorithm that adapts the transmission rate to the current link state based on the received signal strength measured from received frames in "Link Adaptation Strategy for IEEE 802.11 WLAN via Received Signal Strength Measurement", Proceedings of the 2003 IEEE International Conference on Communications (ICC '03), June, 2003, pages 1108-1113.

[0005] Bicket describes a bit-rate selection algorithm called SampleRate in "Bit-rate Selection in Wireless Networks," MSc Thesis, Massachusetts Institute of Technology, February 2005. SampleRate sends most data packets at a bit rate that provides the highest throughput. SampleRate periodically sends a data packet at a different bit rate to update a record of that bit rate's loss ratio. SampleRate switches to a different bit rate when the throughput estimate based on the recorded loss ratio of the other bit rate is higher than the current throughput of the bit rate.

[0006] Document EP 2 562 979 A1 relates to a method for adaptively controlling the data rate in a transmission channel that transmits a packet data signal corresponding to a variable data rate data stream. According to the method, the variability of the transmission channel, the data rate requirement of the data stream, and the capacity of the transmission channel are determined. The data rate is adjusted so that the capacity of the transmission channel exceeds the data rate requirement of the data stream, and the next time point for data rate measurement and adjustment is determined based on the variability of the transmission channel and the data stream rate requirement.

[0007] The above description represents a general overview of the related art in this field and should not be construed as an admission that any of the information contained therein constitutes prior art over the present patent application. SUMMARY

[0008] An embodiment described herein provides a method for rate adaptation in a communication device. The method comprises transmitting, over a wireless channel to a peer communication device, during a time interval, both (i) communication packets carrying user data at a communication data rate and (ii) channel probe packets for probing channel conditions at a channel probe data rate derived from the communication data rate. A first statistical power of the communication packets and a second statistical power of the channel probe packets are estimated over the time interval. The communication data rate is determined for a subsequent time interval based on at least one of the first statistical powers and the second statistical powers.

[0009] In some embodiments, the method further comprises deciding, based on the first statistical performance of the communication packets, whether or not to transmit the channel probe packets in the subsequent time interval. In one embodiment, the method further comprises deciding, based on the first statistical performance of the communication packets, whether to increase or decrease the channel probe data rate in the subsequent time interval relative to the time interval.

[0010] In an exemplary embodiment, the method further comprises: if the first statistical performance of the communication packets is better than a first performance threshold, increasing the channel probe data rate for the channel probe data packets in the subsequent time interval relative to the time interval; if the first statistical performance is worse than a second performance threshold, decreasing the channel probe data rate in the subsequent time interval relative to the time interval; and if the first statistical performance is between the first performance threshold and the second power threshold, deciding not to transmit the channel probe data packets in the subsequent time interval.

[0011] In a disclosed embodiment, adjusting the communication data rate for the subsequent time interval comprises: if the second statistical performance of the channel probe packets is better than a first performance threshold, increasing the communication data rate in the subsequent time interval relative to the time interval; if the second statistical performance is worse than a second performance threshold, decreasing the communication data rate in the subsequent time interval relative to the time interval; and if the second statistical performance is between the first performance threshold and the second power threshold, maintaining the communication data rate in the subsequent time interval as in the time interval.

[0012] In some embodiments, the method further comprises, after initially establishing a connection with the peer communication device or after the connection is inactive, initializing the communication data rate based on the quality of a return channel signal received from the peer communication device. In one embodiment, estimating the first statistical power and the second statistical power comprises estimating performance measurements indicative of the throughput of the communication packets and the channel probe packets. Additionally or alternatively, estimating the first statistical power and the second statistical power comprises estimating performance measurements indicative of error rates of the communication packets and the channel probe packets.

[0013] In one embodiment, estimating the first statistical power and the second statistical power is performed based only on first transmissions of the communication packets and the channel probe packets, excluding retransmissions. In one disclosed embodiment, the method includes, at least at a certain time, adjusting the communication data rate to differ from the channel probe data rate.

[0014] According to an embodiment described herein, a communication device comprising a transmitter and a processor is additionally provided. The transmitter is configured to transmit signals over a wireless channel to a peer communication device. The processor is configured to: send, during a time interval, both (i) communication packets carrying user data at a communication data rate and (ii) channel probe packets for testing channel conditions at a channel probe data rate derived from the communication data rate to the peer communication device; estimate, over the time interval, a first statistical power of the communication packets and a second statistical power of the channel probe packets; and adjust the communication data rate for a subsequent time interval based on at least one of the first statistical power and the second statistical power.

[0015] The present disclosure will be better understood from the following detailed description of the embodiments together with the drawings in which it is included: SHORT DESCRIPTION OF THE CHARACTERS Fig. 1 is a block diagram schematically illustrating a wireless local area network (WLAN) according to an embodiment described herein; Fig. 2 is a flowchart schematically illustrating a method for volume adjustment in WLAN of Fig. 1 according to an embodiment described herein; and Fig. 3 is a diagram schematically illustrating an example scenario of rate adaptation in a WLAN connection over time according to an embodiment described herein. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0016] In various communications applications, it is desirable to adjust the data transmission rate over a communication channel to account for fluctuations in channel conditions. An optimal rate adaptation process enables a communication system to operate at the highest possible data rate achievable at any given time while maintaining communication quality at a certain acceptable level.

[0017] In practice, optimal rate matching is often difficult to achieve, for example, when channel variations are rapid and severe. Such unstable channel conditions can be due, for example, to transmitter or receiver movement, multipath fading, packet collisions caused by other concurrent transmissions, and / or interference from other sources.

[0018] Rate adaptation becomes even more difficult with the increasing number of possible data rates (e.g., the number of spatial streams and the number of modulation and coding schemes (MCSs). The IEEE 802.11ax standard, for example, specifies the use of up to eight spatial streams and up to twelve different MCSs. Evaluating such a large number of possible data rates is computationally intensive and time-consuming, and can fail completely if the channel fluctuates too quickly.

[0019] Embodiments described herein provide improved methods and apparatus for performing rate adaptation in WLANs and other communication systems. The disclosed techniques perform well under rapid channel variations, regardless of the number of spatial streams and the possible number of data rates. However, the disclosed techniques are not limited to such harsh conditions, but are useful for any channel.

[0020] In some disclosed embodiments, a communication device sends communication packets carrying user data to a peer communication device over a wireless channel. To achieve fast and reliable rate adaptation, the communication device also sends channel probe packets to check channel conditions. The channel probe packets are typically interleaved with the communication packets, e.g., transmitted sequentially as long as the communication device is not busy transmitting a communication packet.

[0021] In some embodiments, the channel probe packets transmit user data to the peer communication device and additionally serve to explore channel conditions. In other embodiments, the channel probe packets do not carry user data and serve only to investigate channel conditions. In still further embodiments, one or more of the channel probe packets carry user data, and one or more other channel probe packets do not carry user data.

[0022] The channel probe packets are typically small and transmitted at short intervals to allow for the accumulation of reliable performance statistics. In some embodiments, the size and packet rate of the channel probe packets are chosen to minimize degradation of the throughput and latency of the communication packets.

[0023] Based on feedback received from the peer communication device, the communication device estimates the statistical performance of the communication packets and the statistical performance of the channel probe packets. Based on the estimated performance statistics, the communication device configures subsequent packet transmission, for example, it decides whether or not to transmit channel probe packets in the subsequent time interval and at what data rate, and sets the data rate of the communication data packets for the subsequent time interval.

[0024] The data rate at which the communication packets are transmitted is referred to below as the "communication data rate." The data rate at which the channel probe packets are transmitted is referred to below as the "probe data rate." Typically, the communication device selects both the communication data rate and the probe data rate from a predefined set of possible data rates, with each possible data rate corresponding to a corresponding number of spatial streams (N ss ) and a corresponding modulation and coding scheme (MCS). In the present context, terms such as "higher data rate", "lower data rate", "next higher data rate", "next lower data rate", "increase in a data rate", "decrease in a data rate", "highest data rate", and "lowest data rate" refer to the order of data rates (or the order of {MCS, N ss} combinations) in the predefined set used by the communication device.

[0025] In the disclosed embodiments, when setting the test data rate, the communication device does not exhaustively test all possible test data rates, nor does it select the test data rate arbitrarily, for example, randomly. Rather, the communication device derives the sample data rate from the currently used communication data rate. This technique reduces computational complexity and significantly accelerates the rate adjustment process.

[0026] In an exemplary embodiment, the communication device sets the probe data rate for the next time interval to be one rate below the communication data rate or one rate above the communication data rate, depending on the performance of the communication packets in the current time interval. Furthermore, the communication device sets the communication data rate for the next time interval to be one rate below the sample data rate, equal to the sample data rate, or one rate above the sample data rate, depending on the performance of the channel probe packets in the current time interval.

[0027] By using channel probe packets as described herein, the communication device is able to efficiently and continuously evaluate the performance of data rates other than the currently used communication data rate. Since this evaluation occurs in parallel with normal communication, the communication device is able to quickly adapt the communication data rate and, in particular, to respond quickly and precisely to fluctuations in channel conditions.

[0028] Fig. 1 is a block diagram schematically illustrating a wireless local area network (WLAN) 20 according to an embodiment described herein. WLAN 20 includes a WLAN device 24 that communicates with a peer WLAN device 28 over a wireless channel 32. In various embodiments, WLAN 20 operates according to any suitable WLAN protocol standard, such as the IEEE 802.11 family of standards. Some non-limiting example variants of this standard are 802.11n, 802.11ac, 802.11ax, and 802.11p.

[0029] Furthermore, the disclosed techniques are not limited to WLANs and are applicable to various other suitable communication systems that include speed matching between communication devices. Therefore, in the present context, WLAN devices 24 and 28 are considered non-limiting examples of communication devices.

[0030] In an exemplary embodiment, WLAN device 24 includes an access point (AP) and peer WLAN device 28 includes a station (STA). In an alternative embodiment, WLAN device 24 includes an STA and peer WLAN device 28 includes an AP. The disclosed techniques are also applicable in peer-to-peer scenarios, for example, when WLAN devices 24 and 28 both include STAs or when WLAN devices 24 and 28 both include APs.

[0031] Typically, WLAN device 24 includes a transmitter (TX) 36 for transmitting WLAN signals to peer WLAN devices, a receiver (RX) 40 for receiving WLAN signals from peer WLAN devices, one or more antennas 44, and a processor 48 that performs various processing functions of the WLAN device. Among other things, processor 48 performs fast rate adaptation using techniques described in detail herein.

[0032] In the embodiment of Fig. 1, the processor 48 includes a communication packet generator 52 and a probe packet generator 56. The communication packet generator 52 generates communication packets containing payload data for transmission to the peer WLAN device 28. The probe packet generator 56 generates channel probe packets (also called "probe packets") to estimate the current state of channel 32. (As previously mentioned, in some embodiments, at least some of the channel probe packets also carry user data.) A packet scheduler 60 schedules the transmission of the communication packets and the channel probe packets and makes both types of packets available to the TX 36 for transmission. The joint use of communication packets and probe packets for rate adaptation is explained in more detail below.

[0033] In one embodiment, one of the communication packets and one of the probe packets comprise, for example, a Medium Access Control (MAC) Protocol Data Unit (MPDU) or an Aggregate MPDU (A-MPDU), such as those specified in the IEEE 802.11 standards.

[0034] In the present example, the processor 48 further includes a statistics calculator 68 and a data rate calculator 64. The statistics calculator 68 calculates statistical performance indicators for channel 32 based on feedback information received from the peer WLAN device 28 via RX 40.

[0035] Non-limiting examples of feedback information include acknowledgment (ACK) messages received in response to corresponding MPDUs and / or block ACK (BA) messages received in response to corresponding A-MPDUs, such as those specified in the IEEE 802.11 standards.

[0036] Non-limiting examples of statistical performance measures calculated by the statistics calculator 68 include packet error rates (PERs) of communication packets and / or probe packets, average throughputs achieved by communication packets and / or probe packets, or any other suitable performance measure.

[0037] In some embodiments, the statistics calculator 68 calculates statistical performance based only on the first transmission of each packet. In other words, the statistics calculator 68 excludes packet retransmissions from calculating statistical performance. The PER calculated in these embodiments is also referred to as the "first transmission PER" and is defined as the ratio between the number of failed first transmissions and the total number of first transmissions of packets (for a given data rate and in a given time interval). Likewise, the throughput calculated in these embodiments is also referred to as the "first transmission throughput" and is defined as the number of bits successfully delivered over the first transmission of packets divided by the total duration of the first packet transmission (for a given data rate and in a given time interval).

[0038] In one embodiment, the data rate calculator 64 uses the statistical performance measures calculated by the statistics calculator 68 to calculate and set a data rate for the communication packets (hereinafter referred to as the "communication data rate") and a data rate for the sampling packets (hereinafter referred to as the "test data rate"). These data rates (typically expressed in bits per unit time) are not to be confused with packet rates (typically expressed in packets per unit time). At certain times, the communication data rate may be equal to the test data rate. At other times, the communication data rate and the sampling rate are different.

[0039] The Fig. The WLAN and WLAN device configurations illustrated in Figure 1 are exemplary configurations chosen solely for conceptual reasons. In alternative embodiments, any other suitable WLANs and / or WLAN device configurations may be used. Although Fig. While Figure 1 depicts only two WLAN devices, real WLANs typically include a larger number of WLAN devices for clarity. Elements that are not essential to understanding the disclosed techniques have been omitted from the figure for clarity.

[0040] The various elements of the WLAN device 24, for example TX 36, RX 40, processor 48, and the elements of the processor 48, for example communication packet generator 52, check packet generator 56, packet scheduler 60, data rate calculator 64, statistics calculator 68, can be implemented with special hardware or firmware, for example with hard-wired or programmable logic, for example in an application-specific integrated circuit (ASIC) or field-programmable gate array (FPGA), with software, or with a combination of hardware and software elements.

[0041] Some functions of WLAN device 24, such as some or all of the functions or elements of processor 48, may be implemented with a programmable processor, such as a digital signal processor (DSP), programmed in software to perform the functions described herein. The software may, for example, be downloaded to the processor in electronic form over a network, or it may alternatively or additionally be provided and / or stored on non-transitory tangible media, such as magnetic, optical, or electronic storage.

[0042] Fig. 2 is a flowchart schematically illustrating a method for quantity adjustment in the WLAN device 24 of Fig. 1 according to an embodiment described herein.

[0043] Typically, the procedure of Fig. 2 is performed when WLAN device 24 and peer WLAN device 28 have already established a WLAN connection between them. In some embodiments, the method is preceded by an initialization process that sets an initial value for the communication data rate. In an exemplary embodiment, the initialization process is based on a reciprocity assumption, i.e., the channel attenuation is similar in the forward channel (from WLAN device 24 to peer WLAN device 28) and in the reverse channel (from peer WLAN device 28 to WLAN device 24). In this embodiment, the data rate calculator 24 initializes the communication data rate based on a Received Signal Strength Indication (RSSI) and / or Signal-to-Noise Ratio (SNR) of the signal received from the peer WLAN device 28. Alternatively, any other suitable initialization method may be used.

[0044] The procedure of Fig. 2 begins with the processor 48 of the WLAN device 24 starting a new sliding window, a window that initiates the operation 80. A sliding window is typically defined as a time interval sufficient to collect performance statistics for the communication packets sent from the WLAN device 24 to the peer WLAN device 28. At the end of each sliding window, the processor 48 typically sets the communication data rate for the next sliding window. The sliding windows are not necessarily of constant duration and can be lengthened or shortened by the processor 48 as needed. Typical, non-limiting values ​​of the sliding window duration are on the order of 10-100 ms, depending, for example, on the traffic speed. Alternatively, any other suitable durations may be used.

[0045] During a packet transmission operation 84, processor 48 sends communication packets and, optionally, probe packets to peer WLAN device 28. For example, in the first sliding window after connection initialization, processor 48 sends only communication packets and no probe packets. Typically, the communication packets are generated by communication packet generator 52, the channel probe packets (if any) are generated by channel probe packet generator 56, and scheduler 60 sends all packets to TX 36 for transmission.

[0046] In a statistics collection operation 88, the statistics calculator 68 collects performance statistics for the communication packets and (if present) for the channel probe packets. Performance statistics may include, for example, a packet error rate (PER) of the communication packets, a PER of the channel probe packets, a throughput of the communication packets, a throughput of the channel probe packets, and / or any other suitable performance measure. As mentioned above, the PER and / or throughput to be calculated are typically initial transmission PER and / or throughput (excluding retries).

[0047] In one embodiment, for packets (communication packets or response packets) transmitted as MPDUs, the statistics calculator 68 calculates performance statistics based on acknowledgment (ACK) messages received via RX 40 from the peer WLAN device 28. Additionally or alternatively, for packets (communication packets or probe packets) transmitted as A-MPDUs, the statistics calculator 68 calculates performance statistics based on block acknowledgments (BA) messages received via RX 40 from the peer WLAN device 28.

[0048] The method now splits into two subprocesses. In the subprocess shown on the left side of the figure, processor 48 uses the statistical power of the communication packets to (i) configure how the channel test is performed in the next sliding window and (ii) set the communication data rate for the next sliding window. In the subprocess shown on the right side of the figure, processor 48 uses the statistical power of the channel test packets to set the communication data rate for the next sliding window. The following description begins with the test configuration and then describes the setting of the communication data rate, but in reality, the two subprocesses are typically performed in parallel in one embodiment.

[0049] During a window expiration check 92, the processor 48 checks whether the current sliding window has expired. If it has not expired, the method returns to operation 84. If the sliding window has expired, the statistics calculator 68 evaluates the first transmit PER of the communication packets in the current sliding window during a communication PER evaluation operation 96. In one embodiment, the data rate calculator 64 compares the PER of the communication packets to two PER thresholds, designated TH1 and TH2, where TH2>TH1.

[0050] If the PER is below TH1 (performance is better than the threshold), then, in a rate adjustment operation 100, the data rate calculator 64 (i) increases the communication data rate to the next higher data rate and (ii) sets the test data rate one rate higher than the (already increased) communication data rate. If the communication data rate cannot be increased because the current communication data rate is already the highest supported rate, the communication data rate remains unchanged.

[0051] If the PER is between the two thresholds, ie TH1 <PER<TH2, dann behält der Datenratenrechner 64 bei einer Geschwindigkeitseinstelloperation 104 (i) die Kommunikationsdatenrate unverändert bei und (ii) beschließt, im nächsten Gleitfenster keine Kanalprüfpakete zu senden.

[0052] If the PER is above TH2 (performance is worse than the threshold), then, in a rate adjustment operation 108, the data rate calculator 64 (i) reduces the communication data rate to the next lower data rate and (ii) sets the test data rate one rate lower than the (already reduced) communication data rate. If the communication data rate cannot be reduced because the current communication data rate is already the lowest supported rate, the communication data rate remains unchanged.

[0053] The method then returns to operation 80 above, in which the next sliding window is started.

[0054] During a probe packet check operation 112, processor 48 checks whether the number of probe packets transmitted in the current sliding window has reached a predefined number, typically set to a value sufficient for an accurate estimation of the statistical performance of the probe packets. For MPDU transmission, an exemplary predefined number of channel probe packets is 20, although any other suitable value may be used.

[0055] If the predefined number of channel probe packets has not been reached, the method returns to the above process 84. If the predefined maximum number of channel probe packets is reached, the statistics computer 68 evaluates the first transmit PER of the channel probe packets in the current sliding window in a probe PER evaluation operation 116.

[0056] In one embodiment, the data rate calculator 64 compares the PER of the channel probe packets with two PER thresholds, designated TH1_Probing and TH2_Probing, where TH2_Probing>TH1_Probing. TH1_Probing and TH2_Probing are Fig. 2 are labeled TH1_P and TH2_P, respectively. In some embodiments, TH1_Probing and TH2_Probing (the thresholds for packet probing) are set to the same values ​​as TH1 and TH2 (the thresholds for communication packets). In other embodiments, different thresholds are used for packet probing and for communication packets.

[0057] If the PER is below TH1_Probing (performance is better than the threshold), the data rate calculator 64 sets the communication data rate to the current probing data rate during a rate adjustment operation 120 and sets the next probing data rate one step higher. (If the communication data rate cannot be adjusted in this way because the current probing data rate is already the highest supported rate, the communication data rate remains unchanged.)

[0058] If the PER is between the two thresholds, i.e. TH1_Probing <PER<TH2_Probing, dann stellt der Datenratenrechner 64 bei einer Geschwindigkeitseinstellung 124 die Kommunikationsdatenrate auf gleich der aktuellen Prüfdatenrate ein und stoppt das Prüfen im aktuellen Gleitfenster.

[0059] If the PER is above TH2_Probing (performance is worse than the threshold), the data rate calculator 64 sets the communication data rate one rate lower than the current probing data rate during a rate adjustment operation 128. (If the communication data rate cannot be adjusted in this way because the current probing data rate is already the lowest supported rate, the communication data rate remains unchanged.)

[0060] The method then returns to operation 80 above, in which the next sliding window is started.

[0061] The river from Fig. Figure 2 is an exemplary flow illustrated only for conceptual clarity. In alternative embodiments, any other suitable flow may be used. Furthermore, the embodiment described above refers to one possible technique for selecting the communication data rate and the test data rate by the data rate calculator 64. In alternative embodiments, any other suitable technique may be used. Some additional examples are provided below.

[0062] As mentioned above, in some embodiments, the data rate calculator 64 selects the communication data rate for the nth sliding window based on the first transmission PER and the first transmission throughput of the communication packets over the (n-1)th sliding window. In one embodiment, the data rate calculator 64 selects the communication data rate as the rate with the highest initial transmission throughput within the (n-1)th sliding window, i.e.: Rate(nT)=argmaxri∈R∑t∈[(n−1)T,nT]Thpt(ri,t) where Thpt(r i , t) the initial transmission throughput of the data rate r i at time t and R denotes the set of evaluated data rates and T the duration of the sliding window.

[0063] In an alternative embodiment, the data rate calculator 64 selects the communication data rate as the rate with the highest effective throughput in the (n-1)th sliding window: Rate(nT)=argmaxri∈RThpt_eff(ri)

[0064] The effective throughput Thpt_eff(r i ) is in turn a function of the first transmission PER: Thpteff(ri)=(1−PER(ri))⋅log2(M(ri))⋅CR(ri).Nss(ri) where PER(r i ) the initial transmission PER of the data rate r i over the (n-1)th sliding window, M(r i ) denotes the modulation order of the data rate r i , CR(r i ) denotes the coding rate of the data rate r i and Nss(r i ) denotes the number of spatial streams of data rate r i .

[0065] In yet another embodiment, the data rate calculator 64 selects the communication data rate depending on the initial transmission throughput and initial transmission throughput PER in the (n-1)th sliding window: Rate(nT)=F(Thpt(ri),PER(ri))

[0066] For example, consider a case where a first optimal communication data rate, evaluated according to the highest first transmission throughput criterion (Equation 1), differs from a second optimal communication data rate, evaluated according to the highest effective first transmission throughput criterion (Equation 2). In one embodiment, the data rate calculator 64 selects the communication data rate by (i) taking the higher of the first and second optimal communication data rates, (ii) evaluating the first transmission PER of that data rate, and (iii) comparing the first transmission PER to the target period. If the first transmission PER is less than the target period, then the higher of the first and second optimal communication data rates is selected as the communication data rate for the nth sliding window.Otherwise, the lower of the first and second optimal communication data rates is selected as the communication data rate for the n-th sliding window.

[0067] Alternatively, the data rate calculator 64 may select the communication data rate for the n-th sliding window in another suitable manner and based on another suitable statistical performance over the (n-1) sliding window.

[0068] In one embodiment, at the beginning of the n-th sliding window, the data rate calculator 64 sets the sample data rate of the first channel probe packet based on PER(Rate(nT)), ie, the first transmission PER of the communication data rate Rate(nT) selected for the ninth sliding window.

[0069] In an exemplary embodiment, if PER(Rate(nT)) is below a predefined target PER, TH1_Probing, (e.g., below 10%), the data rate calculator 64 sets the probe data rate of the first channel probe packet to a rate higher than Rate(nT) (as long as the maximum supported data rate is not exceeded). If PER(Rate(nT)) is above a predefined threshold, referred to as TH2_Probing, the data rate calculator 64 sets the probe data rate of the first channel probe packet to a rate lower than Rate(nT) (but only up to the minimum supported data rate).

[0070] In the above example, TH2_Probing is typically a function of Rate(nT) and Rate(nT)-1, since the next rate is selected under the assumption that the effective throughput of Rate(nT)-1 should be greater than the effective throughput of Rate(nT) and that the first transmission PER of the next rate should be lower than the target PER, i.e.: (1−TH2_Probing)⋅Thpt_eff(Rate(Rate(nT))) <(1−TH1_Probing)⋅Thpt_eff(Rate(Rate(nT)−1))

[0071] In some embodiments, processor 48 includes a table with one or more TH1_Probing values, each value mapped to one or more data rates, and uses the table to set the sampling data rate. In some embodiments, the table includes a corresponding TH1_Probing value for each supported data rate. In other embodiments, a particular TH1_Probing value is mapped to two or more data rates to simplify implementation and reduce the table size.

[0072] Continuing the example above, if PER(Rate(nT)) is above the target PER but below the TH1_Probing value set to Rate(nT) the data rate calculator 64 decides not to send any channel probe packets in the current sliding window.

[0073] In various embodiments, processor 48 may adjust the probe data rate (the data rate of the channel probe packets) based on the PER of ACK statistics of the channel probe packets. In some embodiments, the channel probe packets comprise A-MPDUs, and statistics calculator 68 calculates the PER based on Block ACK (BA) messages received from peer WLAN device 28. A BA message is an indicator of failed and successfully delivered MPDUs within a corresponding A-MPDU. Depending on the size of the A-MPDU, the PER may be calculated per A-MPDU or across multiple A-MPDUs.

[0074] In one embodiment, if the PER for the i-th channel probe packet (i-th A-MPDU) in the n-th sliding window, denoted as Probing_Rate(n,i), is lower than the target PER defined for the channel probe packets, the data rate calculator 64 sets the probe data rate of the next (i+1)-th channel probe packet to a rate higher than Probing_Rate(n,i), as long as the maximum supported data rate is not exceeded. In this case, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i). In one embodiment, the target PER for probing packets is set to be the same as the target PER for communication packets. Alternatively, the target PER for probing packets may be set to be lower than the target PER for communication packets to avoid an overly aggressive increase in the probe data rate.

[0075] If PER(Probing_Rate(n,i)) (the PER for the i-th channel probe packet in the n-th sliding window) is higher than the target PER defined for the channel probe packets, but lower than the corresponding PER_higher_th value, the data rate calculator 64 decides to stop transmitting channel probe packets in the current sliding window. In this case, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i). If Probing_Rate(n,i) is higher than the corresponding PER_higher_th value, the data rate calculator 64 decides to stop transmitting channel probe packets in the current sliding window. In this case, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i)-1.

[0076] In the above example, the channel probe packets comprise A-MPDUs. In alternative embodiments, the channel probe packets consist of individual MPDUs, with processor 48 adjusting the probe data rate based on ACK messages received from peer WLAN device 28.

[0077] In an exemplary embodiment, if a sequence of at least Num_RateUp_Acks consecutive ACKs is received for a probe data rate Probing_Rate(n,i) (where Num_RateUp_Acks is a predefined threshold), the data rate calculator 64 sets the probe data rate for the next channel probe packet by one rate higher, i.e., Probing_Rate(n,i+1)=Probing_Rate(n,i)+1 (up to the maximum supported rate). In this case, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i).

[0078] Continuing the above example, if for a sampling data rate Probing_Rate(n,i) a sequence of at least Num_RateDown_No_Acks MPDUs receive no ACKs (where Num_RateDown_No_Acks is a predefined threshold), the data rate calculator 64 sets the sampling data rate for the next sampling packet by one rate lower, i.e., Probing_Rate(n,i+1)=Probing_Rate(n,i)-1 (up to the supported minimum rate). In this case, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i). If Probing_Rate(n,i+1) is equal to the current communication data rate Rate(nT), the data rate calculator 64 stops transmitting channel probe packets in the current sliding window. Otherwise, the data rate calculator 64 sets the communication data rate to Probing_Rate(n,i).

[0079] Typically, the target PER is determined by the ratio between Num_RateUp_Acks and Num_RateDown_No_Acks, according to: Target_PER=Num_RateDown_No_AcksNum_RateDown_No_Acks+Num_RateUp_Acks

[0080] In one embodiment, to achieve the desired PER, the ratio between Num_RateUp_Acks and Num_RateDown_No_Acks should be set to: Num_RateUp_AcksNum_RateDown_No_Acks=1Target_PER−1

[0081] Fig. 3 is a diagram schematically illustrating an exemplary scenario of rate adaptation in the WLAN device 24 over time according to an embodiment described herein. Starting from the left side of Fig. 3, processor 48 begins the first sliding window after 140. At this time, for example, when the WLAN connection between devices 24 and 28 is first established, no performance statistics are available. Data rate calculator 64 thus sets the communication data rate based on the RSSI and / or SNR of the return channel signal received from peer WLAN device 28. No channel probe packets are transmitted during the first sliding window.

[0082] A time 144 marks the end of the first sliding window in which no channel probe packets were transmitted. As previously mentioned, the duration of the first sliding window (and the duration of the subsequent sliding window) is on the order of 10-100 ms in some embodiments. At this time, the data rate calculator 64 sets the communication data rate for the next sliding window based on the PER statistics collected during the first sliding window and also triggers the transmission of channel probe packets in the next sliding window.

[0083] In this example, the communication data rate is set to a rate higher than the originally selected communication data rate and the test data rate is set to a rate higher than the newly set communication data rate (as in operation 100 of Fig. 2). As shown in the figure, the next sliding window continues with the transmission of communication packets and channel probe packets. The time interval between consecutive channel probe packets is referred to as TInterval_Probing and is typically a system-configurable parameter.

[0084] A time 148 marks the end of the (n-1)th sliding window and the beginning of the nth sliding window. In the present example, the data rate calculator 64 decides at this time to set the communication data rate for the nth sliding window to match the probe data rate used in the (n-1)th sliding window and not to send any channel probe packets in the nth sliding window (as in operation 104 of Fig. 2). The nth sliding window proceeds in this way.

[0085] A time 152 marks the end of the n-th sliding window. In the present example, the data rate calculator 64 decides at this time to reduce the communication data rate and set the test data rate to a rate that is lower than the newly set communication data rate (as in operation 108 of Fig. 2).

[0086] The data rate calculator 64 decides to set the communication data rate to match the current sampling data rate and to transmit channel probe packets at the next lower rate in the next sliding window. The communication data rate remains unchanged.

[0087] At time 160, the Wi-Fi connection between devices 24 and 28 becomes idle for a period of T_IDLE. The connection is reestablished at time 164. In one embodiment, processor 48 treats this period of inactivity similarly to the initial connection setup, i.e., it sets the communication data rate based on the RSSI and / or SNR of the received backchannel signal. In some embodiments, processor 48 returns to the initial communication data rate setting if the inactivity period exceeds a predefined time threshold.

[0088] Although the embodiments described herein primarily relate to WLAN communication under variable channel conditions, the methods and systems described herein may also be used in various other applications.

[0089] It should be noted that the embodiments described above are cited by way of example and that the present invention is not limited to what has been particularly shown and described above. Rather, the scope of the present invention includes combinations and sub-combinations of the features described above, as well as variations and modifications that would occur to those skilled in the art upon reading the above description and that are not disclosed in the prior art. Documents incorporated by reference into this patent application are to be considered an integral part of this application, except that to the extent that terms are defined in these incorporated documents in a manner that conflicts with definitions expressly or implicitly contained in this specification, only the definitions in this specification should be considered.

Claims

[1] A method for rate adaptation in a communication device, the method comprising: during a time interval, transmitting over a wireless channel to a peer communication device both (i) communication packets carrying user data at a communication data rate and (ii) channel probe packets for probing channel conditions at a channel probe data rate derived from the communication data rate; Estimating a first statistical power of the communication packets over the time interval and a second statistical power of the channel probe packets; and Setting the communication data rate for a subsequent time interval based on at least one of the first statistical performance and / or the second statistical performance. [2] The method of claim 1, further comprising: deciding, based on the first statistical performance of the communication packets, whether or not to transmit the channel probe packets in the subsequent time interval. [3] The method of claim 1, further comprising: deciding, based on the first statistical performance of the communication packets, whether to increase or decrease the channel probe data rate in the subsequent time interval relative to the time interval. [4] The method of claim 1, further comprising: if the first statistical performance of the communication packets is better than a first performance threshold, increasing the channel probe data rate for the channel probe packets in the subsequent time interval relative to the time interval; if the first statistical performance is worse than a second performance threshold, reducing the channel test data rate in the subsequent time interval relative to the time interval; and if the first statistical power is between the first power threshold and the second power threshold, decide not to transmit the channel probe packets in the subsequent time interval. [5] The method of claim 1, wherein setting the communication data rate for the subsequent time interval comprises: if the second statistical performance of the channel probe packets is better than a first performance threshold, increasing the communication data rate in the subsequent time interval relative to the time interval; if the second statistical performance is worse than a second performance threshold, reducing the communication data rate in the subsequent time interval relative to the time interval; and if the second statistical power is between the first power threshold and the second power threshold, maintaining the communication data rate in the subsequent time interval as in the time interval. [6] The method of claim 1, comprising: initializing the communication data rate based on a quality of a return channel signal received from the peer communication device when first establishing a connection with the peer communication device or after inactivity of the connection. [7] The method of claim 1, wherein estimating the first statistical power and the second statistical power comprises estimating power measurements indicative of the throughput of the communication packets and the channel probe packets. [8] The method of claim 1, wherein estimating the first statistical power and the second statistical power comprises estimating power measurements indicative of error rates of the communication packets and the channel probe packets. [9] The method of claim 1, wherein estimating the first statistical power and the second statistical power is performed based only on first transmissions of the communication packets and the channel probe packets, excluding retransmissions. [10] The method of claim 1, comprising, at least at a given time, setting the communication data rate to be different from the channel test data rate. [11] Communication device comprising: a transmitter configured to transmit signals over a wireless channel to a peer communication device; and a processor configured to: during a time interval, sending to the peer communication device using the transmitter both (i) communication packets carrying user data at a communication data rate and (ii) channel probe packets for testing channel conditions at a channel probe data rate derived from the communication data rate; Estimating a first statistical power of the communication packets over the time interval and a second statistical power of the channel probe packets; and Setting the communication data rate for a subsequent time interval based on at least one of the first statistical performances and the second statistical performances. [12] The communication device according to claim 11, wherein the processor is further configured to decide whether or not to transmit the channel probe packets in the subsequent time interval based on the first statistical performance of the communication packets. [13] The communication device of claim 11, wherein the processor is further configured to decide whether to increase or decrease the channel test data rate in the subsequent time interval relative to the time interval based on the first statistical performance of the communication packets. [14] The communication device of claim 11, wherein the processor is further configured to: if the first statistical performance of the communication packets is better than a first performance threshold, increasing the channel probe data rate for the channel probe packets in the subsequent time interval relative to the time interval; if the first statistical performance is worse than a second performance threshold, reducing the data rate of the channel test in the subsequent time interval relative to the time interval; and if the first statistical power is between the first power threshold and the second power threshold, decide not to transmit the channel probe packets in the subsequent time interval. [15] The communication device of claim 11, wherein the processor is configured to set the communication data rate for the subsequent time interval as follows: if the second statistical performance of the channel probe packets is better than a first performance threshold, increasing the communication data rate in the subsequent time interval relative to the time interval; if the second statistical performance is worse than a second performance threshold, reducing the communication data rate in the subsequent time interval relative to the time interval; and if the second statistical power is between the first power threshold and the second power threshold, maintaining the communication data rate in the subsequent time interval as in the time interval. [16] The communication device of claim 11, wherein the processor is configured, after initially establishing a connection with the peer communication device or after inactivity of the connection, to initialize the communication data rate based on a quality of a return channel signal received from the peer communication device. [17] The communication device of claim 11, wherein the processor is configured to estimate the first statistical power and the second statistical power by estimating power measurements indicative of the throughput of the communication packets and the channel probe packets. [18] The communication device of claim 11, wherein the processor is configured to estimate the first statistical power and the second statistical power by estimating power measurements indicative of error rates of the communication packets and the channel probe packets. [19] The communication device of claim 11, wherein the processor is configured to estimate the first statistical power and the second statistical power based only on first transmissions of the communication packets and the channel probe packets, excluding retransmissions. [20] The communication device of claim 11, wherein the processor is configured, at least at a certain time, to set the communication data rate to be different from the channel test data rate.

Citation Information

Patent Citations

  • Method of adapting the data rate during transmission of variable bit-rate data streams

    EP2562979A1