martes, 15 de diciembre de 2015

Experimento 1: Recuperación de una señal senoidal a partir de una señal PWM.

Nota: Para ver las fórmulas usar Firefox o Chrome con la extensión MathJax

En esta experiencia se describirá la conversión de una señal digital de modulación por pulso a una señal analógica determinística. Básicamente se trata la conversión de una señal PWM a una señal senoidal.

OBJETIVO

La finalidad de la experiencia será repasar los principales conceptos de la conversión analógica-digital y también servirá como base para desarrollar sistemas de comunicación prácticos como la transmisión digital de voz (modulada en PWM).

IMPLEMENTACION

Para el desarrollo de dicha experiencia necesitaremos:

  • Un generador de funciones
  • Un módulo Arduino UNO
  • Componentes electrónicos pasivos (un potenciómetro y un capacitor)
La siguiente figura muestra el diagrama general de conexiones del experimento:


Figura 1


De acuerdo a la figura, el generador de la onda senoidal se conecta a una de los pines analógicos del módulo ARDUINO UNO. Luego, la salida de uno de los pines digitales del ARDUINO UNO se conecta a una red RC configurada como filtro pasa bajos pasivo de primer orden.

Los parámetros de la señal senoidal de entrada se configuran de acuerdo a las características de la señal que reciben los pines analógicos del ARDUINO UNO.

Los pines analógicos A0 - A5 aceptan amplitudes de voltajes entre 0 a  5 V DC, entonces la amplitud de la onda senoidal será de 4 Vpp con un voltaje Offset de +2.5 V.

En cuanto a la frecuencia de la señal senoidal, esta debe ser menor a la mitad de la frecuencia de muestreo, bajo el criterio de Nyquist. La frecuencia de muestreo típica del ARDUINO es de 4.46 KHz, medida experimentalmente. Entonces, la frecuencia máxima de la señal senoidal de entrada deberá ser menor a 2.23 KHz. Para efectos del experimento consideramos una señal de 100 Hz.

De la descripción anterior se obtiene una expresión matemática (que es una característica de las señales determinísticas) de la señal de entrada:


x ( t ) = 2.5 + 2 cos ( 2 π f c t ) x(t) = 2.5+2 cdot cos(2%pi f_c t)             (1)


PROGRAMA DEL ARDUINO

El programa tiene básicamente 3 líneas de comando o instrucciones:

void loop()
{
  valor=analogRead(5);         //lee el dato analógico del pin 5 y lo guarda en una variable de 10 bits
  salida=valor*(255./1023);  //convierte el 'valor' en una variable de 0 a 255 valores.
  analogWrite(3,salida);       //muestra la variable de salida como una señal PWM.
}

El conjunto de instrucciones se repite indefinidamente debido a que se encuentra dentro de la función 'loop'.

DEMOSTRACION DE LA TRANSFORMACION

La tabla posterior muestra el cálculo de las magnitudes del valor medio y de los dos primeros armónicos para diversos valores de ciclo de trabajo.


PWM(f)
C0
C1
C2
τ = 0
0
0
0
τ = 0.2T
0.2A
0.19A
0.15A
τ = 0.5T
0.5A
0.32A
0
τ = 0.8T
0.8A
0.19A
0.15A
τ = T
A
0
0
Cálculo de los armónicos de una señal PWM


En el siguiente vídeo se demuestra el cálculo en la tabla cuando la frecuencia (fundamental) de la señal PWM es de 490 Hz.



Como se puede observar, los valores calculados coinciden con los experimentales.

CONVERSIÓN DE LA SEÑAL PWM A SENO

Se aplica la señal de la fórmula 1 al Arduino UNO y su salida convertida en PWM se filtra con un filtro pasa bajos pasivo de primer orden que es una red RC, como se muestra en la gráfica 1.

A continuación los resultados:

Gráfica 1:







La señal celeste es la señal senoidal aplicada y la señal amarilla es la señal PWM a la salida del pin digital 3 del arduino.

Vemos que la señal de entrada para que ingrese al módulo arduino se le suma un voltaje offset de 2.5 V aprox. para que la señal esté dentro del rango de valores aceptables por los pines de entrada analógicos del arduino. El voltaje aceptable está entre 0 y 5 Volts.

Gráfica 2:




Esta gráfica muestra la señal PWM de entrada al filtro, y la señal celeste que es la señal senoidal filtrada (recuperada). También se observa el espectro de la señal PWM.

Lo más importante para destacar en este punto es que en la transformada de la señal se observa:

  1. Un impulso en el origen que representa el valor medio de la señal PWM, el cual siempre es un valor de voltaje mayor que 0.
  2. Un impulso en 100 Hz muy cerca al impulso en el origen que es la frecuencia de la señal senoidal de entrada.
  3. Un impulso en 500 Hz que representa el primer armónico de la señal PWM.
Gráfica 3:



En esta tercera gráfica se observa la transformada de la señal filtrada con un filtro pasabajos formado por una red RC de 100 KΩ y 100nF (primer orden) lo cual da una frecuencia de corte de 100 Hz.

Pensemos en un filtro imaginario (línea de color rojo) que atenúa todas las frecuencias superiores a 100 Hz. Solo quedan relevantes las 3 armónicas de la gráfica 2 pero con magnitudes diferentes a causa del filtrado.

La forma senoidal general de la señal celeste se debe al impulso central ubicado en 100 Hz y el rizado de la señal celeste se debe al tercer impulso ya atenuado por el filtro.

Si cuantificamos la frecuencia de la señal de rizado vemos que existen 5 ciclos por cada periodo de la señal senoidal lo cual se comprueba en el espectro donde el tercer impulso mas pequeño esta en 500 Hz y entonces:

Nº de ciclos = 500 Hz 100 Hz = 5 Nº de ciclos = {500 Hz} over {100 Hz} = 5

Finalmente, si deseamos desaparecer el rizado, la solución más obvia según la gráfica 3 es incrementar la pendiente de corte del filtro lo cual se logra incrementando el orden del filtro. 

Para obtener filtros de mayor orden, lo más recomendable es realizar filtros activos (con OPAMPs) en lugar de las redes pasivas RC las cuales causan mayor atenuación de la señal filtrada,

Gráfica 4


Finalmente, para tener una señal similar a la original se pasa la señal filtrada por un capacitor de desacoplo el cual solo deja pasar las componentes de AC de la señal.

Lo que queda por demostrar es que si la eliminación o filtrado del tercer impulso ocasiona que la señal de salida se asemeje aún más a la original como es de esperarse.

Finalizo mostrando una fotografía con el circuito de prueba para analizar y demostrar la conversión de la señal analógica senoidal a señal PWM y su posterior recuperación.