Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMA DE ELECTRONICA
LABORATORIO 1 – PROGRAMACIÓN DE SISTEMAS DE TIEMPO REAL
1. IDENTIFICACIÓN
FACULTAD E3T PROGRAMA: INGENIERIA ELECTRONICA
ASIGNATURA COMUNICACIONES II
UNIDAD TEMÁTICA GNU RADIO
TEMA PROGRAMACIÓN DE SISTEMAS DE TIEMPO REAL
DOCENTE JOHAN LEANDRO TÉLLEZ GARZÓN
ALUMNOS Jefferson Alfonso Estevez Ramirez-Omar Edgardo Rojas-Andrés Suarez
FECHA 13/04/2023
2. DESCRIPCIÓN Y OBJETIVOS
Mediante esta guía de enseñanza se hace un acercamiento inicial a la programación de bloques en GNU radio
mediante Python y se analizan los procesos que deben ser realizados para tratar un flujo de información en
formato stream.
• Practicar la programación de sistemas de tiempo real y los promedios de tiempo
3. REVISIÓN PRELIMINAR
Conozca el Manual de Manuales para que aprenda a encontrar las ayudas disponibles en temas de SDR en la
UIS. Familiarícese con las variables usadas en los flujogramas. El libro de la asignatura contiene además
cosas como:
• En el capítulo 6, del libro Vol I, se tiene una descripción de las variables y siglas que se usan en los
flujogramas para cualquier práctica de la asignatura.
• Enlaces a flujogramas usados en el libro. Debajo de cada gráfica con flujogramas hay una nota que dice:
“Flujograma usado”. Esos flujogramas usados en el libro están en la página del libro:
https://sites.google.com/saber.uis.edu.co/comdig/sw o directamente en github:
https://github.com/hortegab/comdig_su_software_libro3.8.git
1. Realización de tutoriales prácticos de la página oficial de GNU radio haciendo énfasis en la programación
del bloque denominado Python block y en el tratamiento de estructuras de datos tipo stream:
https://wiki.gnuradio.org/index.php?title=Tutorials
Defina que es una variable tipo stream, cuáles son sus ventajes y desventajas e identifique las
características esenciales del bloque Python block. Este punto es opcional.
2. Investigue e identifique las operaciones que deben ser realizadas para encontrar la media cuadrática, el
valor RMS, la potencia promedio y la desviación estándar de una señal. Use el libro de la E3T.
4. ACTIVIDADES Y PROCEDIMIENTOS
5. Demuestra el funcionamiento del bloque, mediante un flujograma que calcule los diferentes parámetros
para las tres señales implementadas en el punto 2. Analizar los parámetros de la señal y visualizarlos en
tiempo real.
6. Los valores obtenidos son los esperados?
7. Conectar el USRP, la antena y el cable Ethernet al computador con la finalidad de adquirir una señal en
la banda de operación de la antena, seleccione un canal o frecuencia de su elección y realice mediciones
de la potencia normalizada, valor RMS y desviación estándar con el bloque implementado en Python
considerando tres valores distintos de frecuencia de muestreo. Analizar los resultados obtenidos.
8. Elija un valor fijo de frecuencia de muestreo que permita escuchar la señal de referencia en su tortalidad
y cambie los valores del amplificador de RX (LNA) del USRP en cuatro valores distintos, documente los
resultados obtenidos en términos de potencia normalizada, valor RMS y desviación estándar. Analizar
los resultados obtenidos.
Una variable tipo stream es un tipo de variable utilizada en lenguajes de programación para manipular flujos de
datos, como entrada y salida de archivos. En general, un stream se refiere a una secuencia de datos que fluye de
una fuente, como un archivo, a un destino, como una pantalla o un dispositivo de almacenamiento.
En muchos lenguajes de programación, los streams se representan como objetos que proporcionan métodos para
leer o escribir datos en ellos. Por ejemplo, en C++, la biblioteca estándar proporciona clases como ifstream y
ofstream para manipular streams de entrada y salida de archivos, respectivamente.
Los streams pueden ser utilizados para leer y escribir datos de una variedad de fuentes y destinos, incluyendo
archivos, sockets, consolas, dispositivos de entrada/salida, y más. Además, los streams proporcionan una capa de
abstracción sobre los detalles de bajo nivel de la manipulación de archivos y dispositivos, lo que los hace más
fáciles de usar y más portables entre diferentes sistemas operativos y plataformas.
Ventaja:
En cuanto a las ventajas de las señales seriales en bloques, una de las más significativas es que permiten trabajar
con bloques de manera sencilla, sin preocuparse por el empaquetamiento de muestras ni por la definición de un
tamaño para los paquetes. En otras palabras, simplifican el proceso de trabajo con bloques.
Desventajas:
Entre las desventajas se encuentra la limitación de enviar datos seriados, lo que provoca una menor velocidad de
transmisión debido a que cada dato tiene un tiempo de envío asignado. Además, solo se pueden enviar datos tipo
bytes o float 32, lo que limita el tipo de datos que se pueden transmitir.
Las características fundamentales del bloque personalizado de Python son las siguientes:
Observando que es igual que calcular el valor de la media cuadrática, o que es lo mismo, el valor RMS elevado al
cuadrado.
Señal coseno: Entrada de una señal coseno, que tiene una frecuencia de f = 1 [kHz] y amplitud de A = 1.
Ruido gaussiano: Entrada de una señal aleatoria con probabilidad gaussiana, utilizando el bloque de ruido
gaussiano con una amplitud de 1.
4.Cree un bloque con programación Python, usando un Python Block que permita entregar al mismo tiempo varios
promedios de tiempo como: la media, la media cuadrática, el valor RMS, la potencia promedio, la desviación
estándar.
seleccionamos el bloque correspondiente a “Python Block” y se procede a editar dicho bloque, ingresando la
programación que se requiere.
Primero, se hace la declaración del bloque llamado “cálculo de magnitudes”, el cual está compuesto por una
entrada y cinco salidas, para este caso, quedaría de la siguiente manera:
Se define la señal de entrada x y las cinco señales de salida y, donde cada una de ellas arrojará el resultado de un
promedio de tiempo.
En el texto guía, se pueden ver cada uno de los procedimientos obtenidos en las respectivas salidas, teniendo en
cuenta que se trabaja con el valor acumulado en cada caso.
5. Se demostró el funcionamiento del bloque, mediante un flujograma que calculo los diferentes parámetros para
las tres señales implementadas que fueron una señal de tipo senoidal, una señal de ruido gaussiano y por último
una señal de tipo vector y se analizó los parámetros de la señal y visualizarlos en tiempo real.
Ahora comparamos los valores teóricos y prácticos en una tabla, los valores teóricos los encontramos usando
MATLAB Ilustración 12
Parámetros Valor Practico Valor Teórico
Desviación Estándar 1.000105 1.0002
Media Cuadrática 1.000210 1.00001
RMS 1.000105 1.0002
Promedio (media) -0.000047 0.00038
Potencia Promedio 1.000210 1.00001
Tabla 1. Comparativa de los valores Reales y Teóricos de la señal Ruido Gaussiano.
3- Es posible en GNU radio mediante programación en lenguaje Python la creación de bloques para la
construcción de flujogramas que permitan calcular los parámetros de una señal, tales como la media
Referencias
[1] Matlab, los cálculos teóricos se realizaron usando esta herramienta.
[2] DEMODULACIÓN FM – UCM, https://detri.epn.edu.ec/wp-
content/uploads/2019/05/Prac_5_FC_2019_A.pdf
[3] Sistema de radar de onda continua múltiple implementado mediante GNU Radio,
https://eprints.ucm.es/27968/26/FM_v1.1.pdf
7. REJILLA DE EVALUACION
Total