Patent Publication Number: US-2005128954-A1

Title: Method for transmission rate adapatation

Description:
BACKGROUND OF THE INVENTION  
      1. Field of the Invention  
      The invention relates in general to the method for transmission rate adaptation, and more particularly to the method for transmission rate adaptation.  
      2. Description of the Related Art  
      The advantage of wireless communication system is the increased mobility, because data are transmitted through air using radio bands instead of cables. Users of wireless communication systems can move about almost without restrictions and access information from nearly everywhere. IEEE 802.11 a/b/g standards are used for wireless LAN (local area network). IEEE 802.11a uses OFDM (Orthogonal Frequency Division Multiplexing) modulation technology and specifies the transmission rates of 54M, 48M, 36M, 24M, 12M, 9M and 6 Mbps. IEEE 802.11b uses spread spectrum modulation technology and specifies the transmission rates of 11 M, 5.5M, 2M and 1M. IEEE 802.11g uses both OFDM and spread spectrum modulation technologies and specifies the transmission rates included in IEEE 802.11a and IEEE 802.11b for full backward compatibility.  
      The actual throughput in wireless LANs is dependent upon the network product and the communication environment. Factors that affect the actual throughput include number of users and propagation factors such as range and multipath, etc.  
      The transmission rate of the wireless LAN according to IEEE 802.11a/b/g is dynamically adaptable during data transmission in order to achieve the best throughput. However, the algorithm of performing dynamic rate switching is not instructed in the IEEE 802.11a/b/g standards and left as an implementation issue.  
     SUMMARY OF THE INVENTION  
      It is therefore an object of the invention to provide a method for transmission rate adaptation.  
      The invention achieves the above-identified objects by providing a new method for transmission rate adaptation used in a wireless network. A current transmission rate is selected from a set of predetermined transmission rates. Each of the transmission rates, R, is associated with a PER (packet error rate) range, which includes a predetermined threshold pair of a high PER threshold, denoted as Q H (R), and a low PER threshold, denoted as Q L (R). First, calculate a first estimated PER, denoted as P1(r n ), wherein r n  denotes the transmission rate at the n-th adaptation iteration. Then, check whether the P1(r n ) is larger than the Q H (r n ), if yes, reduce the transmission rate. Then, calculate a second estimated PER, denoted as P2(r n ), and check whether the P2(r n ) is smaller than the Q L (r n ), if yes, increase the transmission rate. And, check whether the P2(r n ) being larger than the Q H (r n ), if yes, reduce the transmission rate.  
      Other objects, features, and advantages of the invention will become apparent from the following detailed description of the preferred but non-limiting embodiments. The following description is made with reference to the accompanying drawings.  
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  is a graph that shows the relation of the system packet error rate (PER) vs. received power P at different transmission rates of a PHY design.  
       FIG. 2  is a graph that shows the relation of the system throughput vs. received power P.  
       FIG. 3  is a table that shows the PER ranges for each transmission rate.  
       FIGS. 4A and 4B  are the flowchart of the method of transmission rate adaptation of a preferred embodiment according to the invention.  
       FIGS. 5A and 5   b  are flowcharts of the procedure for estimating the PER P1(r n ) and P2(r n ) respectively.  
       FIG. 6  is the flowchart of the procedure for adapting the PER range.  
       FIG. 7  is the flowchart of the procedure for checking if the ping-pong event occurs.  
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
       FIG. 1  is a graph that shows the relation of the system packet error rate (PER) vs. received power P at different transmission rates of a PHY design. The system PER is reduced if the received power P is increased for each transmission rate.  FIG. 2  is a graph that shows the relation of the system throughput vs. received power P. The throughput is increased if the received power P is increased for each transmission rate. It is observed in  FIG. 2  that the best system throughput is achieved by adapting the transmission rate according to the received power P. Each transmission rate corresponds to a power range in order to achieve the best system throughput. Further, a PER range is obtained in correspondence to the power range of each transmission rate according to the relation of PER vs. received power in  FIG. 1 .  FIG. 3  is a table that shows the PER ranges for each transmission rate. The PER range for each transmission rate R includes a high PER threshold, denoted as Q H (R), and a low PER threshold, denoted as Q L (R). The transmission rate adaptation of this invention can be executed according to the PER range.  
      For each adaptation iteration, the transmission rate r n  of the wireless system is selected from a set of predetermined transmission rates {R 0 , . . . , R W }, where n denotes the adaptation iteration index, W is an integer and R 0 &lt;R 1 &lt; . . . &lt;R W . Take the case shown in  FIG. 3  as an example, one have W=5 and {R W , . . . , R 0 }={54M, 48M, 36M, 24M, 12M, 6M}. In other words, the transmission rate r n  at the n-th iteration is equal to R k , wherein 0=&lt;k&lt;=W and k is an integer. Each of the predetermined transmission rates, Rε{R 0 , . . . , R W }, is associated with a PER range, as listed in  FIG. 3 , which includes a predetermined threshold pair of a high PER (packet error rate) threshold, denoted as Q H (R), and a low PER threshold, denoted as Q L (R).  
       FIG. 4A  is the flowchart of the method of transmission rate adaptation of a preferred embodiment according to the invention. Consider the current iteration is the n-th iteration, and the (n−)-th iteration is called the previous iteration. Let r n  and r n−1  denote the transmission rate at current and previous iteration, respectively. First, check the transmission rate r n  at current iteration (step  101 ): if the current transmission rate is of the highest, R W , process step  110 , else if the current transmission rate r n  is of the slowest, R 0 , process step  170 , otherwise enter node A. At step  110 , estimate the PER P1(r n ) of the current transmission rate r n . The procedure for estimating PER P1(r n ) is shown in  FIG. 5A , and will be discussed later. Then, check if the PER P1(r n ) is larger than the high PER threshold Q H (r n ) (step  120 ). If the PER P1(r n ) is larger than the high PER threshold Q H (r n ), steps  130 ˜ 152  are processed to determine whether the transmission rate should be decreased, else process step  160 . In step  160 , PER range is adapted for better transmission throughput. Then, set the adapting direction parameter D n  to 0 (step  162 ). The adapting direction parameter D n  is used to record the change of the transmission rate. D n  is initially zero. If from the n-th iteration to the (n+1)-th iteration, the transmission rate is increased, D n  is set to 1; if the transmission rate is decreased, D n  is set to −1. The procedure for adapting the PER range is shown in  FIG. 6  and will be discussed later.  
      At step  130 , check if a ping-pong event occurs according to a ping-pong parameter PingPongNum. The ping-pong event is that the transmission rate varies between two adjacent rates, such as R k  and R k+1 , alternatively. PingPongNum is used to record the times of the transmission rate variation times. The procedure for determining if a ping-pong event occurs is shown in  FIG. 7  and will be discussed later. If the ping-pong event occurs, the PER range should be adapted (step  140 ) to prevent the ping-pong event from happening again. After adapting the PER range, the parameter PingPongNum is reset to 0 (step  142 ) and the adapting direction parameter, D n , is set to 0, representing that the transmission rate r is not changed (step  144 ). If the ping-pong event does not occur, the system throughput ?(r n ) at the current iteration is calculated according to the PER P1(r n ) (step  135 ) and the transmission rate is decreased to R W−1  (step  150 ). Then the adapting direction parameter, D n , is set to −1 (step  152 ).  
      At step  170 , wherein the current transmission rate r n  is the lowest one, R 0 , the PER P1(r n ) is estimated. The procedure for estimating the PER P1(r n ) is the same as step  110 . Then, check if the PER P1(r n ) is smaller than the low PER threshold Q L (r n ) (step  175 ). If the PER P1(r n ) is not smaller than the low PER threshold Q L (r n ), step  190  is processed to adapt the PER range and set the adapting direction parameter, D n , to 0 (step  192 ). Otherwise, the system throughput ?(r n ) at current iteration is calculated according to the PER P1(r n ) (step  180 ), the transmission rate is increased to R 1  (step  185 ), and the adapting direction parameter, D n , is set to 1 (step  187 ).  
       FIG. 4B  is a flowchart of the transmission rate adaptation while the current transmission rate r n  is neither the highest nor the slowest. Consider r n =R k , kε{1,2, . . . , W−1}. First, estimate the PER P1(r n ) (step  210 ). Then, check if the PER P1(r n ) larger than the high PER threshold Q H (r n ) (step  215 ), if so, step  220  is processed, else step  240  is processed. In step  220 , check if the ping-pong event occurs, if so, adapt the PER range (step  230 ) and set the adapting direction parameter, D n , to 0; otherwise process step  225 . In step  225 , the system throughput ?(r n ) at current iteration is computed (step  225 ). In addition, the transmission rate is decreased (step  235 ) and the adapting direction parameter, D n , is set to −1 (step  237 ).  
      In step  240 , estimate PER P2(r n ). The procedure for estimating PER P2(r n ) is shown in  FIG. 5B  and will be discussed later. Then check if PER P2(r n ) smaller than the low PER threshold Q L (r n ) (step  250 ), if so, process step  260  else process step  252 . In step  260 , calculate the system throughput ?(r n ). In addition, increase the transmission rate (step  270 ) and set the adapting direction parameter, D n , to 1 (step  272 ). In step  252 , check if the PER P2(r n ) larger than the high PER threshold Q H (r n ), if so, process step  220 , else adapt the PER range (step  255 ) and set the adapting direction parameter, D n , to 0 (step  257 ).  
      The throughput ? is computed using the following equation: 
 
?=? 0 ( r )(1 −p )  (1) 
 
 wherein ? 0 (r) is the theoretical throughput of a transmission rate r under the condition of no packet errors, p is the PER. In steps  135  and  180 , ?(r n )=? 0 (r n )(1−P1(r n )). In step  260 , ?(r n )=? 0 (r n )(1−P2(r n )). In step  225 , if the previous step of step  220  is  215 , ?(r n )=? 0 (r n )(1−P1(r n )), else ?(r n )=? 0 (r n ) (1−P2(r n )). 
 
       FIG. 5A  is a flowchart of the procedure for estimating the PER P1(r n ) used by steps  110 ,  170  and  210 . The procedure of estimating the PER P1(r n ) is mainly to transmit a plurality of packets, receive the acknowledge packets and then estimate the PER P1(r n ) according to the ratio of the quantity of the failure packets to that of the transmitted packets. A failure packet is the packet that is transmitted but no corresponding acknowledge packet is received or the received acknowledge packet is not correct. First of the procedure, determine a number N1(r n ) according to the high PER threshold Q H (r n ) (step  310 ). Ideally, the PER P1(r n ) is more accurate if the number N1(r n ) is larger, but the time to send a large number of packets for estimating PER P1(r n ) would be too long. In the embodiment, N1(r n ) is determined by the following equation such that the time to estimate PER P1(r n ) is not too long while the estimated PER P1(r n ) is still acceptable: 
   N 1( r   n )=ceil( a/Q   H ( r   n ))  (2)  
 , wherein a is a scalar factor, i.e. α=2, determined by experiments and ceil(·) is a function to get the minimal integer greater than the argument. Then, start to transmit packets (step  312 ). Then, receive the acknowledge packets corresponding to the transmitted packets (step  314 ). Check if M consecutive failure packets occurred (step  318 ), wherein M is an positive integer and is determined by experiments. If M consecutive failure packets occurred, decrease the transmission rate (step  320 ), set adapting direction parameter, D n , to −1 (step  322 ) and go to the end of this method of transmission rate adaptation (step  324 ). At step  330 , check if the number of the transmitted packets reaches N1(r n ), if not, go back to step  312  to continue transmitting packets, else process step  332  to estimating the PER P1(r n ). Suppose that the quantity of failure packets is F1, and then PER P1(r n ) can be estimated by the following equation: 
   P 1( r   n )= F 1/ N 1( r   n )  (3)  
       FIG. 5B  is a flowchart of the procedure for estimating the PER P2(r n ) used by steps  240 . In principle, the procedure of estimating the PER P2(r n ) is to transmit a plurality of packets, receive the acknowledge packets and then estimating the PER P2(r n ) according to the ratio of the quantity of the failed packets to that of the transmitted packets. First, determine a number N(r n ) according to the low PER threshold Q L (r n ) (step  350 ). N(r n ) is determined by the following function: 
   N ( r   n )=ceil( a/Q   L ( r   n ))  (4)  
 , wherein a is a value, i.e. α=2, determined by experiments. Then, a number N2(r n ) is calculated, which equals to N(r n )−N1(r n ). Then, transmit packets (step  352 ). Then, receive the acknowledge packets of the transmitted packets (step  354 ). Check if M consecutive failure packets occurred (step  356 ), wherein M is an positive integer and is determined by experiments. If M consecutive failure packet occurred, decrease the transmission rate (step  370 ), set adapting direction parameter, D n , to −1 (step  372 ) and go to the end of this method of transmission rate adaptation (step  374 ). At step  358 , check if the quantity of the transmitted packets reaches N2(r n ), if not, go back to step  352  to continue transmitting packets, else process step  360  to estimate the PER P2(r n ). Suppose that the quantity of failure packets is F2, and then PER P2(r n ) can be estimated by the following functions: 
   F=F 1+ F 2  (5)    P 2( r   n )= F/N ( r   n )  (6)  
       FIG. 6  is the flowchart of the procedure for adapting the PER range used by steps  140 ,  160 ,  190 ,  230 , and  255 . Consider the current iteration is the n-th iteration, and the (n-1)-th iteration is called the previous iteration. Let r n  and r n−1  denote the transmission rate at current and previous iteration, respectively. First, check if the transmission rate was decreased from the previous to the current iteration (step  402 ), i.e. r n−1 =R k+1 , r n =R k  for some kε{1,2, . . . , W}, if so, process step  404 , else process step  422 . Note that, the step  402  can be performed by checking the adapting direction parameter D n−1  at previous iteration. If the D n−1  equals to −1, it means that the transmission rate was decreased, and if the D n−1  equals to 1, it means that the transmission rate was increased. In step  404 , a system throughput ?(r n ) at current iteration is calculated according to equation (1). Then, the throughput ?(r n ) at current iteration is compared with the throughput ?(r n−1 ) at previous iteration (step  406 ), which has been calculated at the previous iteration. If the ?(r n ) is smaller than the ?(r n−1 ), the PER range is adapted as follows (step  408 ): 
   Q   H ( R   k+1 )= Q   H ( R   k+1 )+? 1   (7)    Q   L ( R   k )= Q   L ( R   k )+? 2   (8)  
 where Δ 1  and Δ 2  are preset parameters. In addition, the current transmission rate r n  is returned to the one at the previous iteration by increasing the transmission rate from R k  to R k+1 (step  410 ). If the current throughput ?(r n ) is not smaller than previous throughput ?(r n−1 ), the PER range is not adapted. 
 
      At step  422 , check if the transmission rate was increased from the previous to the current iteration, i.e. r n−1 =R k−1 , r n =R k  for some kε{0,1, . . . , W}, if so, process step  424 . In step  424 , a system throughput ?(r n ) at current iteration is calculated according to equation (1). Then, the current throughput ?(r n ) is compared with the previous throughput ?(r n−1 )(step  426 ), which has been calculated at the previous iteration. If the current throughput ?(r n ) is smaller than the previous throughput ?(r n−1 ), the PER range is adapted as follows (step  428 ): 
 
 Q   H ( R   k )= Q   H ( R   k )−? 1   (9) 
 
 Q   L ( R   k−1 )= Q   L ( R   k−1 )−? 2   (10) 
 
 And, the current transmission rate is returned to the one at the previous iteration by decreasing the transmission rate from R k  to R k−1  (step  430 ). If the current throughput ?(r n ) is not smaller than previous throughput ?(r n−1 ), the PER range is not adapted. 
 
       FIG. 7  is the flowchart of the procedure for checking if the ping-pong event occurs used by steps  130  and  220 , wherein the transmission rate r n  is going to be decreased in both cases. First, check if the transmission rate r n  at the current iteration n is increased from the transmission rate r n−1  at the previous iteration n−1, i.e, check if D n  equals to 1 (step  510 ), if so, process step  520 , else process step  550  to reset PingPongNum and then step  560 . In step  520 , increase the parameter PingPongNum, which records the times of the back-and-forths of the transmission rate between two adjacent rates. Next, check if PingPongNum is larger than the preset ping-pong threshold, denoted as PingPongThr (step  530 ), if so, the occurrence of the ping-pong event is declared (step  540 ), else it is declared that the ping-pong event does not occur (step  560 ).  
      The best throughput is achieved by the invention, while the ping-pong event is avoided, and the consecutive failure packets are considered. The PER range is also adapted for a better result of the throughput.  
      While the invention has been described by way of example and in terms of a preferred embodiment, it is to be understood that the invention is not limited thereto. On the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.