Thursday, April 26, 2012

Ceiling function considered harmful

Often in my 4th year mobile communications class, I'll ask a question like the following:
A cellular telephone system is intended to cover an area of 36 square km. Suppose FDMA is used, where the total system bandwidth is 100 MHz, and each call occupies 30 kHz. The system should support 40,000 simultaneous calls in the entire coverage area. Assuming a cluster size of 7, how many cells are needed?
This is a very easy question to solve, and I ask it to get students thinking about radio resources. (Granted that circuit-switched telephony is now obsolete with LTE.) The solution looks like this: at 30 kHz per call, 100 MHz supports 3333 calls; to get 40,000 calls, you need 40,000/3333, or about 12 times the system bandwidth (i.e. 12 cell clusters); with 7 cells per cluster, that's 12 x 7 = 84 cells.

But the problem is that 40000/3333 is slightly more than 12; it's exactly equal to 12 + 4/3333, or 12.00120012... . Multiplying this number by 7, we get 84 + 28/3333, or 84.00840084... .

Since the number of cells must be an integer, a typical student reaction is to take the ceiling of the answer: ceil(84.00840084...) = 85.

But that's bonkers. We "need" an extra 0.0084 of a cell, so the answer is to build a completely new cell tower to satisfy this tiny demand. Cell towers are expensive. And in fact, 12 clusters can cover 39,996 users, so the extra cell would serve a grand total of four calls. The revenue from that -- and even, let's say, the possible contractual penalties for not hitting exactly 40,000 calls -- would never be worth it.

Instead of blindly using the ceiling function in response to these questions, we should encourage students to think about the assumptions behind the question. Allowing a bit of flexibility (e.g., slightly relaxing the "40,000 call" assumption) would lead to a much more realistic and useful answer, and better engineering.

No comments: