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 QH(R), and a low PER threshold, denoted as QL(R). First, calculate a first estimated PER, denoted as P1(rn), wherein rn denotes the transmission rate at the n-th adaptation iteration. Then, check whether the P1(rn) is larger than the QH(rn), if yes, reduce the transmission rate. Then, calculate a second estimated PER, denoted as P2(rn), and check whether the P2(rn) is smaller than the QL(rn), if yes, increase the transmission rate. And, check whether the P2(rn) being larger than the QH(rn), 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(rn) and P2(rn) 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 QH(R), and a low PER threshold, denoted as QL(R). The transmission rate adaptation of this invention can be executed according to the PER range.
For each adaptation iteration, the transmission rate rn of the wireless system is selected from a set of predetermined transmission rates {R0, . . . , RW}, where n denotes the adaptation iteration index, W is an integer and R0<R1< . . . <RW. Take the case shown in FIG. 3 as an example, one have W=5 and {RW, . . . , R0}={54M, 48M, 36M, 24M, 12M, 6M}. In other words, the transmission rate rn at the n-th iteration is equal to Rk, wherein 0=<k<=W and k is an integer. Each of the predetermined transmission rates, Rε{R0, . . . , RW}, 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 QH(R), and a low PER threshold, denoted as QL(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 rn and rn−1 denote the transmission rate at current and previous iteration, respectively. First, check the transmission rate rn at current iteration (step 101): if the current transmission rate is of the highest, RW, process step 110, else if the current transmission rate rn is of the slowest, R0, process step 170, otherwise enter node A. At step 110, estimate the PER P1(rn) of the current transmission rate rn. The procedure for estimating PER P1(rn) is shown in FIG. 5A, and will be discussed later. Then, check if the PER P1(rn) is larger than the high PER threshold QH(rn) (step 120). If the PER P1(rn) is larger than the high PER threshold QH(rn), 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 Dn to 0 (step 162). The adapting direction parameter Dn is used to record the change of the transmission rate. Dn is initially zero. If from the n-th iteration to the (n+1)-th iteration, the transmission rate is increased, Dn is set to 1; if the transmission rate is decreased, Dn 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 Rk and Rk+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, Dn, 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 ?(rn) at the current iteration is calculated according to the PER P1(rn) (step 135) and the transmission rate is decreased to RW−1 (step 150). Then the adapting direction parameter, Dn, is set to −1 (step 152).
At step 170, wherein the current transmission rate rn is the lowest one, R0, the PER P1(rn) is estimated. The procedure for estimating the PER P1(rn) is the same as step 110. Then, check if the PER P1(rn) is smaller than the low PER threshold QL(rn) (step 175). If the PER P1(rn) is not smaller than the low PER threshold QL(rn), step 190 is processed to adapt the PER range and set the adapting direction parameter, Dn, to 0 (step 192). Otherwise, the system throughput ?(rn) at current iteration is calculated according to the PER P1(rn) (step 180), the transmission rate is increased to R1 (step 185), and the adapting direction parameter, Dn, is set to 1 (step 187).
FIG. 4B is a flowchart of the transmission rate adaptation while the current transmission rate rn is neither the highest nor the slowest. Consider rn=Rk, kε{1,2, . . . , W−1}. First, estimate the PER P1(rn) (step 210). Then, check if the PER P1(rn) larger than the high PER threshold QH(rn) (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, Dn, to 0; otherwise process step 225. In step 225, the system throughput ?(rn) at current iteration is computed (step 225). In addition, the transmission rate is decreased (step 235) and the adapting direction parameter, Dn, is set to −1 (step 237).
In step 240, estimate PER P2(rn). The procedure for estimating PER P2(rn) is shown in FIG. 5B and will be discussed later. Then check if PER P2(rn) smaller than the low PER threshold QL(rn) (step 250), if so, process step 260 else process step 252. In step 260, calculate the system throughput ?(rn). In addition, increase the transmission rate (step 270) and set the adapting direction parameter, Dn, to 1 (step 272). In step 252, check if the PER P2(rn) larger than the high PER threshold QH(rn), if so, process step 220, else adapt the PER range (step 255) and set the adapting direction parameter, Dn, 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, ?(rn)=?0(rn)(1−P1(rn)). In step 260, ?(rn)=?0(rn)(1−P2(rn)). In step 225, if the previous step of step 220 is 215, ?(rn)=?0(rn)(1−P1(rn)), else ?(rn)=?0(rn) (1−P2(rn)).
FIG. 5A is a flowchart of the procedure for estimating the PER P1(rn) used by steps 110, 170 and 210. The procedure of estimating the PER P1(rn) is mainly to transmit a plurality of packets, receive the acknowledge packets and then estimate the PER P1(rn) 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(rn) according to the high PER threshold QH(rn) (step 310). Ideally, the PER P1(rn) is more accurate if the number N1(rn) is larger, but the time to send a large number of packets for estimating PER P1(rn) would be too long. In the embodiment, N1(rn) is determined by the following equation such that the time to estimate PER P1(rn) is not too long while the estimated PER P1(rn) is still acceptable:
N1(rn)=ceil(a/QH(rn)) (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, Dn, 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(rn), if not, go back to step 312 to continue transmitting packets, else process step 332 to estimating the PER P1(rn). Suppose that the quantity of failure packets is F1, and then PER P1(rn) can be estimated by the following equation:
P1(rn)=F1/N1(rn) (3)
FIG. 5B is a flowchart of the procedure for estimating the PER P2(rn) used by steps 240. In principle, the procedure of estimating the PER P2(rn) is to transmit a plurality of packets, receive the acknowledge packets and then estimating the PER P2(rn) according to the ratio of the quantity of the failed packets to that of the transmitted packets. First, determine a number N(rn) according to the low PER threshold QL(rn) (step 350). N(rn) is determined by the following function:
N(rn)=ceil(a/QL(rn)) (4)
, wherein a is a value, i.e. α=2, determined by experiments. Then, a number N2(rn) is calculated, which equals to N(rn)−N1(rn). 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, Dn, 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(rn), if not, go back to step 352 to continue transmitting packets, else process step 360 to estimate the PER P2(rn). Suppose that the quantity of failure packets is F2, and then PER P2(rn) can be estimated by the following functions:
F=F1+F2 (5)
P2(rn)=F/N(rn) (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 rn and rn−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. rn−1=Rk+1, rn=Rk 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 Dn−1 at previous iteration. If the Dn−1 equals to −1, it means that the transmission rate was decreased, and if the Dn−1 equals to 1, it means that the transmission rate was increased. In step 404, a system throughput ?(rn) at current iteration is calculated according to equation (1). Then, the throughput ?(rn) at current iteration is compared with the throughput ?(rn−1) at previous iteration (step 406), which has been calculated at the previous iteration. If the ?(rn) is smaller than the ?(rn−1), the PER range is adapted as follows (step 408):
QH(Rk+1)=QH(Rk+1)+?1 (7)
QL(Rk)=QL(Rk)+?2 (8)
where Δ1 and Δ2 are preset parameters. In addition, the current transmission rate rn is returned to the one at the previous iteration by increasing the transmission rate from Rk to Rk+1(step 410). If the current throughput ?(rn) is not smaller than previous throughput ?(rn−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. rn−1=Rk−1, rn=Rk for some kε{0,1, . . . , W}, if so, process step 424. In step 424, a system throughput ?(rn) at current iteration is calculated according to equation (1). Then, the current throughput ?(rn) is compared with the previous throughput ?(rn−1)(step 426), which has been calculated at the previous iteration. If the current throughput ?(rn) is smaller than the previous throughput ?(rn−1), the PER range is adapted as follows (step 428):
QH(Rk)=QH(Rk)−?1 (9)
QL(Rk−1)=QL(Rk−1)−?2 (10)
And, the current transmission rate is returned to the one at the previous iteration by decreasing the transmission rate from Rk to Rk−1 (step 430). If the current throughput ?(rn) is not smaller than previous throughput ?(rn−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 rn is going to be decreased in both cases. First, check if the transmission rate rn at the current iteration n is increased from the transmission rate rn−1 at the previous iteration n−1, i.e, check if Dn 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.