Está en la página 1de 10

INFORME DE PRÁCTICA DE LABORATORIO Versión 1.

0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

Digitalización de señales y aliasing


Cifuentes Nicolay, Parra Sara, y Herrera castillo
{est.nicolay.cifuen, est.sara.parra2, y nicolas.herrera1}@unimilitar.edu.co
Profesor: Velazco Nelson

Resumen—Este documento presenta el desarrollo de la


práctica de digitalización de señales y aliasing, más adelante se A. Generación de la señal
podrá observar el proceso para digitalizar una señal sinusoidal Para esto se utilizó un generador de señales, este se configuró
proveniente de un generador de ondas; esta señal digitalizada se
para que tuviera un voltaje de 3Vpp (Voltaje pico a pico) y un
podrá observar en un programa diseñado en el Software Python,
aquí podremos observar diferentes ondas con una variación en su offset de 1.5V, esto a razón de que la tarjeta STM no recibe
frecuencia, para finalmente comparar dichos resultados en un valores de voltaje negativos y es posible que se dañe en caso
programa creado en Matlab, el cual representará ondas de ser así.
sinusoidales perfectas; todo es con el propósito de comparar las Seguido de esto se configuró cada una de las frecuencias
ondas generadas de una manera teórica y práctica. propuestas y se hizo la captura de los datos. En la figura 1 se
puede observar el generador de señales utilizado, allí se pueden
ver los botones de este dispositivo, con los cuales se ajustaron
Palabras clave—STM, Python, Matlab, Digitalización,
Generador de señales, PSNR, MSE. los valores anteriormente mencionados.

I. DESARROLLO DE LA PRÁCTICA
En la siguiente tabla se pueden observar todos los componentes
usados para el desarrollo de esta práctica. En esta también se
puede observar una breve descripción del funcionamiento de
cada componente usado para el desarrollo de la práctica.

Descripción
Componentes Especificación
componente
Por medio de los
programas
Keil, Python, mencionados se
Software
Matlab realiza la obtención Figura 1. Generador de señales.
y el guardado de
datos B. Comprobación de la señal por medio del osciloscopio
A partir de este
Al utilizar el osciloscopio se debe tener en cuenta que esté bien
dispositivo se calibrado para poder hacer las mediciones correctamente, para
Microcontrolador STM32F7
obtiene la señal a esto se colocan las dos puntas en los pines correspondientes,
digitalizar esto se puede observar en la figura dos los pines se encuentran
Por medio de estos en le cuadrado negro), también se debe tener en cuenta, que la
escala de la sonda sea la correcta para tener datos más
Generador de 2 equipos se podrá
Equipo de confiables.
señales y crear y observar
laboratorio
osciloscopio respectivamente, la
señal requerida
Tabla 1. Componentes utilizados para el desarrollo de la Guía.

Según lo planteado por la guía de laboratorio y como primer


procedimiento, se generan señales sinusoidales utilizando un
generador de señales, dichas señales serán enviadas a un
computador por medio de un DAC configurado en una tarjeta
embebida STM32F764. Los datos recibidos son capturados en
un software de lenguaje Python, y almacenados en un archivo
txt para su posterior visualización en Matlab.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

y la configuración del puerto serial para la recepción de los


datos.

Como la información llega en bits, con una regla de tres se hace


la conversión a valores de voltaje, esto se puede ver en la Ec.
(1), donde 3.3 corresponde al valor máximo que entrega la
STM y 4095 el número de bits utilizado para la transmisión de
datos.

Figura. 2. Osciloscopio.

C. Captura de datos con la STM

Para la captura de datos se configuró uno de los Timers de la


STM para que se activará cada 5 ms, esto con el fin de tomar
200 muestras por segundo, según lo indicado en la guía de
laboratorio. Seguido de esto se utilizó la USART para hacer la
trasmisión de los datos previamente capturados hacia el
computador. Estos datos podrán ser observados en un código
creado en Python.

En la figura 3 se puede observar el diagrama de flujo


correspondiente al código realizado para la programación de la
STM.

Figura. 4. Diagrama de flujo Python.

3.3
𝑉𝑎𝑙𝑜𝑟 𝑒𝑛 𝑣𝑜𝑙𝑡𝑎𝑗𝑒 = 𝑉𝑎𝑙𝑜𝑟 𝑟𝑒𝑐𝑖𝑏𝑖𝑑𝑜 . Ec(1)
4095

Seguido de esto se crea un archivo de texto, donde se va


almacenando la información a medida que va llegando.
También es posible visualizar la información de forma gráfica
utilizando la librería “matplotlib” de Python. A continuación,
se podrá observar un ejemplo de una señal digitalizada en el
Figura. 3. Diagrama de flujo STM programa desarrollado en Python.

D. Desarrollo aplicativo Python

Se programó un aplicativo con el objetivo de visualizar la


información análoga capturada con la STM. En la figura 4, se
muestra el diagrama de flujo correspondiente a lo programado
en Python; allí se hizo la declaración de las librerías a utilizar
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

calcular el PSNR, el error cuadrático y la varianza.

(2𝑛 −1)2
𝑃𝑆𝑁𝑅 = 10𝑥 𝑙𝑜𝑔( ) Ec(2)
𝑀𝑆𝐸

La ecuación Ec. (2), permite definir la relación entre la máxima


energía posible de una señal y el ruido que afecta su
representación (PSNR), lo que nos indica que entre más alto el
número PSNR mayor es la relación entre señal y ruido.

1
𝑀𝑆𝐸 = 𝛴(𝑦𝑖 − 𝑦′í )2 Ec. (3)
𝑛

En la Ec. (3), está definido el error cuadrático medio, el cual


nos permite estimar el promedio de los errores al cuadrado.

𝐸 = |𝑉𝑎𝑙𝑜𝑟𝑟𝑒𝑎𝑙 − 𝑉𝑎𝑙𝑜𝑟𝑚𝑒𝑑𝑖𝑑𝑜 | Ec.(4)


Figura 5. Señal digitalizada de 10 Hz
Con la Ec. (4) se obtiene el error que hay entre la señal
E. Comparación de datos teóricos y prácticos en Matlab simulada y la real (señal análoga).

𝛴(𝑥−𝑥′)2
En esta sección se diseñó un programa en Matlab, encargado 𝜎2 = Ec. (5)
𝑁
de recibir los datos del archivo de texto generado por Python,
estos datos se comparan con una señal sinusoidal generada en Con ayuda de la Ec. (5) se obtendrá el valor de la varianza, con
Matlab, con las frecuencias propuestas por la guía. En la figura el objetivo de saber la dispersión de datos que hay en la señal
6, se puede observar el diagrama de flujo para el código real.
utilizado en Matlab.
En la sección Matlab vs. Python, se podrán observar los
cálculos obtenidos, gracias a estas ecuaciones.

II. ANÁLISIS DE RESULTADOS

A partir de los resultados obtenidos de las figuras 7, 8 y 9, se


puede observar que el muestreo es realizado de una manera
exitosa, sin embargo, al observar la figura 7, y teniendo en
cuenta que se tenía como objetivo realizar 20 muestra por ciclo
para esta frecuencia, se obtuvieron 22, lo que nos indica que el
periodo de muestreo es menor a lo esperado, esto lo podemos
relacionar a la pérdida de bits usada en la transmisión de datos.
Mientras que en las figuras 8 y 9 no se pudo observar un error
similar al anteriormente mencionado.

Figura. 6. Diagrama de flujo Matlab.

Para generar las gráficas a analizar, se creó una función que


recibe como parámetros de entrada: el nombre del archivo de
texto, la frecuencia a la cual se realizó la medición y la fase que
debe tener la función teórica para que concuerde con la función
experimental.
Adicionalmente se utilizarán las siguientes ecuaciones para
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

Figura. 7. Señal análoga de 10 hz a 200 muestras/segundo.


Figura. 10. Señal análoga de 40 hz a 200 muestras/segundo.

Figura. 8. Señal análoga de 20 hz a 200 muestras/segundo.


Figura 11. Señal análoga de 50 hz a 200 muestras/segundo.

Figura. 9. Señal análoga de 30 hz a 200 muestras/segundo.


Figura 12. Señal análoga de 60 hz a 200 muestras/segundo.
En la figura 10, 11, 12, se puede comprobar que, con el
aumento de frecuencia, el periodo disminuye, dando a entender Para las frecuencias de 70, 80 y 90 Hz, se observó un
que el experimento se está realizando de una manera adecuada. comportamiento similar a los anteriormente mencionados.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

debido a que tomaría una sola muestra por ciclo. Sin embargo,
esto no sucede aquí ya que al realizar la toma de datos se obtuvo
un periodo de muestreo menor al requerido, como ya se había
mencionado anteriormente.

Figura 13. Señal análoga de 70 hz a 200 muestras/segundo.

Figura 16. Señal análoga de 100 hz a 200 muestras/segundo.

Para las frecuencias mayores a 100 Hz, se puede observar que


las gráficas obtenidas son muy similares a las anteriormente
presentadas, esto debido a que las muestras tomadas coinciden
con los armónicos presentes en las frecuencias de 10 a 90 Hz.
Esto se puede evidenciar en las figuras 17, 18, 19 y 20.

Figura 14. Señal análoga de 80 hz a 200 muestras/segundo.

Figura 17. Señal análoga de 120hz a 200 muestras/segundo.

Figura 15. Señal análoga de 90 hz a 200 muestras/segundo.

Analizando la frecuencia de 100Hz (Figura 16), se concluye


que no fue graficada de una manera exitosa, ya que,
teóricamente el muestreo debería formar una línea recta, esto
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

Figura 21. Señal análoga de 200 hz a 200 muestras/segundo.


Figura 18. Señal análoga de 140 hz a 200 muestras/segundo.

Figura 22. Señal análoga de 300 hz a 200 muestras/segundo.


Figura 19. Señal análoga de 160 hz a 200 muestras/segundo.

Figura 23. Señal análoga de 400 hz a 200 muestras/segundo.


Figura 20. Señal análoga de 180 hz a 200 muestras/segundo.
Mediciones reiniciando el dispositivo
Se podría concluir respecto a estas gráficas, que el muestreo
presentado en ellas es el mismo, pero su periodo es diferente. En las siguientes figuras se podrá observar la toma de muestras
Esto se puede apreciar en las gráficas de 200, 300 y 400 Hz. realizada a 100Hz. Estas gráficas tienen como objetivo mostrar
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

qué pasa cuando la STM es reiniciada mientras se están


tomando los datos. Para esto, se decidió utilizar 50 muestras,
con el propósito de observar de una manera pertinente los
resultados.

Figura 27. Toma de datos #4.

En las figuras 25, 26 y 27 se puede evidenciar que al reiniciar


la STM las muestras tomadas en ese lapso de tiempo se vuelven
Figura 24. Toma de datos #1. 0, ya que no llega ningún tipo de información.

En la figura anterior se puede observar una muestra en la cual Matlab vs. Python
no se reinició el dispositivo, con el propósito de tener un punto
de comparación con respecto a las gráficas mostradas a Se procede a comparar el valor de la señal real y la señal
continuación, donde se reiniciará el dispositivo. simulada, esta señal simulada se hizo a partir de un algoritmo
en Matlab, en el que se configuró la frecuencia, el voltaje pico
a pico y el voltaje de offset.

Para las figuras presentadas a continuación se graficaron menos


muestras (50 muestras). Esto con el fin de obtener una mejor
visualización y un análisis mejor entre las gráficas. Además de
esto se utilizó una escala 1:3 para mejorar los rangos de
visualización de cada señal, también se puede observar los
valores calculados del PSNR, el ECM, la media y la varianza.

Figura 25. Toma de datos #2.

Figura 26. Toma de datos #3.

Figura 28. Señal real vs señal simulada a 10 hz de frecuencia.


INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

Figura 31. Señal real vs señal simulada a 40 hz de frecuencia.

Figura 29. Señal real vs señal simulada a 20 hz de frecuencia. De la figura 28 a 31 se puede observar que estas tienen la
misma fase, sin embargo, a medida que pasa el tiempo se puede
visualizar que la señal digital aumenta su amplitud; esto podría
ser ocasionado por el ruido presentado en los jumpers
conectados entre el sistema embebido y el generador de
señales.

Figura 30. Señal real vs señal simulada a 30 hz de frecuencia.

Figura 32. Señal real vs señal simulada a 50 hz de frecuencia.

En la figura 32, se puede observar que al inicio las gráficas


parecen tener la misma frecuencia y fase, pero esto cambia a
medida que el tiempo va avanzando, se puede observar esto
desde aproximadamente la segunda oscilación. Esto puede
deberse a que el ruido presentado al momento de hacer la toma
de datos afectó al generador de señales, impidiendo una
correcta toma de datos.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

Figura 33. Señal real vs señal simulada a 60 hz de frecuencia. Figura 35. Señal real vs señal simulada a 80 hz de frecuencia.

Figura 36. Señal real vs señal simulada a 90 hz de frecuencia.


Figura 34. Señal real vs señal simulada a 70 hz de frecuencia.
En las figuras 33, 34, 35 y 36 se puede apreciar que las señales
muestreadas coinciden con las teóricas, esto lo podemos
concluir gracias al error obtenido en estas gráficas.
INFORME DE PRÁCTICA DE LABORATORIO Versión 1.0
PROGRAMA DE INGENIERÍA MECATRÓNICA Periodo 2022-1

que generan inconsistencias para comparar las


señales.

● Al comparar la señal obtenida con la generada en


Matlab, se puede evidenciar que a frecuencias altas se
empieza a distorsionar y a presentar un error mayor en
los datos capturados, con respecto a la señal teórica,
esto se debe a que la señal tiene un menor periodo y
toma una menor cantidad de muestras por ciclo.

● Por muy simple que pueda ser, se recordó el uso del


generador de señales y el osciloscopio, para la
generación y verificación de una señal.

● Al realizar la problemática planteada por la guía de


laboratorio, se encontró un leve problema que afectó
significativamente el resultado de la señal discretizada
en el archivo de texto pues al trabajar con valores
decimales, hacía que la señal variará un poco, y al ser
esta comparada con la señal teórica obtenida en
Matlab, varían mucho, pero al ajustar dichos valores
decimales a fraccionarios, disminuyó el problema. De
Figura 38. Señal real vs señal simulada a 100 hz de frecuencia.
igual manera para obtener una medida correcta de la
En la figura 38 se puede observar que al momento de graficar señal generada por el microprocesador, y la de
la señal digital algo salió mal; esto puede deberse a un error de Matlab, es obligatorio desfasarse, de tal manera que
medición de dicha señal o que hubo un fallo en los cálculos de queden sobrepuestas, para que al observarlas tengas la
la señal senoidal hecha en Matlab. Para obtener un mejor misma fase y así se pueda reducir el error producido
resultado se debería hacer una nueva medición de la señal por la señal.
digital, utilizando instrumentos de medición diferentes a los
usados en este experimento. ● Podemos concluir que algunos procedimientos no se
elaboraron de la manera correcta, ya que, en teoría al
Preguntas utilizar una frecuencia de 100 Hz, debería graficarse
1. ¿Puede considerar que su sistema es de alta fidelidad? una línea recta, dándonos a entender que se utilizó un
No, debido a que existen diferentes factores que menor periodo de muestreo, impidiendo los resultados
generan fallos al momento de realizar el experimento. deseados.
Estos fallos pueden ser producidos por errores
humanos o de los instrumentos utilizados para la toma
de datos. REFERENCIAS
2. ¿Qué puede afirmar sobre el error de cuantificación? [1] P. J and S. L, “Digitalización,” ´ multimedia, 2016.
Se puede decir que dicho error es relativo, esto [2] [2] G. E, “Efecto Aliasing,” Carman, 2014.
depende del número de muestras tomadas, la [3] J D Proakis Manolakis. Tratamiento digital de señales. Madrid: Pearson
frecuencia de medición e incluso se puede generar una Educación,(2007). ´
[4] [2] A R Oppenheim Schafer. Tratamiento de señales en tiempo discreto.
pérdida de datos en el cable de comunicación entre la Madrid: Pearson Educación,(2011).
STM y el computador.

III. CONCLUSIONES

● Se logra a partir de la toma de datos, identificar los


procesos para digitalizar una señal, el muestreo, la
cuantificación y la codificación permitiendo analizar
señales en un tiempo discreto y continuo.

● Se comprende que, a mayor cantidad de niveles de


cuantificación, más precisa será la señal real con
respecto a la teórica, por lo tanto, se observó que a una
menor resolución de bits la señal sufre distorsiones

También podría gustarte