miércoles, 17 de junio de 2009

"Front end" portátil para una SDR

Quienes siguen estas notas ya conocen mis esfuerzos por desarrollar una parte de una SDR en formato portátil. Uno aspecto interesante del desarrollo de un sistema de este tipo, aunque no puramente tecnológico, es la forma en la que se ofrecerá el interfaz de usuario.

No es una cuestión menor. Los grandes fabricantes invierten importantes recursos en desarrollar la "ergonomía" de sus productos. Desde mi punto de vista, un producto bien diseñado desde el punto de vista de la ergonomía es aquél que después de desembalarlo puede emplearse -al menos la mayor parte de sus funciones- sin necesidad de recurrir al manual.

Pensando en el uso, he analizado tres líneas de productos electrónicos diseñados para uso portátil, de pequeño tamaño y que ofrecen interfaces de usuario diversos: Teléfonos móviles, consolas portátiles de juegos y navegadores GPS de automóvil. Desde luego que a su vez cada uno de ellos ofrece una gama amplia de dispositivos, con diferentes formas de uso, pero de algo hay que partir.

Sin entrar aún en detalles, se observa una tendencia a la simplificación en los iconos y menus huyendo de dibujos sofisticados. Las pantallas en color de alta resolución y los interfaces táctiles son los más usados -y los más prácticos- para un operador.

El problema de manejar una pantalla táctil con los dedos es el de acertar la pulsación en zonas muy pequeñas de la misma. Por lo tanto, o la pantalla es grande o los iconos lo son, o ambas cosas.

Un producto que lleva tiempo en el mercado, que tiene millones de usuarios y que es de manejo muy simple es el GPS de automóvil. Está diseñado para ser manejado con los dedos, de forma sencilla -en principio para ser compatible con la conducción- y es fácil llegar a las múltiples opciones. Tras manejar varios de ellos me ha parecido el que mejor expresaría el interfaz de usuario para el manejo de una radio.

El equipo que estoy diseñando podría preguntar: ¿qué escuchamos? en lugar ¿dónde vamos? guiando al usuario paso a paso en el resto del proceso. Al fin y al cabo la radio también es un gran viaje.


lunes, 15 de junio de 2009

El "nivel de pureza" de una SDR.

SDR es un término excesivamente generalista. A partir de recibir la información "es una SDR" sabemos que se trata de una radio definida en software. Pero ¿hasta qué punto? ¿Qué partes del circuito son reconfigurables mediante software y cuáles no?

Es claro que, cuanto mayor sea el número de elementos reconfigurables mediante software más "SDR" será la radio.

Actualmente se emplean básicamente dos arquitecturas para la conversión de la señal de antena a señal en banda base. Ya hemos hablado otras veces, y sin duda hablaremos más de ello: Una es la QSD (Quadrature switching detector: detector conmutado en cuadratura), la otra tecnología es la DDC o (Digital Down Conversion: Conversión digital hicia abajo) y sus equivalentes en transmisión QSU (Quadrature switching upconverter) y DUC (Digital Up converter).

La primera es muy simple de realizar en hardware, pero es menos flexible que la segunda. En estos sistemas solamente suele ser configurable (definible) la frecuencia del oscilador local, y ningún otro parámetro. El resto de la circuitería no0 es programable. El ancho de banda base, por ejemplo, está definido por filtros hardware. La conversión A/D y el verdadero proceso digital que define la SDR comienza en banda base.

La segunda, sin embargo, es mucho más flexible en cuanto a su capacidad de reconfiguración. La conversión A/D se hace tan cerca de la antena como sea posible y el resto del proceso es digital. Existen circuitos especializados en esta función, pero lo más habitual es emplear circuitos programables (FPGA). Las ventajas de esta arquitectura y del uso de un circuito programable son muchas: Es posible configurar el equipo para un filtraje diferente en diferentes situaciones, para anchos de banda en banda base diferentes o incluso se pueden integrar varios convertidores en el mismo dispositivo lógico.

A la vista de esto se nos plantea una duda. Un equipo de radio que emplea exclusivamente tecnología DSP en sus últimas etapas a partir o hacia de una señal F.I., como puede ser el ICOM IC-7200 (proceso digital a partir de una FI a 15,625 KHz) ¿puede ser considerado una SDR?. A partir de lo visto si, ya que parte de sus capacidades están definidas en software, independientemente de que ese software funcione sobre un ordenador personal o sobre un procesador dentro del propio equipo.

jueves, 4 de junio de 2009

¿Es "software" el contenido de una FPGA?

La palabra software está íntimamente ligada a la SDR. De hecho es su inicial "S" la que da comienzo al acrónimo "SDR".

En un procesador, el software es el programa que hace que funcione. Un conjunto de instrucciones que se ejecutan secuencialmente y que permiten implementar los algoritmos y secuencias de operaciones para resolver un determinado problema.
Cuando se requiere mucha velocidad y capacidad de cálculo no se emplean procesadores DSP sino que se emplean unos dispositivos llamados FPGA -acrónimo de: Field Programmable Gate Array-. Estos dispositivos no ejecutan programas secuencialmente, sino que son circuitos que se configuran dinámicamente para responder a un determinado comportamiento lógico. Con una FPGA se pueden "sintetizar" diversos circuitos digitales, combinacionales o secuenciales y de diversa complejidad. Es posible incluso construir un procesador a partir del conexionado de sus elementos internos.

Una FPGA de las que se emplean en proceso de señal puede tener unidades de cálculo DSP -multiplicación y acumulación- ya integradas que pueden conectarse entre sí. Se pueden emplear simultáneamente, lo que aumenta su capacidad de cálculo. Preparar el dispositivo para una determinada función es cargarle un código que no contiene una serie de instrucciones para su ejecución una tras otra, sino un "mapa" del modo en que deben conectarse las diferentes unidades que conforman el dispositivo. Cambiando este "mapa" se cambia la funcionalidad.
¿Podemos llamar a esto software?. Si nos atenemos a la definición del diccionario Cambridge's Advanced, creo que sí -aunque sea por los pelos-. Según este diccionario, software es "el conjunto de instrucciones que controlan lo que hace un ordenador". Y al fin y al cabo, la función que realiza una FPGA en una SDR es de cálculo, por lo tanto de ordenador.

Creo que he hecho un poco de trampa y se puede argumentar en contra. Pero es que me conviene que sea que sí. Una SDR es "reconfigurable" en software. Si dispone de una FPGA dispone de un elemento reconfigurable, así que cuando se reconfigure diremos que es mediante software. Por otra parte, y para argumentar en mi favor, para el diseño de FPGA se emplean lenguajes descriptivos -Verilog y VHDL son los más comunes- que se parecen a otros lenguajes de programación más empleados en procesadores DSP.

¡No se hable más!. El contenido de una FPGA es software. Bueno, al menos desde el punto de vista de una SDR.

martes, 2 de junio de 2009

La SDR de Twente ¡más digital que antes!

Ya en otra entrada hice un comentario sobre la SDR controlada remotamente por varios usuarios de la Universidad de Twente.
Pues bien, casi se me pasa comentar que hace unas semanas que el sistema funciona a pleno rendimiento. ¡Espectro simultáneo de 8 bandas!

Si esto es impresionante, desde mi punto de vista lo es más el salto tecnológico. La radio, en lugar de estar basada en un mezclador en cuadratura con entrada de la señal analógica a través de una tarjeta de audio, se basa en un muestreo de alta velocidad y un proceso totalmente digital programado en una FPGA. Si duda la radio es ahora MÁS digital que hasta primeros de Mayo. La fotografía muestra la tarjeta. © Pieter Tjerk de Boer.

Es el estado actual de un excelente trabajo que PA3FWM comenzó en el 2005. Un dato muy interesante: Las 8 bandas se procesan y extraen ¡dentro de un solo dispositivo FPGA!. Ya no se emplea un convertidor en un circuito separado para cada banda. Los 8 convertidores se programan en una FPGA y gracias a disponer del espacio -circuitería- suficiente es posible integrarlos de forma simultánea en su FPGA Spartan XC3s500E, un pequeño "monstruo" con más de 200 patas y entre otros circuitos internos, 20 multiplicadores de 18x18 bits.

¿Y ahora qué?. Pues parece que Pieter está dedicado a poner en marcha un transmisor. Desde luego parece el siguiente paso lógico. Sin duda tendremos en breve nuevas noticias sobre su excelente trabajo.

lunes, 1 de junio de 2009

De la importancia de los algoritmos

Los algoritmos son secuencias ordenadas de operaciones que permiten hallar la solución a un problema. Un problema de solución única puede tener diferentes formas de ser resuelto. Pongamos un ejemplo simple: Multiplicar 99*54. La forma clásica, la que se aprende en la escuela será: Cuatro por nueve... [ ]... total 5346. Sin embargo, multiplicar puede verse como sumar muchas veces. Así pues: 99+99....+99 (54 veces)= 5346. Los dos métodos resuelven el problema por distintos caminos llegado, obviamente, a la misma solución.

Claramente, la primera solución es más rápida, aunque requiere más conocimiento. La misión de un algoritmo de cálculo utilizable en SDR es la de ofrecer un conjunto de pasos que sean fáciles de implementar en un calculador digital. El cálculo requiere tiempo. Y el cálculo requiere energía. Y la velocidad de cálculo está limitada en una máquina.

Con el fin de no desperdiciar la capacidad de cálculo disponible se deben desarrollar estrategias -algoritmos- que permitan obtener el máximo rendimiento de un dispositivo de cálculo. Un algoritmo adecuado permite ahorrar tiempo de proceso, espacio en el silicio que implementa el calculador, energía o varios de ellos de forma simultánea.

Es conocido el uso en SDR del algoritmo FFT. La FFT -Fast Fourier Transform- es un algoritmo que permite efectuar transformadas de Fourier sobre un conjunto de muestras de forma mucho más rápida que empleando directamente las ecuaciones originales de Fourier. Gracias a ello podemos tener en las pantallas de nuestros ordenadores espectros sobre un amplio ancho de banda. Si no fuese gracias a la FFT, las necesidades de cálculo harían la visualización de un espectrograma en nuestros ordenadores actuales algo muy difícil cuando no imposible.

Existen numerosos ejemplos de algoritmos que nos han facilitado máquinas efectivas. No puedo pasar sin mencionar uno de ellos: El algoritmo CORDIC. Este algoritmo permite calcular el valor de una función trigonométrica sin emplear una expansión polinómica. La solución a un polinomio precisa productos. Un multiplicador requiere una circuitería relativamente compleja. El algoritmo CORDIC no precisa productos. Gracias al empleo del algoritmo, un equipo de Hewlett Packard pudo desarrollar la que fue la primera calculadora científica de bolsillo, la HP-35, en 1972. El algoritmo no se había desarrollado hacía demasiado tiempo. Fue en 1959.

Uno de los algoritmos más usados para proceso de señales de alta velocidad en SDR es el filtro CIC. Este filtro es el corazón de un DDC o DUC (Digital Down/Up Converter). Estos filtros remuestrean la señal -obtienen más o menos muestras para representar la misma señal en un ancho de banda diferente- y al tiempo la filtran para que desaparezcan los "alias". El filtro CIC es de arquitectura simple y al igual que el CORDIC se implementa sin emplear multiplicadores. ¡Justo lo que se espera de un algoritmo para SDR!. Este tampoco es demasiado viejo: 1981.