Mostrando entradas con la etiqueta Entendiendo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Entendiendo. Mostrar todas las entradas

sábado, marzo 05, 2016

Entendiendo... los Osciloscopios (III): cuantificación

Una vez que hemos determinado el muestreo, el convertidor analógico-digital (ADC) tiene que cuantificar el valor de la señal recibida (dado que ha de pasarlo a información digital), y como no tenemos una memoria infinita truncará la resolución con la que se adquiere la medida.

Dependiendo del número de bits que resuelva el ADC se tendrán más o menos niveles. Por ejemplo para un ADC de 8 bits se tienen 256 niveles posibles de tensión, para uno de 10 bits 1024 niveles, etc. (a razón de 2^n niveles). Es decir, si ponemos una señal rampa (continúa) a la entrada del osciloscopio, el ADC lo digitalizará de la siguiente forma:

Cuantificacion Midthread
Niveles de cuantificación con 4 bits
Los escalones serán más finos cuantos más niveles (más bits de información por muestra) tengamos. Con cada bit extra se dobla el número de niveles, por lo tanto queda claro que nos interesan un ADC del máximo número de bits posibles.:
2-bit resolution analog comparison3-bit resolution analog comparison
Cuantificación de una
señal senoidal con  2 bits
Cuantificación de una
señal senoidal con  3 bits
Además hay que tener en cuenta que, aunque aquí se muestra todos los niveles de cuantificación disponibles para la señal, en un osciloscopio la cuantificación se realiza para el fondo de escala (es decir para lo que se muestra en pantalla), por lo que para la señal los bits disponibles siempre serán menos.

Aquí nos encontramos con el problema de siempre: no lo podemos tener todo, los ADC's tardan un tiempo en cuantificar la señal, y este tiempo augmenta según augmenta el número de bits, por lo que tener un ADC de 6GS/s y 24bits será tremendamente complicado (y muy muy caro). Así que debemos preguntarnos que cuál es la resolución y la velocidad que necesitamos para nuestra aplicación -evidentemente 6GS/s y 24bits servirán para practicamente todas las aplicaciones que necesitemos, sin embargo ¿necesitamos tantos datos?-.

Por un lado ¿cómo de rápidos serán los cambios? No es lo mismo leer una señal térmica (que toma algunos segundos en variar) que una "glich" en la señal, por lo que necesitamos un ancho de banda suficiente para detectar la señal (ya hemos hablado de esto y como mínimo necesitamos el doble del ancho de banda de la señal).

Además de eso, de que magnitud es el cambio para que sea relevante respecto a nuestra señal principal:
  • En una señal de 5V con 8 bits tendremos 256 niveles, es decir que cada bit corresponderá a unos 20mV (5V/256 = 19.53mV) de resolución
  • Si utilizamos 10bits tendremos 1024 niveles que cada bit corresponderá a unos 5mV (5V/1024 = 4.88mV)
  • Para 12bits, es decir 4096 niveles, la resolución será de aproximadamente 1mV (5V/4096=1.22mV), etc.
¿Realmente necesitamos ver la variación de 1mV sobre una señal de 5V (un 0,02% de la señal)?

Por lo que debemos tener una idea de la variación necesaria de la señal para que esta sea suficientemente importante para ser registrada, sobretodo sabiendo que si necesitamos mayor resolución en un punto aplicaremos una ganancia a la señal analógica antes del ADC, o lo que es lo mismo cambiaremos el fondo de escala a un valor menor (en vez de 5V aplicaremos 2V, 1V, 500mV, etc. en las ecuaciones anteriores).

Por otro lador  en un osciloscopio nos limita la resolución de la pantalla, por lo que si la pantalla es Full HD, es decir, con 1080 pixeles de altura, ¿qué sentido tiene tener 12bits (4096 niveles)? Seremos incapaces de representarlos en la propia pantalla del osciloscopio, y eso sin contar que muchos osciloscopios todavía utilizan pantallas con resolución VGA (o XVGA) de 480 pixeles de altura.

Lo más sencillo es sacrificar la velocidad y tener ADCs de más bits (podemos tener 24bits y 110kS/s muy baratos), o, por el contrario sacrificar los bits y tener major velocidad (8bits y 250MS/s bastante asequibles). Por ejemplo, los osciloscopios modernos de bajo coste (<500€) suelen tener 8bits y 1GS/s de muestreo en total (para los 2 o 4 canales que tienen). Incluso los de marca de coste asequible aumentan la velocidad sin cambiar el número de bits (8bits y 2GS/s). Es decir, los fabricantes en general están de acuerdo que, en un osciloscopio es más importante la velocidad de muestreo que el número de bits aplicados a cuantificar la señal.

S2

Ranganok Schahzaman




lunes, mayo 19, 2014

Entendiendo los... Osciloscopios (II): submuestreo y sobremuestreo

En la entrada anterior puse de manifiesto que un osciloscopio tenía que tener al menos un ancho de banda 10 veces menor que la velocidad de muestreo... Bueno, pues mentí. Al menos en parte, ya que existe una técnica para aumentar el ancho de banda permitido incluso por encima de la frecuencia de corte del teorema de Nyquist: el submuestreo.

Problema de submuestreo
Problema de submuestreo
 Imaginemos que tenemos una frecuencia de muestreo de 1GSa/s y muestreamos una señal periodica de 1GHz, tendríamos una serie de puntos todos a la misma altura. Pero no nos quedamos ahí. Si volvemos a muestrear la señal con el reloj un poco desfasado tendremos otra serie de puntos a distinta altura, repitiendo el proceso y desfasando el reloj cada vez más podemos volver a reconstruir la señal original... Ingenioso, ¿verdad?

1er ciclo
1er ciclo

2º ciclo
2º ciclo
...
Suma de los 4 ciclos
Suma de los 4 ciclos


La ventaja está muy clara: podemos aumentar el ancho de banda más allá de las restricciones puestas por el teorema de Nyquist.

Ahora bien, esta técnica tiene algunos inconvenientes que no son despreciables:
  • En primer lugar la técnica requiere que tengamos una señal periódica, por lo que no podremos ver los transitorios rápidos que generalmente es lo que nos interesa ver con un osciloscopio: no se podrá usar la opción de un sólo disparo porque esta sí está limitada por la frecuencia de Nysquit. Sólo por este motivo la mayoría de los osciloscopios no la usan.
  • Otros inconvenientes son de tipo constructivo: hay que tener un control bastante preciso del reloj y de la fase de este con respecto a la señal de interés, y los ruidos en este circuito fastidian bastante.

A título personal, yo he usado un Promax que trabajaba así hasta que me canse de que me "ocultara" las medidas y quedó cogiendo polvo en una estantería (todavía está).

En el caso contrario, podemos tener un sobremuestreo es decir  tener una velocidad de muestreo muy superior al ancho de banda que queremos conseguir. Con esto se obtienen las siguientes ventajas:
  • El filtro antialiasing puede ser de orden menor (y por lo tanto más barato) ya que la frecuencia de Nyquist es mucho mayor, luego de forma digital se puede implementar un filtro mas estricto.
  • Se reduce la distorsión producida por por los conversores D/A al reducir el espacio entre muestras.
  • También podemos promediar varias muestras con lo que conseguiríamos: por un lado tener una mayor protección contra el ruido ya que parte de la banda tendrá ruido incorrelado con la señal y se cancelara, y además podríamos aumentar la resolución de tal forma que cada vez que doblaramos el número de muestras a promediar obtendríamos 1/2 bit más, de esta forma con X muestras para promediar conseguiríamos n bits extras según la fórmula:
    $$ n[bits]= \frac{log_2 {X [número de muestras]}}{2} $$
    Es decir para conseguir 4 bits más de resolución necesitaremos promediar 256 muestras recogidas del conversor A/D por cada muestra enviada a la pantalla.

Señal con sobremuesteo
Señal con sobremuesteo


La desventajas de realizar un sobremuestreo son:
  • El conversor A/D debe ser mucho más rápido que el necesario para una conversión a la frecuencia de Nyquist.
  • Necesitamos una memoria grande y rápida para guardar los datos lo cual es más cara.
  • Necesitamos que la recepción y procesado de datos sea más rápido lo cual implica circuitos digitales más caros. 
  • Sólo sirve para subir unos pocos bits ya que cada bit de resolución más es necesario multiplicar por 4 la velocidad de muestreo.

Sin embargo, estas desventajas son salvables:
  • Por un lado, suele ser más sencillo encontrar un ADC de alta velocidad y baja resolución que uno de menor velocidad y mayor resolución (en proporción).
  • Además podemos elegir cuando utilizar el sobremuestreo para dar más resolución, como por ejemplo cuando se activa el filtro de 20MHz que muchos osciloscopios modernos llevan implementado (fue un ancho de banda habitual en los osciloscopios analógicos). Haciendo un cálculo rápido, con 1GSa/s y 20MHz de ancho de banda son 50 muestras por ciclo, es decir, podríamos aumentar la resolución 2.82bits:2 bits y el resto como protección contra el ruido o si aceptamos una pequeña degradación de el bit de menor peso 3bits.
  •  Podemos repartir las muestras entre varias memorias que trabajen en paralelo, y a partir de aquí realizar el procesado de las muestras en paralelo (si una cosa hacen bien las FPGAs es el trabajo en paralelo), una vez hecho el procesado de las muestras se pueden promediar y trabajar a velocidad "normal".

Como se puede ver las ventajas del sobremuestro son muchas y los obstáculos no son insalvables, así que ¿por qué no se utiliza más?... La respuesta es sencilla: no es necesario (al menos en osciloscopios), me explico: imaginemos que en la pantalla tenemos 1V en vertical entre extremos de la pantalla (ver figura)


Con 10 bits tendríamos 1024 divisiones que mostrar una resolución de aproximadamente 1mV (0.98mV), que para una pantalla de 10cm de altura nos daría una distancia entre puntos de 0.1mm (0.098mm). Vale, pero ¿qué pasa si queremos hacer zoom en una parte de la señal? Pues que para eso tenemos un amplificador a la entrada que nos aplica una ganancia variable ("zoom analógico"), además podemos multiplicar algo la señal digital, con un factor x10 tendríamos una distancia vertical de 1mm ("zoom digital"). Además los conversores A/D rápidos y de mayor resolución están cada vez más  baratos y siempre se pueden realizar técnicas de multiplexado para trabajar con varios conversores más lentos pero de mayor resolución. Por otro lado esta técnica sólo sirve para ganar unos pocos bits ya que por cada uno de ellos hay que multiplicar el número de muestras necesarias por 4.

Ojo te dicho que en osciloscopios esta técnica no se suele usar, pero sí en otros aparatos de medida: los multímetros. Un multímetro baratito tiene como mínimo 3 dígitos (000-999), para esto son necesarios 10bits de resolución más signo (11bits). Para 4 dígitos (0000-9999) son necesarios 14bits más signo. Para 5 dígitos son necesarios 17bits más signo....

Pero no sólo eso sino que para 10bits necesitamos unos componentes de 1%, para que el error sea menor que 1 LSB. Con 14 necesitamos componentes del 0,1%, etc.
Un multimetro de de banco se va a los 5-6 dígitos tranquilamente con un ancho de banda de unos pocos kHz, así que cualquier técnica que ayude a bajar el coste es bienvenida.

S2

Ranganok Schahzaman

lunes, mayo 12, 2014

Entendiendo los ... Osciloscopios (I): Velocidad de muestreo y ancho de banda

Últimamente he visto varios proyectos en Kickstarter que prometían un osciloscopio digital con unos anchos de banda increíbles:
Los dos proyectos están basados en un núcleo digital realizado por una FPGA. Las FPGAs son dispositivos digitales de gran potencia, se pueden realizar combinaciones de puertas lógicas de forma muy sencilla y su precio ha ido disminuyendo hasta hacerlas muy accesibles, por todo esto han aumentado los proyectos realizados con estos dispositivos.

Una de las ventajas de las FPGAs es que se puede reutilizar el "código" (realmente no es un código tal y como se conoce en programación, sino más bien una configuración), de tal forma que se puede incluir los realizados por otra gente, lo que permite acelerar y simplificar aún más el proceso de desarrollo. Además se pueden paralelizar los procesos aumentando la capacidad de computación de forma espectacular, si esto lo combinamos con la potencia que actualmente tienen los PCs .

Sin embargo, existe un momento que debemos salir de la parte digital y enfrentarnos a la analógica y aquí es donde suelen empezar los problemas...

Supongamos que tenemos una frecuencia de muestreo de 1GSa/s, esto es lo mismo que decir que obtendremos muestras (de la resolución que sea) a la velocidad de 1GHz (1 millón de muestras cada segundo)...

¡Genial! ¡podemos ver señales de 1GHz! ERROR una señal (senoidal) de 1GHz quiere decir que cada ciclo dura 1ns (=1/1GHz) pero es exactamente la cadencia con la que tomamos las muestras sólo tendríamos una muestra por cada ciclo, lo que es insuficiente para poder reconocer y reconstruir la señal (Caso A) .

Errores producidos por un muestreo insuficiente
Errores producidos por un muestreo insuficiente

Si aumentamos disminuimos la frecuencia de entrada máxima permitida a 500MHz ya podríamos distinguir algo parecido a la señal deseada aunque no es exactamente lo que queremos (Caso B), pero ya estamos en el límite, con que disminuyamos un poco más la frecuencia ya se podrá reconstruir la señal de entrada (Teorema de muestreo de Nyquist-Shannon).

Es decir, sólo con esto, hemos reducido el ancho de banda a menos de la mitad de la frecuencia de muestreo...

Pero estábamos hablando de señales senoidales, ¿qué pasa con el resto de señales?, bueno resulta que Fourier desarrolló una teoría matemática al respecto el "Análisis armónico"; que, básicamente, dice que cualquier señal periódica puede descomponerse en ondas armónicas o senoidales (suma finita o infinita).

Por ejemplo, una señal cuadrada tiene infinitos armónicos, igual que una señal diente de sierra (todas las señales con discontinuidades o con derivada discontinua tienen serie infinita).

4 primeros armónicos de una señal cuadrada
4 primeros armónicos de una señal cuadrada
5 primeros armónicos de una señal "diente de sierra"
5 primeros armónicos de una señal "diente de sierra"

Esto quiere decir que no podríamos visualizar ninguna de estas señales (ya que el ancho de banda que necesitaríamos es infinito). Sin embargo, se puede ver que cada armónico lo que hace es refinar la función y tiene menor peso cada vez por lo que podemos despreciar los armónicos más altos (con peso muy pequeño en la señal final) y quedarnos sólo con los más bajos (con mayor peso en la señal final).

Contribución de los armónicos a las señales Cuadrada, Diente de sierra y Triangular
Contribución de los armónicos a las señales Cuadrada, Diente de sierra y Triangular

De esta forma consideraríamos que los armónicos mayores que 5f (dónde f es la frecuencia fundamental) despreciables.

Amplitud de los primeros 7 armónicos del espectro de ondas cuadradas, triangular y diente de sierra

De esta forma podemos decir que para 1GSa/s podríamos tener un ancho de banda de 100MHz dando un margen de 5f para los armónicos (contando que el teorema de Nyquist da un ancho de banda máximo de 500MHz).

Hay que decir que el margen de 5f es arbitrario, por ejemplo:
  • Los RIGOL serie DS1000E tienen un 1GSa/s y un ancho de banda de 100MHz
  • Los AGILENT serie DSOX2012A tiene 2GSa/s y un ancho de banda de 100MHz (aunque hay que decir que la serie llega a los 200MHz).
Por lo que se puede ver es una regla bastante usual en la industria. También significa que por cada ciclo tendremos un mínimo de 10 muestras.

Por ahora está bien, más adelante hablaré de cómo nos podemos saltar la restricción del teorema de Nysquist para aumentar el ancho de banda; y, por el contrario, qué beneficios tiene poner más muestras de las que tenemos (submuestreo y sobremuestreo).

S2

Ranganok Schahzaman

PD: sobre el primer link de kickstarter hay una discusión abierta en reddit en el que lo sangran bastante, entre otras cosas por esto mismo que he explicado. Al final el creador ha tenido que reconocer que su ancho de banda no será de más de 5-10MHz.

viernes, marzo 14, 2014

Entendiendo los... componentes (0)

A la hora de explicar electrónica me he encontrado muchas veces que no se entienden bien las características de los componentes (a mí también me ha pasado y me sigue pasando). Por ejemplo tendemos a pensar que una resistencia es sólo eso, sin embargo su comportamiento varía con la temperatura, la frecuencia e incluso los materiales y la forma de construcción.

Quiero hacer una serie que explique los componentes (al menos los más usuales) paso a paso viendo las características "no comunes" para que tengamos más claro el datasheet (y también me sirva como recordatorio a mí mismo).

Hay que tener en cuenta que no soy físico, ni ingeniero de materiales así que puede que haya imprecisiones o directamente errores así que pido a los que me leeis que me ayudéis a corregirlos.

También debo decir que mi tiempo es bastante reducido así que si a alguien le interesa especialmente que comente algo que me lo diga (en mail por ejemplo, o con un comentario aquí) e intetaré darle prioridad a eso...

Empecemos...

S2

Ranganok Schahzaman