An enhanced 3D ray tracing algorithm for indoor EM propagation