![]() |
JPL's Wireless Communication Reference WebsiteChapter: Cellular Telephone Networks. Section: Frequency reuse, Dynamic Channel Assignments |
![]() |
Contributed by Jesse de Does
This is a Java implementation of JavaScript game for frequency assignment of a cellular network. The first version of this applet gives you the opportunity to test your own abilities as a cellular operator.
InstructionsSee also instructions for the Javascript version. The little square boxes in the cells represent channels. An assigned channel is coloured, a free channel is white, a locked channel is black. (Un)assign a channel by clicking on it. The slider regulates the speed of the Poisson call arrival process running in the background. You can force a step in the process with the "next" button. |
Applet: Channel Assignment |
Of course you will want to compare your performance to existing DCA algorithms. Below is a applet providing a very simple instance of a rough implementation the `BDCL' algorithm.
Each cell is assigned a colour (number) k in (1,..,C), where C is the cluster size, in such a way that the distance between cells of the same colour is always at least equal to the reuse distance.
All channels having number j such that j % C = k are then provisionally assigned to the cells of colour k. A channel assigned in this way to a cell is called a nominal channel of that cell.
If a cell has a free nominal channel, assign the call to the lowest-numbered such channel.
Otherwise, scan the direct neighbour cells for a channel that can be borrowed. (In the demo, a borrowed channel has a fat red dot above it).
In borrowing, the highest-numbered channel of the neighbour cell having most free channels is preferred.
A channel can be borrowed by me if
This last condition may seem superfluous from the point of view of channel locking, but it is needed in this version.
A nominal channel in a cell c is defined to be locked in direction i by cell l if the i-th neighbour of c cannot borrow the channel from c without violating the reuse constraint, because the channel is already a borrowed channel in cell l. (Not necessarily borrowed from c!).
We need not search the whole cluster around a cell for locking. Given a cell c borrowing a channel from a cell d, only three cells in the grid can carry locks with c locking that channel.
![]() Figure: If Cell z borrows from a, the cochannel cells b and c are locked in the directions indicated by a red line. Cell a is locked in all directions. |
|
A lock in direction i is represented by a coloured dot near the boundary with neighbour i.
A channel is released if a call on that channel terminates or there are no locks on the channel.
When a channel is released, try to reallocate a call on a less eligible channel to it.
Borrowing with Channel Ordering can be described as a simpler version of the above scheme: a channel is always locked in all directions. The BDCL Algorithm was introduced and shown to compare favourably to its precedessors in an overview by M. Zhang and TS. P. Yum. Complete reference