Está en la página 1de 8

Procesador digital de seales 2012

Procesador digital de seal


Un procesador digital de seales o DSP (sigla en ingls de digital signal processor) es un sistema basado en un procesador o microprocesador que posee un conjunto de instrucciones, un hardware y un software optimizados para aplicaciones que requieran operaciones numricas a muy alta velocidad. Debido a esto es especialmente til para el procesado y representacin de seales analgicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras (samples en ingls), normalmente provenientes de un conversor analgico/digital (ADC).
ndice
[ocultar]

1 Historia 2 Funcionamiento 3 Arquitectura 4 Programacin

4.1 Ejemplo de un filtro con script m compatible con LabVIEW MathScript y con Matlab

5 Aplicaciones 6 Vase tambin 7 Enlaces externos

o o

7.1 Fabricantes 7.2 Otros

Historia[editar editar fuente]


En 1978, INTEL lanz el 2920 como un procesador analgico de seales. Este posea un chip ADC/DAC con un procesador de seales interno, pero no posea un multiplicador de hardware, el 2920 no tuvo xito en el mercado. En 1979, AMI lanza el S2811, fue diseado como un microprocesador perifrico, al igual que el 2920 no tuvo gran xito en el mercado. En el mismo ao, Bell Labs introduce el primer chip procesador digital de seales (DSP), The Mac 4 Microprocessor. Luego en 1980 fueron presentados en el ISSCC80 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 ao NEC comenz la produccin del PD7710, la primera produccin de DSP completos en el mundo. El primer DSP producido por Texas Instruments, el TMS32010, prob ser un suceso mayor. Actualmente el TMS320C4X diseado y producido por TEXAS INSTRUMENTS, surge con ciertas

Procesador digital de seales 2012


ventajas frente al resto de los procesadores, ya que ste se disea para ser escalable; es decir, para que pueda trabajar en paralelo con otros dispositivos similares. Muchos de los procesadores se engloban dentro de la filosofa CISC, (Complex Instruction Set Computers) Aunque se pueden encontrar en el mercado algunos que operen bajo la filosofa RISC (Reduced Instruction Set Computers); estos ltimos dedicados para aplicaciones concretas como la telefona mvil.

Funcionamiento[editar editar fuente]


Se ha dicho que puede trabajar con seales analgicas, pero el DSP es un sistema digital, por lo tanto necesitar un conversor analgico/digital a su entrada y digital/analgico 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 diseo e instrucciones especficas para el procesado digital, se puede dar una idea de su enorme potencia para este tipo de aplicaciones. Estas caractersticas 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 seal 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:

Ejemplo de un filtrado antialiasing.

La seal entrante entra directamente en un filtro antialiasing para evitar frecuencias superiores a la muestreada del conversor analgico-digital. Despus se lleva a cabo el procesado digital en el mdulo DSP, para despus volverse a convertir en analgico y dar paso a la salida.

Procesador digital de seales 2012


Arquitectura[editar editar fuente]
Un DSP est diseado teniendo en cuenta las tareas ms habituales del procesado digital: sumas, multiplicaciones y retrasos (almacenar en memoria). Los DSP abandonan la arquitectura clsica de Von Neumann, en la que datos y programas estn en la misma zona de memoria, y apuestan por la denominada Arquitectura Harvard. En una arquitectura Hardvard existen bloques de memoria fsicamente 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 bsicos 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 aritmtico-lgica. Registros. PLL: Bucles enganchados en fase. PWM: Mdulos de control de ancho de pulso.

Programacin[editar editar fuente]


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 colaboracin entre fabricantes, existen lenguajes de ms alto nivel (y por lo tanto, ms sencillos y rpidos de usar) que incorporan la capacidad de programar los DSP, en general pasando por un precompilado automtico en C. Son los casos de LabVIEW y Matlab.

Ejemplo de un filtro con script m compatible con LabVIEW MathScript y con Matlab[editar editar fuente]
En el siguiente ejemplo se presenta la programacin de un filtro digital en script m. El parmetro "entrada" es un valor que hay que darle al programa. Cabe destacar que los coeficientes del filtro estn en los arrays den y num. Ntese 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));

Procesador digital de seales 2012


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;

Aplicaciones[editar editar fuente]


Las aplicaciones ms habituales en las que se emplean DSP son el procesado de audio y vdeo; y cualquier otra aplicacin que requiera el procesado en tiempo real. Con estas aplicaciones se puede eliminar el eco en las lneas de comunicaciones, lograr hacer ms claras imgenes de rganos internos en los equipos de diagnstico mdico, cifrar conversaciones en telfonos celulares para mantener privacidad, analizar datos ssmicos para encontrar nuevas reservas de petrleo, hace posible las comunicaciones wireless LAN, el reconocimiento de voz, los reproductores digitales de audio, los modems inalmbricos, las cmaras digitales, y una larga lista de elementos que pueden ser relacionados con el proceso de seales.

Filtro digital

Un filtro digital es un tipo de filtro que opera sobre seales discretas y cuantizadas, implementado con tecnologa digital, bien como un circuito digital o como un programa informtico.

ndice
[ocultar]

Procesador digital de seales 2012



1 Definicin 2 Tipos de filtros 3 Expresin general de un filtro 4 Ejemplo del diseo de un filtro 5 Vase tambin 6 Referencias 7 Enlaces externos

Definicin[editar editar fuente]


Un filtro digital es un sistema que, dependiendo de las variaciones de las seales de entrada en el tiempo y amplitud, se realiza un procesamiento matemtico sobre dicha seal; generalmente mediante el uso de la Transformada rpida de Fourier; obtenindose en la salida el resultado del procesamiento matemtico o la seal de salida. Los filtros digitales tienen como entrada una seal analgica o digital y en su salida tienen otra seal analgica o digital, pudiendo haber cambiado en amplitud, frecuencia o fase dependiendo de las caractersticas del filtro digital. El filtrado digital es parte del procesado de seal digital. Se le da la denominacin de digital ms por su funcionamiento interno que por su dependencia del tipo de seal a filtrar, as podramos llamar filtro digital tanto a un filtro que realiza el procesado de seales digitales como a otro que lo haga de seales analgicas. Comnmente se usa para atenuar o amplificar algunas frecuencias. Por ejemplo, se puede implementar un sistema para controlar los tonos graves y agudos de cualquier sistema de audio. El procesamiento interno y la entrada del filtro sern digitales, por lo que puede ser necesario una conversin analgica-digital o digital-analgica para uso de filtros digitales con seales analgicas. Un tema muy importante es considerar las limitaciones del filtro de entrada debido a que la seal debe poder ser reconstruida, ver Teorema de muestreo de Nyquist-Shannon.

Tipos de filtros[editar editar fuente]


Hay varios tipos de filtros as como distintas clasificaciones para estos filtros:

De acuerdo con la parte del espectro que dejan pasar y que atenan hay:

Filtros pasa alto. Filtros pasa bajo.

Procesador digital de seales 2012

Filtros pasa banda.

Banda eliminada. Multibanda. Pasa todo. Resonador. Oscilador. Filtro peine (Comb filter). Filtro ranura o filtro rechaza banda (Notch filter).

De acuerdo con su orden:

primer orden segundo orden

De acuerdo con el tipo de respuesta ante entrada unitaria:

FIR (Finite Impulse Response) IIR (Infinite Impulse Response) TIIR (Truncated Infinite Impulse Response)

De acuerdo con la estructura con que se implementa:

Laticce Varios en cascada Varios en paralelo

Expresin general de un filtro[editar editar fuente]


Hay muchas formas de representar un filtro. Por ejemplo, en funcin de w (frecuencia digital), en funcin de z y en funcin de n (nmero de muestra). Todas son equivalentes, pero a la hora de trabajar a veces conviene ms una u otra. Como regla general se suele dejar el trmino a0=1. Si se expresa en funcin de z y en forma de fraccin:

Y en dominio de n:

Los coeficientes son los a y b y son los que definen el filtro, por lo tanto el diseo consiste en calcularlos.

Ejemplo del diseo de un filtro[editar editar fuente]

Procesador digital de seales 2012


En primer lugar se parte de las especificaciones y, basndose en stas, se elige el tipo de filtro. En este ejemplo se parte de un filtro digital que anule las frecuencias menores a 5Hz y la de 50Hz y que no altere al resto, la frecuencia de muestreo ser 1000Hz, adems se quiere fase lineal. Con estas especificaciones se elige un filtro FIR. El diseo se puede hacer manualmente o con la ayuda de un ordenador. En este ejemplo el mtodo de diseo ser el de Remez. En Matlab se obtienen los coeficientes que definen el filtro, que en la ecuacin anterior se llaman a y b (el numerador es la variable b y el denominador solo tiene un trmino que es 1, como corresponde a un filtro FIR):

[n,fo,mo,w]=remezord([0 5 45 50 50 55],[0 1 0 1],[0.01 0.1 0.01 0.1],1000); b = remez(n,fo,mo,w)


Nota: remezord en matlab est obsoleto, en su lugar se puede utilizar firpmord. En la siguiente figura se muestra el aspecto del filtro en el centro. En la parte superior se muestra la seal que se quiere filtrar y en la parte inferior la seal filtrada (se trata de un electrocardiograma).

El siguiente paso es seleccionar la forma de implementarlo, es decir su estructura. Luego se elige el hardware sobre el que funcionar. Normalmente un Procesador digital de seal o una FPGA, aunque

Procesador digital de seales 2012


tambin puede ser un programa de ordenador. Finalmente se usan los coeficientes obtenidos y la estructura elegida para crear el programa.