- Procesador digital de señal
-
Procesador digital de señal
Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras (samples en inglés), normalmente provenientes de un conversor analógico/digital (ADC).
Se ha dicho que puede trabajar con señales analógicas, pero es un sistema digital, por lo tanto necesitará un conversor analógico/digital a su entrada y digital/analógico en la salida. Como todo sistema basado en procesador programable necesita una memoria donde almacenar los datos con los que trabajará y el programa que ejecuta.
Si se tiene en cuenta que un DSP puede trabajar con varios datos en paralelo y un diseño e instrucciones específicas para el procesado digital, se puede dar una idea de su enorme potencia para este tipo de aplicaciones. Estas características constituyen la principal diferencia de un DSP y otros tipos de procesadores.
Para adentrar en su funcionamiento se pondrá el ejemplo de un filtro: el DSP recibirá valores digitales o samples procedentes de la señal de entrada, calcula qué salida se obtendrá para esos valores con el filtro que se le ha programado y saca esa salida. Un posible sistema basado en un DSP puede ser el siguiente:
La señal entrante entra directamente en un filtro antialiasing para evitar frecuencias superiores a la de muestreo del conversor analógico-digital. Después se lleva a cabo el procesado digital en el módulo DSP, para después volverse a convertir en analógico y dar paso a la salida.
Contenido
Historia
En 1978, INTEL lanzó el 2920 como un “procesador analógico de señales”. Este poseía un chip ADC/DAC con un procesador de señales interno, pero no poseía un multiplicador de hardware, el 2920 no tuvo éxito en el mercado.
En 1979, AMI lanza el S2811, fue diseñado como un microprocesador periférico, al igual que el 2920 no tuvo gran éxito en el mercado. En el mismo año, Bell Labs introduce el primer chip procesador digital de señales (DSP), The Mac 4 Microprocessor. Luego en 1980 fueron presentados en el ISSCC’80 los primeros DSP completos: el PD7710 de NEC y el DSP1 de AT&T, ambos procesadores fueron inspirados en las investigaciones de PSTN Telecomunicaciones. En ese mismo año NEC comenzó la producción del PD7710, la primera producción de DSP completos en el mundo.
El primer DSP producido por Texas Instruments, el TMS32010, probó ser un suceso mayor. Actualmente el TMS320C4X diseñado y producido por TEXAS INSTRUMENTS, surge con ciertas ventajas frente al resto de los procesadores, ya que éste se diseña para ser escalable; es decir, para que pueda trabajar en paralelo con otros dispositivos similares. Muchos de los procesadores se engloban dentro de la filosofía CISC, (Complex Instruction Set Computers) Aunque se pueden encontrar en el mercado algunos que operen bajo la filosofía RISC (Reduced Instruction Set Computers); estos últimos dedicados para aplicaciones concretas como la telefonía móvil.
Programación
Un DSP se puede programar tanto en ensamblador como en C. Cada familia de DSP tienen su propio lenguaje ensamblador y sus propias herramientas suministradas por el fabricante. Gracias a la colaboración entre fabricantes, existen lenguajes de más alto nivel (y por lo tanto, más sencillos y rápidos de usar) que incorporan la capacidad de programar los DSP, en general pasando por un precompilado automático en C. Son los casos de LabVIEW y Matlab.
Ejemplo de un filtro con script m compatible con LabVIEW MathScript y con Matlab
En el siguiente ejemplo se presenta la programación de un filtro digital en script m. El parámetro "entrada" es un valor que hay que darle al programa. Cabe destacar que los coeficientes del filtro están en los arrays den y num. Nótese que todas las operaciones son sumas (o restas), multiplicaciones y almacenamiento en memoria (variable w).
w=[0 0 0 0 0]; y=zeros(1,length(entrada)); for i=1:length(entrada) w(5)=entrada(i)-den(2)*w(4)-den(3)*w(3)-den(4)*w(2)-den(5)*w(1); y(i)= num(1)*w(5)+num(2)*w(4)+num(3)*w(3)+num(4)*w(2); w(1)=w(2); w(2)=w(3); w(3)=w(4); w(4)=w(5); end;
Páginas con programas de ejemplo
Aplicaciones
Las aplicaciones más habituales en las que se emplean DSP son el procesado de audio y video; y cualquier otra aplicación que requiera el procesado en tiempo real. Con estas aplicaciones se puede eliminar el eco en las líneas de comunicaciones, lograr hacer más claras imágenes de órganos internos en los equipos de diagnóstico médico, cifrar conversaciones en teléfonos celulares para mantener privacidad, analizar datos sísmicos para encontrar nuevas reservas de petróleo, hace posible las comunicaciones wireless LAN, el reconocimiento de voz, los reproductores digitales de audio, los modems inalámbricos, las cámaras digitales, y una larga lista de elementos que pueden ser relacionados con el proceso de señales.
Arquitectura
Un DSP está diseñado teniendo en cuenta las tareas más habituales del procesado digital: sumas, multiplicaciones y retrasos (almacenar en memoria).
Los DSP abandonan la arquitectura clásica de Von Neumann, en la que datos y programas están en la misma zona de memoria, y apuestan por la denominada Arquitectura Harvard. En una arquitectura Hardvard existen bloques de memoria físicamente separados para datos y programas. Cada uno de estos bloques de memoria se direcciona mediante buses separados (tanto de direcciones como de datos), e incluso es posible que la memoria de datos tenga distinta anchura de palabra que la memoria de programa (como ocurre en ciertos microcontroladores).
Los elementos básicos que componen un DSP son:
- Conversores en las entradas y salidas
- Memoria de datos, memoria de programa y DMA.
- MACs: multiplicadores y acumuladores.
- ALU: Unidad aritmético-lógica.
- Registros.
- PLL: Bucles enganchados en fase.
- PWM: Módulos de control de ancho de pulso.
Véase también
- Procesamiento digitalde señales
- Filtro digital
- FPGA
- Fourier
- FIR
- Harry Nyquist
- IIR
- LabVIEW
- Matlab
- Octave
Enlaces externos
Fabricantes
- Analog Devices
- Texas Instruments
- Motorola (Freescale)
- Hewlet Packard
- Cirrus
- Creative
- Forte Media
- Philips
- PCE GROUP
- Yamaha
- Airelog Device
- ATT
- SGS-Thomson
- Programación rápida de DSP para NI SPEEDY-33 y TI DSKs con LabVIEW
- Matemática con LabVIEW MathScript
Otros
Categoría: Procesamiento digital de señales
Wikimedia foundation. 2010.