Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lab1 Ramirez Rios

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

UNIVERSIDAD DEL NORTE

DEPARTAMENTO DE INGENIERÍAS ELÉCTRICA Y ELECTRÓNICA


Asignatura: Señales y sistemas. Docente: Pedro Narváez.

Laboratorio 1: Generación y operación de señales


Andrés Ramírez, Josué Ríos
{ramirezar,jriosd} @uninorte.edu.co
7 de septiembre de 2019

señales de impulsos discretos, todo lo anterior lo-


grado a través del software y lenguaje de progra-
I.INTRODUCCIÓN mación de Python™/Spyder con sus distintas libre-
rías: (Scipy, matplot,etc): La metodología esco-
En el ámbito profesional de un ingeniero Electri- gida se apoya en los siguientes pasos de A-C.
cista y/o Electrónico es común el afrontar o lidiar
con información que se presenta en forma de se- a. Identificación de las señales y sus modelos ma-
ñales análogas o digitales, ya sea al medir voltaje temáticos:
en un circuito comercial, el procesamiento de la Las señales estudiadas son las siguientes:
temperatura de un proceso industrial, comunica-
ción inalámbrica y entre otras labores. Por lo an- •Señal senoidal/sinusoidal:
terior, en este trabajo se emprende un análisis de 𝑦(𝑡) = 𝐴 ∗ 𝑆𝑖𝑛(2𝜋𝑓𝑡) (1)
las señales básicas, todo ello haciendo uso del
software y lenguaje de programación Python™ Valores por ingresar:

II.OBJETIVOS 𝐴:Amplitud de onda.


• Realizar una interfaz gráfica que permita la ge- 𝑓:Frecuencia de la onda, cuantos ciclos se repite
neración de señales sinusoidales, cuadradas, de por segundo [Hz].
pulso, exponenciales, lineales, triangulares y se- •Señal pulso:
cuencia de impulsos.
𝑦(𝑡) = 𝐴(𝑢(𝑡 − 𝑡0 ) − 𝑢(𝑡 − 𝑡𝑓)) (2)
• A través de la GUI (Graphical User Interface),
ejecutar las operaciones de escalamiento de tiempo Valores por ingresar:
y amplitud, y el desplazamiento de las funciones 𝐴: Amplitud del pulso.
estudiadas.
𝑡𝑜 : tiempo inicial, en el cual se inicia el pulso.
•Utilizar y conocer las herramientas disponibles en
el lenguaje de programación Python™. t: tiempo final, instante donde el pulso termina.

•Evidenciar las diferencias entre la señal ingresada 𝑢(𝑡 − 𝑡0 ) 𝑦 𝑢(𝑡 − 𝑡𝑓)): Se decidió la utilización
y la modificada por medio de las operaciones es- de la función escalón unitario por su fácil descrip-
cogidas. ción [1,Sección 1.3.4] y su sencilla utilización en
Python™.
A continuación, se explicará los métodos escogi-
dos para realizar el diseño del programa realizado. •Señal cuadrática:
III.METODOLOGÍA Y PROCEDIMIENTO 𝑦(𝑡) = 𝐴𝑡 2 + 𝐵𝑡 + 𝐶 (3)
En este trabajo se tiene como objetivo principal la Valores por ingresar:
generación y operación de distintas señales, las 𝐴: Coeficiente que acompaña al término cuadrá-
cuales comprenden desde señales sinusoidales tico.
continúas, ondas cuadradas periódicas hasta
1
𝐵: Coeficiente que acompaña al término lineal. Para la correcta ejecución del código se seleccionó
las siguientes librerías mostradas en la figura 1.
𝐶: Constante adicional.
En donde se destacan Numpy, para el tratamiento
•Señal exponencial: de datos arbitrarios y el uso de vectores [2], y
𝑦(𝑡) = 𝐴𝑒 −𝑏𝑡 (4) matplotlib.pyplot, este último permite la correcta
traficación de las señales a estudio.
Valores por ingresar:
𝐴: factor que multiplica al término exponencial
𝑏: Coeficiente que multiplica a la variable tempo-
ral.
•Señal lineal: Figura 1. Librerías empleadas en Spyder para la realización
del código.
𝑦(𝑡) = 𝑚𝑡 + 𝑏 (5)
Valores por ingresar: Por otro lado, el algoritmo escrito comprende de
alrededor de 800 líneas de código, esto es debido
𝑚: Pendiente de la línea recta. a la gran reutilización de órdenes para cada sección
𝑏: Constante en la que reposa la línea recta en el diseño de la interfaz gráfica. En la extensión
del programa se resaltan los siguientes bloques de
•Señal triangular:
código:
2𝐴
𝑡 , 𝑝𝑎𝑟𝑎 (𝑛 − 1) 𝑇 ≤ 𝑡 ≤ 𝑛𝑇/2 •Creación de la interfaz y cuadrículas:
𝑦(𝑡) = {𝑛𝑇
2𝐴
𝑡 − 2𝐴, 𝑝𝑎𝑟𝑎 𝑛𝑇/2 ≤ 𝑡 ≤ 𝑛𝑇 En esta parte del algoritmo se emprende el diseño
𝑛𝑇
de la GUI y las cuadrículas para la recolección de
Valores por ingresar: datos (figura 2, figura 3 y figura 4):

A: Amplitud de la señal.

T: Período de la onda.

•Señal cuadrada: Figura 2. Dimensiones y nombre de la interfaz.


𝐴 , 𝑝𝑎𝑟𝑎 (𝑛 − 1) 𝑇 ≤ 𝑡 ≤ 𝑛𝑇/2
𝑦(𝑡) = {
𝐴, 𝑝𝑎𝑟𝑎 𝑛𝑇/2 ≤ 𝑡 ≤ 𝑛𝑇

Valores por ingresar:

A: Amplitud de la señal.
Figura 3. Algunos Frames de entradas de datos.
T: Período de la onda.

•Señal Impulso discreto:


𝑦[𝑛] = 𝑚 (5)
Valores por ingresar:

Aquí el usuario se encargará de ingresar los valo-


res de las muestras y en los instantes en que se dan.

b. código en Python™/Spyder:

2
Figura 4. Espacios donde se encontrarán las gráficas de las Figura 6. Cuadros de texto para la opción de señal cuadrá-
señales originales y modificadas. tica.

Los comandos más utilizados son: Frame (permite En el procedimiento e ingreso respectivo se nota
la creación de un marco que contenga demás co- un frecuente uso del condicional if (si), este co-
mandos o widgets),. place (para ubicar los elemen- mando da la posibilidad de saber que señal y que
tos según las coordenadas en pixeles x e y), y .con- tipo de modificación escogió el usuario. En cada
fig(controla la altura, anchura y color del frame). opción se encuentra la orden de graficar, se esco-
Todo lo anterior se apoya en la librería Tkinker, en gió esto para evitar cualquier mal funcionamiento
el cual se encuentra todas las herramientas básicas de la interfaz gráfica. Todo lo anterior, se encuen-
y primordiales para la construcción de la interfaz tra plasmado en la figura 6, figura 7 y figura.
gráfica [3].

•Sección de botones, textos y entradas:

Figura 7. Ingreso de datos para la función cuadrática origi-


Figura 5. Menús para escoger la señal a ingresar y para su nal y modificada
respectiva modificación.

En la figura 5, se presenta los menús que se em-


plearán para adecuar la interfaz gráfica y las entra-
das para cada función a graficar. Asimismo, se pre-
senta la línea de códigos para la señal cuadrática,
las señales restantes se tratan de forma análoga; en
la figura 6, se puede observar los distintos textos
que se deben mostrar para ubicar al usuario y que
pueda ingresar los valores identificados en la sec-
ción a.

Figura 8. Continuación de la toma de datos para esa misma


señal.

3
•Ejecución de la interfaz gráfica:
Cuando se ejecuta el programa se despliega la ven-
tana que se muestra en la figura 9.

Figura 12. Gráfica modificada con escalamiento de ampli-


tud 5.

Figura 9. Ejecución de la interfaz gráfica “Graficador de se-


ñales”.

Como se dijo anteriormente, se hará una muestra


de la ejecución de la interfaz gráfica con la señal
cuadrática. Consecuentemente, se elige la señal
cuadrática( figura 10).

Figura 10. Ingreso de datos: ti(tiempo inicial)=-2,dt(incre-


mento temporal)=0.001, tf(tiempo final)=2 y Escalamiento
de de amplitud= 5.

Figura 13. gráfica modificada con escalamiento de tiempo

Figura 11. Ingreso de coeficientes de la función definida en


la sección a, A=5, B=0 y C=0.

4
Figura 14. Gráfica de señal desplazada a la izquierda.

De manera similar se ingresan los datos de las


demás señales faltantes y se evidencia sus res-
pectivas gráficas.

IV. ERRORES DEL ALGORITMO

En este algoritmo se presenta algunos errores en


la preparación del mismo, los cuales compren-
den desde error en el desplazamiento de algunas
señales hasta el ingreso de datos en la señal de
impulso (no es posible).

V. CONCLUSIONES

A través de la realización del proyecto se ob-


servó cómo se afecta una función elegida por
medio de la modificación de algunas propieda-
des de la función como escalamiento de ampli-
tud, escala tiempo y desplazamiento temporal.
Además, se aprendió la utilización y manejo del
lenguaje de programación Python™

REFERENCIAS

[1] J. Tello. Introducción a señales y sistemas,


Barranquilla, Colombia: Universidad del Norte,
2017.
[2] Tomado de: https://numpy.org/
[3] Tomado de: https://docs.python.org/2/li-
brary/tkinter.html

También podría gustarte