Lab0 Introduccion Python
Lab0 Introduccion Python
UNIVERSIDAD DE ANTIOQUIA
FACULTAD DE INGENIERÍA
INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
TRATAMIENTO DE SEÑALES I
LABORATORIO 0
INTRODUCCIÓN A PYTHON
Justificación
Python es una potente herramienta de cálculo numérico muy usada en ingeniería,
especialmente en telecomunicaciones, para simular el procesamiento de las señales,
aprovechando su facilidad y versatilidad, convirtiéndola en una herramienta indispensable
en el curso.
Objetivos
● Conocer las principales características de programación de Python, los comandos y
funciones más comunes.
● Conocer la creación y uso de las funciones en el script de Python, al igual que su
utilidad para verificar el funcionamiento de los algoritmos desarrollados.
● Mostrar diferentes herramientas de programación de Python para resolver
problemas planteados, que serán útiles para desarrollar algunas guías de laboratorio
de Tratamiento de Señales 1.
Teoría
Python es un lenguaje de programación fácil de aprender y poderoso. Tiene eficientes
estructuras de datos de alto nivel y un enfoque simple pero efectivo para la programación
orientada a objetos. La elegante sintaxis y la dinámica de la escritura de Python, junto con
su naturaleza interpretada, lo convierten en un lenguaje ideal para la elaboración de scripts
y el rápido desarrollo de aplicaciones en muchas áreas en la mayoría de las plataformas. El
intérprete de Python se amplía fácilmente con nuevas funciones y tipos de datos
implementados en C o C++ (u otros lenguajes que se pueden llamar desde C). Python
también es adecuado como lenguaje de extensión para aplicaciones personalizadas. Las
principales características de Python son:
Instalación de Anaconda
1. Descargar Anaconda para Python 3.7 del siguiente enlace:
https://www.anaconda.com/products/individual
c. Al final de la instalación el programa pregunta algo más, indique sí con una “y" y presione
Enter.
d. Para abrir el editor que se usará en el Laboratorio, cierre la Terminal y abra una nueva,
ejecute el siguiente comando: jupyter-notebook
e. En la pestaña que se abre, dar click en new, y después en la opción Python3, debe
observar algo similar a la imagen de la Figura 1:
c. En la pestaña que se abre, dar click en new, y después en la opción Python3, debe
observar algo similar a la imagen de la Figura 1.
4. Si desea trabajar en Google Colab, el cual es una herramienta que te permite ejecutar y
programar en Python en tu navegador, no requiere configuración, cuenta con acceso
gratuito a GPUs y permite compartir fácilmente los archivos que crees con otras personas:
Laboratorio 0: Introducción a Python
b. Iniciar sesión con una cuenta de Google, preferiblemente con el correo de la Universidad.
c. En la parte superior izquierda verá la opción Archivo, dar click ahí y después en la opción
Nuevo cuaderno. Veras algo similar a la Imagen de la Figura 2:
d. Todos los archivos que crees en Google Colab, quedan guardados en tu Drive en una
carpeta llamada Colab Notebooks, donde podrás descargarlos posteriormente. Muy
importante contar con conexión a Internet para poder trabajar en Google Colab y que
los cambios sean guardados.
1. Variables
Python es un lenguaje tipado de manera dinámica, es decir, que la misma variable puede
tomar diferentes tipos (entero, flotante, caracteres, etc.) en el mismo programa. A
continuación se muestra un ejemplo del manejo de algunas variables.
Para mostrar información se pueden imprimir directamente las variables o se puede utilizar
la función format.
Los arreglos sirven para guardar datos del mismo tipo, es decir, todos sus elementos deben
ser enteros, cadenas de caracteres, etc.
Las listas permiten guardar diferentes tipos de datos bajo el mismo nombre.
Laboratorio 0: Introducción a Python
Un diccionario permite almacenar datos como un conjunto de clave y valor sin orden.
2. Instrucciones de control
Las principales instrucciones en Python son:
- if: Ejecutar ciertas líneas de código si se cumple una condición.
- for: Ciclos con un número específico de iteraciones.
- while: Ciclo para repetir código hasta cumplir una condición (número NO específico
de iteraciones).
Python no ofrece otras instrucciones como switch o el ciclo do-while.
Python distingue entre ciclos for y ciclos while, definiéndolos según el “libro”. Es decir, los
ciclos for son para un número conocido de iteraciones, mientras que los ciclos while se
utilizan cuando no se conoce de antemano el número de iteraciones, sino que se itera hasta
cumplir cierta condición. Los ciclos for en Python siempre se hacen sobre secuencias
almacenadas en arreglos o listas, como se muestra en los siguientes ejemplos:
Laboratorio 0: Introducción a Python
3. Funciones
Como en todos los lenguajes de programación, en Python, el programador puede definir sus
propias funciones. Estas se declaran con la palabra def + el nombre de la función, y se
definen de la siguiente forma:
4. Librerías propias
Si tenemos alguna función que queremos utilizar en varios programas podemos aprovechar
el uso de librerías para evitar tener que copiar y pegar en varios códigos. Definamos dentro
de un archivo llamado MiLibreria.py las siguientes dos funciones:
5. Arreglos y matrices
6. Manejo de señales
a. El siguiente ejemplo genera una señal sinusoidal con una frecuencia de , una duración de
segundos y una frecuencia de muestreo de
c. Se pueden cargar también señales de audio, tal como en el siguiente ejemplo. Primero
Descargue la señal de audio de su preferencia del siguiente enlace, cópiela a la misma
carpeta del Notebook y renómbrela como senal.wav.
Procedimiento
1. Crear una función con tres argumentos de salida y dos argumentos de entrada,
donde las entradas están dadas por:
Ayuda: Consulte como usar la función arange y linspace de la librería numpy para
crear vectores en Python.
2. Cree una función que reciba como argumento una matriz 3x3 generada
aleatoriamente. La salida de dicha función deberá retornar lo siguiente:
Donde , son vectores que van desde -4 hasta 4 con un tamaño de paso de 0.1.
4. Cree una función que reciba el periodo de una señal y retorne un tren de pulsos con
un ciclo de dureza del 50%. Grafique la función obtenida entre 0 y 10s. ¿El resultado
es como esperaba?
6. Consulte cómo usar las funciones square y sawtooth de la librería scipy. Compare
los resultados de los numerales 4 y 5 con el resultado de usar dichas funciones.
7. Cree un vector aleatorio de “1s” y “0s” con 1000 elementos. Agregue un ruido con
una desviación estándar de 0.1. Grafique el histograma del resultado.
NOTA: Las figuras deben contener los nombres de los ejes, título y leyenda si
es necesario. Todos los números y texto deben tener un tamaño de 20 pt. Use
el comando subplot de la librería matplotlib.pyplot para mostrar ambas
graficas en una misma figura.
Entregables
● Informe en el Jupyter Notebook (archivo .ipynb) que contiene el código (solución a lo
pedido), respuesta a las preguntas y las conclusiones del laboratorio.
Bibliografía
➢ https://github.com/kuleshov/cs228-material/blob/master/tutorials/python/cs228-
python-tutorial.ipynb