You are on page 1of 9

REPORTE LAB 1.

1
1. Ttulo
INTRODUCCIN A NATIONAL INSTRUMENTS LABVIEW

2. Integrantes del Grupo

Freddy Manuel Orosco Villamagua Claudia Sofia Pintos Castro

3. Teora
Labview es un entorno de desarrollo integrado especializado en informtica industrial y cientfica. Esta enfocado a utilizar un lenguaje grfico creado por National Instruments.Una de las ventajas ms grandes que posee son sus librerias de funciones dedicadas a la adquisicin de datos, la instrumnetacin, el analisis matemtico de las medidas y la visualizacin. LABVIEW nos ofrece una inferzas muy agradable en donde podremos sin lugar a duda experimentar y poner en practica todo lo aprendido durante la carrera. La programacin como ya se mencion se hace con iconos los cuales representan funcionalidades, ligados entre ellos por cables los cuales representan los flujos de datos. LABVIEW es especialmente conveniente a la informticaa industrial y cientfica; pues podemos utilzarlos para el desarrolllo de software sobre plataformas como UNIx, LINUX, Windows o MAC., controles de instrumentos, componenetes embarcados, componentes tiempo real,tarjetas FPGA y si a esto le aadimos que posee varios protocolos para la comunicacin entre el software y hardware como : PCI express,PCI,USB,RireWire<RS 232,TCP/IP,Bluetooth,WIFI y ms, hacen de esta una herramienta muy uti y completa. Ante lo dicho vamos a adentrarnos al uso de este software junto con nuestro hardware los modulos NI-USRP los cuales sern nuestros equipos de trabajo durante este curso. Antes de empezar refiramonos a un concepto muy importante , el cual al finalizar esta practica habremos construido un VI para determinarlo. BER (error-bit rate) o tasa de error de bit, es funcin de la energa por bit de informacin, la cual se define como la energa acumulada en el receptor debido a la recepcin de la potencia de portadora durante el intervalo de tiempo que conlleva la recepcin de 1 bit de informacin.

4. Cdigo
En esta primera prctica nos familiarizamos con el manejo de labview. Para ello se plantea el reto de desarrollar 2 VI (source.vi y error_detect.vi) que luego sern reemplazados dentro de nuestro transmisor y receptor.

4.1 Algoritmo: Qu hace paso a paso?


source.vi 1.- Creamos un control el cual nos sirve para setear la longitud de la secuencia de bits con la cual trabajaremos. Algo importante de mencionar aqu, es que el tipo de dato asociado a este es de tipo entero de 32 bits. 2.- Se generan nmeros aleatorios entre 0 y 1. La cantidad de nmeros generados es igual a la longitud de la secuencia. 3.- Colocamos un indicador para poder almacenar y visualizar la secuencia que se va a transmitir. Este indicador es de tipo arreglo en donde sus datos son nmeros de 8 bits sin signo.

error_detect.vi 1.- Colocamos un arreglo tipo controlador que nos permitir simular la secuencia que se recibe esta es de tipo arreglo sin signo de longitud 8 bits 2.- Se cre un arreglo-controlador adicional, la cual identificamos con el nombre de key sequence que contiene un arreglo de las mismas caractersticas, pero con el dato correcto que esperamos obtener. 3.- Se toman uno a uno los elementos de las 2 secuencias de entrada y se utiliza un comparador para verificar si existe coincidencia o no. 3.- Finalmente el sistema muestra a su salida en un arreglo-indicador de tipo double el bit-error rate en funcin de las coincidencias que existieron entre las 2 secuencias ya mencionadas.

4.2 Algoritmo: Cmo se programa en LabVIEW lo indicado en la seccin 3.1?

source.vi 1.- En el panel frontal damos click derecho para abrir la ventana de controles, luego nos vamos a (Modern Numeric Numeric Controls). Esto nos permitir colocar un controlador con el cual podremos ingresar la longitud de la secuencia de bits que se desea generar. Si damos click derecho sobre el controlador podremos ver varias opciones seleccionamos Representation U8.

2.- En el diagrama de bloques damos click derecho y seleccionamos (Funcions Programming Structures For Loop). El nmero de iteraciones est determinado por la longitud de la secuencia de bits.

3.- Dentro del lazo for nos dirigimos a (Funcions Programming Numeric Random Number). Esto nos permite generar nmeros aleatorios de tipo float entre 0 y 1.

4.- Como el numero generado es flotante debemos hacerlo entero para ello, (Funcions Programming Numeric Round to Nearest) lo que nos permitir redondear nuestro valor de modo que obtengamos siempre un entero a la salida, en este caso un 0 o un 1.

5.- Finalmente nos vamos al panel frontal y colocamos un arreglo para esto (Modern Array&Matrix&Cluster Array) y dentro ponemos un indicador (Modern Numeric Numeric Indicador), al igual que el paso 1 seleccionamos el tipo de representacin. Esto nos permite tener un arreglo-indicador que nos servir guardar cada nmero generado en una posicin el arreglo.

NOTA: Cuando se trabajen con lazos no olvidar habilitar el indexado ya que de lo contrario solo se tomara la ltima iteracin al momento de guardarlos. error_detect.vi

1.- En el panel frontal damos click derecho para abrir la ventana de controles, luego colocamos un arreglo (Modern Array&Matrix&Cluster Array) y colocamos dentro un controlador (Modern Numeric Numeric Controls). Esto nos permitir simular la secuencia de bits que estamos recibiendo.

2.- Seguimos los mismos pasos del punto 1 para crear un nuevo arreglo el cual contendr la secuencia de bits que esperamos recibir y que contra la que se comparara para saber si hay o no error.

3.- En el diagrama de bloques damos click derecho y seleccionamos (Funcions Programming Structures For Loop). El nmero de iteraciones est determinado por el tamao de la secuencia de bits.

4.- El algoritmo consiste en comparar bit a bit los elementos de un arreglo con el otro. Hacemos uso de una herramienta muy til, (Funcions Programming Array Index Array) con la cual extraeremos cada bit en orden, especificado por el subndice i. Los comparamos utilizando el signo de desigualdad (Funcions Programming Comparison Not Equal).

5.- Para verificar si la condicin se cumple, utilizamos (Funcions Programming Comparison Select), en caso de ser verdadero incrementa en uno un acumulador y en caso de ser falso mantiene el contador constante. Para la implementacin del acumulador nos ayudamos de un shift register, para ello nos ponemos en el marco del lazo for damos click derecho y seleccionamos Add Shift Register.

6.- Luego se procede a realizar una divisin entre el nmero de errores q se obtuvieron y el tamao de la secuencia, (Funcions Programming Numeric Divide) y este resultado lo enviamos a un indicar de tipo doubl al que hemos llamado bit-error rate, que de no existir errores nos mostrar cero y de tenerlos nos mostrara el valor respectivo, siendo el mximo valor 1 cuando todos los bits son errneos.

4.3 Diagrama de bloques de LabVIEW

Fig. 1: Diagrama de Bloques source.vi

Fig. 2: Diagrama de Bloques error_detect.vi

5. Resultados (Implementacin/simulacin)

5.1 Parmetros de Configuracin


Para este ejercicio como parmetros de configuracin tenemos el control que nos permite seleccionar entre los 2 tipos de modulacin, BPSK y QPSK. Adems permite setear el nmero de iteraciones y la longitud de la secuencia. Y cuenta con un indicador que nos muestra el BER a medida que se ejecuta el programa.

Fig. 3: Panel Frontal awgn_simple_sim.vi

5.2 Grficos y/o valores de los resultados

Fig. 4: Panel Frontal error_detect.vi

Fig. 5: Diagrama de constelacin BPSK transmitida

Fig. 6: Diagrama de constelacin BPSK recibida

Fig. 7: Diagrama de constelacin QPSK transmitida

Fig. 8: Diagrama de constelacin QPSK recibida

Fig. 9: Grafico de bit-error rate

6. Preguntas
En esta prctica no hubo preguntas.

7. Comentarios y Observaciones
Labview nos provee una interfaz grafica de programacin, el uso correcto de los bloques nos garantizar una adecuada funcionalidad de nuestros proyectos. Sin embargo, hay conceptos importantes que no debemos pasar por alto, por ejemplo al momento de trabajar con datos de entrada o salida debemos tener en cuenta el tipo de

dato que deseamos procesar. Ya sea de 8 o 16 bits, o entero, flotantes, doubls o sin signo. Cuando se trabaje con estructuras de repeticin tales como los lazos for o while es importante tener en cuenta el concepto de indexacin al momento de extraer los datos, puesto que si esta deshabilitada solo se podr acceder al dato generado en la ltima iteracin. Para obtener cada uno de los datos a fin de obtener un arreglo no olvidar habilitar la indexacin. Es muy imporatante ir verificando poco a poco el funcionamiento de lo que estamos diseando. Hacer varios ejemplos es la meor forma de determinar cuan acertados nos escontramos. La simulacion y graficacion en este caso de las constelaciones y del BER nos ayuda a entender de mejor forma y reforzar los conocimientos ya adquiridos.

You might also like