## IEEE 802.15.5 – Standard for both High-Rate and Low-Rate Wireless Personal Area Networks (WPAN)

There are two famous IEEE standards for mesh technology – IEEE 802.15.3x for high-rate WPAN and IEEE 802.15.4x for low-rate WPAN. Question is always arisen on the interoperability between these two standards. To answer that question, IEEE has introduced a new standard, IEEE 802.15.5 that is built on  the mesh sublayer on top of both IEEE 802.15.3x and IEEE 802.15.4x (refer to the figure).

More discussion on such standard can be found in IEEE Communication magazine in .

Reference:
  M. Lee, R. Zhang, C. Zhu, T. R. Park, C. S. Shin, Y.A. Jeon, S. H. Lee, S. S. Choi, Y. Liu, S. W. Park, “Meshing Wireless Personal Area Networks: Introducing IEEE 802.15.5”, IEEE Communication Magazine, January 2010, page 54 – 61.

## Time Delay of An Underdamped Second Order System A student asked me how to find the time delay, $t_d$  for a second-order system by applying mathematical equation.

Let $c_{final}$ denote the final value of the waveform. Then, the rise time $t_r$ will be the time duration between $0.1c_{final}$ to $0.9c_{final}$.

Since the time delay $t_d$ equals to the time for the waveform to reach $0.5c_{final}$. My rough idea for the mathematical equation is: $t_d \approx 1.25 * t_r / 2$ .

Just an approximation as the waveform between $0.1c_{final}$ to $0.9c_{final}$ is not a linear line.

## A Talk of Robust Solution

I am not the expert in vehicle routing. But, I do learn a lesson from Prof. Sam Thangiah’s talk in FICT UTAR today.

The rough meaning is something like this:

Best solution appears in publication. But in real world, only the robust solution does matter.

For example, Dijkstra’s algorithm works perfectly in finding the shortest path from point A to point B. However, it seems not to be feasible when it is applied to calculating the pick-up points for buses in a city. Heuristic approach is much appreciated instead.

## Tackling Polynomial Equations with Python (Numpy)

How to calculate a polynomial of  (s+1)(s+2)…(s+10) in a short time?

Instead of calculate them one by one, we can do it with the help of Python library – Numpy.

1. Make sure you have installed Numpy for your Python interpreter. In Ubuntu, you may just want to install python-scipy as it contains all the scientific calculation tools.

2. Try the following example in your python interpreter:

```from numpy import *
p1 = poly1d(1, 1 ) #﻿(S+1)
p2 = poly1d(1, 2 ) #﻿(S+2)
p3 = poly1d(1, 3 ) #﻿(S+3)
p4 = poly1d(1, 4 ) #﻿(S+4)
p5 = poly1d(1, 5 ) #﻿(S+5)
p6 = poly1d(1, 6 ) #﻿(S+6)
p7 = poly1d(1, 7 ) #﻿(S+7)
p8 = poly1d(1, 8 ) #﻿(S+8)
p9 = poly1d(1, 9 ) #﻿(S+9)
p10 = poly1d(1, 10) #﻿(S+10)
print p1*p2*p3*p4*p5*p6*p7*p8*p9*p10
```

3. Then, you will an get an output like:

```   10      9      8       7       6       5       4       3      2
1 x  - 10 x + 45 x - 120 x + 210 x - 252 x + 210 x - 120 x + 45 x - 10 x + 1
```

``` x^10 - 10x^9 +45x^8 - 120x^7 + 210x^6
- 252x^5 + 210x^4  - 120x^3 + 45x^2 - 10x + 1```

4. Say, we need to find the root of this polynomial. With the help of Python, we can get the roots by feeding these line into the interpreter.

```(p1*p2*p3*p4*p5*p6*p7*p8*p9*p10).r #.r means root.
```

And, we will get an output like this:

```array([ 1.04405137+0.0143565j ,  1.04405137-0.0143565j ,
1.02709855+0.03755416j,  1.02709855-0.03755416j,
0.99974141+0.04619473j,  0.99974141-0.04619473j,
0.97275208+0.03706564j,  0.97275208-0.03706564j,
0.95635659+0.01406697j,  0.95635659-0.01406697j])
```

The polynomial has 5 complex conjugates: 1.04405137 +/- 0.0143565j, 1.02709855 +/- 0.03755416j, 0.99974141+/- 0.04619473j, 0.97275208 +/-0.03706564j, 0.97275208 +/- 0.03706564j and 0.95635659 +/- 0.01406697j .