Social Icons

twitterfacebookgoogle plusemail

viernes, 24 de mayo de 2013

Redes Sensoras


Para esta entrada se hablará sobre el tema de redes sensoras, en donde
se desarrolló una simulación de una red sensora. En la simulación se
tomaron en cuenta 3 dimensiones en el eje x, y y z en el que z a que
tanta altura se encuentra el nodo; Imaginemos que los nodos son unas
antenas que se encuentran de manera estática en el aire dichas antenas
pueden percibir objetos pero con una cierta altitud de diferencia,
digamos que un objeto no identificado llamemosló enemigo dicho enemigo
pasa a 30 metros de la antena en donde su radio de percepción
onmidireccional es de cierto alcance 20 metros, entonces el enemigo
pasará desapercibido.


Esta simulación puede ser comparada en situaciones reales como la
detección de ciertos enemigos aereos usando UAVs en donde cada UAV
tiene cierto rango de alcance de vista.


A continuación mostrare la simulación en un video, donde se tienen dos
opciones en la primera parte que tuve problemas en donde se tenía que
tener una cierta matriz en donde cada cuadro tenía que tener un cierta
rango de altitud que al final simplemente se los incormporé a cada
nodo, y cada nodo puede transmitir un mensaje de propagación siempre y
cuando se encuentre en su rango de comunicación.

Video.



Ahora veamos algo de código (el cual se encuentra comentado).

miércoles, 22 de mayo de 2013

Wavelets con Python


En esta entrada hablaremos de wavelets (onduletas), las onduletas son funciones que
siguen el mismo principio que la transformada de Fourier nadamas que
estos se trasladan y dilatan para obtener datos.

Para más información sobre que son las onduletas pueden entrar a esta
página de Wolfram Alpha.

        http://mathworld.wolfram.com/Wavelet.html

En esta ocasión hablaremos sobre transformadas de onduletas
estacionarías (Stationary Wavelets Transform aka SWT) que es un
algorítmo diseñado para superar cierto ruido que hay al momento de
hacer la traducción de la invariancia de la transformada de onduleta
discreta (Discrete Wavelet Transform aka DWT). La traducción de la
invariancia se logra mediante la eliminación de las muestras
inferiores (downsamplers) y muestras superiores en el DWT y tomando
muestras superiores del filtro de los coeficientes por un factor de 2
(j-1) en cada nivel j del algorítmo.

En comparación del DWT y el SWT es que la salida de cada nivel de SWT
contiene el mismo número de muestras como la entrada, por lo que para
una descomposición de los niveles de N hay una redundancia de N en los
coeficientes de las onduletas.

A continuación podemos ver un diagrama de bloques en el que se muestra
la implementación de SWT.

           
                        Referencia:http://en.wikipedia.org/wiki/Stationary_wavelet_transform

En cada nivel los filtro toman las muestras superiores de la versión
anterior.

             

                        Referencia:http://en.wikipedia.org/wiki/Stationary_wavelet_transform


Para más ejemplos pueden visitar esta página:

http://www.wolfram.com/mathematica/new-in-8/wavelet-analysis/stationary-wavelet-transform-(swt).html


¿Qué aplicaciones tiene SWT?

Nos sirve para eliminar el ruido en una señal y para el reconocimiento de patrones en imágenes.

A continuación usaremos una librería en Python llamada PyWavelets que
nos permite realizar dichas funciones de una manera sencilla para
realizar pruebas de teorías ó proyectos. Primero lo que debemos tener
instalado como requisito son las siguientes librerías:

  • Python 2.6 ó 2.7.
  • Numpy.
  • PIL ( se usará solamente para abrir imagenes ).

Una vez que estamos seguros de tenerlas instaladas vamos a descargar
la librería, hacer eso podemos descargarlo directamente del GitHub:
   
                     https://github.com/nigma/pywt

Luego python setup.py install para instalar la librería ó pueden
instalarlo con pip install PyWavelets ó easy_install PyWavelets.

Una vez instalado lo que podemos hacer es importarlo de la                                                            siguiente manera import pywt.

Ahora lo que haremos será probar un demo en el que muestra distintos
niveles de SWT en este caso usaremos 3 niveles en una imagen que
mostrare a continuación:




Y esto sucede cuando es pasado por el primer nivel.



Segundo nivel.



Tercer nivel.



Como podemos observar a como se iban subiendo los niveles en el
SWT se iba cambiando la resolución de imagen, esto ayuda por un
lado la compresión de imágenes y por otro lado una forma de realizar
un filtro para poder tomar un ciertas regiones de la imagen en donde
realmente no nos importa la forma si no la existencia de las mismas
regiones.

Ahora como podemos ver esto es lo que sucede cuando se llega al
nivel 5 de SWT con la imagen antes presentada.



Para realizar lo anterior simplemente usé el código que se encuentra
dentro de la carpeta de demos en el GitHub del proyecto e hice unas
cuantas modificaciones para cambiar los niveles y poder hacer pruebas
de distintas imágenes diferentes de las que vienen por default. Aquí les
dejó algo del código que utilice y modifiqué.



Fuentes:

     SWT
     http://en.wikipedia.org/wiki/Stationary_wavelet_transform

     PyWavelets
     http://www.pybytes.com/pywavelets/

martes, 21 de mayo de 2013

Redes Ad-hoc


Dada la tarea de esta semana de laboratorio me puse a investigar algún
paper que este relacionado con redes ad-hoc y lo que encontre fue el
siguiente paper Location-Aware Services over Vehicular Ad-Hoc Networks
using Car-to-Car Communication por Marios D. Dikaiakos, Andreas
Florides et al. en el cual cubre la aplicación  emergente sobre comunicación
de un auto a otro usando redes ad-hoc, aunque actualmente dicho paper
contiene información sobre un protocolo para realizar comunicación
antes mencionada.

Actualmente muchas manufacturadoras de automoviles y centros de
investigación están desarrollando protocolos de comunicación de un
auto a otro ( Inter-Vehicle Communication (IVC) ) y desarrollando
sistemas usando el mismo protocolo para establecer una comunicación de
un auto a otro creando una red vehícular ad-hoc ( Vehicular Ad-Hoc
Networks (VANETs) ). Para poder crear un protocolo de
comunicación de este tipo se tienen que tomar en cuenta ciertos retos:

 - Cambios rápidos de conexión a una topología, esto se debe a que los
   autos siempre en la mayoría de los casos van en constante
   movimiento.

 - Frecuentes desconecciones de la red, especialmente en el caso de
   cuando haiga una baja densidad de autos y cuando un auto se
   encuentre en kilómetros quizá.

 - Compresión de datos esto para situaciones en las que haiga límites
   de banda ancha.

 - La predicción de la viabilidad de la posiíon del auto, esto para
   poder recibir dentro de la red caminos pre-hechos.

 - El uso de energía se contempla como si no tuviera cierto límite
   aunque realmente se toma del auto.


El enfoque que le dieron en el paper es sobre el problema de proveer
servicios a partir de la localización del auto, esto se realiza
tomando ventaja de la comunicación wireless de auto a auto (IVC) y la red
ad-hoc creada a partir de dicha comunicación, se enfocan sobre
servicios distribuidos de información en demanda describiendo las
condiciones de los caminos y disponibilidad de algunos servicios en
algún area geometríca ( Condiciones de tráfico ( congestión, flujo de
tráfico), alertas de tráfico como resultado de viajar en un cierto
camino ( Accidente automovilistico, obstrucción de algún auto ) y un
directorio de servicios ( Localización y listas de precios de
estaciones de gas, listas y menus de restaurantes ).

Cada auto se asume que esta equipado con un sistema embebido con una
pantalla que muestra la interfaz, GPS, una red wireless para la
comunicación IVC y una interfaz que muestra un diagnóstico del auto (
Muestra datos de los sensores que estan montados en el auto y
conectadas con un sistema embebido). También se esta tomando encuenta
que algunos autos pueden estar equipados con una red móvil de
comunicación ( un componente parecido a un telefono ).

El auto establece una red ad-hoc vehícular a tráves de las conexiónes
establecidas por la interfaz wireless del auto, también un cierto
números de lugares que ofrecen servicio entran a la red que también
están equipados con el mismo tipo de interfaz y participan en la
infraestructura de la red ad-hoc vehícular, y a partir de la
referencia geografica de algún auto se puede mostrar ciertos mensajes
del establecimiento. Se toma encuenta que en caso de que no se
encuentre una gran densidad de autos para que la red ad-hoc vehícular
funcione este se comunicará usando la red del dispitivo móvil,
wireless para que este comience a enviar información a todos los autos
en caso de que se encuentre alguno cerca.

Ahora veamos un ejemplo empleado en el paper para poder explicar como
funciona la infraestructura antes mencionada.

Imaginemos en la figura de abajo que un auto A que esta localizado
en la parte superior derecha de la figura y se esta moviendo hacía el
sur en la avenida Woods para llegar a su destino hacía el oeste de la
cuidad. El conductor quiere ir ya sea por la calle Rt513 ó 27, también
esta interesado en ir por gas para el auto sin pagar más de 25 pesos
el litro de gasolina. El conductor pregunta al sistema de navegación
las condiciones de tráfico y algunas alternativas para ir por la calle
Rt513 a este ó la calle 27 al este, y por una localización para ir por
un café y una gasolinera por la misma ruta. A simple vista se puede
observar que es posible ir por la calle Rt513 a tráves de la calle JFK
Dr que es el camino que se encuentra relativamente cerca de A. Pero
antes de trazar dicha ruta el servicio de la infraestructura debería
contestar como respuesta según las peticiones dadas por el conductor,
la interacción entre el conductor y el sistema de navegación puede ser
realizada ya sea por voz o con una interfaz touch screen. La
información solicitada por el conductor del auto A se puede calcular a
partir de datos disponibles en los autos y las instalaciones de la
carretera situados en los tramos de la carretera indicados. Por
ejemplo, el flujo de tráfico en el segmente de Rt513 se puede derivar
mediante la estimación de la velocidad media de los autos en
movimiento en ese segmento por un corto período de tiempo, una
congestión en ese segemente de carretera se puede establecer a partir
deuna consistentemente baja de velocidad media y / o  una alta
densidad de vehículos en ese tramo. Del mismo modo, el funcionmiento
de una estación de gasolina en la calle 27 se puede deducir de la
información enviada por la red que se encuentra en la gasolinera, que
específica el tipo de servicio que se ofrece, la dirección y los
precios.


Referencia imagen: Location-Aware Services over Vehicular Ad-Hoc Networks using
Car-to-Car Communication.

Para tomar en cuenta la información dada, el sistema de a borde del auto A
tiene que traducir consultas de usuario final en una secuencia de
consultas sensibles a la localización, cada una de estas preguntas se
debe encaminar hacia su lugar de interés, ya sea por la red ad-hoc o
tráves de la red móvil.


Referencias

Dikaiakos, M. and Florides, A., et al. (2007) Location-Aware Services over Vehicular Ad-Hoc Networks using Car-to-Car Communication. [online] Available at: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4346445 [Accessed: 20 May 2013].

Simulación de red ad-hoc


En esta entrada se creó una simulación de una red ad-hoc que es el tema
de esta semana de redes de la telecomunicación.

En la simulación se tiene en cuenta que se encuentra en un campo en el
que se crea la red se encuentra por default en 800x800 en donde cada
nodo de la red en el que se ingresa tiene una cierta probabilidad de
que a paresca cada tiempo de espera; Se tomaron en cuenta tomar en
lugar de una distribución exponencial, una distribución bernoulli ya
que tiene resultados muy similares a la distribución geoemtrica que es
el mismo resultado obtenido por una distribución exponencial.

Cada nodo tiene una id única que se genera de manera incremental, inician
con una vida de 100 en el que cada retraso se les baja una cantidad de
5 y en caso de que transmitan un mensaje se baja la energía al nodo
tomando en cuenta el tamaño del mensaje y multiplicandoló por un
porcentaje del radio de transmisión.

Los nodos tienen un movimiento en el eje x y y en el cual se crea un
valor aleatorio según la velocidad configurada para que este se
diferencié con cada eje x y y para crear el efecto de movimiento.


Las transmisiones de un nodo a otro se crean cuando un enemigo se
encuentra presente dicho enemigo tiene casi las mismas propiedades que
el nodo con la excepción de que este tiene un radio más chico por
default y otro color que lo distingue de los demás nodos.

Los nodos que transmitan bajarán su batería y una vez que lleguen a 0 este
quedará en una lista negra de nodos por eliminar del campo, de la
misma manera ocurre con los enemigos pero en el caso de ellos estos
tienen una vida de 20 por default y una vez que lleguen a 0 este
quedará en una lista negra de enemigos por eliminar del campo.

Ahora veamos un video de como funciona la simulación con una
configuración que se encuentra por default.



Ahora veamos un video de como funciona la simulación con una probabilidad
de 20% de que a paresca un nodo por tiempo determinado y con una dimensión
de 1000x1000.



Este es el código.