A kind of distribution method of time frequency resources of orthogonal frequency division multiple access system
Technical field
The invention belongs to communication technical field, be specifically related to a kind of method of time-frequency resource allocating of orthogonal frequency division multiple access system.
Background technology
(orthogonal frequency-division multiple access, OFDMA) transmission technology is as IEEE 802.16 standards in the OFDM access
[1] [2]An important component part obtaining increasing concern.(orthogonal frequency division multiplexing, multiple access technique OFDM), OFDMA have been inherited the advantage of OFDM: have than strong robustness for intersymbol interference and multipath interference as coming from OFDM.OFDMA provides thinner resource division granularity and time-frequency resource allocating mode more flexibly.(adaptivemodulation and coding AMC) according to the sending mode of channel communication quality adjustment physical layer, can make full use of the entire throughput that user diversity improves system for adaptive coding and modulation technique.
IEEE 802.16 OFDMA descending sub frame structures as shown in Figure 1, the OFDMA descending sub frame constitutes the two-dimensional rectangle Resource Block by the OFDM symbol of time domain and the subchannel of frequency domain.The OFDMA down channel is supported AMC, and under the situation of the identical transmitted power and the error rate, the high more then unit resource energy of signal to noise ratio data quantity transmitted is big more.Each user has different signal to noise ratios on the subchannel of frequency domain, if so each user's channel situation taken in resource allocation the time and can effectively improve the total throughput of system.
Time is described with the rectangle in the two dimensional surface.The unit of the rectangular block longitudinal axis is a subchannel, and the every lattice on the longitudinal axis are represented 1 subchannel; The unit of rectangular block transverse axis is two OFDM symbols, and the every lattice on the transverse axis are represented two continuous OFDM symbols.Resource allocation smallest particles degree is a groove (slor), and single groove is made of two OFDM symbols and a subchannel, shown in the lattice among Fig. 2.In the method for back was described, all resource allocations were least unit with slot.Distribute to the continuum that certain user transmits on the time and be called burst transfer (burst).The burst that the user is distributed in IEEE 802.16 standard codes must be a rectangle, so burst has taken a sub-piece of rectangle in the time.Each user proposes by this method the channel time-frequency resource allocating to be distributed to each user with the form of burst after the slot request of some, and specifies the subchannel that each user's transmission takies and the position at the whole story of OFDM symbol.
The channel resource allocation problem belongs to np complete problem, traditional method
[3]Because computation complexity is too high, is not suitable for real-time calculating, the present invention proposes a kind of computation complexity is O (n
2) the heuristic method resource allocation problem is carried out approximate solution.
Summary of the invention
The objective of the invention is to propose the low time-frequency resource allocation method of OFDM access system of a kind of computation complexity.
The distribution method of time frequency resources that the present invention proposes, be resource allocation (the channel awareresource allocator that adopts channel quality to optimize, CARA) method is found the solution the time-frequency resource allocating problem, at the time-frequency resource allocating problem under the rectangle constraints.Implementation to the CARA method is described below.The input parameter of CARA method is: user's request and this user are in the state of signal-to-noise of each frequency domain subchannel; The output result is: the result of resource allocation.The solution procedure of CARA method is divided into two parts:
First solves user's request and " accurately distributes " problem.The so-called data capacity of the sub-piece of Resources allocation that is meant " accurately distributing " equates with the data volume of user's request.The method of first at first lists all " feasible allocative decision " (its specific definition see below).If there is no " feasible allocative decision " can't ask " accurately distributing " resource so for the user, can only ask the sub-piece of Resources allocation for the user by second portion " fuzzy allocation ".If there be at least one " feasible allocative decision ", adopt the feasible program evaluation function to these " feasible allocative decisions " calculating priority level one by one so, carry out resource allocation according to priority the highest " feasible allocative decision " then, export resource allocation result afterwards, the method end of run.
Second portion solves user's request " fuzzy allocation " problem.So-called " fuzzy allocation " is meant that the data capacity of the sub-piece of Resources allocation is unequal with the data volume that the user asks.Second portion mainly solves the situation that user's request can't obtain " accurately distributing ".The method of second portion at first lists all " alternative allocative decision " (its specific definition see below), adopt the alternative evaluation function to these " alternative allocative decisions " calculating priority level one by one then, then according to priority the highest " alternative allocative decision " is carried out resource allocation, export resource allocation result afterwards, the method end of run.
Describe describing term and the symbol used in the CARA procedure below:
Slot: the least unit of time-frequency resource allocating is made of continuous two the OFDM symbols of time domain and subchannel of frequency domain, as shown in Figure 2.
Burst: burst transfer, distribute to the continuum that certain user is transmitted on the time, as shown in fig. 1.
L: the time length of field (L=Resource Block time domain OFDM symbolic number/2) of initial time.
W: the frequency domain length (number of W=subchannel) of initial time.
L * W: by L, the definition of W and slot can be known: the slot number that the initial time of L * W=comprises.
r
i: i user's request size (i user transmitted the slot number that needs), stipulate r here
iIt must be integer.
REQ: by the set that each user's request constitutes, REQ={r
1, r
2..., r
i..., r
n| r
i∈ Z}
l
i: the burst that distributes to i user is long.
w
i: the burst that distributes to i user is wide.
Factor (r
i): by r
iThe set that constitutes of all factor pairs, r
iEach factor pair by r
iTwo factors constitute, these two factors must satisfy condition: product equals r
i
MAP: the data structure of describing time.MAP is that a transverse axis length is L, and longitudinal extent is the two-dimensional array of W.Method with (transverse axis, the longitudinal axis) is carried out addressing (initial coordinate is 1) to the point in the coordinate: (1,1)~(1; W+2), (L+2,1)~(L+2; W+2), (1,1)~(L+2; 1); (1, W+2)~(L+2, W+2); the point in these 4 zones is the boundary belts outside the time, and the numerical value of these points is-1.The resource points of MAP (point within the boundary belt) identifies the allocation situation of this slot, is not assigned with if this point is 0 this slot of expression; If this point is i then represents that this slot distributes to the user and asks size to be the burst of i.
FRM (free_space_map): unappropriated resource in the time.
Surround the limit: all and FRM is tangent and length equals the line segment of tangent length, shown in the line segment that has double-head arrow among Fig. 3.
FRM_Edge: the set of the encirclement side information of record FRM.
Allocation_Scheme: the set that constitutes by allocative decision.
Be elaborated to describing the definition of using in the CARA procedure below:
1 " feasible allocative decision "
" feasible allocative decision " is meant the distribution situation that burst amount of capacity and user's request data quantity equate fully, the data structure of describing " feasible allocative decision " is made of length and width configuration and the burst present position in time of burst, described the physical dimension of the burst that a user may be assigned to and residing positional information in Resource Block.Structure is as follows: (l, w, e
i, h/t), e wherein
iRepresent the resource limit that this burst occupies, l represent burst with resource limit parallel direction on length, weigh with the slot number, similarly w represent burst with resource limit vertical direction on length, h/t represents that the alignment thereof on this burst and resource limit aligns for head alignment/tail.This shows for resource limit of determining and the length and width configuration mode of burst to have two kinds of different " feasible allocative decisions " as shown in Figure 4." feasible allocative decision " must satisfy at last: burst is in Resource Block inside and the nonoverlapping condition in range of distribution fully.
Describedly list all " alternative allocative decision " in Resource Block: the summit of pasting the resource limit is the rectangular block of integer in the Resource Block internal distribution length of side, if the data capacity that rectangular block comprises greater than request data quantity, is proportionally adjusted to the size of the sub-piece of resource the size near the request msg capacity.
2 " alternative allocative decisions "
" alternative allocative decision " is similar with the definition of " feasible allocative decision ", but does not have the restriction to the burst amount of capacity.The data structure of describing " alternative allocative decision " is made of length and width configuration and the burst present position in time of burst, described the physical dimension of the burst that a user may be assigned to and residing positional information in Resource Block.Structure is as follows: (l, w, e
i, h/t), e wherein
iRepresent the resource limit that this burst occupies, l represent burst with resource limit parallel direction on length, weigh with the slot number, similarly w represent burst with resource limit vertical direction on length, h/t represents that the alignment thereof on this burst and resource limit aligns for head alignment/tail.
Describedly list all " alternative allocative decision " in Resource Block: the summit of pasting the resource limit is the rectangular block of integer in the Resource Block internal distribution length of side, if the data capacity that rectangular block comprises greater than request data quantity, is proportionally adjusted to the size of the sub-piece of resource the size near the request msg capacity.
3 feasible program evaluation functions
The feasible program evaluation function is defined as follows:
weight
1(c
i)=10×slots+e
free_space,
C wherein
i" the feasible allocative decision " of representing current assessment, the slot number that the corresponding burst of slots representation scheme comprises, e
Free_spaceThe encirclement limit number of surplus resources piece after expression distributes.
4 alternative evaluation functions
The alternative evaluation function is defined as follows:
weight
2(c
i)=capacity_metric
i×coding_rate
i,
Wherein
C wherein
i" the alternative allocative decision " of representing current assessment, coding_rate
iThe poorest pairing transfer rate of slot of channel condition among the expression slot that burst comprised.
Rqst asks the data quantity transmitted size for the user, and bst_cap is the data capacity of burst.
The definition of 5 correlation functions
Defined function GetEdge (MAP) obtains FRM_Edge information:
Input parameter: MAP,
Output result: FRM_Edge.
The calculation procedure of GetEdge (MAP) is as follows:
1) definition integer variable i rises to W+1 successively from 2, increases by 1 at every turn.
1.1) for each value of i, at first set variable edge_start and equal 0, edge_start equals the current point of 1 expression and is positioned on the encirclement limit, otherwise 0; Setting variable j initial value then is 1.
1.2) if j surpasses L+2, jump to 1), calculate (1-value (j, i)) * (value (j, i) XOR value (j, i-1), wherein value (j, i) function is for (j, i) numerical value of position is judged, if this numerical nonzero then value (j, i)=1; Otherwise then value (j, i)=0.XOR is an xor operation.If:
1.2.1) value be 0 and edge_start be 0, j jumps to 1.2 from adding 1)
1.2.2) value be 0 and edge_start be 1, finish on current encirclement limit, and this information of surrounding the limit is recorded among the FRM_Edge.Edge_start becomes 0, and j jumps to 1.2 from adding 1)
1.2.3) value be 1 and edge_start be 1, j jumps to 1.2 from adding 1)
1.2.4) value be 1 and edge_start be 0, edge_start becomes 1, has found a new initial end of surrounding the limit, j jumps to 1.2 from adding 1)
2) definition integer variable i rises to L+1 successively from 2, increases by 1 at every turn.
2.1) for each value of i, at first set variable edge_start and equal 0; Setting variable j initial value then is 1.
2.2) if j surpasses W+2, jump to 2), calculate (1-value (j, i)) * (and value (j, i)) XOR_value (i-1, j), if:
2.2.1) value be 0 and edge_start be 0, j jumps to 2.2 from adding 1)
2.2.2) value be 0 and edge_start be 1, finish on current encirclement limit, and this information of surrounding the limit is recorded among the FRM_Edge.Edge_start becomes 0, and j jumps to 2.2 from adding 1)
2.2.3) value be 1 and edge_start be 1, j jumps to 2.2 from adding 1)
2.2.4) value be 1 and edge_start be 0, edge_start becomes 1, has found a new initial end of surrounding the limit, j jumps to 2.2 from adding 1)
3) definition integer variable i is decremented to 2 successively from W+1, reduces 1 at every turn.
3.1) for each value of i, at first set variable edge_start and equal 0; Setting variable j initial value then is 1.
3.2) if j surpasses L+2, jump to 3), calculate (1-value (j, i)) * (value (and j, i) XOR value (j, i+1), if:
3.2.1) value be 0 and edge_start be 0, j jumps to 3.2 from adding 1)
3.2.2) value be 0 and edge_start be 1, finish on current encirclement limit, and this information of surrounding the limit is recorded among the FRM_Edge.Edge_start becomes 0, and j jumps to 3.2 from adding 1)
3.2.3) value be 1 and edge_start be 1, j jumps to 3.2 from adding 1)
3.2.4) value be 1 and edge_start be 0, edge_start becomes 1, has found a new initial end of surrounding the limit, j jumps to 3.2 from adding 1)
4) definition integer variable i is decremented to 2 successively from L+1, reduces 1 at every turn.
4.1) for each value of i, at first set variable edge_start and equal 0; Setting variable j initial value then is 1.
4.2) if j surpasses W+2, jump to 4), calculate (1-value (j, i)) * (and value (j, i)) XOR value (i+1, j), if:
4.2.1) value be 0 and edge_start be 0, j jumps to 4.2 from adding 1)
4.2.2) value be 0 and edge_start be 1, finish on current encirclement limit, and this information of surrounding the limit is recorded among the FRM_Edge.Edge_start becomes 0, and j jumps to 4.2 from adding 1)
4.2.3) value be 1 and edge_start be 1, j jumps to 4.2 from adding 1)
4.2.4) value be 1 and edge_start be 0, edge_start becomes 1, has found a new initial end of surrounding the limit, j jumps to 4.2 from adding 1) calculate and finish.
Description of drawings
Fig. 1: IEEE 802.16OFDMA descending sub frame structure.
Fig. 2: the description of time and the definition of slot.
Fig. 3: the definition of surrounding the limit.
Fig. 4: burst is at the possible position of FRM inside.
Fig. 5: the CARA method with do not consider channel quality method performance comparison.
Embodiment
The specific embodiment of the present invention is as follows:
Input:
The size of data r of certain user's single transmission request
The data capacity cap of this user slot of unit on each subchannel
1, cap
2..., cap
N, wherein N is a subchannel number.
Output:
The result of resource allocation
Method flow:
Phase I:
1) GetEdge (MAP) obtains FRM_Edge information
2) for first resource limit edge among the FRM_Edge, carry out following operation:
2.1) from the head of resource limit edge, initialization slot_rate is the slot data capacity of position virgin's channel of edge; The frequency domain length freq_len of initialization burst is 1; Position and trend according to edge are determined the growing direction of burst at frequency domain.
2.2) if freq_len surpasses the allowed band of resource, jump to 2.3).The operation below if freq_len in allowed band, then continues.If last the subchannel slot data capacity on burst frequency domain growing direction replaces with slot_rate the slot data capacity of last subchannel so less than slot_rate.Calculate the slot number s that transmission needs by ceil (r/slot_rate),, the merchant is designated as time_len if s can be divided exactly by freq_len.If the sub-piece of resource that constitutes by time_len and freq_len be completely contained in resource inner and get along well other the sub-piece of Resources allocation overlap, then the burst that time_len and freq_len are constituted records in " feasible allocative decision " set.Freq_len repeats 2.2 from adding 1)
2.3) from the tail of resource limit edge, initialization slot_rate is the slot data capacity of tail position virgin's channel of edge; The frequency domain length freq_len of initialization burst is 1; Position and trend according to edge are determined the growing direction of burst at frequency domain.
2.4) if freq_len surpasses the allowed band of resource, jump to 2.5).The operation below if freq_len in allowed band, then continues.If last the subchannel slot data capacity on burst frequency domain growing direction replaces with slot_rate the slot data capacity of last subchannel so less than slot_rate.Calculate the slot number s that transmission needs by ceil (r/slot_rate),, the merchant is designated as time_len if s can be divided exactly by freq_len.If the sub-piece of resource that constitutes by time_len and freq_len be completely contained in resource inner and get along well other the sub-piece of Resources allocation overlap, then the burst that time_len and freq_len are constituted records in " feasible allocative decision " set.Freq_len repeats 2.4 from adding 1)
2.5) to upgrade edge be next resource limit among the FRM_Edge, is returned to 2.1) continue to carry out; If do not have more edge among the FRM_Edge, then jump to 3).
3) if " feasible allocative decision " set then jumps to 4 for empty).Otherwise, utilize the feasible program evaluation function all " feasible allocative decision " to be calculated and record priority, to select its medium priority the highest " feasible allocative decision " and carry out resource allocation, method finishes.
Second stage:
4) for first the resource limit edge parallel among the FRM_Edge, carry out following operation with time shaft:
4.1) time_len is set to the length of edge, initialization slot_rate is the slot data capacity of position virgin's channel of edge; The frequency domain length freq_len of initialization burst is 1; Position and trend according to edge are determined the growing direction of burst at frequency domain.
4.2) if freq_len surpasses the allowed band of resource, jump to 4.3).The operation below if freq_len in allowed band, then continues.If last the subchannel slot data capacity on burst frequency domain growing direction replaces with slot_rate the slot data capacity of last subchannel so less than slot_rate.If the sub-piece of resource that constitutes by time_len and freq_len be completely contained in resource inner and get along well other the sub-piece of Resources allocation overlap the operation below then continuing, otherwise freq_len repeats 4.2 from adding 1).Calculate the data capacity of the burst that constitutes by time_len and freq_len according to slot_rate,, then time_len is adjusted to configuration near request data quantity according to ratio if data capacity surpasses request data quantity.Burst with time_len and freq_len formation records in " alternative allocative decision " set below.Freq_len repeats 4.2 from adding 1)
4.5) to upgrade edge be the next one resource limit parallel with time shaft among the FRM_Edge, is returned to 4.1) continue to carry out; If do not have more edge among the FRM_Edge, then jump to 5).
5) utilize the alternative evaluation function all " alternative allocative decision " to be calculated and record priority, select its medium priority the highest " alternative allocative decision " and carry out resource allocation, method finishes.
Allocation example
The process that the Demo Asset that cites a plain example below distributes:
The problem parameter:
1) size of data 500 bits of user's single transmission request
2) data capacity of user slot of unit on each subchannel: 72 bits (first subchannel), 96 bits, 48 bits, 144 bits, 96 bits (the 5th subchannel)
The method solution procedure:
1) phase I step 1: distribute r=6: at first the configuration of the length and width of r can be decomposed into 6=(1 * 6,2 * 3); The MAP of this moment is:
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 0 0 0 -1
-1 -1 -1 0 0 0 -1
-1 0 0 0 0 0 -1
-1 0 0 0 0 0 -1
-1 0 0 0 0 0 -1
-1 -1 -1 -1 -1 -1 -1
It is frequency domain (y) vertically, laterally is time-domain (x).
If with the information that (summit 1_x coordinate, summit 1_y coordinate, increment _ x coordinate, increment _ y coordinate, encirclement edge lengths) represents to surround the limit, 6 then current encirclement side informations are: (2,2,1,0,5); (6,2,0,1,5); (6,6 ,-1,0,3); (4,6,0 ,-1,2); (3,4 ,-1,0,2); (2,4,0 ,-1,3).Wherein " increment " expression summit 2 is with respect to the symbol of the changes in coordinates direction on summit 1.
Step 2): take out first resource limit (2,2,1,0,5) called after edge;
Step 2.1): initialization slot_rate is 72, and the burst growing direction is (0,1), and freq_len is initialized as 1.
Step 2.2): slot number s is 7, calculates to such an extent that time_len is 7 thus.Because (time_len:7, the sub-piece of resource freq_len:1) has surpassed the border of Resource Block, and it is invalid therefore to distribute, and freq_len is set to 2 after adding;
Continue to carry out 2.2): freq_len is 2, in the resource allowed band, the operation below continuing.Because the frequency domain subchannel slot data capacity that increases newly does not upgrade slot_rate greater than current slot_rate.Trying to achieve s is 7, and freq_len distributes invalidly owing to dividing exactly s, and freq_len is set to 3 after add;
Carry out 2.2): freq_len is 3, in the resource allowed band, the operation below continuing.Because frequency domain subchannel slot data capacity 48 bits that increase newly less than current slot_rate, therefore are updated to 48 bits with slot_rate.Calculating the slot number, to obtain s be 11, and freq_len is owing to can't divide exactly s and distribute invalidly, and oneself is set to 4 after adding freq_len;
Carry out 2.2): freq_len is 4 ... (do not find " feasible allocative decision ", omit detailed process herein)
Carry out 2.2): freq_len is 6, has surpassed in the resource allowed band, carries out 2.3);
Step 2.3): and step 2.1)~2.2) similar, step 2.3)~2.4) do not find " feasible allocative decision ";
Step 2.5): renewal edge is the next resource limit (6,2,0,1,5) among the FRM_Edge, is returned to 2.1) continue to carry out;
Step 2.1): initialization slot_rate is 96, and the burst growing direction is (0 ,-1), and freq_len is initialized as 1;
Step 2.2): slot number s is 6, calculates to such an extent that time_len is 6 thus.Because (time_len:6, the sub-piece of resource freq_len:1) has surpassed the border of Resource Block, and it is invalid therefore to distribute, and freq_len is set to 2 after adding;
Continue to carry out 2.2): freq_len is 2, in the resource allowed band, the operation below continuing.Because the frequency domain subchannel slot data capacity that increases newly does not upgrade slot_rate greater than current slot_rate.Trying to achieve s is 6, and it is 3 that time_len tries to achieve, and the burst that is made of time_len and freq_len is " a feasible allocative decision ", be recorded as (2,3, e
2, h).Freq_len is set to 3 after adding;
... (herein omit subsequent 2.2) step, do not find " feasible allocative decision ")
... (omitting 2.3 herein)~2.4) step, do not find " feasible allocative decision ")
Step 2.5): renewal edge is the next resource limit (6,6 ,-1,0,3) among the FRM_Edge, is returned to 2.1) continue to carry out;
... the result of method operation has increased by two new " feasible allocative decision ": (3,2, e
3, h), (3,2, e
3, t)
Step 2.5): renewal edge is the next resource limit (4,6,0 ,-1,2) among the FRM_Edge, is returned to 2.1) continue to carry out;
... the result of method operation has increased by two new " feasible allocative decision ": (2,3, e
4, h), (2,3, e
4, t)
Step 2.5): renewal edge is the next resource limit (3,4 ,-1,0,2) among the FRM_Edge, is returned to 2.1) continue to carry out;
... do not find " feasible allocative decision "
Step 2.5): renewal edge is the next resource limit (2,4,0 ,-1,3) among the FRM_Edge, is returned to 2.1) continue to carry out;
... do not find " feasible allocative decision "; Jump to 3).
Step 3): all " feasible allocative decisions " is through calculating, and priority is identical, therefore selects first " feasible allocative decision " and carries out actual resource allocation, Resource Block following as shown (when inferior allocation result identifies with 1) after distributing.
-1 -1 -1 -1 -1 -1 -1
-1 -1 -1 1 1 1 -1
-1 -1 -1 1 1 1 -1
-1 0 0 0 0 0 -1
-1 0 0 0 0 0 -1
-1 0 0 0 0 0 -1
-1 -1 -1 -1 -1 -1 -1
Allocation result emulation
Fig. 5 has showed CARA method and traditional resource distribution method performance comparison result, and the traditional resource distribution method here is meant the distribution method (non-CARA method) of not considering that channel condition is optimized.Two kinds of different channel SNR conditions have been carried out emulation, and a kind of SNR of being average is the channel of 20dB variance 2, and another kind is that the SNR average is 2 channel for the 10dB variance.Under every class channel condition, respectively the non-CARA method of CARA/ is tested.Can see from simulation result, under identical signal to noise ratio condition, adopt the CARA method can under the more situation of number of users, obtain the higher data transfer rate.
The time-frequency resource allocation method of OFDM access system that the present invention proposes has made full use of multi-user's user diversity gain, can effectively improve the utilance of system time frequency resource.
List of references
[1]IEEE?802.16,802.16-2004:IEEE?Standard?for?Local?and?Metropolitan?Area?Networks?Part16:Air?Interface?for?Fixed?Broadband?Wireless?Access?Systems,IEEE?802.16-2004,October?2004.
[2]IEEE?802.16e,802.16e:IEEE?Standard?for?Local?and?Metropolitan?Area?Networks?Part?16:Air?Interface?for?Fixed?and?Mobile?Broadband?Wireless?Access?Systems?Amendment?forPhysical?and?Media?Access?Control?Layers?for?Combined?Fixed?and?Mobile?Operation?inLicensed?Bands,IEEE?802.16e,September?2005.
Yu-Liang?Wu,Wenqi?Huang,et?al.An?effective?quasi-human?based?heuristic?for?solving?therectangle?packing?problem[J].European?Journal?of?Operational?Research,2002,141(2):341-358.