# Patent

## Title
Data streaming method and apparatus using adaptive transmission scheduling

## Abstract

An adaptive scheduling method, systems and apparatus for streaming data service for either single-carrier channel or multi-carrier channel are provided. This adaptive scheduler assigns data transmission using mixed round-robin and maximum CIR user selections based on a predetermined threshold relative to the target streaming data transmission rate. It can provide a very high flexibility for a streaming data service and exploits a multi-user diversity in single-carrier system and an additional frequency diversity in multi-carrier system.

## Background
RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/315,866 filed Aug. 30, 2001.


FIELD OF THE INVENTION
The invention relates to transmission scheduling of multiple users on a shared channel which may be single or multi-carrier.
BACKGROUND OF THE INVENTION
1×EV-DV is an evolution of the CDMA-2000 standard for the support of circuit-switched voice and data as well as packet-switched high-speed data (HSD) on the same carrier. In such a system, the support of packet-switched HSD users is provided by means of a shared channel that serves one packet data user at a time in a time-multiplexed manner. In order to schedule the packet data for different users on the shared channel, a proportional fairness scheduler has been proposed by Qualcomm. However, this scheduler achieves a large standard deviation of cumulated throughput among all users, and cannot be used to provide streaming data transmission such as video service.
SUMMARY OF THE INVENTION
Embodiments of the invention provide an adaptive scheduling method, systems and apparatus for streaming data service for either single-carrier channel or multi-carrier channel. This adaptive scheduler assigns data transmission using a mixed round-robin and maximum CIR user selections based on a predetermined threshold relative to the target streaming data transmission rate. It can provide a very high flexibility for a streaming data service and exploits a multi-user diversity in single-carrier system and an additional frequency diversity in multi-carrier system.
In some embodiments, the method allows the delivery of streaming data services such as video with a certain buffer jitter (for example, 50-100 msec or 2-5 seconds).
In some embodiments, the method achieves a high throughput as compared to the existing schedulers such as maximum-CIR user scheduling, fairness scheduling, slot round-robin scheduling, and throughput round-robin scheduling on a single carrier channel and more powerfully on a multi-carrier channel, in consideration of streaming data services.
In some embodiments, the method has a high flexibility to control QoS based on the tolerated outage probability of streaming services.
According to one broad aspect, the invention provides a method which involves for each of at least one carrier, scheduling one of plurality of data services for each slot during a scheduling period such that data services of the plurality of data services capable of supporting a higher transmission rate on the carrier are more likely to be scheduled, and a data service closer to achieving the data service's respective target data transmission rate or having a shorter wait time is less likely to be scheduled than a data service further from achieving the data service's respective target data transmission rate or having a longer wait time.
According to another broad aspect, the invention provides a method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame. The method involves defining a respective target average transmission data rate for each receiver to be scheduled;
for a current slot of said frame:
a) maintaining an average transmission data rate for each receiver, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) or similar quantity for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver of the {receiver, carrier} permutation;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric.
According to another broad aspect, the invention provides a method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame. The method involves for each slot, dividing unscheduled receivers into a first subset and a second subset the first subset comprising a set of N receivers of the plurality of receivers which are furthest from their target average transmission data rates or have largest waiting times; scheduling receivers of the first subset; after scheduling receivers of the first subset, scheduling receivers of the second subset.
According to another broad aspect, the invention provides a method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame. The method involves:
for each receiver, maintaining a wait time indicating how long a current packet for the receiver has been waiting to be scheduled;
for a current slot of said frame:
a) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) or similar quantity for the {receiver, carrier} permutation, and which is an increasing function of the respective wait time for the receiver;
b) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric.
According to another broad aspect, the invention provides a base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by;
defining a respective target average transmission data rate for each receiver to be scheduled;
for a current slot of said frame:
a) maintaining an average transmission data rate for each receiver, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) or similar quantity for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver of the {receiver, carrier} permutation;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric.
According to another broad aspect, the invention provides a base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by:
for each slot, dividing unscheduled receivers into a first subset and a second subset the first subset comprising a set of N receivers of the plurality of receivers which are furthest from their target average transmission data rates or have largest waiting times;
scheduling receivers of the first subset;
after scheduling receivers of the first subset, scheduling receivers of the second subset.
According to another broad aspect, the invention provides s base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by:
for each receiver, maintaining a wait time indicating how long a current packet for the receiver has been waiting to be scheduled;
for a current slot of said frame:
a) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) or similar quantity for the {receiver, carrier} permutation, and which is an increasing function of the respective wait time for the receiver;
b) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric.



BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the invention will now be described with reference to the attached drawings in which:
FIG. 1 is a schematic diagram of a network in which there is a forward shared channel between a base station and multiple mobile stations;
FIG. 2 is an illustration of a frame structure having a time division multiplexed slot structure and having multiple carriers;
FIG. 3 is a flowchart of a method of assigning the multiple carriers to multiple users, provided by an embodiment of the invention;
FIG. 4 is an illustration of how multiple users meet their target data rates over a scheduling period;
FIG. 5 illustrates how carriers are assigned to users according to another embodiment of the invention; and
FIGS. 6 to 9 show simulation results using the new scheduling method.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The context of the invention is a shared channel which may include multiple carriers on which scheduling slots are used to transmit to multiple receivers in a time multiplexed fashion. It is assumed that each data frame has a frame interval TF and consists of N slots. Such a shared channel is illustrated in FIGS. 1 and 2.
FIG. 1 shows an example of a communications system with a base station 10 communicating with three mobile stations MS1 12, MS2 14 and MS3 16. It is to be understood that there may be more or fewer based mobile stations at a given instance. The base station 10 communicates with the mobile stations 12, 14 and 16 over a forward shared channel 17. The mobile stations 12, 14, and 16 communicate back CIR readings 18, 20 and 22 respectively to the base station 10 or other similar readings. The invention provides methods and systems for scheduling the delivery of mobile station data content over the forward shared channel 17.
FIG. 2 shows an example structure of the frames transmitted over the forward shared channel. The frame is divided into L slots time wise, and during each slot transmission can occur on up to M carriers labeled carrier 0 through carrier M−1.
A streaming data service is provided which is based on the soft latency concept. A certain outage probability of the data transmission rate in each frame interval is allowed in order to achieve high flexibility, in so doing increasing the total transmission throughput. In other words, for a given target transmission data rare RTH,k(F), a certain outage probability associated with this rate can be calculated. The purpose is to control the streaming data service throughput frame by frame (equivalent to the control of transmission rate), based on a predetermined target transmission data rate RTH,k(F), resulting in a significantly flexible and controllable streaming data service system.
It is noted that the outage probability may be used to find user capacity. That means, first, a small value is set for the number of users, and then the outage probabilities are checked. If the outage probabilities are less than a predetermined target, for example 2% the number of users is increased. Otherwise the number of users is decreased until the outage probability reaches the target. At this point, the number of users will be considered for user capacity.
In what follows, an adaptive scheduler is introduced. First, it is assumed that each MS monitors M CIRs (carrier-to-interference ratios) based on M received common pilot signals in M separate carriers (for a single carrier system, M=1), and then reports them to its serving BS. Alternatively, some other method of obtaining a CIR or similar estimate for each MS and each carrier can be employed.
Using these values for all mobile stations and all carriers, a CIR matrix, Γ(n), can be defined at each BS, expressed as follows:




  
    
      
        
          
            
              Γ
              _
            
            ⁡
            
              (
              n
              )
            
          
          =
          
            [
            
              
                
                  
                    
                      Γ
                      
                        0
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Γ
                      
                        0
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Γ
                      
                        0
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
              
                
                  
                    
                      Γ
                      
                        1
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Γ
                      
                        1
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Γ
                      
                        1
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋰
                
                
                  ⋮
                
              
              
                
                  
                    
                      Γ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Γ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Γ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        3
        )
      
    
  




where Γm,k(n) gives the CIR measured at the kth user for the mth carrier and K is the number of users. The values used for slot n will necessarily be subject to any delay in making the estimate available to the BS.

Next, the CIR matrix is used to determine a corresponding transmission rate matrix. Assuming that adaptive modulation and coding (AMC) is employed, the CIR matrix can be mapped into a transmission rate matrix, R(n), as follows:




  
    
      
        
          
            R
            _
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          [
          
            
              
                
                  
                    R
                    
                      0
                      ,
                      0
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                
                  
                    R
                    
                      0
                      ,
                      1
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                ⋯
              
              
                
                  
                    R
                    
                      0
                      ,
                      
                        K
                        -
                        1
                      
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
            
              
                
                  
                    R
                    
                      1
                      ,
                      0
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                
                  
                    R
                    
                      1
                      ,
                      1
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                ⋯
              
              
                
                  
                    R
                    
                      1
                      ,
                      
                        K
                        -
                        1
                      
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
            
              
                ⋮
              
              
                ⋮
              
              
                ⋰
              
              
                ⋮
              
            
            
              
                
                  
                    R
                    
                      
                        M
                        -
                        1
                      
                      ,
                      0
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                
                  
                    R
                    
                      
                        M
                        -
                        1
                      
                      ,
                      1
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
              
                ⋯
              
              
                
                  
                    R
                    
                      
                        M
                        -
                        1
                      
                      ,
                      
                        K
                        -
                        1
                      
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
          
          ]
        
      
    
    
      
        (
        4
        )
      
    
  




where Rm,k(n) is the rate determined from Γm,k(n) for the kth user for the mth carrier.

In the embodiment being described, CIRs are fed is back from MSs, and these are used together with adaptive modulation and coding to determine corresponding transmission rates. Any suitable mapping may be employed. More generally, any suitable method of determining a transmission rate for a given user for a given slot may be employed.
A cumulative throughput Λk(n), a component of vector Λ(n), is maintained for the kth MS after n transmission slots in the current frame interval. The cumulative throughput Λk(n) is simply the sum of the rates assigned to the user in the transmitted slots. The cumulative throughput vector has the following form:

Λ(n)=[Λ0(n),Λ1(n), . . . , ΛK−1(n)]  (5)

and K is the number of MSs.

The cumulative throughput for the kth user for slots 0 to n−1 is given by




  
    
      
        
          
            Λ
            k
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            ∑
            
              i
              =
              0
            
            
              n
              -
              1
            
          
          ⁢
          
            
          
          ⁢
          
            
              ∑
              
                m
                =
                0
              
              
                M
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              
                
                  R
                  
                    m
                    ,
                    k
                  
                
                ⁡
                
                  (
                  i
                  )
                
              
              ⁢
              
                ξ
                ⁡
                
                  (
                  
                    m
                    ,
                    k
                    ,
                    i
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




for k=0, 1, . . . , K−1 where ξ(m,k,i)=1 if user k is scheduled and the data transmission is successful during slot i on carrier m, and is 0 otherwise.

In some embodiments, a waiting time is maintained for each packet transmission, which is indicated by a vector W(n), as follows:

W(n)=[W0(n),W1(n), . . . ,WK−1(n)]  (7)

where W(n) is the transmission waiting time for the current transmission packet at the kth user.

For each frame, during each slot a respective iteration of the scheduler determines users to be scheduled during the slot.
Various options can be taken into account for computing determination factors/metrics which will be used to schedule users. Two specific options will be presented here by way of example.
First Option—Wait Time Independent
On an ongoing basis, the average transmission data rate Rk(F)(n) for the entire frame is maintained for the kth mobile station (MS) after n transmission slots (n≦N) in the frame interval as follows:




  
    
      
        
          
            
              R
              k
              
                (
                F
                )
              
            
            ⁡
            
              (
              n
              )
            
          
          =
          
            
              
                Λ
                k
              
              ⁡
              
                (
                n
                )
              
            
            
              T
              F
            
          
        
        ,
        
          
            for
            ⁢
            
              
            
            ⁢
            n
          
          =
          0
        
        ,
        1
        ,
        ...
        ⁢
        
          
        
        ,
        
          
            N
            -
            
              1
              ⁢
              
                
              
              ⁢
              and
              ⁢
              
                
              
              ⁢
              k
            
          
          =
          0
        
        ,
        1
        ,
        ...
        ⁢
        
          
        
        ,
        
          K
          -
          1
        
      
    
    
      
        (
        8
        )
      
    
  




where Λk(n), a component of vector Λ(n), is the cumulated throughput for the kth MS after n transmission slots in the current frame interval, and TF is the frame interval.

By using the transmission rate matrix R(n) and the average transmission data rates Rk(F)(n) as defined above, a determination factor Δm,k(n) is defined for the kth MS transmitting data on the mth carrier channel, which is used to determine the active packet transmission, as given by




  
    
      
        
          
            
              Δ
              
                m
                ,
                k
              
            
            ⁡
            
              (
              n
              )
            
          
          =
          
            
              
                R
                
                  m
                  ,
                  k
                
              
              ⁡
              
                (
                n
                )
              
            
            ·
            
              (
              
                1
                -
                
                  
                    
                      R
                      k
                      
                        (
                        F
                        )
                      
                    
                    ⁡
                    
                      (
                      
                        n
                        -
                        1
                      
                      )
                    
                  
                  
                    R
                    
                      TH
                      ,
                      k
                    
                    
                      (
                      F
                      )
                    
                  
                
              
              )
            
          
        
        ,
        
          
            for
            ⁢
            
              
            
            ⁢
            n
          
          =
          0
        
        ,
        1
        ,
        ⋯
        ⁢
        
          
        
        ,
        
          N
          -
          1
        
      
    
    
      
        (
        9
        )
      
    
  




In another example, the metric calculated for the kth mobile station and the mth carrier may be as follows:




  
    
      
        
          
            Δ
            
              m
              ,
              k
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            
              F
              1
            
            ⁡
            
              (
              
                
                  R
                  
                    m
                    ,
                    k
                  
                
                ⁡
                
                  (
                  n
                  )
                
              
              )
            
          
          ·
          
            
              F
              2
            
            ⁡
            
              (
              
                1
                -
                
                  
                    
                      R
                      k
                      
                        (
                        F
                        )
                      
                    
                    ⁡
                    
                      (
                      
                        n
                        -
                        1
                      
                      )
                    
                  
                  
                    R
                    
                      TH
                      ,
                      k
                    
                    
                      (
                      F
                      )
                    
                  
                
              
              )
            
          
        
      
    
    
      
        (
        10
        )
      
    
  




where F1 and F2 are be functions, e.g. logarithm or exponential because, for example the Internet packet call duration can be exponential and the arrival can be Poisson.

Second Option—Wait Time Dependent

By using the resulting transmission rate matrix R(n) and the above introduced transmission waiting time vector W(n), a determination factor Δm,k(n) for the kth MS and the mth carrier is given by




  
    
      
        
          
            Δ
            
              m
              ,
              k
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            
              [
              
                
                  R
                  
                    m
                    ,
                    k
                  
                
                ⁡
                
                  (
                  n
                  )
                
              
              ]
            
            α
          
          ·
          
            
              [
              
                
                  
                    W
                    k
                  
                  ⁡
                  
                    (
                    
                      n
                      -
                      1
                    
                    )
                  
                
                
                  T
                  B
                
              
              ]
            
            β
          
        
      
    
    
      
        (
        11
        )
      
    
  




where TB is the length of the de-jitter buffer window (or frame interval) used to guarantee a continuous display of video streaming data (or real-time data), and α and β are constants used for balancing between the transmission rate and the waiting time. More generally, a factor which is an increasing function of the note, and an increasing function of the wait time may be employed.

For either option, the factors Δm,k(n) may be used to compose a determination matrix Δ(n), as given by




  
    
      
        
          
            Δ
            _
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            [
            
              
                
                  
                    
                      Δ
                      
                        0
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Δ
                      
                        0
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Δ
                      
                        0
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
              
                
                  
                    
                      Δ
                      
                        1
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Δ
                      
                        1
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Δ
                      
                        1
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋰
                
                
                  ⋮
                
              
              
                
                  
                    
                      Δ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        0
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  
                    
                      Δ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        1
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
                
                  ⋯
                
                
                  
                    
                      Δ
                      
                        
                          M
                          -
                          1
                        
                        ,
                        
                          K
                          -
                          1
                        
                      
                    
                    ⁡
                    
                      (
                      n
                      )
                    
                  
                
              
            
            ]
          
          .
        
      
    
    
      
        (
        12
        )
      
    
  




According to the determination matrix Δ(n), a new adaptive streaming service scheduler is provided and scheduling is performed at each BS slot by slot. This scheduler employs the adaptation of maximum CIR user diversity for single carrier systems and both the multi-carrier frequency and the maximum CIR user diversities for multi-carrier system. The detailed explanation of this adaptive streaming service scheduling based on a three carrier configuration (M=3) is described below. It is easily generalizeable to M carriers with arbitrary M. It is noted that the adaptive streaming service scheduler utilizing a single carrier channel can be performed by the same algorithm except for the frequency diversity. The algorithm example is as follows as summarized in the flowchart of FIG. 3.
In step 3-1, if the scheduling is being performed for the first slot in the current frame interval, the average transmission data rates are all set to zero, in other words:

[R0(F)(n),R1(F)(n), . . . ,RK−1(F)(n)]=0.   (13)

In step 3-2 each average transmission data rate Rk(F)(n) is compared with the respective threshold RTH,k(F). If Rk(F)(n)≧RTH,k(F), the kth MS transmission is terminated for the current frame interval. The operation can be performed by setting the current transmission rate for the kth MS user to zero, i.e.,

[R0,k(n), R1,k(n), . . . , RN−1,k(n)]=0.   (14)

In step 3-3, the metric Δk,m(n) is calculated for all remaining users for all carriers.
In step 3-4 the BS selects the largest Δk1,m1(n) with respect to the k1th user and the m1th carrier among all users and all carriers. (This offers both best multi-user and frequency diversities for the selected active user.)
In step 3-5 the BS selects the second largest Δk2,m2(n) with respect to the k2th user and the m2th carrier among the remaining users and carriers. (This still offers both multi-user and frequency diversities for the selected active user. Note that k1≠k2 and m1≠m2.)
In step 3-6 the BS selects the third largest Δk3,m3 (n) with respect to the k3th user and the m3th carrier among the remaining users and carriers. (This only offers multi-user diversity. Note that k1≠k2≠k3 and m1≠m2≠m3). If there were more than three carriers, then this is repeated until all carriers are selected.
The average transmission rates are updated at step 3-8. If the frame is over, or if all user's average transmission rates satisfy their threshold (yes path, step 3-7), the method returns to step 3-1 to schedule for the next frame. If the frame is not over, and some do not meet their threshold, the method continues at step 3-2.
To evaluate the QoS of the streaming data service scheduled according to the method detailed above, an outage probability, Pout, is determined using predetermined target transmission data rate RTH,k(F), as follows:




  
    
      
        
          
            P
            _
          
          out
        
        =
        
          
            1
            M
          
          ⁢
          
            
              ∑
              
                k
                =
                0
              
              
                M
                -
                1
              
            
            ⁢
            
              
            
            ⁢
            
              
                Pr
                ⁡
                
                  [
                  
                    
                      
                        R
                        k
                        
                          (
                          F
                          )
                        
                      
                      ⁡
                      
                        (
                        
                          N
                          -
                          1
                        
                        )
                      
                    
                    <
                    
                      R
                      
                        TH
                        ,
                        k
                      
                      
                        (
                        F
                        )
                      
                    
                  
                  ]
                
              
              .
            
          
        
      
    
    
      
        (
        15
        )
      
    
  




Note that the value for RTH,k(F) can be differently determined for different users, depending on different streaming services. It is noted that the outage probability, Pout, can be used to evaluate the effectiveness of the scheduling method, but is not used in the ongoing scheduling of users in slots.

An example outage scenario is illustrated in FIG. 4 for the three user scenario. The horizontal axis is time. A target data rate is shown for each of three users user-1, user-2 and user-3 indicated at 40, 50, 60 respectively. There is a delay bound 70 which represents a time period within which a certain target data rate must be achieved. In the above described examples, this is represented by a frame. For user 1, its data rate starts at zero and then increases towards the target eventually reaching the target data rate 1, 40 at T1. At that point, transmission for user 1 is ceased for that scheduling period. Similarly, for user 2 its data rate starts at zero and increases to its target data rate at T2. In this case, both user-1 and user-2 reach their targets prior to the delay bound 70. Finally, for user-3, its data rate starts at zero and does not reach its target by the delay bound 70. This is considered an outage.
It is noted that when a given user reaches its threshold early, there may be slots made available for non-real-time HDS data. The proposed scheduling methods can be used for streaming services as well as real-time services with no change in implementation.
In the above described embodiment, users and carriers are matched by selecting the highest metric for any user and any carrier, and then the next highest metric for remaining users and remaining carriers and so on. In another embodiment, a prioritized carrier allocation scheme is followed which is somewhat slightly different from the above described embodiment. This is shown in the diagram of FIG. 5. In this embodiment, for each scheduling period the set of users is divided into two subsets, subset-1 70 and subset-2 72. This is another relative method for adaptive scheduling. In this case, there are two determination factors for two user groups. One group of users are scheduled based on the best carrier selection, and the other on either maximum CIR or proportional fairness. The users in subset-1 70 are the two users having the two lowest cumulative throughputs or highest delays. However, the size of subset-1 can be any suitable size and is a design parameter. The remaining users go into subset-2 72. In this embodiment, the user in subset-1 having the lowest throughput 73 or highest delay is assigned to the carrier which will result in the highest data rate for that user as indicated by “best carrier from all three.” Similarly, for the next lowest throughput user or next highest delay user 75, the carrier remaining after assignment to the lowest throughput user or high delay user 73 with the highest data rate for that user is assigned. This is indicated as “best carrier from remaining two 76.”
After that, the remaining users in the second subset-2 72 are assigned. In one embodiment, the users of the second subset-2 72 are assigned using the above described metric basis. In another embodiment, the users of the second subset-2 72 are assigned on a maximum CIR basis (maximum CIR selection) whereby the scheduler always picks up the user which experiences the highest reported CIR among the users. In another embodiment, the users of the second subset-2 are assigned on a proportional fairness (PF) basis.
The remaining users, of which there would be M−2 in the case that subset-1 has two users are indicated at 78, are assigned to the remaining carriers using one of the above methods.
Simulation Results
To evaluate the system performance of the new method as compared to the existing schedulers, we consider a system level simulation based on the following conditions: the rms of delay spread is 0.5 μsec, MS velocity is 30 Km/h, slot duration is 1.25 msec and the number of users K is 6. The simulation is performed for various specified values of frame length (FL) of 80, 400 and 1600 slots.
The comparison is made between proposed adaptive scheduling, maximum-CIR user scheduling, fairness scheduling, slot round-robin scheduling, and throughput round-robin scheduling on a single carrier channel with a fixed frequency bandwidth of 1.25 MHz.
FIGS. 6, 7 and 8 show the outage probability as a function of streaming data service transmission rate per user, for various specified values of frame length of 80, 400 and 1600 slots. From these figures, two observations can be made. First, for the particular examples under consideration the proposed adaptive scheduler outperforms the other existing schedulers, and achieves a significantly smaller outage probability of desired streaming data transmission rate. Second, the proposed scheduler is beneficial to a large data frame interval corresponding to a long buffer jitter, for example between 2 and 5 seconds.
Comparison Between Single and Multi-carrier Systems
The performance of the proposed adaptive scheduler is also compared between single carrier and multi-carrier systems. FIG. 9 shows the outage probability as a function of required streaming data transmission rate. From this figure, we observe that the proposed adaptive scheduler performed on a multi-carrier channel outperforms that on a single carrier channel. This is because the multi-carrier system offers a significant large frequency diversity gain as opposed to the single carrier system. If we allow an outage probability of 15%, the total streaming data throughput can reach 1.0 Mbps for single carrier system with frequency bandwidth of 3.75 MHz and 1.44 Mbps for multi-carrier system with frequency bandwidth MHz, which both are much larger than the throughput of 0.69 Mbps achieved in 3XRTT.
While preferred embodiments of the invention have been described and illustrated, it will be apparent to those skilled in the art that numerous modifications, variations and adaptations may be made without departing from the scope of the invention as defined in the claims appended hereto.

## Claims

1. A method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame, the method comprising:
defining a respective target average transmission data rate for each receiver to be scheduled;
for a current slot of said frame:
a) determining an average transmission data rate for each receiver, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver of the {receiver, carrier} permutation;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric;
d) scheduling the current slot to the {receiver, carrier} permutation associated with the largest metric;
e) transmitting the current slot.

2. A method according to claim 1 wherein the channel is a multi-carrier channel, the method further comprising:
for the current slot of the frame, repeating in sequence for as many carriers remaining in addition to one carrier;
selecting a largest metric remaining which is not associated with a receiver or carrier already allocated, and allocating the current slot to the particular {receiver, carrier} permutation associated with the largest metric remaining.

3. A method according to claim 2 further comprising:
when a given receiver's average transmission data rate exceeds that receiver's target average transmission data rate, suspending transmission for that receiver for the remainder of the frame.

4. A method according to claim 2 wherein calculating a metric associated with each {receiver, carrier} permutation which is a function of CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver comprises:
receiving or otherwise determining a CIR from each receiver for each carrier;
mapping each CIR to a respective transmission rate;
calculating the metric for each {receiver, carrier}permutation such that it is an increasing function of the respective transmission rate.

5. A method according to claim 4 wherein the metric calculated for a kth receiver of the plurality of receivers and the m th carrier comprises:




  
    
      Δ
      
        k
        ,
        m
      
    
    ⁡
    
      (
      n
      )
    
  
  =
  
    
      
        R
        
          k
          ,
          m
        
      
      ⁡
      
        (
        n
        )
      
    
    ·
    
      (
      
        1
        -
        
          
            
              R
              k
              
                (
                F
                )
              
            
            ⁡
            
              (
              
                n
                -
                1
              
              )
            
          
          
            R
            
              TH
              ,
              k
            
            
              (
              F
              )
            
          
        
      
      )
    
  




where Rk,m(n) is the respective transmission rate for the nth slot (the current slot being scheduled), Rk(F)(n−1) is the average transmission data rate for the kth receiver for slots in the frame up to and including a slot prior to the current slot, and Rth,k(F) is the target average transmission data rate for the kth receiver, where k=0, . . ., K−1, and there are K receivers, where m=0, . . . M−1 and there are M carriers, and n is one of 0, . . . , N−1, where there are N slots in a frame.

6. A method according to claim 4 wherein the metric calculated for a kth receiver of the plurality of receivers and the m th carrier comprises:




  
    
      Δ
      
        k
        ,
        m
      
    
    ⁡
    
      (
      n
      )
    
  
  =
  
    
      
        F
        1
      
      ⁡
      
        (
        
          
            R
            
              k
              ,
              m
            
          
          ⁡
          
            (
            n
            )
          
        
        )
      
    
    ·
    
      
        F
        2
      
      ⁡
      
        (
        
          1
          -
          
            
              
                R
                k
                
                  (
                  F
                  )
                
              
              ⁡
              
                (
                
                  n
                  -
                  1
                
                )
              
            
            
              R
              
                TH
                ,
                k
              
              
                (
                F
                )
              
            
          
        
        )
      
    
  




where F1, and F2 are functions and where Rk,m (n) is the respective transmission rate for the nth slot (the current slot being scheduled), Rk(F)(n−1) is the average transmission data rate for the kth receiver for slots in the frame up to and including a slot prior to the current slot, and Rth,k(F) is the target average transmission data rate for the receiver, where k=0, . . . , K−1 and there are K receivers, where m=0, . . . M−1 and there are M carriers, and n is one of 0, . . . , N−1, where there are N slots in a frame.

7. A method according to claim 2 further comprising:
for each slot, dividing unscheduled receivers into a first subset and a second subset;
scheduling receivers of the first subset;
after scheduling receivers of the first subset, scheduling receivers of the second set using the method of claim 4.

8. A method according to claim 7 wherein:
the first subset comprises a set of N receivers of the plurality of receivers which are furthest from their target average transmission data rates.

9. A method according to claim 8 wherein each of the N receivers of the first subset is assigned in order of how far they are from their respective target average transmission data rate, with the receiver furthest from the target average transmission data rate being scheduled first, each receiver being assigned to the carrier not yet assigned to another receiver which results in the largest transmission rate for that receiver.

10. A method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame, the method comprising:
for each slot, dividing unscheduled receivers into a first subset and a second subset the first subset comprising a set N receivers of the plurality of receivers which are furthest from their target average transmission data rates or have largest waiting times;
scheduling receivers of the first subset;
after scheduling receivers of the first subset, scheduling receivers of the second subset.

11. A method according to claim 10 wherein each of the N receivers of the first subset is assigned in order of how far they are from their respective target average transmission data rate, with the receiver furthest from the target average transmission data rate being scheduled first, each receiver being assigned to the carrier not yet assigned to another receiver which results in the largest transmission rate for that receiver.

12. A method according to claim 10 wherein each of the N receivers of the first subset is assigned in order according to their respective waiting times, with the receiver in the first subset having largest waiting time being scheduled first, each receiver being assigned to the carrier not yet assigned to another receiver which results in the largest transmission rate for that receiver.

13. A method according to claim 10 wherein the users of the second subset are scheduled according to maximum CIR.

14. A method according to claim 10 wherein the users of the second subset are scheduled according to proportionalfairness.

15. A method according to claim 10 wherein the receivers of the second subset are scheduled by:
defining a respective target average transmission data rate for each receiver in the second subset to be scheduled;
for a current slot of said frame:
a) maintaining an average transmission data rate for each receiver in the second subset, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation including a receiver in the second subset which has not yet been assigned and a carrier not yet assigned which is a function of a CIR (carrier-to interference ratio) for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric.

16. A method of scheduling transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame, the method comprising:
for each receiver, maintaining a wait time indicating how long a current packet for the receiver has been waiting to be scheduled;
for a current slot of said frame:
a) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation and which is an Increasing function of the respective wait time for the receiver;
b) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric;
c) scheduling the current slot to the {receiver, carrier} permutation associated with the largest metric;
d) transmitting the current slot.

17. A method according to claim 16 wherein the channel is a multi-carrier channel, the method further comprising:
for the current slot of the frame, repeating in sequence for as many carriers remaining in addition to one carrier;
selecting a largest metric remaining which is not associated with a receiver or carrier already allocated, and allocating the current slot to the particular {receiver, carrier} permutation associated with the largest metric remaining.

18. A method according to claim 17 wherein calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation, and which is an increasing function of the wait time for the receiver comprises:
receiving or otherwise determining a CIR from each receiver for each carrier;
mapping each CIR to a respective transmission rate;
calculating the metric for each {receiver, carrier} permutation such that it is an increasing function of the respective wait time.

19. A method according to claim 18 wherein the metric calculated for a kth receiver of the plurality of receivers and the m th carrier comprises:




  
    
      
        
          
            Δ
            
              m
              ,
              k
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            
              [
              
                
                  R
                  
                    m
                    ,
                    k
                  
                
                ⁡
                
                  (
                  n
                  )
                
              
              ]
            
            α
          
          ·
          
            
              [
              
                
                  
                    W
                    k
                  
                  ⁡
                  
                    (
                    
                      n
                      -
                      1
                    
                    )
                  
                
                
                  T
                  B
                
              
              ]
            
            β
          
        
      
    
    
      
        (
        11
        )
      
    
  




where Tk is a length of a de-jitter buffer window and α and β0 are constants used for balancing between the transmission rate and the wait time, where Rk,m(n) is the respective transmission rate foe the nth slot (the current slot being scheduled), and W(n−1) is the wait time for the kth receiver.

20. A base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by;
defining a respective target average transmission data rate for each receiver to be scheduled;
for a current slot of said frame:
a) determining an average transmission data rate for each receiver, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver of the {receiver, carrier} permutation;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric;
d) transmitting the current slot.

21. A base station according to claim 20 wherein the channel is a multi-carrier channel, the base station being further adapted to:
for the current slot of the frame, repeating in sequence for as many carriers remaining in addition to one carrier:
select a largest metric remaining which is not associated with a receiver or carrier already allocated, and allocate the current slot to the particular {receiver, carrier} permutation associated with the largest metric remaining.

22. A base station according to claim 21 wherein calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to interference ratio) for the {receiver, carrier} and which is a decreasing function of the average transmission data rate for the receiver comprises:
receiving or otherwise determining a CIR from each receiver for each carrier;
mapping each CIR to a respective transmission rate;
calculating the metric for each {receiver, carrier} permutation such that it is an increasing function of the respective transmission rate.

23. A base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by:
for each slot, dividing unscheduled receivers into a first subset and a second subset the first subset comprising a set of N receivers of the plurality of receivers which are furthest from their target average transmission data rates or have largest waiting times; scheduling receivers of the first subset;
after scheduling receivers of the first subset, scheduling receivers of the second subset.

24. A base station according to claim 23 wherein each of the N receivers of the first subset is assigned in order of how far they are from their respective target average transmission data rate, with the receiver furthest from the target average transmission data rate being scheduled first, each receiver being assigned to the carrier not yet assigned to another receiver which results in the largest transmission rate for that receiver.

25. A base station according to claim 23 wherein each of the N receivers of the first subset is assigned in order according to their respective waiting times, with the receiver in the first subset having largest waiting time being scheduled first, each receiver being assigned to the carrier not yet assigned to another receiver which results in the largest transmission rate for that receiver.

26. A base station according to claim 23 wherein the users of the second subset are scheduled according to maximum CIR.

27. A base station according to claim 23 wherein the users of the second subset are scheduled according to proportional fairness.

28. A base station according to claim 23 wherein the receivers of the second subset are scheduled by:
defining a respective target average data rate for each receiver in the second subset to be scheduled;
for a current slot of said frame:
a) maintaining an average transmission data rate for each receiver in the second subset, the average transmission data rate starting at zero at the beginning of each frame;
b) calculating a metric associated with each {receiver, carrier} permutation including a receiver in the second subset which is not yet been assigned and a carrier not yet assigned which is a function of a CIR (carrier-to interference ratio) for the {receiver, carrier} permutation, and which is a decreasing function of the average transmission data rate for the receiver;
c) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation sedated with the largest metric.

29. A base station adapted to schedule transmission to a plurality of receivers over a single or multi-carrier channel for a plurality of slots constituting a frame by:
for each receiver, maintaining a wait time indicating how long a current packet for the receiver has been waiting to be scheduled;
for a current slot of said frame:
a) calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio for the {receiver, carrier} permutations and which is an increasing function of the respective wait time for the receiver;
b) selecting a largest metric of the metrics thus calculated, and allocating for the current slot the {receiver, carrier} permutation associated with the largest metric;
c) transmitting the current slot.

30. A base station according to claim 29 wherein the channel is a multi-carrier channel, the method further comprising:
for the current slot of the frame, repeating in sequence for as many carriers remaining in addition to one carrier:
selecting a largest metric remaining which is not associated with a receiver or carrier already allocated, and allocating the current slot to the particular {receiver, carrier} permutation associated with the largest metric remaining.

31. A base station according to claim 29 wherein calculating a metric associated with each {receiver, carrier} permutation which is a function of a CIR (carrier-to-interference ratio) for the {receiver, carrier} permutation, and which is an increasing function of the wait time for the receiver comprises:
receiving or otherwise determining a CIR from each receiver for each carrier;
mapping each CIR to a respective transmission rate;
calculating the metric for each {receiver, carrier} permutation such that it is an increasing function of the respective transmission rate.

32. A base station according to claim 31 wherein the metric calculated for a kth receiver of the plurality of receivers and the m carrier comprises:




  
    
      
        
          
            Δ
            
              m
              ,
              k
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            
              [
              
                
                  R
                  
                    m
                    ,
                    k
                  
                
                ⁡
                
                  (
                  n
                  )
                
              
              ]
            
            α
          
          ·
          
            
              [
              
                
                  
                    W
                    k
                  
                  ⁡
                  
                    (
                    
                      n
                      -
                      1
                    
                    )
                  
                
                
                  T
                  B
                
              
              ]
            
            β
          
        
      
    
    
      
        (
        11
        )
      
    
  




where TB is a length of a de-jitter buffer window and α and β are constants used for balancing between the transmission rate and the wait time, where Rk,m (n) is the respective transmission rate for the nth slot (the current slot being scheduled), and Wk(n−1) is the wait time for the kth receiver.